:root{color:#2a3138;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f0ebe2;font-family:Segoe UI,Helvetica Neue,Arial,sans-serif;font-weight:400;line-height:1.5}html,body,#root{min-height:100%}body{margin:0}button,input,select,textarea{font:inherit}.error-boundary{text-align:center;min-height:60vh;color:var(--dark-gray);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.error-boundary h2{margin:0;font-size:1.2rem}.error-boundary__message{color:var(--med-gray);margin:0;font-size:.9rem}:root{--blue:#1f5fa6;--blue-hover:#1a4d8c;--light-blue:#d6e4f7;--dark-gray:#2c2c2a;--med-gray:#888780;--light-gray:#f1efe8;--border:#d3d1c7;--border-soft:#e5e3da;--green:#3b6d11;--light-green:#eaf3de;--amber:#854f0b;--light-amber:#faeeda;--red:#a32d2d;--light-red:#fcebeb;--teal:#0f6e56;--light-teal:#e1f5ee;--purple:#5c3f8a;--light-purple:#eee3f9;--white:#fff;--bg:#f5f4f0;--card-bg:#fff;--row-alt:#fafaf8;--radius-sm:4px;--radius:6px;--radius-md:8px;--radius-lg:10px;--shadow-sm:0 1px 2px #0000000a;--shadow:0 1px 4px #0000000f;--shadow-md:0 4px 12px #00000014}html{font-size:14px}*{box-sizing:border-box}body{background:var(--bg);color:var(--dark-gray);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;font-size:14px;line-height:1.5}a{color:var(--blue);text-decoration:none}a:hover{color:var(--blue-hover)}.eyebrow,.note-label{letter-spacing:.05em;text-transform:uppercase;color:var(--med-gray);margin-bottom:4px;font-size:11px;font-weight:700;display:inline-block}.muted-text{color:var(--med-gray)}.page-state{border-radius:var(--radius-md);color:var(--med-gray);background:var(--row-alt);padding:12px 14px;font-size:13px}.form-error{border-radius:var(--radius);color:var(--red);background:var(--light-red);border-left:3px solid var(--red);margin:8px 0;padding:8px 12px;font-size:13px}.form-error-inline{color:var(--red);margin-top:2px;font-size:12px}.credentials-panel{padding:8px 0}.credentials-header{justify-content:space-between;align-items:center;margin-bottom:6px;font-size:13px;font-weight:600;display:flex}.credentials-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.credential-item{background:var(--bg);border-radius:4px;align-items:center;gap:8px;padding:4px 6px;font-size:13px;display:flex}.credential-expired{background:var(--light-red);color:var(--red)}.credentials-form{margin-top:8px}.form-success{border-radius:var(--radius);color:var(--green);background:var(--light-green);border-left:3px solid var(--green);margin:8px 0;padding:8px 12px;font-size:13px}.hidden{display:none}.permission-note{border-radius:var(--radius);color:var(--med-gray);background:var(--row-alt);border-left:3px solid var(--border);margin:8px 0;padding:8px 12px;font-size:12px;line-height:1.5}.print-page{background:var(--white);min-height:100vh;padding:24px}.print-toolbar{gap:8px;margin-bottom:16px;display:flex}.print-doc{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:800px;color:var(--dark-gray);margin:0 auto;padding:32px}.print-header h1{margin:0 0 4px;font-size:22px}.print-subtitle{color:var(--med-gray);margin:0 0 24px;font-size:13px}.print-section{margin-bottom:24px}.print-section h2{border-bottom:1px solid var(--border);margin-bottom:10px;padding-bottom:6px;font-size:15px}.print-section h3{margin:10px 0 6px;font-size:13px}.print-dl{grid-template-columns:220px 1fr;gap:6px 16px;margin:0;font-size:13px;display:grid}.print-dl dt{color:var(--med-gray)}.print-dl dd{margin:0}.print-list{margin:0;padding-left:20px;font-size:13px}.print-table{border-collapse:collapse;width:100%;font-size:13px}.print-table th,.print-table td{border:1px solid var(--border);text-align:left;padding:6px 10px}.print-footer{color:var(--med-gray);text-align:center;margin-top:32px;font-size:11px}@media print{body{background:var(--white)}.sidebar,.topbar,.no-print{display:none!important}.shell{display:block}.content{padding:0!important}.print-doc{border:none;padding:0}}.shell{background:var(--bg);min-height:100vh;position:relative}.sidebar{background:var(--white);border-right:1px solid var(--border);z-index:50;will-change:transform;flex-direction:column;gap:16px;width:220px;height:100vh;padding:16px 0;transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;left:0;overflow-y:auto;transform:translate(0)}.shell.sidebar-collapsed .sidebar{box-shadow:none;transform:translate(-100%)}.sidebar-backdrop{z-index:40;cursor:pointer;pointer-events:none;opacity:0;background:#14121000;border:none;padding:0;transition:opacity .24s;position:fixed;inset:0}@media (width<=1024px){.shell:not(.sidebar-collapsed) .sidebar-backdrop{pointer-events:auto;opacity:1;background:#14121066}}.sidebar-toggle{border-radius:var(--radius);width:36px;height:36px;color:var(--dark-gray);cursor:pointer;z-index:200;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;transition:background-color .2s,border-color .2s,box-shadow .2s;display:inline-flex;position:fixed;top:14px;left:12px}.sidebar-toggle:hover{background:#0000000f}.shell.sidebar-collapsed .sidebar-toggle{background:var(--white);border-color:var(--border);box-shadow:var(--shadow)}.burger-icon{width:18px;height:14px;display:inline-block;position:relative}.burger-icon span{background:currentColor;border-radius:2px;width:100%;height:2px;transition:transform .26s cubic-bezier(.4,0,.2,1),opacity .2s,top .2s;position:absolute;left:0}.burger-icon span:first-child{top:0}.burger-icon span:nth-child(2){top:6px}.burger-icon span:nth-child(3){top:12px}.sidebar-toggle.is-open .burger-icon span:first-child{top:6px;transform:rotate(45deg)}.sidebar-toggle.is-open .burger-icon span:nth-child(2){opacity:0}.sidebar-toggle.is-open .burger-icon span:nth-child(3){top:6px;transform:rotate(-45deg)}.brand{align-items:center;gap:10px;min-height:36px;padding:0 16px 0 56px;display:flex}.login-brand{align-items:center;gap:14px;padding:0 16px;display:flex}.login-brand-logo-shell{background:linear-gradient(145deg, var(--blue) 0%, #184b82 100%);border-radius:14px;justify-content:center;align-items:center;padding:12px 18px;display:inline-flex;box-shadow:inset 0 1px #ffffff24}.login-brand-logo{object-fit:contain;width:176px;max-width:min(48vw,210px);height:auto;display:block}.brand-mark{border-radius:var(--radius);width:32px;height:32px;color:var(--white);background:var(--blue);justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.sidebar .brand-mark{display:none}.sidebar .brand{padding-left:56px}.sidebar .brand strong{font-size:13px;line-height:1.25}.sidebar .brand p{white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:10px;overflow:hidden}.brand p,.sidebar-note p,.hero-text,.task-list,.login-copy p,.login-help p{margin:0}.brand strong,.login-brand strong{color:var(--dark-gray);font-size:14px;font-weight:700;display:block}.brand p,.login-brand p{color:var(--med-gray);margin-top:2px;font-size:11px}.menu{flex-direction:column;gap:1px;padding:0;display:flex}.menu-item{color:var(--med-gray);border-left:2.5px solid #0000;align-items:center;gap:8px;padding:8px 16px;font-size:13px;text-decoration:none;transition:background-color .12s,color .12s;display:flex}.menu-item:hover{color:var(--dark-gray);background:var(--row-alt)}.menu-item.active{color:var(--blue);background:var(--light-blue);border-left-color:var(--blue);font-weight:600}.menu-item.disabled{opacity:.55;cursor:default}.menu-divider{letter-spacing:.1em;text-transform:uppercase;color:var(--med-gray);opacity:.7;padding:10px 16px 4px;font-size:10px;font-weight:700}.sidebar-note{border-top:1px solid var(--border);margin:auto 16px 0;padding:12px;font-size:12px}.sidebar-note p{color:var(--dark-gray);font-size:12px}.sidebar-note .muted-text{color:var(--med-gray);margin-top:4px;font-size:11px}.dev-role-switcher{background:#fff8d6;border:1px dashed #c79c00;border-radius:6px;margin-top:12px;padding:10px;position:relative}.dev-role-switcher__badge{color:#fff;letter-spacing:.5px;background:#c79c00;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700;position:absolute;top:-8px;right:8px}.dev-role-switcher__label{color:#6b4f00;margin-bottom:6px;font-size:11px;display:block}.dev-role-switcher__select{cursor:pointer;background:#fff;border:1px solid #c79c00;border-radius:4px;width:100%;padding:6px 8px;font-size:12px}.dev-role-switcher__select:disabled{opacity:.6;cursor:wait}.dev-role-switcher__error{color:#b00020;margin-top:6px;font-size:11px}.content,.login-shell{background:var(--bg)}.content{min-width:0;min-height:100vh;margin-left:220px;padding:20px 24px;transition:margin-left .28s cubic-bezier(.4,0,.2,1)}.shell.sidebar-collapsed .content{margin-left:0;padding-left:64px}.login-shell{background:radial-gradient(circle at 0 0,#1f5fa624,#0000 32%),radial-gradient(circle at 100% 100%,#0f6e561f,#0000 28%),linear-gradient(#f4f1e8 0%,#ece8de 100%);justify-content:center;align-items:center;min-height:100vh;padding:40px 24px;display:flex}.login-card,.hero-card,.panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card-bg);box-shadow:var(--shadow-sm)}.login-card{border:1px solid #d3d1c7e6;align-content:start;align-self:start;gap:14px;width:min(100%,440px);height:fit-content;padding:32px;display:grid;box-shadow:0 22px 48px #212b3614}.login-scene{grid-template-columns:minmax(0,1.35fr) minmax(360px,440px);align-items:stretch;gap:28px;width:min(1120px,100%);display:grid}.login-showcase{background:linear-gradient(145deg,#ffffffe0,#f7f5effa),linear-gradient(#1f5fa60d,#0f6e5608);border:1px solid #d3d1c7a6;border-radius:28px;gap:28px;padding:36px;display:grid;position:relative;overflow:hidden;box-shadow:0 22px 48px #212b3614}.login-copy{margin:0}.login-copy h1,.topbar h1,.hero-card h2,.panel h3{color:var(--dark-gray);margin:0}.login-copy h1{font-size:clamp(34px,4vw,52px);font-weight:700;line-height:1.05}.login-button-icon,.login-toggle-icon{color:var(--med-gray);flex:none}.login-field{gap:6px}.login-field span{letter-spacing:0;text-transform:none;color:#746e64;font-size:12px;font-weight:600}.login-input-control{border:1px solid var(--border);background:var(--white);border-radius:12px;align-items:center;gap:10px;min-height:46px;padding:0 12px;transition:border-color .12s,box-shadow .12s,background-color .12s;display:flex}.login-input-control:focus-within{border-color:var(--blue);background:var(--white);box-shadow:0 0 0 3px #1f5fa61f}.login-input-leading-icon{color:#8f8b81;flex:none;width:18px;height:18px}.login-field .login-input-control input{appearance:none;outline:none;width:100%;min-width:0;height:auto;font-size:15px;line-height:1.4;box-shadow:none!important;background:0 0!important;border:0!important;border-radius:0!important;padding:0!important}.login-field .login-input-control input:focus{outline:none;box-shadow:none!important;border:0!important}.login-password-toggle{color:#8f8b81;cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:background-color .12s,color .12s;display:inline-flex}.login-password-toggle:hover{color:var(--blue);background:#1f5fa614}.login-password-toggle:focus-visible{outline-offset:2px;outline:2px solid #1f5fa638}.login-toggle-icon{width:18px;height:18px}.login-button-icon{width:16px;height:16px}.login-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin:0 0 10px;font-size:12px;font-weight:700}.login-lead,.login-form-subtitle{color:#666158;margin:0;font-size:15px;line-height:1.55}.login-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.login-feature-card{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffc2;border:1px solid #d3d1c7cc;border-radius:18px;padding:18px 20px}.login-feature-card strong{color:var(--dark-gray);margin-bottom:6px;font-size:15px;display:block}.login-feature-card p,.login-visual-note p{color:#606764;margin:0;font-size:14px;line-height:1.55}.login-visual{background:linear-gradient(135deg,#1f5fa61f,#1f5fa60a);border-radius:22px;justify-content:space-between;align-items:center;gap:20px;padding:20px 22px;display:flex}.login-visual-image{object-fit:contain;filter:drop-shadow(0 16px 24px #1f5fa624);width:min(260px,42%);height:auto}.login-visual-note{gap:10px;max-width:320px;display:grid}.login-visual-badge{width:fit-content;color:var(--blue);letter-spacing:.08em;text-transform:uppercase;background:#1f5fa61f;border-radius:999px;justify-content:center;align-items:center;padding:6px 10px;font-size:11px;font-weight:700;display:inline-flex}.login-form-heading{gap:10px;margin-bottom:2px;display:grid}.login-form-heading h2{color:var(--dark-gray);margin:0;font-size:26px;line-height:1.15}.login-form-brand{margin-bottom:6px;display:none}.login-submit{background:var(--blue);width:auto;min-width:140px;min-height:40px;color:var(--white);border-color:var(--blue);border-radius:10px;justify-self:start;gap:8px;margin-top:4px;padding:0 18px;font-size:14px}.login-submit:hover{background:var(--blue-hover);border-color:var(--blue-hover)}.login-brand-logo-shell--compact{border-radius:12px;padding:12px 16px}.topbar,.panel-heading,.hero-card,.hero-stats,.panel-grid{display:flex}.topbar,.panel-heading{justify-content:space-between;align-items:center}.topbar{gap:12px;margin-bottom:16px}.topbar h1{font-size:20px;font-weight:700;line-height:1.2}.panel-heading{margin-bottom:12px}.panel-heading--inner{margin-bottom:12px;padding-top:0}.panel-heading h3{font-size:14px;font-weight:600}.hero-card{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;padding:16px 18px}.history-timeline{flex-direction:column;gap:0;display:flex}.history-item{border-bottom:1px solid var(--border);gap:12px;padding:8px 0;display:flex}.history-item:last-child{border-bottom:none}.history-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:5px}.history-body{flex:1;min-width:0}.history-header{justify-content:space-between;gap:8px;margin-bottom:2px;display:flex}.history-contour{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.history-date{color:var(--muted);white-space:nowrap;font-size:12px}.history-transition{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:2px;display:flex}.history-from{color:var(--muted);font-size:12px;text-decoration:line-through}.history-arrow{color:var(--muted)}.history-to{font-size:13px;font-weight:600}.history-meta{color:var(--muted);font-size:12px}.history-tag{background:var(--bg);border:1px solid var(--border);border-radius:3px;padding:0 5px;font-size:11px;display:inline-block}.history-comment{font-style:italic}.invoice-scan-block{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);margin:12px 0 4px;padding:12px 14px}.invoice-scan-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.invoice-scan-header strong{font-size:13px}.scan-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.scan-list-item{align-items:center;gap:10px;font-size:12px;display:flex}.table-scroll{overflow-x:auto}.chronology-table{border-collapse:collapse;width:100%;font-size:12px}.chronology-table th,.chronology-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:6px 10px}.chronology-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--bg);font-size:11px;font-weight:700}.chronology-table tbody tr:hover{background:var(--row-alt)}.chronology-delta-late{color:var(--red);font-weight:600}.chronology-delta-early{color:var(--green);font-weight:600}.chronology-delta-ok{color:var(--muted)}.hero-card.compact{margin-bottom:12px;padding:14px 16px}.hero-card h2{font-size:15px;font-weight:600}.hero-text{max-width:720px;color:var(--med-gray);margin-top:6px;font-size:13px;line-height:1.5}.hero-stats{flex-wrap:wrap;gap:10px}.stat-card{border-radius:var(--radius-md);background:var(--row-alt);border:1px solid var(--border);min-width:130px;padding:12px 14px}.stat-value{color:var(--dark-gray);font-size:22px;font-weight:700;line-height:1.1;display:block}.stat-label{color:var(--med-gray);margin-top:4px;font-size:11px;display:block}.panel-grid{align-items:start;gap:16px}.panel{margin-bottom:16px;padding:16px 18px}.assign-manager-panel{border-left:3px solid var(--blue)}.link-button{flex-shrink:0}.dashboard-grid{grid-template-columns:1fr 1.4fr;align-items:start;gap:16px;display:grid}@media (width<=1024px){.dashboard-grid{grid-template-columns:1fr}}.status-breakdown{gap:6px;margin-top:10px;display:grid}.status-row{justify-content:space-between;align-items:center;gap:12px;padding:4px 0;font-size:13px;display:flex}.status-count{color:var(--dark-gray);text-align:right;min-width:28px;font-size:14px;font-weight:700}.upcoming-task-list{gap:6px;margin-top:10px;display:grid}.upcoming-task{border:1px solid var(--border);border-radius:var(--radius);background:var(--row-alt);justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.upcoming-task-info{flex-direction:column;gap:2px;min-width:0;display:flex}.upcoming-task-title{color:var(--blue);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.upcoming-task-case{color:var(--med-gray);font-size:11px}.upcoming-task-deadline{color:var(--green);flex-shrink:0;font-size:12px;font-weight:600}.upcoming-task-deadline.overdue{color:var(--red)}.stat-card-alert{background:var(--light-red);border-color:#e8b0b0}.stat-card-alert .stat-value{color:var(--red)}.stat-value-ok{color:var(--green)}.stat-value-warn{color:var(--amber)}.stat-value-info{color:var(--blue)}.hero-stats-section{margin-bottom:16px}.nav-badge{background:var(--red);min-width:18px;height:18px;color:var(--white);border-radius:999px;justify-content:center;align-items:center;margin-left:auto;padding:0 5px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.overdue-alert-card{background:var(--light-red);border-color:#e8b0b0}.overdue-alert-card h2{color:var(--red)}.task-card-overdue{border-color:#e8b0b0}.overdue-deadline{color:var(--red);font-weight:600}.logout-button,.ghost-button,.primary-button,.inline-button{cursor:pointer;border:1px solid var(--border);font:inherit;transition:background-color .12s,color .12s,border-color .12s}.logout-button{border-radius:var(--radius);width:100%;color:var(--dark-gray);background:var(--white);margin-top:12px;padding:7px 12px;font-size:12px;font-weight:500}.logout-button:hover{background:var(--row-alt)}.field{gap:4px;display:grid}.field-span-2{grid-column:span 2}.field span{color:var(--med-gray);letter-spacing:.03em;text-transform:uppercase;font-size:11px;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--white);width:100%;height:32px;color:var(--dark-gray);font:inherit;padding:0 10px;font-size:13px}.field textarea{resize:vertical;height:auto;padding:8px 10px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);outline:2px solid #1f5fa62e}.field input::placeholder,.field textarea::placeholder{color:#bbb;font-style:italic}.primary-button{border-radius:var(--radius);color:var(--blue);background:var(--light-blue);border-color:#a8c8ef;justify-content:center;align-items:center;width:auto;padding:7px 14px;font-size:12px;font-weight:600;display:inline-flex}.primary-button:hover{background:#c4d8f3}.primary-button:disabled{cursor:wait;opacity:.6}.ghost-button,.inline-button{border-radius:var(--radius);color:var(--dark-gray);background:var(--white);justify-content:center;align-items:center;padding:7px 14px;font-size:12px;font-weight:500;display:inline-flex}.ghost-button:hover,.inline-button:hover{background:var(--row-alt)}.danger-button{color:var(--red);background:var(--light-red);border-color:#e8b0b0}.danger-button:hover{background:#f9dada}.stack-form{gap:12px;display:grid}.stack-form--narrow{max-width:560px}.filters-grid,.detail-grid{gap:10px;display:grid}.filters-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.filters-grid+.filters-grid{margin-top:10px}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.form-actions-row{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:6px;display:flex}.field-fullwidth{grid-column:1/-1}.checkbox-field{align-items:center;gap:8px;padding:6px 0;font-size:13px;display:flex}.checkbox-field input{width:16px;height:16px}.checkbox-field span{color:var(--dark-gray);font-weight:500}.form-actions{justify-content:flex-end;margin-top:10px;display:flex}.slim-button{width:auto;min-width:auto;margin-top:0;padding:6px 12px;font-size:12px}.tab-row{border-bottom:1px solid var(--border);gap:4px;margin-bottom:12px;display:flex}.tab-button{color:var(--med-gray);cursor:pointer;font:inherit;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-size:13px;font-weight:500;transition:color .12s,border-color .12s}.tab-button:hover{color:var(--dark-gray)}.tab-button.active{color:var(--blue);border-bottom-color:var(--blue)}.org-fieldset{border:1px solid var(--border);border-radius:var(--radius);gap:4px;padding:10px 12px;display:grid}.field-legend{color:var(--med-gray);text-transform:uppercase;letter-spacing:.03em;padding:0 4px;font-size:11px;font-weight:700}.password-row{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.inline-input{border:1px solid var(--border);border-radius:var(--radius);background:var(--white);min-width:140px;height:32px;font:inherit;color:var(--dark-gray);flex:1;padding:0 10px;font-size:13px}.field-row{flex-wrap:wrap;gap:12px;margin-bottom:12px;display:flex}.field-row .field{flex:1;min-width:180px;margin-bottom:0}.field-row-top{align-items:flex-start}.field-wide,.field-row .field-wide{flex:2}.split-number-input{flex-wrap:nowrap;align-items:center;gap:0;display:flex}.split-number-group{flex:1;align-items:center;min-width:0;display:flex}.split-number-input .split-part{border:1px solid var(--border);box-sizing:border-box;background:#fff;border-radius:4px;width:100%;min-width:0;height:32px;padding:0 8px;font-family:monospace;font-size:14px}.split-number-input .split-part:focus{border-color:var(--blue);outline:2px solid #1f5fa62e}.split-sep{color:var(--med-gray);-webkit-user-select:none;user-select:none;flex-shrink:0;padding:0 4px;font-size:15px;font-weight:600}.input-with-action{align-items:center;gap:6px;display:flex}.input-with-action input{flex:1;min-width:0}.field-error{color:#d32f2f;margin-top:2px;font-size:11px}.field-hint{color:var(--dark-gray);font-size:11px;font-weight:400}.transitions-checkboxes{flex-wrap:wrap;gap:6px 16px;margin-top:4px;display:flex}.transitions-checkboxes .checkbox-field{min-width:200px}.filter-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.filter-input-md{width:240px}.filter-select-sm{width:180px}.code-block{background:var(--row-alt);border:1px solid var(--border);border-radius:var(--radius);color:var(--dark-gray);white-space:pre;margin:8px 0;padding:10px 14px;font-family:monospace;font-size:12px;display:block;overflow-x:auto}.panel-body{padding:16px 0}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--white);margin-top:10px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th,td{text-align:left;white-space:nowrap;vertical-align:middle;border-bottom:1px solid #eeecea;padding:7px 12px}th{color:var(--med-gray);text-transform:uppercase;letter-spacing:.03em;background:#f3f2ee;font-size:11px;font-weight:600}td{color:var(--dark-gray)}tbody tr:nth-child(2n) td{background:var(--row-alt)}tbody tr:hover td{background:#f3f1ed}tbody tr:last-child td{border-bottom:none}.case-link a,.case-link{color:var(--blue);font-weight:600}.pagination-row{align-items:center;gap:12px;padding:10px 0;display:flex}.pagination-info{color:var(--med-gray);font-size:12px}table th.num,table td.num{text-align:right;font-variant-numeric:tabular-nums}.page-size-control{color:var(--text-muted,#666);align-items:center;gap:.5rem;font-size:.85rem;display:flex}.page-size-control select{border:1px solid var(--border);background:#fff;border-radius:4px;padding:.25rem .5rem;font-size:.85rem}.status-pill{white-space:nowrap;background:var(--light-gray);color:var(--med-gray);border-radius:12px;align-items:center;gap:4px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-flex}.status-new,.status-received,.status-received_by_head,.status-assigned_for_primary_fill,.status-specialist_assigned,.status-sent_to_expert{color:var(--blue);background:var(--light-blue)}.status-in_progress,.status-materials_received,.status-awaiting_additional_materials,.status-inspection,.status-sent_to_legal,.status-sent_to_legal_review,.status-returned_for_legal_check,.status-returned_after_legal_review,.status-fee_agreed,.status-invoice_created,.status-invoice_signed,.status-invoice_sent,.status-invoice_confirmed,.status-awaiting_payment,.status-accepted_by_department,.status-primary_data_filled,.status-expert_work_started,.status-head_completeness_check,.status-revision_required,.status-not_approved,.status-partially_paid,.status-submitted{color:var(--amber);background:var(--light-amber)}.status-accepted_by_court,.status-approved,.status-sent_to_head_review,.status-sent_to_courier,.status-submitted_to_court,.status-closed_by_payment,.status-payment_received,.status-expertise_completed,.status-sent_to_court,.status-returned_without_expertise,.status-done,.status-paid{color:var(--green);background:var(--light-green)}.status-archive_pending,.status-cancelled_no_case,.status-returned_to_court_incomplete,.status-payment_received_no_case,.status-cancelled,.status-sent_to_losses{color:var(--purple);background:var(--light-purple)}.status-overdue,.status-red{color:var(--red);background:var(--light-red)}.status-green,.status-invoice-scan{color:var(--green);background:var(--light-green)}.status-blue{color:var(--blue);background:var(--light-blue)}.detail-field{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--row-alt);padding:10px 12px}.detail-field span{letter-spacing:.04em;text-transform:uppercase;color:var(--med-gray);margin-bottom:4px;font-size:10px;font-weight:700;display:block}.detail-field strong{color:var(--dark-gray);font-size:14px;font-weight:600}.finance-summary-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:12px;display:grid}.finance-transition-form{margin-top:12px}.task-list{color:var(--dark-gray);padding-left:18px;font-size:13px;line-height:1.6}.task-card-list{gap:8px;display:grid}.task-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--row-alt);padding:12px}.task-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.task-card-title{color:var(--dark-gray);margin:0;font-size:13px;font-weight:600}.task-card-text{color:var(--dark-gray);margin:6px 0;font-size:12px}.task-card-meta{color:var(--med-gray);margin:4px 0 0;font-size:11px}.task-action-row,.inline-action-row,.task-form-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.event-list{gap:6px;display:grid}.event-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--row-alt);padding:10px 12px}.event-card-header{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.event-time{color:var(--med-gray);white-space:nowrap;font-size:11px}.participant-grid{grid-template-columns:1.2fr .8fr;gap:14px;display:grid}.participant-list{gap:8px;display:grid}.participant-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--row-alt);padding:10px 12px}.participant-card p{color:var(--dark-gray);margin:4px 0 0;font-size:12px}.participant-card-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.participant-form{align-content:start;gap:10px;display:grid}.expertise-transition-grid{margin-top:10px}.file-upload-label{cursor:pointer;border-radius:var(--radius);border:1px solid var(--border);background:var(--white);color:var(--dark-gray);align-items:center;padding:7px 14px;font-size:12px;font-weight:500;display:inline-flex}.file-upload-label:hover{background:var(--row-alt)}.field-overdue input{border-color:var(--red);background:var(--light-red)}.field-overdue span{color:var(--red)}.file-upload-label input[type=file]{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.modal-overlay{z-index:1000;background:#1412108c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-window{background:var(--white);border-radius:var(--radius-lg);flex-direction:column;width:min(900px,95vw);max-height:90vh;display:flex;overflow:hidden;box-shadow:0 14px 40px #00000040}.modal-header,.modal-footer{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.modal-header h3{margin:0;font-size:14px}.modal-footer{border-bottom:none;border-top:1px solid var(--border)}.modal-body{background:var(--bg);flex:1;justify-content:center;align-items:center;padding:12px;display:flex;overflow:auto}.modal-preview-image{object-fit:contain;max-width:100%;max-height:70vh}.modal-preview-iframe{background:var(--white);border:none;width:100%;height:70vh}button.link-button{color:var(--blue);cursor:pointer;font:inherit;text-align:left;background:0 0;border:none;padding:0}button.link-button:hover{color:var(--blue-hover);text-decoration:underline}.expense-group{margin-bottom:1.2rem}.expense-group-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;margin-bottom:.4rem;padding-bottom:.3rem;display:flex}.expense-group-header h4{color:var(--text);margin:0;font-size:.95rem}.expense-group-total{color:var(--blue);font-weight:600}.expense-badges{flex-wrap:wrap;gap:.4rem;margin-top:.3rem;display:flex}.expense-badges a.status-pill{text-decoration:none}.judge-characteristics{background:var(--bg);border-radius:4px;flex-direction:column;gap:.3rem;margin-top:.4rem;padding:.5rem .6rem;display:flex}.judge-characteristics .status-pill{align-self:flex-start}.judge-characteristics .task-card-text{margin:0;font-size:.85rem}@media (width<=1024px){.sidebar{box-shadow:0 0 24px #0000001f}.content{margin-left:0;padding-left:64px}.shell:not(.sidebar-collapsed) .content{margin-left:0}.hero-card,.topbar,.panel-heading,.task-card-header,.inline-action-row,.task-form-actions,.event-card-header{flex-wrap:wrap}.hero-card{flex-direction:column}.participant-grid{grid-template-columns:1fr}.field-span-2{grid-column:span 1}.login-shell{padding:24px 16px}.login-scene{grid-template-columns:1fr;gap:20px;max-width:520px}.login-showcase{display:none}.login-feature-grid{grid-template-columns:1fr}.login-visual{flex-direction:column;align-items:flex-start}.login-visual-image{width:min(220px,100%)}.login-card{width:100%}.login-form-brand{display:block}}@media (width<=640px){.detail-grid,.filters-grid,.finance-summary-grid{grid-template-columns:1fr}.stat-card{min-width:100px}.login-card{border-radius:22px;padding:22px}.login-form-heading h2{font-size:24px}.login-brand-logo-shell{width:100%;padding:14px 18px}.login-brand-logo{width:min(220px,100%);max-width:100%}.login-copy h1{font-size:30px}.login-lead,.login-form-subtitle{font-size:14px}.login-submit{min-height:40px}}.toast-container{z-index:9000;pointer-events:none;flex-direction:column;gap:10px;max-width:360px;display:flex;position:fixed;bottom:24px;right:24px}.toast-item{background:var(--white);border-radius:var(--radius-md);border-left:4px solid var(--blue);pointer-events:all;align-items:flex-start;gap:10px;padding:12px 14px;animation:.2s toast-slide-in;display:flex;box-shadow:0 4px 16px #00000024}.toast-item.toast-success{border-left-color:var(--green)}.toast-item.toast-error{border-left-color:var(--red)}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toast-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.toast-title{color:var(--dark-gray);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.toast-message{color:var(--med-gray);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.toast-close{cursor:pointer;color:var(--med-gray);background:0 0;border:none;flex-shrink:0;margin-top:2px;padding:0;font-size:.8rem;line-height:1}.toast-close:hover{color:var(--dark-gray)}.chat-page{background:var(--bg);height:calc(100vh - 48px);display:flex;overflow:hidden}.chat-page ::-webkit-scrollbar{width:8px;height:8px}.chat-page ::-webkit-scrollbar-thumb{background:#0000002e;border-radius:4px}.chat-page ::-webkit-scrollbar-thumb:hover{background:#0000004d}.chat-page ::-webkit-scrollbar-track{background:0 0}.chat-room-list{background:var(--white);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;min-width:180px;max-width:520px;display:flex;overflow:hidden}.chat-room-list-header{background:var(--white);z-index:2;flex-direction:column;gap:10px;padding:14px 14px 10px;display:flex;position:sticky;top:0}.chat-room-list-title{color:var(--dark-gray);letter-spacing:.01em;margin:0;font-size:1rem;font-weight:700}.chat-search{background:var(--bg);width:100%;color:var(--dark-gray);box-sizing:border-box;border:1px solid #0000;border-radius:18px;padding:8px 14px;font-size:.85rem;transition:background .14s,border-color .14s}.chat-search:focus{border-color:var(--blue);background:var(--white);outline:none}.chat-room-list-scroll{flex:1;overflow-y:auto}.chat-room-item{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:12px;width:calc(100% - 12px);margin:1px 6px;padding:9px 12px;transition:background .14s,color .14s;display:flex}.chat-room-item:hover{background:var(--light-gray)}.chat-room-item.active{background:var(--blue);color:var(--white)}.chat-room-item.active .chat-room-name,.chat-room-item.active .chat-room-last,.chat-room-item.active .chat-room-time{color:var(--white)}.chat-room-item.active .chat-room-last{opacity:.85}.chat-room-item.active .chat-unread-badge{background:var(--white);color:var(--blue)}.chat-avatar{width:44px;height:44px;color:var(--white);letter-spacing:.02em;background:linear-gradient(135deg,#4a8fd6 0%,#1f5fa6 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:600;display:flex}.chat-avatar.chat-avatar-sm{width:32px;height:32px;font-size:.72rem}.chat-avatar.case{background:linear-gradient(135deg,#4ec9b0 0%,#168f78 100%)}.chat-avatar.group{background:linear-gradient(135deg,#b06bd8 0%,#6f3aa0 100%)}.chat-room-meta{flex:1;min-width:0}.chat-room-name{color:var(--dark-gray);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:600;overflow:hidden}.chat-room-last{color:var(--med-gray);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:.82rem;overflow:hidden}.chat-room-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.chat-room-time{color:var(--med-gray);font-size:.75rem}.chat-unread-badge{background:var(--blue);color:var(--white);border-radius:12px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.75rem;font-weight:600;display:flex}.chat-new-room-btn{background:var(--blue);width:calc(100% - 24px);color:var(--white);border-radius:var(--radius);cursor:pointer;border:none;margin:10px 12px;padding:7px 12px;font-size:.85rem;transition:background .14s}.chat-new-room-btn:hover{background:var(--blue-hover)}.chat-empty-list{text-align:center;color:var(--med-gray);padding:32px 16px;font-size:.85rem}.chat-resize-handle{background:var(--border);cursor:col-resize;flex-shrink:0;width:4px;transition:background .14s;position:relative}.chat-resize-handle:hover,.chat-resize-handle.dragging{background:var(--blue)}.chat-resize-handle:after{content:"";position:absolute;inset:0 -4px}.chat-thread{background:radial-gradient(circle at 20% 10%, #1f5fa60a 0%, transparent 40%), radial-gradient(circle at 80% 90%, #4ec9b00a 0%, transparent 40%), var(--bg);flex-direction:column;flex:1;display:flex;overflow:hidden}.chat-thread-placeholder{color:var(--med-gray);flex:1;justify-content:center;align-items:center;font-size:.9rem;display:flex}.chat-thread-header{background:var(--white);box-shadow:0 1px 0 var(--border-soft), 0 2px 8px #00000008;z-index:1;align-items:center;gap:10px;padding:10px 16px;display:flex}.chat-thread-name{color:var(--dark-gray);font-size:.9rem;font-weight:600}.chat-thread-sub{color:var(--med-gray);margin-top:1px;font-size:.78rem}.chat-goto-case{color:var(--blue);border:1px solid var(--blue);border-radius:var(--radius-sm);white-space:nowrap;margin-left:auto;padding:4px 8px;font-size:.8rem;text-decoration:none}.chat-goto-case:hover{background:var(--light-blue)}.chat-messages-scroll{flex-direction:column;flex:1;gap:0;padding:16px 24px;display:flex;overflow-y:auto}.chat-day-separator{z-index:1;pointer-events:none;justify-content:center;margin:14px 0 6px;display:flex;position:sticky;top:4px}.chat-day-separator>span{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);letter-spacing:.02em;background:#3c3c3c8c;border-radius:12px;padding:3px 12px;font-size:.75rem;font-weight:500}.chat-msg-row{align-items:flex-end;gap:8px;margin-top:2px;display:flex}.chat-msg-row.first{margin-top:10px}.chat-msg-row.first:first-child{margin-top:0}.chat-msg-row.own{flex-direction:row-reverse}.chat-msg-avatar-spacer{flex-shrink:0;width:32px;height:1px}.chat-msg-avatar{width:32px;height:32px;color:var(--white);letter-spacing:.02em;background:linear-gradient(135deg,#4a8fd6 0%,#1f5fa6 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.chat-bubble{word-break:break-word;border-radius:18px;max-width:70%;padding:8px 14px 7px;font-size:1.02rem;line-height:1.45;position:relative;box-shadow:0 1px 2px #0000000f}.chat-bubble.other{background:var(--white);color:var(--dark-gray);border:none}.chat-bubble.own{color:var(--dark-gray);background:#e3f1fb}.chat-bubble.other.last{border-bottom-left-radius:4px}.chat-bubble.own.last{border-bottom-right-radius:4px}.chat-bubble.other:not(.first){border-top-left-radius:6px}.chat-bubble.other:not(.last){border-bottom-left-radius:6px}.chat-bubble.own:not(.first){border-top-right-radius:6px}.chat-bubble.own:not(.last){border-bottom-right-radius:6px}.chat-bubble-sender{color:var(--blue);margin-bottom:2px;font-size:.85rem;font-weight:600}.chat-bubble-meta{-webkit-user-select:none;user-select:none;justify-content:flex-end;align-items:center;gap:3px;margin-top:2px;line-height:1;display:flex}.chat-bubble-time{opacity:.6;white-space:nowrap;font-size:.74rem}.chat-bubble.own .chat-bubble-time{color:var(--med-gray);opacity:.9}.chat-read-check{color:var(--blue);font-size:.78rem;line-height:1}.chat-bubble-text{display:inline}.chat-load-more{text-align:center;margin-bottom:8px}.chat-load-more-btn{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);color:var(--blue);cursor:pointer;padding:4px 14px;font-size:.8rem}.chat-load-more-btn:hover{background:var(--light-blue)}.chat-typing-indicator{color:var(--med-gray);padding:2px 8px;font-size:.78rem;font-style:italic}.chat-file-error{color:#c0392b;background:#fff0f0;border:1px solid #f5c6c6;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;margin:0 16px 6px;padding:8px 12px;font-size:.82rem;line-height:1.4;display:flex}.chat-file-error-close{cursor:pointer;color:#c0392b;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:.9rem;line-height:1}.chat-input-row{background:var(--bg);z-index:2;align-items:flex-end;gap:8px;padding:10px 16px 14px;display:flex;position:relative}.chat-input-wrap{background:var(--white);border-radius:22px;flex:1;transition:box-shadow .14s;position:relative;overflow:hidden;box-shadow:0 1px 3px #00000014}.chat-input-wrap:focus-within{box-shadow:0 2px 6px #1f5fa62e,0 0 0 1px #1f5fa640}.chat-input,.chat-input-mirror{box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;border:0;min-height:42px;max-height:160px;margin:0;padding:11px 16px;font-family:inherit;font-size:.98rem;line-height:1.45}.chat-input{color:#0000;width:100%;caret-color:var(--dark-gray);resize:none;z-index:1;background:0 0;display:block;position:relative;overflow-y:auto}.chat-input:focus{outline:none}.chat-input::selection{color:#0000;background:#1f5fa64d}.chat-input::selection{color:#0000;background:#1f5fa64d}.chat-input-mirror{pointer-events:none;color:var(--dark-gray);z-index:0;position:absolute;inset:0;overflow:hidden}.chat-input-placeholder{color:var(--med-gray)}.chat-input-eof{width:0;display:inline-block}.chat-send-btn{color:var(--white);cursor:pointer;background:linear-gradient(135deg,#2a72bf 0%,#1f5fa6 100%);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-self:flex-end;align-items:center;width:40px;height:40px;transition:transform .14s,box-shadow .14s,opacity .14s;display:flex;box-shadow:0 2px 6px #1f5fa64d}.chat-send-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 3px 10px #1f5fa66b}.chat-send-btn:active:not(:disabled){transform:scale(.94)}.chat-send-btn:disabled{opacity:.45;cursor:default;box-shadow:none}.chat-send-icon{width:20px;height:20px;display:block;transform:translate(1px)}.chat-ctx-menu{z-index:8000;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);min-width:160px;padding:4px 0;animation:.1s ctx-fade-in;position:fixed}@keyframes ctx-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.chat-ctx-item{text-align:left;width:100%;color:var(--dark-gray);cursor:pointer;background:0 0;border:none;padding:8px 14px;font-size:.875rem;transition:background .12s;display:block}.chat-ctx-item:hover{background:var(--light-gray)}.chat-ctx-item-danger{color:var(--red)}.chat-ctx-item-danger:hover{background:var(--light-red)}.chat-edit-form{flex-direction:column;gap:6px;display:flex}.chat-edit-input{border-radius:var(--radius);width:100%;min-width:200px;color:inherit;resize:none;box-sizing:border-box;background:#ffffff26;border:1px solid #fff6;min-height:56px;padding:6px 8px;font-size:.875rem;line-height:1.4}.chat-bubble.other .chat-edit-input{border-color:var(--border);background:var(--bg);color:var(--dark-gray)}.chat-edit-input:focus{border-color:var(--blue);outline:none}.chat-edit-actions{gap:6px;display:flex}.chat-edit-save{background:var(--white);color:var(--blue);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #ffffff80;padding:3px 10px;font-size:.8rem}.chat-bubble.other .chat-edit-save{background:var(--blue);color:var(--white);border-color:var(--blue)}.chat-edit-save:hover{opacity:.85}.chat-edit-cancel{color:inherit;border-radius:var(--radius-sm);cursor:pointer;opacity:.7;background:0 0;border:1px solid #ffffff4d;padding:3px 10px;font-size:.8rem}.chat-edit-cancel:hover{opacity:1}.chat-edited-mark{opacity:.65;font-size:.75rem;font-style:italic}.chat-file-input{display:none}.chat-attach-btn{cursor:pointer;color:var(--med-gray);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-self:flex-end;align-items:center;width:38px;height:38px;padding:0;transition:color .14s,background .14s,transform .14s;display:flex}.chat-attach-btn:hover{color:var(--blue);background:var(--light-gray)}.chat-attach-btn:active{transform:scale(.92)}.chat-attach-icon{width:20px;height:20px;display:block;transform:rotate(0)}.chat-file-preview{background:var(--white);border-top:1px solid var(--border-soft);align-items:center;gap:10px;padding:8px 16px;display:flex}.chat-files-preview{background:var(--bg);z-index:2;flex-wrap:wrap;gap:8px;padding:10px 16px 4px;display:flex;position:relative}.chat-file-chip{background:var(--white);max-width:220px;color:var(--dark-gray);border-radius:12px;align-items:center;gap:6px;padding:6px 10px;font-size:.83rem;display:flex;position:relative;box-shadow:0 1px 3px #00000014}.chat-file-chip .chat-preview-img{object-fit:cover;border-radius:8px;max-width:80px;max-height:56px}.chat-file-chip .chat-preview-name{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.chat-file-chip .chat-preview-remove{color:#fff;cursor:pointer;background:#3c3c3cd9;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;margin:0;padding:0;font-size:.7rem;display:flex;position:absolute;top:-6px;right:-6px}.chat-file-chip.chat-file-add{box-shadow:none;border:1.5px dashed var(--border);color:var(--med-gray);cursor:pointer;background:0 0;justify-content:center;align-items:center;width:40px;height:40px;padding:0;font-size:1.2rem}.chat-file-chip.chat-file-add:hover{border-color:var(--blue);color:var(--blue)}.chat-drop-overlay{z-index:30;border:3px dashed var(--blue);pointer-events:none;background:#1f5fa61f;border-radius:12px;justify-content:center;align-items:center;margin:8px;display:flex;position:absolute;inset:0}.chat-drop-text{background:var(--white);color:var(--blue);box-shadow:var(--shadow-md);border-radius:14px;padding:14px 22px;font-size:1rem;font-weight:600}.chat-fmt-code{background:#00000014;border-radius:4px;padding:0 5px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85em}.chat-bubble.own .chat-fmt-code{background:#1f5fa61f}.chat-fmt-pre{white-space:pre-wrap;word-break:break-word;background:#00000014;border-radius:8px;margin:4px 0;padding:8px 10px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85em;overflow-x:auto}.chat-bubble.own .chat-fmt-pre{background:#1f5fa61f}.chat-fmt-spoiler{color:#0000;cursor:pointer;filter:blur();background:currentColor;border-radius:3px;padding:0 2px;transition:color .18s,background .18s;display:inline}.chat-fmt-spoiler.open{color:inherit;background:#0000000d}.chat-bubble.own .chat-fmt-spoiler.open{background:#1f5fa61a}.chat-fmt-link,.chat-bubble.own .chat-fmt-link{color:var(--blue);text-decoration:underline}.chat-preview-img{border-radius:var(--radius);object-fit:cover;max-width:120px;max-height:80px}.chat-preview-name{color:var(--dark-gray);font-size:.83rem}.chat-preview-remove{cursor:pointer;color:var(--med-gray);background:0 0;border:none;margin-left:auto;padding:0 4px;font-size:1rem}.chat-preview-remove:hover{color:var(--red)}.chat-file-attachment{margin-top:4px}.chat-file-img{border-radius:var(--radius);cursor:pointer;object-fit:cover;max-width:240px;max-height:200px;display:block}.chat-file-video{border-radius:var(--radius);max-width:280px;display:block}.chat-file-link{border-radius:var(--radius);color:inherit;background:#0000000f;align-items:center;gap:6px;max-width:260px;padding:6px 10px;font-size:.83rem;text-decoration:none;display:flex}.chat-bubble.own .chat-file-link{color:var(--dark-gray);background:#1f5fa61a}.chat-file-link:hover{background:#0000001a}.chat-file-icon{flex-shrink:0;font-size:1rem}.chat-file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.chat-file-size{opacity:.7;flex-shrink:0;font-size:.75rem}.chat-section-preview{flex-direction:column;gap:6px;display:flex}.chat-section-message{background:var(--bg);border-radius:var(--radius);color:var(--dark-gray);padding:6px 10px;font-size:.83rem}.chat-section-message .chat-section-sender{color:var(--blue);margin-right:4px;font-weight:600}.chat-section-message .chat-section-time{color:var(--med-gray);margin-left:4px;font-size:.75rem}.chat-section-link{color:var(--blue);align-self:flex-end;font-size:.83rem;text-decoration:none}.chat-section-link:hover{text-decoration:underline}.nav-badge{background:var(--red);min-width:18px;height:18px;color:var(--white);border-radius:10px;justify-content:center;align-items:center;margin-left:6px;padding:0 5px;font-size:.72rem;font-weight:600;display:inline-flex}.chat-user-picker-overlay{z-index:100;background:#14121066;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.chat-user-picker{background:var(--white);border-radius:var(--radius-md);width:360px;max-height:480px;box-shadow:var(--shadow-md);flex-direction:column;gap:12px;padding:20px;display:flex}.chat-user-picker h4{color:var(--dark-gray);margin:0;font-size:.95rem}.chat-user-picker-list{flex-direction:column;flex:1;gap:4px;display:flex;overflow-y:auto}.chat-user-picker-item{border-radius:var(--radius);cursor:pointer;text-align:left;width:100%;color:var(--dark-gray);background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;font-size:.875rem;transition:background .12s;display:flex}.chat-user-picker-item:hover{background:var(--light-gray)}.chat-user-picker-cancel{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;color:var(--med-gray);background:0 0;padding:7px;font-size:.85rem;transition:background .12s}.chat-user-picker-cancel:hover{background:var(--light-gray)}.chat-modal-overlay{z-index:8100;background:#1412106b;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.chat-modal{background:var(--white);border-radius:var(--radius-md);width:380px;max-width:calc(100vw - 32px);max-height:80vh;box-shadow:var(--shadow-md);flex-direction:column;gap:10px;padding:20px;display:flex}.chat-modal h4{color:var(--dark-gray);margin:0 0 4px;font-size:.95rem}.chat-modal-actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.chat-btn-primary{background:var(--blue);color:var(--white);border-radius:var(--radius);cursor:pointer;border:none;padding:7px 14px;font-size:.85rem;transition:background .14s}.chat-btn-primary:hover:not(:disabled){background:var(--blue-hover)}.chat-btn-primary:disabled{opacity:.5;cursor:default}.chat-btn-secondary{color:var(--med-gray);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:0 0;padding:7px 14px;font-size:.85rem}.chat-btn-secondary:hover{background:var(--light-gray)}.chat-btn-link{color:var(--blue);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:.83rem}.chat-btn-link:hover{text-decoration:underline}.chat-btn-link.danger{color:var(--red)}.chat-icon-btn{cursor:pointer;color:var(--med-gray);border-radius:var(--radius-sm);background:0 0;border:none;padding:6px 10px;font-size:1rem;transition:background .12s,color .12s}.chat-icon-btn:hover{background:var(--light-gray);color:var(--dark-gray)}.chat-field{flex-direction:column;gap:4px;display:flex}.chat-field-label{color:var(--med-gray);font-size:.78rem}.chat-input-text{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);width:100%;color:var(--dark-gray);box-sizing:border-box;resize:vertical;padding:7px 10px;font-size:.85rem}.chat-input-text:focus{border-color:var(--blue);background:var(--white);outline:none}.chat-input-text:disabled{opacity:.7;background:var(--light-gray)}.chat-new-room-wrap{position:relative}.chat-create-menu{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:50;position:absolute;top:calc(100% - 4px);left:12px;right:12px;overflow:hidden}.chat-create-menu-item{text-align:left;width:100%;color:var(--dark-gray);cursor:pointer;background:0 0;border:none;padding:9px 12px;font-size:.85rem;display:block}.chat-create-menu-item:hover{background:var(--light-gray)}.chat-avatar{position:relative}.chat-online-dot{background:var(--green,#4caf50);border:2px solid var(--white);box-sizing:border-box;border-radius:50%;width:11px;height:11px;position:absolute;bottom:0;right:0}.chat-avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.chat-avatar-lg{width:96px;height:96px;font-size:1.4rem}.chat-thread-header-main{text-align:left;cursor:pointer;border-radius:var(--radius);background:0 0;border:none;flex:1;align-items:center;gap:10px;padding:4px 6px;display:flex}.chat-thread-header-main:hover{background:var(--light-gray)}.chat-thread-meta{min-width:0}.chat-thread-header-actions{align-items:center;gap:4px;margin-left:auto;display:flex}.chat-pinned-bar{background:var(--white);border-bottom:1px solid var(--border-soft);border-left:3px solid var(--blue);cursor:pointer;text-align:left;width:100%;color:var(--dark-gray);align-items:center;gap:8px;padding:8px 16px;font-size:.83rem;display:flex}.chat-pinned-bar:hover{background:var(--light-blue)}.chat-pinned-icon{flex-shrink:0}.chat-pinned-label{color:var(--blue);margin-right:4px;font-weight:600}.chat-pinned-text{white-space:nowrap;text-overflow:ellipsis;color:var(--med-gray);flex:1;overflow:hidden}.chat-bubble-pinned{opacity:.7;margin-right:2px;font-size:.7rem}.chat-reply-quote{border-left:3px solid var(--blue);border-radius:var(--radius-sm);text-align:left;cursor:pointer;background:#1f5fa614;border-top:none;border-bottom:none;border-right:none;width:100%;margin-bottom:6px;padding:4px 8px;display:block}.chat-bubble.own .chat-reply-quote{border-left-color:var(--blue);background:#1f5fa61a}.chat-reply-name{color:var(--blue);font-size:.75rem;font-weight:600;display:block}.chat-bubble.own .chat-reply-name{color:var(--blue)}.chat-reply-text{color:var(--med-gray);white-space:nowrap;text-overflow:ellipsis;max-width:260px;font-size:.78rem;display:block;overflow:hidden}.chat-bubble.own .chat-reply-text{color:var(--med-gray)}.chat-reply-preview{background:var(--white);border-top:1px solid var(--border-soft);border-left:3px solid var(--blue);align-items:center;gap:8px;padding:6px 12px 6px 14px;display:flex}.chat-reply-preview-inner{flex:1;min-width:0}.chat-reply-preview-name{color:var(--blue);font-size:.78rem;font-weight:600}.chat-reply-preview-text{color:var(--med-gray);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.chat-forwarded-hint{opacity:.8;margin-bottom:4px;font-size:.72rem;font-style:italic}.chat-bubble.deleted{opacity:.7;font-style:italic}.chat-bubble-deleted{color:var(--med-gray)}.chat-bubble.own.deleted .chat-bubble-deleted{color:#fffc}.chat-bubble-wrap{align-items:inherit;flex-direction:column;max-width:68%;display:flex;position:relative}.chat-msg-row.own .chat-bubble-wrap{align-items:flex-end}.chat-msg-row:not(.own) .chat-bubble-wrap{align-items:flex-start}.chat-bubble-wrap .chat-bubble{max-width:100%}.chat-reactions{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.chat-reaction-chip{background:var(--white);border:1px solid var(--border);cursor:pointer;color:var(--dark-gray);border-radius:12px;align-items:center;gap:4px;padding:2px 8px;font-size:.78rem;transition:background .12s,border-color .12s;display:inline-flex}.chat-reaction-chip:hover{background:var(--light-gray)}.chat-reaction-chip.mine{background:var(--light-blue);border-color:var(--blue);color:var(--blue)}.chat-reaction-emoji{font-size:.9rem;line-height:1}.chat-reaction-count{font-weight:600}.chat-quick-react{background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow-md);z-index:5;border-radius:18px;gap:2px;padding:4px;animation:.12s ctx-fade-in;display:flex;position:absolute;top:-36px}.chat-bubble.own .chat-quick-react{right:8px}.chat-bubble.other .chat-quick-react{left:8px}.chat-quick-react-item,.chat-quick-react-more{cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:1.05rem;transition:transform .12s,background .12s;display:flex}.chat-quick-react-item:hover{background:var(--light-gray);transform:scale(1.25)}.chat-quick-react-more{color:var(--med-gray);font-size:1.1rem}.chat-quick-react-more:hover{background:var(--light-gray);color:var(--dark-gray)}.chat-msg-row.highlight .chat-bubble{animation:1.6s chat-highlight}@keyframes chat-highlight{0%,to{box-shadow:none}20%{box-shadow:0 0 0 3px #1f5fa659}}.chat-msg-row{animation:.14s chat-slide-up}@keyframes chat-slide-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.chat-forward-list{flex-direction:column;gap:2px;max-height:280px;margin:4px 0;display:flex;overflow-y:auto}.chat-forward-item{border-radius:var(--radius);cursor:pointer;color:var(--dark-gray);align-items:center;gap:10px;padding:7px 10px;font-size:.85rem;display:flex}.chat-forward-item:hover{background:var(--light-gray)}.chat-forward-item.selected{background:var(--light-blue)}.chat-forward-item input{margin:0}.chat-forward-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.chat-search-panel{background:var(--white);border-bottom:1px solid var(--border);flex-direction:column;gap:8px;max-height:40vh;padding:10px 12px;display:flex;overflow:hidden}.chat-search-row{align-items:center;gap:8px;display:flex}.chat-search-close{color:var(--med-gray);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:.95rem}.chat-search-results{flex-direction:column;gap:2px;display:flex;overflow-y:auto}.chat-search-result{text-align:left;border-radius:var(--radius-sm);cursor:pointer;color:var(--dark-gray);background:0 0;border:none;padding:6px 8px;font-size:.82rem}.chat-search-result:hover{background:var(--light-gray)}.chat-search-sender{color:var(--blue);font-size:.78rem;font-weight:600}.chat-search-snippet{color:var(--dark-gray);text-overflow:ellipsis;overflow:hidden}.chat-search-snippet mark{color:inherit;background:#ffe58a;border-radius:2px;padding:0 2px}.chat-search-time{color:var(--med-gray);font-size:.72rem}.chat-scroll-down{background:var(--white);border:1px solid var(--border);width:40px;height:40px;box-shadow:var(--shadow-md);color:var(--blue);cursor:pointer;z-index:10;border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;display:flex;position:absolute;bottom:88px;right:24px}.chat-scroll-down:hover{background:var(--light-blue)}.chat-thread{position:relative}.chat-group-info{background:var(--white);border-left:1px solid var(--border);z-index:20;flex-direction:column;width:320px;max-width:90vw;animation:.18s chat-slide-in-right;display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-4px 0 16px #0000000f}@keyframes chat-slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}.chat-group-info-header{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.chat-group-info-header h4{color:var(--dark-gray);margin:0;font-size:.95rem}.chat-group-avatar-block{flex-direction:column;align-items:center;gap:6px;padding:18px 12px 10px;display:flex}.chat-group-meta{border-bottom:1px solid var(--border-soft);flex-direction:column;gap:10px;padding:0 16px 12px;display:flex}.chat-members-section{flex:1;padding:12px 16px;overflow-y:auto}.chat-members-header{color:var(--med-gray);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.83rem;display:flex}.chat-members-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.chat-member-item{border-radius:var(--radius);align-items:center;gap:10px;padding:6px 4px;display:flex}.chat-member-item:hover{background:var(--light-gray)}.chat-member-meta{flex:1;min-width:0}.chat-member-name{color:var(--dark-gray);font-size:.85rem}.chat-member-role{color:var(--blue);font-size:.72rem;font-weight:600}.chat-member-actions{gap:4px;display:flex}.chat-leave-btn{text-align:left;margin:0 16px 16px}.scheduler-page{flex-direction:column;gap:16px;display:flex}.scheduler-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.scheduler-view-switch{background:var(--light-gray);border-radius:var(--radius);gap:2px;padding:4px;display:inline-flex}.scheduler-view-tab{border-radius:var(--radius-sm);color:var(--dark-gray);cursor:pointer;background:0 0;border:none;padding:6px 14px;font-size:14px}.scheduler-view-tab.is-active{background:var(--white);color:var(--blue);box-shadow:var(--shadow-sm);font-weight:600}.scheduler-filters{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.scheduler-filter-date input{min-width:150px}.scheduler-filter-types{border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:12px;margin:0;padding:6px 10px;display:flex}.scheduler-filter-types legend{color:var(--med-gray);padding:0 4px;font-size:12px}.scheduler-filter-types label{align-items:center;gap:4px;font-size:13px;display:inline-flex}.scheduler-overdue-banner{background:var(--light-red);border-left:4px solid var(--red);border-radius:var(--radius);margin-bottom:8px;padding:12px 16px}.scheduler-overdue-head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.scheduler-overdue-head h3{color:var(--red);margin:0;font-size:16px}.scheduler-overdue-count{background:var(--red);color:var(--white);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600}.scheduler-overdue-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;display:grid}.scheduler-item{background:var(--white);border:1px solid var(--border-soft);border-left:3px solid var(--blue);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;gap:4px;min-width:0;padding:8px 10px;display:flex;overflow:hidden}.scheduler-item--task{border-left-color:var(--blue)}.scheduler-item--delivery{border-left-color:var(--amber)}.scheduler-item--planned{border-left-color:var(--teal)}.scheduler-item--overdue{border-left-color:var(--red);background:var(--light-red)}.scheduler-item--done{opacity:.55}.scheduler-item--done .scheduler-item-title{text-decoration:line-through}.scheduler-item-head{color:var(--med-gray);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;font-size:11px;display:flex}.scheduler-item-kind{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-sm);background:var(--light-gray);color:var(--dark-gray);padding:2px 6px;font-size:11px;font-weight:600}.scheduler-item-kind--task{background:var(--light-blue);color:var(--blue)}.scheduler-item-kind--delivery{background:var(--light-amber);color:var(--amber)}.scheduler-item-kind--planned{background:var(--light-teal);color:var(--teal)}.scheduler-item-time{color:var(--med-gray);white-space:nowrap}.scheduler-item-status{background:var(--light-gray);color:var(--dark-gray);border-radius:999px;align-self:flex-start;padding:2px 8px;font-size:11px;font-weight:500}.scheduler-item-status--new{background:var(--light-blue);color:var(--blue)}.scheduler-item-status--in_progress{background:var(--light-amber);color:var(--amber)}.scheduler-item-status--done{background:var(--light-green);color:var(--green)}.scheduler-item-status--cancelled{background:var(--light-gray);color:var(--med-gray)}.scheduler-item-status--overdue{background:var(--light-red);color:var(--red)}.scheduler-item-title{color:var(--dark-gray);word-break:break-word;overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:500}.scheduler-item-meta{color:var(--med-gray);word-break:break-word;overflow-wrap:anywhere;margin:0;font-size:12px}.scheduler-item-meta a{color:var(--blue);text-decoration:none}.scheduler-item-meta a:hover{text-decoration:underline}.scheduler-item-actions{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.scheduler-item-actions .ghost-button{flex:0 auto;padding:3px 8px;font-size:11px}.scheduler-day-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;display:grid}.scheduler-week-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;display:grid}.scheduler-week-col{background:var(--row-alt);border-radius:var(--radius);flex-direction:column;min-width:0;min-height:180px;display:flex}.scheduler-week-col.is-today{background:var(--light-blue)}.scheduler-week-col-head{border-bottom:1px solid var(--border-soft);flex-direction:column;gap:2px;padding:8px 10px;display:flex}.scheduler-week-weekday{color:var(--med-gray);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.scheduler-week-date{font-size:14px;font-weight:600}.scheduler-week-col-body{flex-direction:column;flex:1;gap:6px;padding:6px;display:flex}.scheduler-week-empty{text-align:center;color:var(--med-gray);margin:0;padding:8px 0;font-size:12px}.scheduler-timeline{border:1px solid var(--border-soft);border-radius:var(--radius);overflow-x:auto}.scheduler-timeline-head,.scheduler-timeline-body{grid-template-columns:repeat(30,110px);display:grid}.scheduler-timeline-head{background:var(--light-gray);position:sticky;top:0}.scheduler-timeline-day-head{color:var(--dark-gray);border-right:1px solid var(--border-soft);text-align:center;padding:8px 10px;font-size:12px}.scheduler-timeline-day-head.is-today{background:var(--light-blue);color:var(--blue);font-weight:600}.scheduler-timeline-day{border-right:1px solid var(--border-soft);flex-direction:column;gap:4px;min-height:120px;padding:6px;display:flex}.scheduler-timeline-pill{border-radius:var(--radius-sm);background:var(--light-blue);color:var(--blue);text-overflow:ellipsis;white-space:nowrap;border-left:3px solid var(--blue);padding:4px 6px;font-size:11px;text-decoration:none;display:block;overflow:hidden}.scheduler-timeline-pill--task{background:var(--light-blue);color:var(--blue);border-left-color:var(--blue)}.scheduler-timeline-pill--delivery{background:var(--light-amber);color:var(--amber);border-left-color:var(--amber)}.scheduler-timeline-pill--planned{background:var(--light-teal);color:var(--teal);border-left-color:var(--teal)}.scheduler-timeline-pill.scheduler-item--overdue{background:var(--light-red);color:var(--red);border-left-color:var(--red)}.scheduler-list{flex-direction:column;gap:14px;display:flex}.scheduler-list-group{flex-direction:column;gap:8px;display:flex}.scheduler-list-date{color:var(--med-gray);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:13px}.scheduler-list-items{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;display:grid}
