html,body,#root{height:100%;margin:0}body{color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0f111a;font-family:Inter,PingFang SC,Microsoft YaHei,Segoe UI,Tahoma,Geneva,Verdana,sans-serif}:root{--bg:#0f111a;--bg-elevated:#15172220;--panel:#1e1e24;--soft:#ffffff0a;--line:#ffffff14;--line-faint:#ffffff0d;--text:#fff;--sub:#a1a1aa;--muted:#6b7280;--brand:#4f46e5;--brand-strong:#6366f1;--brand-soft:#4f46e52e;--danger:#ef4444;--radius:12px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}.app-shell{background:var(--bg);min-height:100vh;color:var(--text);grid-template-columns:240px 1fr;display:grid}.app-sidebar{background:var(--panel);border-right:1px solid #ffffff0d;flex-direction:column;gap:22px;height:100vh;padding:22px 18px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-brand{color:var(--text);letter-spacing:.3px;align-items:center;gap:10px;font-size:15px;font-weight:600;display:flex}.brand-dot{background:linear-gradient(135deg, var(--brand), #22d3ee);border-radius:50%;width:10px;height:10px;box-shadow:0 0 12px #4f46e58c}.sidebar-section{flex-direction:column;gap:8px;display:flex}.sidebar-section-title{letter-spacing:1.2px;color:var(--sub);text-transform:uppercase;font-size:11px;font-weight:600}.sidebar-search{width:100%;font-size:13px}.sidebar-clear{align-self:flex-start}.sidebar-hint{color:var(--sub);font-size:12px;line-height:1.5}.sync-pill{border:1px solid var(--line);color:var(--sub);background:#ffffff08;border-radius:999px;align-items:center;gap:8px;width:fit-content;padding:6px 12px;font-size:12px;display:inline-flex}.sync-pill .sync-dot{background:#52525b;border-radius:50%;width:8px;height:8px}.sync-pill.is-on{color:#86efac;background:#22c55e1f;border-color:#22c55e52}.sync-pill.is-on .sync-dot{background:#4ade80;box-shadow:0 0 0 3px #4ade8033}.sidebar-stat{border:1px solid var(--line-faint);color:var(--sub);background:#ffffff08;border-radius:8px;justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;display:flex}.sidebar-stat strong{color:var(--text);font-size:15px;font-weight:600}.calendar-app{min-height:100vh;color:var(--text);padding:22px}.app-header{border:1px solid var(--line-faint);border-radius:var(--radius);background:#ffffff05;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:12px 14px;display:flex}.header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.month-switch{align-items:center;gap:10px;display:flex}h1{color:var(--text);letter-spacing:.2px;margin:0;font-size:22px;font-weight:700}h2{color:var(--text)}button,.import-btn{border:1px solid var(--line);color:var(--text);cursor:pointer;background:0 0;border-radius:10px;padding:7px 12px;font-size:13.5px;transition:background-color .14s,border-color .14s,color .14s}button:hover,.import-btn:hover{background:#ffffff0d;border-color:#ffffff2e}.create-btn{background:var(--brand);color:#fff;border-color:#0000;font-weight:600;box-shadow:0 6px 18px #4f46e559}.create-btn:hover{background:var(--brand-strong);border-color:#0000}.secondary-btn{color:var(--sub);background:#ffffff05}.secondary-btn:hover{color:var(--text)}.danger-btn{color:#fca5a5;background:#ef444429;border-color:#ef444473;margin-right:auto}.danger-btn:hover{color:#fecaca;background:#ef44443d}.danger-btn.small,.secondary-btn.small{margin-right:0;padding:6px 10px;font-size:12.5px}.delete-mode-toggle{color:#fca5a5;background:#ef444414;border:1px solid #ef444452;border-radius:10px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;display:inline-flex}.delete-mode-toggle input{accent-color:var(--danger)}.import-btn{align-items:center;gap:8px;display:inline-flex}.import-btn input{display:none}.lock-btn{color:#67e8f9;background:#22d3ee14;border-color:#22d3ee52}.lock-btn:hover{background:#22d3ee29}.staff-tip{color:var(--sub);margin:0 0 12px;font-size:13px}.staff-relink-banner{color:#facc15;background:#eab3081a;border:1px solid #eab30833;border-radius:10px;margin:0 0 12px;padding:10px 14px;font-size:13.5px;line-height:1.55}.staff-relink-banner strong{color:#fde047}.calendar-board{border:1px solid var(--line-faint);border-radius:var(--radius);background:#ffffff04;overflow:hidden}.weekday-row,.week-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:0;display:grid}.weekday{text-align:center;color:var(--sub);letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid #ffffff0d;padding:10px 0;font-size:12.5px;font-weight:600}.weekday+.weekday{border-left:1px solid #ffffff0d}.week-block{margin:0}.day-cell{background:0 0;border-bottom:1px solid #ffffff0d;min-height:64px;padding:6px 8px}.day-cell+.day-cell{border-left:1px solid #ffffff0d}.day-cell.muted{color:var(--muted);background:#ffffff04}.day-number{color:var(--text);font-size:14px;font-weight:600}.day-cell.muted .day-number{color:var(--muted)}.week-lines{background:0 0;border-bottom:1px solid #ffffff0d;position:relative}.project-line{background:var(--block-bg,#4f46e533);height:22px;color:var(--block-fg,#818cf8);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border:none;border-radius:4px;justify-content:flex-start;align-items:center;padding-inline:8px;font-size:12.5px;font-weight:500;transition:background-color .14s,transform .14s,box-shadow .14s;display:flex;position:absolute;overflow:hidden}.project-line:hover{background:color-mix(in srgb, var(--block-bg,#4f46e533) 65%, #ffffff0f);box-shadow:0 0 0 1px #ffffff0f,0 6px 18px #00000059}.project-line.continued-left{border-top-left-radius:0;border-bottom-left-radius:0}.project-line.continued-right{border-top-right-radius:0;border-bottom-right-radius:0}.project-line.continued-left:before{content:"‹";opacity:.6;margin-right:4px}.project-line.continued-right:after{content:"›";opacity:.6;margin-left:4px}.project-line.delete-mode{color:#fca5a5;background:#ef444433;outline:1px dashed #ef444466}.modal-mask{-webkit-backdrop-filter:blur(8px);z-index:50;background:#0009;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.project-modal{background:var(--panel);width:min(760px,100%);max-height:90vh;color:var(--text);border:1px solid #ffffff14;border-radius:16px;flex-direction:column;gap:12px;padding:20px;display:flex;overflow:auto;box-shadow:0 28px 70px #0009}.project-modal label,.project-modal fieldset{color:var(--text);flex-direction:column;gap:6px;display:flex}input,select{border:1px solid var(--line);color:var(--text);background:#ffffff08;border-radius:10px;padding:8px 10px;font-size:13.5px}input::placeholder{color:var(--muted)}input:focus,select:focus{background:#ffffff0a;border-color:#6366f18c;outline:none;box-shadow:0 0 0 3px #4f46e538}input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.date-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}fieldset{border:1px solid var(--line-faint);background:#ffffff05;border-radius:12px;padding:12px}.fieldset-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.fieldset-head h2,.fieldset-head legend{margin:0}legend{color:var(--text);padding:0 4px;font-size:13px;font-weight:600}.selected-inline-tip{color:var(--sub);margin-bottom:8px;font-size:12px}.select-grid{border:1px solid var(--line-faint);color:var(--text);background:#ffffff05;border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 10px;padding:10px;display:grid}.select-grid label{flex-direction:row;align-items:center;gap:6px;font-size:13px;display:flex}.manager-candidate-wrap{flex-direction:column;gap:10px;display:flex}.manager-candidate-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.manager-selected-count{color:var(--sub);font-size:12.5px}.manager-check-item{align-items:center;gap:6px;font-size:13px;display:flex}.manager-check-item label{cursor:pointer;color:var(--text);flex-direction:row;gap:0}.assignment-tip,.assignment-empty{color:var(--sub);font-size:13px}.assignment-rows{flex-direction:column;gap:8px;margin:6px 0 10px;display:flex}.assignment-row{grid-template-columns:2fr 1fr 1fr 1fr auto;align-items:center;gap:8px;display:grid}.assignment-actions{gap:6px;display:inline-flex}.people-picker{position:relative}.people-picker-summary{border:1px solid var(--line);color:var(--text);cursor:pointer;background:#ffffff08;border-radius:10px;padding:8px 10px;font-size:13.5px;list-style:none}.people-picker-summary::-webkit-details-marker{display:none}.people-picker-summary:after{content:"▾";float:right;color:var(--sub)}.people-picker[open] .people-picker-summary:after{content:"▴"}.people-picker-panel{z-index:20;border:1px solid var(--line);background:var(--panel);border-radius:12px;width:min(560px,72vw);padding:10px;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 18px 38px #00000073}.people-picker-search{width:100%;margin-bottom:8px}.people-picker-actions{gap:6px;margin-bottom:8px;display:flex}.people-picker-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 10px;max-height:220px;display:grid;overflow:auto}.people-picker-item{color:var(--text);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-size:13px;display:flex;overflow:hidden}.people-picker-label{white-space:nowrap;text-overflow:ellipsis;color:var(--sub);overflow:hidden}.people-picker-empty{color:var(--sub);font-size:13px}.picked-summary{color:var(--sub);background:#ffffff05;border:1px dashed #ffffff1f;border-radius:10px;flex-direction:column;gap:5px;padding:10px 12px;font-size:13.5px;display:flex}.details-modal .detail-item{color:var(--text);line-height:1.6}.details-mode-body{flex-direction:column;gap:10px;display:flex}.assignment-list{flex-direction:column;gap:6px;margin-top:6px;display:flex}.assignment-group{border:1px solid var(--line-faint);background:#ffffff05;border-radius:10px;padding:8px}.assignment-group-title{color:var(--sub);margin-bottom:5px;font-size:13px;font-weight:600}.assignment-list-item{border:1px solid var(--line-faint);color:var(--text);background:#ffffff05;border-radius:8px;padding:5px 9px;font-size:13px}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}@media (width<=1024px){.app-shell{grid-template-columns:200px 1fr}}@media (width<=900px){.app-shell{grid-template-columns:1fr}.app-sidebar{border-bottom:1px solid #ffffff0d;border-right:none;flex-flow:wrap;gap:14px;height:auto;padding:14px;position:static}.sidebar-section{flex:180px}.people-picker-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=768px){.calendar-app{padding:12px}.app-header,.month-switch{flex-direction:column;align-items:stretch}.date-row,.select-grid,.assignment-row{grid-template-columns:1fr}.people-picker-panel{width:min(92vw,560px)}}
