:root{--fs:.92;--color-bg:#fafbfc;--color-surface:#fff;--color-border:#dfe2e8;--color-border-strong:#c4c9d2;--color-text:#1f2430;--color-text-muted:#6b7280;--color-text-faint:#9aa1ab;--color-accent:#2f6fed;--color-accent-hover:#2359c9;--color-accent-bg:#eaf1ff;--color-danger:#d93025;--color-danger-bg:#fdecea;--color-success:#1a8754;--color-success-bg:#e8f6ee;--color-warning:#b26a00;--color-warning-bg:#fff3dc;--color-weekend-bg:#f4f5f7;--color-today-bg:#fff6da;--gantt-bar-bg:#fde68a;--status-preparing:#6b7280;--status-preparing-bg:#eceef1;--status-in_progress:#ca8a04;--status-in_progress-bg:#fef9c3;--status-completed:#1a8754;--status-completed-bg:#e8f6ee;--status-on_hold:#b26a00;--status-on_hold-bg:#fff3dc;--status-cancelled:#8a8f98;--status-cancelled-bg:#eceef1;--alert-normal:#4b5563;--alert-normal-bg:#eef0f3;--alert-attention:#b26a00;--alert-attention-bg:#fff3dc;--alert-warning:#d93025;--alert-warning-bg:#fdecea;--alert-critical:#fff;--alert-critical-bg:#b91c1c;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--shadow-xs:0 1px 2px #1018280d;--shadow-card:0 1px 2px #1018280a, 0 4px 12px #1018280f;--shadow-md:0 4px 16px #10182814, 0 2px 6px #1018280d;--transition-fast:.14s ease;font:calc(14px * var(--fs))/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Sans", "Yu Gothic", sans-serif;color:var(--color-text);background:var(--color-bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{margin:0}button{font:inherit}input,select,textarea{font:inherit;color:inherit}a{color:var(--color-accent)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}.btn{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:calc(13px * var(--fs));transition:background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);font-weight:500;display:inline-flex}.btn:hover{background:var(--color-bg);border-color:var(--color-text-faint)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:#fff;box-shadow:var(--shadow-xs)}.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-danger{color:var(--color-danger);border-color:var(--color-danger)}.btn-danger:hover{background:var(--color-danger-bg)}.btn-small{padding:var(--space-1) var(--space-2);font-size:calc(12px * var(--fs))}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.page-header{min-height:40px;margin-bottom:var(--space-5);justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.page-header h1{font-size:calc(22px * var(--fs));letter-spacing:-.01em;margin:0;font-weight:700}.page-header h1.page-title-sm{font-size:calc(14px * var(--fs))}.app-content .page-header.page-header--compact{margin-bottom:var(--space-1)}.page-loading{padding:var(--space-6);text-align:center;color:var(--color-text-muted)}:root[data-font-size=small]{--fs:.84}:root[data-font-size=large]{--fs:1}.sort-header-btn{align-items:center;gap:var(--space-1);color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;display:inline-flex}.sort-header-btn:hover{color:var(--color-accent)}.sort-mark{letter-spacing:-.1em;font-size:.8em}html,body,#root{height:100%}.font-size-selector{align-items:center;gap:var(--space-3);display:flex}.font-size-selector-label{font-size:calc(8px * var(--fs));color:var(--color-text-faint)}.font-size-selector button{color:var(--color-text-muted);font-size:calc(8px * var(--fs));cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;padding:2px 0}.font-size-selector button:hover{color:var(--color-text)}.font-size-selector button.active{border-bottom-color:var(--color-accent);color:var(--color-accent-hover);font-weight:600}.notification-bell{position:relative}.notification-bell-trigger{border-radius:var(--radius-md);width:24px;height:24px;color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.notification-bell-trigger:hover{background:var(--color-bg);color:var(--color-text)}.notification-bell-badge{background:var(--color-danger);color:#fff;min-width:13px;height:13px;font-size:calc(8px * var(--fs));text-align:center;border-radius:999px;padding:0 3px;font-weight:700;line-height:13px;position:absolute;top:-3px;right:-3px}.notification-bell-dropdown{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);z-index:20;width:300px;max-height:400px;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.notification-bell-dropdown-header{font-size:calc(8px * var(--fs));border-bottom:1px solid var(--color-border);padding:5px 12px;font-weight:700}.notification-bell-empty{font-size:calc(8px * var(--fs));color:var(--color-text-muted);text-align:center;padding:9px 12px}.notification-bell-list{margin:0;padding:0;list-style:none}.notification-bell-list li a{color:var(--color-text);border-bottom:1px solid var(--color-border);flex-direction:column;gap:2px;padding:5px 12px;text-decoration:none;display:flex}.notification-bell-list li:last-child a{border-bottom:none}.notification-bell-list li a:hover{background:var(--color-bg)}.notification-bell-list li.is-unread a{background:var(--color-accent-bg)}.notification-bell-message{font-size:calc(8px * var(--fs));line-height:1.4}.notification-bell-time{font-size:calc(7px * var(--fs));color:var(--color-text-muted)}.app-shell{--app-header-height:44px;height:100dvh;display:flex;overflow:hidden}.app-sidebar{background:linear-gradient(var(--color-border), var(--color-border)) right bottom / 1px calc(100% - var(--app-header-height)) no-repeat, var(--color-surface);width:156px;padding:0 0 var(--space-4);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.app-sidebar-brand{height:var(--app-header-height);padding:0 var(--space-4);margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border);font-weight:700;font-size:calc(14px * var(--fs));letter-spacing:.02em;color:var(--color-text);flex-shrink:0;align-items:center;display:flex}.app-nav{flex-direction:column;display:flex}.app-nav-footer{padding-top:var(--space-3);margin-top:auto;margin-inline:var(--space-4);border-top:1px solid var(--color-border)}.app-nav a{padding:var(--space-2) var(--space-4);color:var(--color-text-muted);font-size:calc(10px * var(--fs));transition:color var(--transition-fast), box-shadow var(--transition-fast);font-weight:500;text-decoration:none;display:block;box-shadow:inset 2px 0 #0000}.app-nav a:hover{color:var(--color-text)}.app-nav a.active{color:var(--color-accent-hover);box-shadow:inset 2px 0 0 var(--color-accent);font-weight:600}.app-nav.app-nav-footer a{box-shadow:none;padding-inline:0}.app-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.app-header{justify-content:flex-end;align-items:center;gap:var(--space-5);height:var(--app-header-height);padding:0 var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:10;flex-shrink:0;display:flex;position:sticky;top:0}.app-header-user{align-items:baseline;gap:var(--space-2);font-size:calc(9px * var(--fs));color:var(--color-text);display:inline-flex}.app-header-user strong{font-weight:600}.app-header-role{font-size:calc(8px * var(--fs));color:var(--color-text-faint)}.app-content{min-height:0;padding:var(--space-1) var(--space-5) var(--space-4);flex:1;overflow:auto}.page-fill{flex-direction:column;height:100%;min-height:0;display:flex}.page-fill>.page-header,.page-fill>.filter-bar{margin-bottom:var(--space-3)}.app-header .btn-logout{padding:var(--space-1) 0;font-size:calc(8px * var(--fs));color:var(--color-text-muted);background:0 0;border:none}.app-header .btn-logout:hover{color:var(--color-danger);background:0 0}.icon-btn{padding:var(--space-1);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.icon-btn:hover{color:var(--color-text)}.icon-btn--danger:hover{color:var(--color-danger)}.icon-btn:focus-visible,.icon-btn:focus{color:var(--color-text);outline:none}.icon-btn--danger:focus{color:var(--color-danger)}.icon-btn:after{content:attr(aria-label);z-index:1;background:var(--color-text);color:var(--color-surface);font-size:calc(9px * var(--fs));white-space:nowrap;pointer-events:none;opacity:0;padding:2px 6px;line-height:1.4;position:absolute;top:50%;right:100%;transform:translateY(-50%)}.icon-btn:hover:after,.icon-btn:focus:after{opacity:1}.admin-filter-bar{--filter-control-height:24px;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.admin-table tbody tr{cursor:default}.admin-row-actions{white-space:nowrap}.admin-row-actions .icon-btn+.icon-btn{margin-left:var(--space-2)}.admin-form{--form-control-height:24px;max-width:560px;padding:var(--space-3) 0 0;background:0 0;border:none;border-radius:0;margin:0 auto}.admin-form .form-section-title{font-size:calc(11px * var(--fs));margin:var(--space-4) 0 var(--space-2)}.admin-form .form-section-title:first-child{margin-top:0}.admin-form .form-grid{gap:var(--space-3)}.admin-form .form-field label{font-size:calc(9px * var(--fs))}.admin-form .form-field input,.admin-form .form-field select{box-sizing:border-box;height:var(--form-control-height);padding:0 var(--space-3);border-radius:var(--radius-md);font-size:calc(10px * var(--fs))}.admin-form .form-error{font-size:calc(10px * var(--fs))}.admin-form .form-actions{gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-3)}.admin-form .form-actions .btn{box-sizing:border-box;height:var(--form-control-height);padding:0 var(--space-3);font-size:calc(10px * var(--fs));font-weight:400}.case-form-page{justify-content:center;display:flex}.case-form-inner{width:100%;max-width:720px}.case-form{padding:var(--space-2) 0 var(--space-4)}.form-section-title{font-size:calc(11px * var(--fs));color:var(--color-text-muted);margin:var(--space-4) 0 var(--space-2);text-transform:uppercase;letter-spacing:.04em;font-weight:700}.form-section-title:first-child{margin-top:0}.form-grid{gap:var(--space-3) var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.form-field-hint{font-size:calc(11px * var(--fs));color:var(--color-text-muted);margin:0}.form-field{flex-direction:column;gap:4px;display:flex}.form-field--wide{grid-column:1/-1}.form-field label{font-size:calc(11px * var(--fs));color:var(--color-text-muted)}.form-field input,.form-field select,.form-field textarea{padding:var(--space-1) var(--space-2);font-size:calc(12px * var(--fs));border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface)}.form-field textarea{resize:vertical;min-height:56px;font-family:inherit}.form-warning{font-size:calc(11px * var(--fs));color:var(--color-warning);background:var(--color-warning-bg);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);grid-column:1/-1}.form-actions{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-border);display:flex}.form-error{color:var(--color-danger);font-size:calc(11px * var(--fs));margin-bottom:var(--space-3)}.form-field .date-picker-trigger{padding:var(--space-1) var(--space-2);font-size:calc(12px * var(--fs))}.form-field .date-picker-icon{width:14px;height:14px}.form-field .date-picker-popover{width:232px;padding:var(--space-2)}.form-field .date-picker-month-label{font-size:calc(12px * var(--fs))}.form-field .date-picker-weekdays span{font-size:calc(10px * var(--fs))}.form-field .date-picker-day,.form-field .date-picker-footer-btn{font-size:calc(11px * var(--fs))}.form-actions .btn{padding:var(--space-1) var(--space-3);font-size:calc(12px * var(--fs))}.filter-select{display:inline-block;position:relative}.filter-select-trigger{justify-content:space-between;align-items:center;gap:var(--space-3);box-sizing:border-box;height:var(--filter-control-height,24px);min-width:100%;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:calc(8px * var(--fs));cursor:pointer;white-space:nowrap;line-height:1;display:inline-flex}.filter-select-trigger svg{color:var(--color-text-muted)}.filter-select-trigger:focus-visible{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-bg);outline:none}.filter-select-list{z-index:20;min-width:100%;padding:var(--space-1) 0;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-md);margin:0;list-style:none;position:absolute;top:calc(100% + 4px);left:0}.filter-select-option{padding:6px var(--space-3);font-size:calc(8px * var(--fs));white-space:nowrap;cursor:pointer;line-height:1.4}.filter-select-option.is-active{background:var(--color-bg)}.filter-select-option.is-selected{color:var(--color-accent);font-weight:600}.entry-grid-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow-x:auto}.entry-grid{border-collapse:collapse;width:100%}.entry-grid th,.entry-grid td{border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);padding:var(--space-2) var(--space-2);text-align:center;font-size:calc(12px * var(--fs));white-space:nowrap}.entry-grid thead th{background:var(--color-bg);color:var(--color-text-muted);z-index:1;font-weight:600;position:sticky;top:0}.entry-grid .row-label{background:var(--color-surface);text-align:left;color:var(--color-text);z-index:1;min-width:140px;font-weight:600;position:sticky;left:0}.entry-grid thead .row-label{z-index:2;background:var(--color-bg)}.entry-grid td.weekend,.entry-grid th.weekend{background:var(--color-weekend-bg)}.entry-grid td.today,.entry-grid th.today{background:var(--color-today-bg)}.entry-grid .date-weekday{font-size:calc(10px * var(--fs));color:var(--color-text-faint);display:block}.entry-grid .date-future-badge{font-size:calc(10px * var(--fs));color:var(--color-accent-hover);font-weight:700;display:block}.entry-grid .date-confirmed-badge{font-size:calc(10px * var(--fs));color:var(--color-danger);font-weight:700;display:block}.entry-grid td.future{background:var(--color-accent-bg)}.entry-grid td.future .entry-grid-input{border-style:dashed;border-color:var(--color-accent)}.entry-grid-input{border-radius:var(--radius-sm);text-align:center;background:0 0;border:1px solid #0000;width:56px;padding:2px 4px}.entry-grid-input:hover{border-color:var(--color-border-strong)}.entry-grid-input:focus{border-color:var(--color-accent);background:var(--color-accent-bg);outline:none}.entry-grid td.cell-saving input{border-color:var(--color-accent)}.entry-grid td.cell-error input{border-color:var(--color-danger);background:var(--color-danger-bg)}.entry-grid .row-derived td{color:var(--color-text-muted)}.entry-grid .row-derived td.cell-error{color:var(--color-danger);font-weight:700}.entry-grid .row-total{background:var(--color-bg);font-weight:600}.entry-grid-warning{margin:var(--space-2);font-size:calc(12px * var(--fs));color:var(--color-warning);background:var(--color-warning-bg);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.entry-grid-empty{padding:var(--space-4);color:var(--color-text-muted);font-size:calc(13px * var(--fs))}.date-header-button{width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0;display:block}.entry-grid th.date-clickable:hover{background:var(--color-accent-bg)}.date-header-inner{grid-template-columns:14px 1fr 14px;align-items:start;display:grid}.date-header-center{text-align:center;grid-column:2}.date-header-spacer{grid-column:1}.date-note-icon{color:var(--color-text-muted);grid-column:3;justify-self:end;line-height:1}.date-note-svg{width:12px;height:12px;display:block}.note-dialog-overlay{z-index:100;padding:var(--space-4);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.note-dialog-panel{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-3);flex-direction:column;width:100%;max-width:420px;display:flex}.note-dialog-header{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.note-dialog-header h3{font-size:calc(15px * var(--fs));margin:0}.note-dialog-close{color:var(--color-text-muted);font-size:calc(14px * var(--fs));padding:var(--space-1);cursor:pointer;background:0 0;border:none;line-height:1}.note-dialog-close:hover{color:var(--color-text)}.note-dialog-textarea{resize:vertical;border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;padding:var(--space-2);font:inherit;background:var(--color-bg);color:var(--color-text)}.note-dialog-error{color:var(--color-danger);font-size:calc(13px * var(--fs))}.note-dialog-actions{justify-content:flex-end;gap:var(--space-2);display:flex}.capacity-page{--capacity-line:var(--color-border);max-width:1400px}.capacity-intro{margin:0 0 var(--space-5);font-size:calc(10px * var(--fs));color:var(--color-text-muted);padding:0;line-height:1.7;list-style:none}.capacity-intro li{white-space:nowrap}.capacity-intro li+li{margin-top:var(--space-1)}.capacity-default-setting{border-top:1px solid var(--capacity-line);padding:var(--space-4) 0 var(--space-2)}.capacity-default-setting h2{margin:0 0 var(--space-3);font-size:calc(13px * var(--fs));font-weight:700}.capacity-default-body{align-items:flex-start;gap:var(--space-2);flex-direction:column;display:flex}.capacity-default-form{align-items:center;gap:var(--space-2);display:flex}.capacity-page .capacity-default-form .btn{min-width:56px;height:22px;padding:0 var(--space-3);font-size:calc(11px * var(--fs));justify-content:center}.capacity-default-unit{font-size:calc(11px * var(--fs))}.capacity-default-info{font-size:calc(10px * var(--fs));line-height:1.7}.capacity-default-info p{margin:0}.capacity-default-note{white-space:nowrap;margin-top:var(--space-1);color:var(--color-text-muted)}.capacity-default-error{margin-top:var(--space-1);color:var(--color-danger)}.capacity-default-saved{margin-top:var(--space-1);color:var(--color-accent)}.capacity-page .capacity-default-input{width:72px;height:22px;padding:0 var(--space-2);text-align:right;font-size:calc(12px * var(--fs));border:none;border-bottom:1px solid var(--color-border-strong);background:0 0;border-radius:0}.capacity-page .capacity-default-input:focus{border-bottom:2px solid var(--color-accent);outline:none}.capacity-page .btn{height:36px;padding:0 var(--space-3);font-size:calc(13px * var(--fs));box-shadow:none}.capacity-page .btn:not(.btn-primary){color:var(--color-accent);background:0 0;border-color:#0000}.capacity-page .btn:not(.btn-primary):hover{background:var(--color-accent-bg)}.capacity-range-nav{align-items:center;gap:var(--space-1) var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--capacity-line);flex-wrap:wrap;display:flex}.capacity-range-label{text-align:center;min-width:13em;font-size:calc(11px * var(--fs));font-variant-numeric:tabular-nums;font-weight:600}.capacity-range-nav .btn{padding:2px var(--space-2);font-size:calc(10px * var(--fs));line-height:1.4}.capacity-page .entry-grid-wrap{background:0 0;border:none;border-radius:0}.capacity-page .entry-grid th,.capacity-page .entry-grid td{padding:var(--space-3) var(--space-2);font-size:calc(9px * var(--fs));font-variant-numeric:tabular-nums;border-right:none}.capacity-page .entry-grid thead th{background:var(--color-surface);border-bottom:1px solid var(--color-border-strong);font-size:calc(9px * var(--fs));padding-top:6px;padding-bottom:6px;line-height:1.3}.capacity-page .entry-grid .row-label{min-width:11em;padding-left:var(--space-3);padding-right:var(--space-4);font-size:calc(9px * var(--fs));background:var(--color-surface)}.capacity-page .entry-grid thead .row-label{background:var(--color-surface)}.capacity-page .entry-grid td.weekend,.capacity-page .entry-grid th.weekend{background:var(--color-weekend-bg)}.capacity-page .entry-grid td.today,.capacity-page .entry-grid th.today{background:var(--color-today-bg)}.capacity-page .entry-grid .date-weekday,.capacity-page .entry-grid .date-future-badge,.capacity-page .entry-grid .date-confirmed-badge{font-size:calc(9px * var(--fs));font-weight:400}.capacity-page .entry-grid-input{width:100%;min-width:3em;max-width:64px;padding:var(--space-1) 0;font-size:calc(10px * var(--fs));font-weight:600}.capacity-page .entry-grid tbody tr:not(.row-derived) th,.capacity-page .entry-grid tbody tr:not(.row-derived) td{padding-top:var(--space-2);padding-bottom:var(--space-2)}.capacity-page .entry-grid-input:hover{border-color:var(--color-border-strong)}.capacity-page .entry-grid .row-derived td{font-size:calc(9px * var(--fs))}.capacity-page .entry-grid .row-derived td.cell-error{background:var(--color-danger-bg)}.capacity-page .entry-grid-warning,.capacity-page .entry-grid-empty{font-size:calc(13px * var(--fs))}@media (width<=900px){.capacity-range-label{text-align:left;flex:100%;order:-1;min-width:0}.capacity-page .entry-grid th,.capacity-page .entry-grid td{padding:var(--space-2) var(--space-1)}}.alert-label{align-items:center;gap:var(--space-2);font-size:calc(12px * var(--fs));white-space:nowrap;background:0 0;border:0;padding:0;font-weight:600;line-height:1.6;display:inline-flex}.alert-label:before{content:"";background:currentColor;border-radius:50%;width:8px;height:8px}.alert-label--normal{color:var(--alert-normal);font-weight:400}.alert-label--normal:before{background:#b8bec6}.alert-label--completed{color:var(--alert-normal);font-weight:400}.alert-label--completed:before{background:#8fb8a0}.alert-label--attention{color:var(--alert-attention)}.alert-label--warning{color:var(--alert-warning)}.alert-label--critical{color:var(--alert-critical-bg)}.badge{align-items:center;gap:var(--space-1);padding:2px var(--space-3);border-radius:var(--radius-pill);font-size:calc(12px * var(--fs));white-space:nowrap;font-weight:600;line-height:1.6;display:inline-flex}.badge--dot:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.task-card{gap:var(--space-2);text-align:left;width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-xs);cursor:grab;transition:box-shadow var(--transition-fast), border-color var(--transition-fast);flex-direction:column;display:flex}.task-card:hover{box-shadow:var(--shadow-card);border-color:var(--color-border-strong)}.task-card-top{justify-content:space-between;align-items:flex-start;gap:var(--space-2);display:flex}.task-card-title{font-size:calc(12px * var(--fs));font-weight:600;line-height:1.4}.task-card-badges{align-items:center;gap:var(--space-1);flex-shrink:0;display:flex}.task-badge-icon{flex-shrink:0;width:12px;height:12px}.task-card-period{font-size:calc(11px * var(--fs));color:var(--color-text-muted)}.task-card-description{font-size:calc(11px * var(--fs));color:var(--color-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.task-board{gap:var(--space-4);padding-bottom:var(--space-2);grid-template-columns:repeat(3,minmax(240px,1fr));display:grid;overflow-x:auto}@media (width<=720px){.task-board{grid-auto-columns:minmax(240px,85vw);grid-auto-flow:column}}.task-column{gap:var(--space-3);background:var(--color-bg);border-radius:var(--radius-lg);padding:var(--space-3);flex-direction:column;min-height:160px;display:flex}.task-column-header{justify-content:space-between;align-items:center;display:flex}.task-column-title{font-size:calc(12px * var(--fs));font-weight:700}.task-column-count{font-size:calc(11px * var(--fs));color:var(--color-text-muted);background:var(--color-surface);border-radius:var(--radius-pill);padding:1px var(--space-2)}.task-column-body{gap:var(--space-2);flex-direction:column;min-height:40px;display:flex}.task-column-empty{font-size:calc(11px * var(--fs));color:var(--color-text-faint);text-align:center;padding:var(--space-3) 0}.task-column-add{padding:var(--space-2);border:1px dashed var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:calc(11px * var(--fs));cursor:pointer;background:0 0;align-self:stretch}.task-column-add:hover{background:var(--color-surface);color:var(--color-text)}.date-picker{width:100%;position:relative}.date-picker-trigger{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer;text-align:left;display:flex}.date-picker-trigger:hover:not(:disabled){border-color:var(--color-accent)}.date-picker-trigger:disabled{opacity:.6;cursor:not-allowed;background:var(--color-bg)}.date-picker-value{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.date-picker-placeholder{color:var(--color-text-faint)}.date-picker-icon{width:16px;height:16px;color:var(--color-text-muted);flex-shrink:0}.date-picker-popover{z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:264px;box-shadow:var(--shadow-card);padding:var(--space-3);position:absolute;top:calc(100% + 4px);left:0}.date-picker-header{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.date-picker-month-label{font-size:calc(13px * var(--fs));font-weight:600}.date-picker-nav{border-radius:var(--radius-sm);width:24px;height:24px;color:var(--color-text-muted);cursor:pointer;font-size:calc(16px * var(--fs));background:0 0;border:none;justify-content:center;align-items:center;line-height:1;display:inline-flex}.date-picker-nav:hover{background:var(--color-bg);color:var(--color-text)}.date-picker-weekdays{grid-template-columns:repeat(7,1fr);margin-bottom:2px;display:grid}.date-picker-weekdays span{text-align:center;font-size:calc(11px * var(--fs));color:var(--color-text-faint);padding:2px 0}.date-picker-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.date-picker-day{aspect-ratio:1;border-radius:var(--radius-sm);font-size:calc(12px * var(--fs));color:var(--color-text);cursor:pointer;background:0 0;border:none}.date-picker-day:hover:not(:disabled){background:var(--color-bg)}.date-picker-day.is-outside{color:var(--color-text-faint)}.date-picker-day.is-today:not(.is-selected){color:var(--color-accent-hover);box-shadow:inset 0 0 0 1px var(--color-accent);font-weight:700}.date-picker-day.is-selected{background:var(--color-accent);color:#fff;font-weight:600}.date-picker-day.is-disabled{color:var(--color-text-faint);cursor:not-allowed;opacity:.4}.date-picker-footer{gap:var(--space-2);margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border);display:flex}.date-picker-footer-btn{padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);font-size:calc(12px * var(--fs));cursor:pointer;color:var(--color-text);flex:1}.date-picker-footer-btn:hover:not(:disabled){background:var(--color-bg)}.date-picker-footer-btn:disabled{opacity:.5;cursor:not-allowed}.task-modal-overlay{padding:var(--space-6) var(--space-4);z-index:10;background:#10182866;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.task-modal-panel{background:var(--color-surface);border-radius:var(--radius-md);width:100%;max-width:560px;box-shadow:var(--shadow-card);padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.task-modal-header{justify-content:space-between;align-items:center;display:flex}.task-modal-header h2{font-size:calc(16px * var(--fs));margin:0}.task-modal-panel .form-grid{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.task-modal-panel .form-field{flex-direction:column;gap:4px;display:flex}.task-modal-panel .form-field label{font-size:calc(12px * var(--fs));color:var(--color-text-muted)}.task-modal-panel .form-field input,.task-modal-panel .form-field select,.task-modal-panel .form-field textarea{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);resize:vertical}.task-modal-panel .date-picker-trigger{padding:var(--space-2) var(--space-3)}.task-modal-meta{color:var(--color-text-muted);font-size:calc(12px * var(--fs));margin:0}.task-modal-actions{justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border);display:flex}.task-modal-actions-right{gap:var(--space-3);margin-left:auto;display:flex}.form-error{color:var(--color-danger);font-size:calc(13px * var(--fs))}.form-hint{color:var(--color-text-muted);font-size:calc(12px * var(--fs));margin:0}.internal-status-checklist{align-items:center;gap:var(--space-3);margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.internal-status-checklist-items{gap:var(--space-2);flex-wrap:wrap;display:flex}.internal-status-chip{padding:2px var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill,999px);font-size:calc(10px * var(--fs));color:var(--color-text-muted);background:var(--color-bg);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-weight:600;display:flex}.internal-status-chip input{cursor:pointer;width:11px;height:11px;margin:0}.internal-status-chip.is-done{color:var(--color-success);background:var(--color-success-bg);border-color:var(--color-success)}.internal-status-chip.is-out-of-order{border-style:dashed}.internal-status-checklist-meta{gap:var(--space-3);color:var(--color-text-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;margin-left:auto;font-size:6px;display:flex}.progress{align-items:center;gap:var(--space-2);min-width:96px;display:flex}.progress-track{background:var(--color-border);border-radius:999px;flex:1;height:8px;overflow:hidden}.progress-fill{background:var(--color-accent);border-radius:999px;height:100%;transition:width .2s}.progress-fill--complete{background:var(--color-success)}.progress-label{font-size:calc(12px * var(--fs));color:var(--color-text-muted);font-variant-numeric:tabular-nums;text-align:right;min-width:3em}.case-back-button{margin-bottom:var(--space-1);padding:2px var(--space-2);margin-left:calc(-1 * var(--space-2));color:var(--color-text-muted);font-size:calc(12px * var(--fs));background:0 0;border-color:#0000;font-weight:400}.case-back-button:hover{color:var(--color-accent);background:0 0;border-color:#0000;text-decoration:underline}.case-summary{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);padding-top:var(--space-3);padding-bottom:var(--space-3);margin-bottom:var(--space-5)}.case-summary-top{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.case-summary-title{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.case-summary-title h1{font-size:calc(18px * var(--fs));margin:0}.case-summary-company{color:var(--color-text-muted);font-size:calc(9px * var(--fs))}.case-summary-requester{margin-left:1.5em}.case-summary-status-reason{color:var(--color-text-muted);font-size:calc(12px * var(--fs));background:var(--color-surface-muted,#0000000a);border-radius:var(--radius-sm,4px);padding:var(--space-2,8px) var(--space-3,12px);white-space:pre-wrap}.case-summary-actions{gap:var(--space-1);flex-shrink:0;display:flex}.case-summary-actions .btn{padding:4px var(--space-3);font-size:calc(12px * var(--fs));line-height:1.4}.case-summary-stats{gap:var(--space-4);flex-wrap:wrap;display:flex}.case-summary-stats .stat-block{flex:140px}.case-summary-stats .stat-block--fit{flex:none}.case-summary-stats .stat-block--narrow{flex:none;min-width:80px}.case-summary-stats .stat-block--narrow .stat-label{white-space:nowrap}.stat-block .stat-label{font-size:calc(10px * var(--fs));color:var(--color-text-muted);margin-bottom:2px}.stat-block .stat-value{font-size:calc(14px * var(--fs));font-weight:600}.stat-block .stat-value--sub{font-size:calc(12px * var(--fs))}.stat-value--overdue{color:var(--color-danger)}.schedule-strip{gap:var(--space-4);margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border);flex-direction:column;display:flex}.schedule-row{gap:var(--space-4);flex-wrap:wrap;display:flex}.schedule-strip .stat-block{min-width:120px}.case-summary-stats .stat-label,.schedule-strip .stat-label{align-items:center;gap:4px;display:flex}.stat-icon{width:15px;height:15px;color:var(--color-text-muted);flex-shrink:0}.grid-section{margin-bottom:var(--space-5)}.grid-section-header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.grid-section-header h2{font-size:calc(14px * var(--fs));margin:0}.range-nav{align-items:center;gap:var(--space-2);font-size:calc(11px * var(--fs));color:var(--color-text-muted);display:flex}.range-nav-label{text-align:center;font-variant-numeric:tabular-nums;min-width:21ch;display:inline-block}.range-nav .btn{padding:2px var(--space-2);color:var(--color-accent);font-size:inherit;background:0 0;border-color:#0000;font-weight:400}.range-nav .btn:hover{color:var(--color-accent);background:0 0;border-color:#0000;text-decoration:underline}.grid-section-link{font-size:calc(11px * var(--fs))}.grid-section-note{font-size:calc(11px * var(--fs));color:var(--color-text-muted);margin:calc(-1 * var(--space-2)) 0 var(--space-3)}.column-settings-overlay{padding:var(--space-4) var(--space-3);z-index:10;background:#10182866;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.column-settings-panel{background:var(--color-surface);border-radius:var(--radius-md);width:100%;max-width:440px;box-shadow:var(--shadow-card);padding:var(--space-3) var(--space-5)}.column-settings-header{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.column-settings-header h2{font-size:calc(12px * var(--fs));margin:0}.column-settings-close{color:var(--color-text-muted);font-size:calc(12px * var(--fs));padding:var(--space-1);cursor:pointer;background:0 0;border:none;line-height:1}.column-settings-close:hover{color:var(--color-text)}.column-settings-checkbox-list{gap:var(--space-1) var(--space-3);grid-template-columns:repeat(2,1fr);display:grid}.column-settings-checkbox{align-items:center;gap:var(--space-2);font-size:calc(10px * var(--fs));display:flex}.column-settings-panel .form-section-title{font-size:calc(10px * var(--fs));color:var(--color-text-muted);margin:var(--space-3) 0 var(--space-2);text-transform:uppercase;letter-spacing:.04em;font-weight:700}.column-settings-panel .form-section-title:first-child{margin-top:0}.column-settings-panel .form-grid{gap:var(--space-2);grid-template-columns:repeat(2,1fr);display:grid}.column-settings-panel .form-field{flex-direction:column;gap:4px;display:flex}.column-settings-panel .form-field label{font-size:calc(10px * var(--fs));color:var(--color-text-muted)}.column-settings-panel .form-field input{box-sizing:border-box;height:24px;padding:0 var(--space-2);font-size:calc(10px * var(--fs));border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface)}.column-settings-panel .form-actions{gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--color-border);display:flex}.column-settings-panel .form-error{color:var(--color-danger);font-size:calc(10px * var(--fs));margin-bottom:var(--space-2)}.filter-bar{--filter-control-height:24px;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.filter-search{align-items:center;gap:var(--space-2);box-sizing:border-box;min-width:240px;height:var(--filter-control-height);border-bottom:1px solid var(--color-text);color:var(--color-text-muted);display:flex}.filter-search:focus-within{border-bottom-color:var(--color-accent);box-shadow:0 1px 0 var(--color-accent)}.filter-search input{min-width:0;color:var(--color-text);font:inherit;font-size:calc(8px * var(--fs));background:0 0;border:0;outline:none;flex:1;padding:0}.filter-bar .filter-spacer{flex:1}.page-header-actions{align-items:center;gap:var(--space-4);display:flex}.page-header-actions .btn{padding:3px var(--space-3);border-radius:var(--radius-sm);font-size:calc(9px * var(--fs));box-shadow:none;font-weight:600}.page-header-actions .btn:not(.btn-primary){color:var(--color-text-muted);background:0 0;border-color:#0000;padding-inline:0}.page-header-actions .btn:not(.btn-primary):hover{color:var(--color-accent-hover);background:0 0;border-color:#0000}.case-table-wrap{flex:1;min-height:0;overflow:auto}.case-table{border-collapse:collapse;width:100%;font-size:calc(13px * var(--fs))}.case-table th{text-align:left;padding:var(--space-3);box-shadow:inset 0 -1px 0 var(--color-border);background:var(--color-bg);color:var(--color-text-muted);white-space:nowrap;z-index:1;border-bottom:none;font-weight:600;position:sticky;top:0}.case-table td{padding:var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:middle;white-space:nowrap}.case-table tbody tr{cursor:pointer;transition:background var(--transition-fast)}.case-table--list{font-size:calc(10px * var(--fs))}.case-table--list .badge{padding:1px var(--space-2);font-size:calc(10px * var(--fs));font-weight:400;line-height:1.5}.case-table--list .badge--dot:before{width:5px;height:5px}.case-table--list .btn-small{font-size:calc(10px * var(--fs));padding:2px 6px;font-weight:400}.case-table--list .progress{gap:6px;min-width:80px}.case-table--list .progress-track{height:6px}.case-table--list .progress-label{font-size:calc(10px * var(--fs))}.case-table--list .due-days{font-size:calc(9px * var(--fs))}.case-table--list td{padding-top:4px;padding-bottom:4px}.case-table--list th{padding-top:var(--space-1);padding-bottom:var(--space-1)}.case-table tbody tr:hover,.case-table tbody tr:focus-within{background:var(--color-bg)}.case-name-link{color:inherit;text-decoration:none}.case-table tbody tr:hover .case-name-link,.case-name-link:focus-visible{color:var(--color-accent-hover);text-underline-offset:3px;text-decoration:underline}.case-name-link:focus-visible{outline-offset:1px}.case-name-cell{color:var(--color-text);white-space:normal;min-width:180px;font-weight:600}.case-table .case-name-cell,.staffing-table .case-name-cell{font-weight:400}.case-status-cell{align-items:center;gap:var(--space-2);white-space:nowrap;display:flex}.case-due-cell .due-days{font-size:calc(9px * var(--fs));color:var(--color-text-muted);display:block}.case-due-cell .due-days--overdue{color:var(--color-danger);font-weight:600}.empty-state{padding:var(--space-6);text-align:center;color:var(--color-text-muted)}.case-name-alert{margin-top:-1px;line-height:1}.case-table--list .alert-label{font-size:calc(7px * var(--fs));gap:3px;font-weight:400;line-height:1.2}.case-table--list .alert-label:before{width:3px;height:3px}.case-table .case-person-cell{font-weight:300}.staffing-intro{font-size:calc(10px * var(--fs));color:var(--color-text-muted);margin:0 0 var(--space-4)}.staffing-page .staffing-intro{margin-bottom:var(--space-2)}.staffing-page .capacity-range-nav{padding:var(--space-1) 0 0;margin-bottom:0}.staffing-page .capacity-range-nav .btn{box-sizing:border-box;height:20px;padding:0 var(--space-1);color:var(--color-text-muted);line-height:1;font-size:calc(10px * var(--fs));background:0 0;border-color:#0000;font-weight:400}.staffing-page .capacity-range-nav .btn--shift{color:var(--color-accent)}.staffing-page .capacity-range-nav .btn:hover{color:var(--color-accent);background:0 0;border-color:#0000;text-decoration:underline}.staffing-date-label{box-sizing:border-box;min-width:10ch;height:20px;line-height:1;font-size:calc(11px * var(--fs));font-variant-numeric:tabular-nums;justify-content:center;align-items:center;display:inline-flex}.staffing-page .filter-bar{margin-bottom:var(--space-2)}.staffing-excluded-badge{font-size:calc(10px * var(--fs));color:var(--color-text-muted);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:2px var(--space-2);white-space:nowrap}.staffing-effective-cell{font-weight:700}.staffing-total-row td,.staffing-total-row th{background:var(--color-bg);font-weight:700}.staffing-total-row th{text-align:left}.staffing-table{table-layout:fixed}.staffing-col-name{width:40%}.staffing-col-status{width:14%}.staffing-col-due{width:16%}.staffing-col-count{width:30%}.staffing-table .case-name-cell,.staffing-table .case-due-cell,.staffing-status-cell{white-space:normal}.staffing-status-inner{align-items:center;gap:var(--space-2);row-gap:var(--space-1);flex-wrap:wrap;display:flex}.staffing-count-header{text-align:center}.staffing-table th:last-child,.staffing-table td:last-child{padding-right:var(--space-5)}.company-select-page{max-width:480px;margin:var(--space-6) auto;padding:0 var(--space-4)}.company-select-header{margin-bottom:var(--space-5);justify-content:space-between;align-items:center;display:flex}.company-select-header h1{font-size:calc(18px * var(--fs));margin:0}.company-select-header .btn-logout{padding:var(--space-1) 0;font-size:calc(8px * var(--fs));color:var(--color-text-muted);background:0 0;border:none}.company-select-header .btn-logout:hover{color:var(--color-danger);background:0 0}.company-select-list{gap:var(--space-2);flex-direction:column;display:flex}.company-select-item{text-align:left;padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:calc(14px * var(--fs));cursor:pointer}.company-select-item:hover{background:var(--color-bg);border-color:var(--color-border-strong)}.empty-state{color:var(--color-text-muted);font-size:calc(13px * var(--fs));padding:var(--space-4) 0}.gantt-toolbar{align-items:center;gap:var(--space-4);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.gantt-nav{align-items:center;gap:var(--space-2);display:flex}.gantt-nav .range-label{font-size:calc(13px * var(--fs));text-align:center;min-width:110px;font-weight:600}.gantt-nav .btn{box-sizing:border-box;height:var(--filter-control-height);padding:0 var(--space-3);font-size:calc(8px * var(--fs));box-shadow:none;color:var(--color-accent);background:0 0;border-color:#0000}.gantt-nav .btn:hover{background:var(--color-accent-bg)}.gantt-zoom{align-items:center;gap:var(--space-2);font-size:calc(8px * var(--fs));color:var(--color-text-muted);display:flex}.gantt-page .page-header{margin-bottom:var(--space-3)}.gantt-page .filter-bar{margin-bottom:var(--space-2);align-items:flex-start}.gantt-legend{gap:var(--space-3);font-size:calc(8px * var(--fs));color:var(--color-text-muted);margin-bottom:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.gantt-legend-item{align-items:center;gap:6px;display:flex}.legend-chip{width:12px;height:12px;font-size:calc(8px * var(--fs));color:#fff;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex}.legend-chip--outline{background:var(--color-surface);box-sizing:border-box;border:1.5px solid}.legend-chip--full{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger);box-sizing:border-box}.legend-bar{background:var(--gantt-bar-bg);border-radius:3px;flex-shrink:0;width:10px;height:10px}.gantt-wrap{border-top:1px solid var(--color-border-strong);background:var(--color-surface);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.gantt-scroll{flex:1;min-height:0;overflow:auto}.gantt-inner{width:max-content;min-width:100%;position:relative}.gantt-bg-lines{top:0;bottom:0;left:var(--gantt-label-width);z-index:0;pointer-events:none;position:absolute;right:0}.gantt-bg-weekend{background:var(--color-weekend-bg);position:absolute;top:0;bottom:0}.gantt-bg-today{background:var(--color-danger);width:1px;position:absolute;top:0;bottom:0}.gantt-header-row,.gantt-row{z-index:1;display:flex;position:relative}.gantt-header-row{z-index:3;background:var(--color-surface);border-bottom:1px solid var(--color-border-strong);position:sticky;top:0}.gantt-label-cell{width:var(--gantt-label-width);z-index:2;background:var(--color-surface);border-right:1px solid var(--color-border-strong);padding:1px calc(var(--space-3) * var(--gantt-scale,1));cursor:pointer;box-sizing:border-box;flex-direction:column;flex-shrink:0;justify-content:center;gap:3px;display:flex;position:sticky;left:0}.gantt-header-row .gantt-label-cell{background:var(--color-surface);cursor:default;font-size:calc(8px * var(--fs) * var(--gantt-scale,1));color:var(--color-text-muted);font-weight:600}.gantt-label-main{align-items:center;gap:var(--space-2);min-width:0;display:flex}.gantt-label-cell .label-name{font-size:calc(10px * var(--fs) * var(--gantt-scale,1));white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;min-width:0;font-weight:400;line-height:1.4;overflow:hidden}.gantt-label-main .badge{font-weight:400;font-size:calc(8px * var(--fs) * var(--gantt-scale,1));border-radius:0;flex-shrink:0;margin-left:auto;padding:1px 0;line-height:1.5;background:0 0!important}.gantt-label-main .badge:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px}.gantt-internal-status{flex-shrink:0;gap:3px;display:inline-flex}.gantt-label-main .gantt-internal-status{margin-left:auto}.gantt-label-main .gantt-internal-status+.badge{margin-left:0}.gantt-internal-status-icon{width:calc(12px * var(--gantt-scale,1));height:calc(12px * var(--gantt-scale,1));background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success);font-size:calc(7px * var(--fs) * var(--gantt-scale,1));border-radius:50%;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex}.gantt-row{border-bottom:1px solid var(--color-border)}.gantt-row:last-child{border-bottom:1px solid var(--color-border-strong)}.gantt-row .gantt-label-cell{height:var(--gantt-row-height)}.gantt-row.alert-attention .gantt-label-cell{box-shadow:inset 2px 0 0 var(--alert-attention)}.gantt-row.alert-warning .gantt-label-cell{box-shadow:inset 2px 0 0 var(--alert-warning)}.gantt-row.alert-critical .gantt-label-cell{box-shadow:inset 2px 0 0 var(--alert-critical-bg)}.gantt-row:hover .gantt-label-cell,.gantt-row:hover{background:var(--color-bg)}.gantt-date-cell{width:var(--gantt-day-width);text-align:center;padding:var(--space-1) 0;font-size:calc(10px * var(--fs) * var(--gantt-day-scale,1));color:var(--color-text-muted);border-right:1px solid var(--color-border);white-space:nowrap;flex-shrink:0}.gantt-date-cell.weekend{background:var(--color-weekend-bg)}.gantt-date-cell .date-day{color:var(--color-text);font-weight:600}.gantt-date-cell .date-month{color:var(--color-text-muted);font-weight:400}.gantt-date-cell.today .date-day{box-shadow:0 2px 0 var(--color-danger)}.gantt-date-cell .date-weekday{font-size:calc(8px * var(--fs) * var(--gantt-day-scale,1));margin-top:2px;line-height:1.1;display:block}.gantt-header-row .gantt-date-cell{padding-top:3px;padding-bottom:3px}.gantt-staffing-row{z-index:1;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;position:relative}.gantt-staffing-row .gantt-label-cell{background:var(--color-surface);cursor:default;font-size:calc(8px * var(--fs) * var(--gantt-scale,1));color:var(--color-text-muted);font-weight:600}.gantt-staffing-cell{font-size:calc(10px * var(--fs) * var(--gantt-day-scale,1));color:var(--color-text);font-weight:400}.gantt-staffing-row .gantt-staffing-cell.full{background:var(--color-danger-bg);justify-content:center;align-items:center;gap:2px;display:flex}.gantt-full-icon{width:calc(10px * var(--gantt-scale,1));height:calc(10px * var(--gantt-scale,1));background:var(--color-danger);color:#fff;font-size:calc(8px * var(--fs) * var(--gantt-scale,1));border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex}.gantt-track{height:var(--gantt-row-height);isolation:isolate;flex-shrink:0;position:relative}.gantt-track:after{content:"";z-index:3;pointer-events:none;background-image:repeating-linear-gradient(to right, transparent 0, transparent calc(var(--gantt-day-width) - 1px), var(--color-border) calc(var(--gantt-day-width) - 1px), var(--color-border) var(--gantt-day-width));position:absolute;inset:0}.gantt-bar{cursor:grab;border-radius:4px;position:absolute}.gantt-bar--dragging{cursor:grabbing;opacity:.85;box-shadow:0 0 0 2px var(--color-accent);z-index:2}.gantt-bar-handle{cursor:ew-resize;width:6px;position:absolute;top:0;bottom:0}.gantt-bar-handle--start{left:0}.gantt-bar-handle--end{right:0}.gantt-error{justify-content:space-between;align-items:center;gap:var(--space-3);color:var(--color-danger);font-size:calc(10px * var(--fs));margin-bottom:var(--space-1);padding:0;display:flex}.gantt-error-close{color:inherit;font-size:calc(12px * var(--fs));cursor:pointer;padding:0 var(--space-1);background:0 0;border:none;line-height:1}.gantt-marker{z-index:4;cursor:pointer;color:#fff;box-shadow:0 0 0 1px var(--color-surface);box-sizing:border-box;border-radius:6px;justify-content:center;align-items:center;font-weight:400;line-height:1;display:flex;position:absolute}.gantt-empty{padding:var(--space-6);text-align:center;color:var(--color-text-muted)}.gantt-label-resizer{cursor:col-resize;z-index:1;width:6px;position:absolute;top:0;bottom:0;right:-3px}.gantt-label-resizer:hover{background:var(--color-accent);opacity:.4}.login-page{background:var(--color-bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:320px;box-shadow:var(--shadow-card);padding:var(--space-6) var(--space-5)}.login-card h1{font-size:calc(18px * var(--fs));margin:0 0 var(--space-5);text-align:center}.login-field{gap:var(--space-1);margin-bottom:var(--space-4);flex-direction:column;display:flex}.login-field label{font-size:calc(12px * var(--fs));color:var(--color-text-muted)}.login-field input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm)}.login-error{color:var(--color-danger);font-size:calc(13px * var(--fs));margin-bottom:var(--space-3)}.login-submit{justify-content:center;width:100%}
