:root{color-scheme:dark;--bg:#101119;--panel:#181b27;--panel2:#202433;--line:#303647;--text:#eef0f8;--muted:#a6adc2;--primary:#9674ff;--success:#71d4a5;--warning:#efc16e;--danger:#f6969e;--radius:12px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body.locked #workspace{visibility:hidden}button,input,select{font:inherit}button,a,input,select,summary{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:#c4b4ff;text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus,select:focus{outline:2px solid #b69bff;outline-offset:3px}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}h1{font-size:28px;line-height:1.2;margin-bottom:8px}h2{font-size:20px;line-height:1.3;margin-bottom:10px}h3{font-size:16px}small,.small{font-size:12px}.muted{color:var(--muted)}.mono{font:12px ui-monospace,monospace;overflow-wrap:anywhere}.app{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}.side{position:sticky;top:0;height:100vh;padding:28px 16px;background:#141620;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:28px}.brandMark{display:flex;align-items:center;gap:12px;color:var(--text);padding:0 8px}.brandMark:hover{text-decoration:none}.brandMark b{display:block;font-size:22px}.brandMark small{display:block;color:var(--muted);font-size:11px}.brandLogo{width:42px;height:42px;object-fit:cover;border-radius:10px}.navBtn{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;margin-bottom:6px;border:1px solid transparent;border-radius:9px;background:none;color:var(--muted);text-align:left;font-weight:600}.navBtn span{width:20px;font-size:18px}.navBtn:hover{background:#222635;color:var(--text)}.navBtn.active{color:#e4d9ff;background:#302644;border-color:#574472}.sideFoot{margin-top:auto;font-size:11px;color:#838da8;padding:0 8px}.main{min-width:0;padding:0 28px 32px}.topbar{height:82px;display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);margin-bottom:28px}.topbarRight,.topUser{display:flex;gap:14px;align-items:center}.topUser small{display:block;color:var(--muted)}.topUser b{font-size:12px}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#393052;color:#dfd1ff;font-size:11px;font-weight:700}.statusPill{color:var(--muted);font-size:12px;display:flex;align-items:center;gap:9px}.statusPill:before{content:"";width:7px;height:7px;border-radius:50%;background:#7d879d}.statusPill.online:before{background:var(--success)}.statusPill.offline:before{background:var(--danger)}.page{display:none;max-width:1600px;margin:0 auto}.page.active{display:block}.hero{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:24px}.hero p{color:var(--muted);margin:0;max-width:850px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.sectionTitle,.blockTitle{font-size:18px;margin-bottom:16px}.blockTitle{font-size:15px}.row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.spaceBetween{justify-content:space-between}.stack{display:grid;gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 14px;border:1px solid #3a4258;border-radius:8px;background:#282e40;color:var(--text);font-weight:600;font-size:13px;line-height:1.4;text-align:center;text-decoration:none}.btn:hover{background:#353c51;text-decoration:none}.btn.primary{background:#9c7bff;border-color:#9c7bff;color:#171223}.btn.primary:hover{background:#b094ff}.btn.ghost{background:transparent}.btn.info,.btn.secondary{background:#253948;border-color:#36566b;color:#b5e0f8}.btn.warn{background:#45392a;border-color:#6b5431;color:#f4cf91}.btn.danger{background:#472c34;border-color:#74424c;color:#ffc2c8}.btn.good,.btn.success{background:#263f37;border-color:#3f6659;color:#a1e2c7}.btn:disabled{opacity:.45;cursor:not-allowed}.textBtn{background:none;border:0;padding:0;color:#c7b8ff;text-align:left;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.iconBtn{border:0;background:transparent;color:var(--muted);font-size:26px;padding:0 8px}.field{margin-bottom:16px}.field label{display:block;font-size:12px;color:var(--muted);font-weight:600;margin-bottom:7px}input,select{width:100%;min-height:40px;padding:9px 11px;color:var(--text);background:#121620;border:1px solid #3b4357;border-radius:7px}input::placeholder{color:#818ba3}input:disabled,select:disabled{opacity:.65}input[type=file]{padding:9px;font-size:12px}input[type=file]::file-selector-button{border:1px solid #594778;background:#302641;color:#e2d4ff;border-radius:7px;padding:9px;margin-right:12px;font-weight:600}.grid{display:grid;gap:16px}.cards2{grid-template-columns:repeat(2,minmax(0,1fr))}.cards3{grid-template-columns:repeat(3,minmax(0,1fr))}.cards4{grid-template-columns:repeat(4,minmax(0,1fr))}.taskWorkspace{display:grid;grid-template-columns:340px minmax(0,1fr);gap:20px;align-items:start}.taskListPanel{padding:16px;position:sticky;top:20px}.filterRow{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:13px}.filterRow select{font-size:12px;padding:8px}.listSummary{font-size:11px;color:var(--muted);margin:0 0 12px}.taskList{max-height:calc(100vh - 385px);min-height:100px;overflow:auto;scrollbar-width:thin;display:grid;gap:8px}.taskRow{display:block;width:100%;border:1px solid transparent;border-radius:8px;padding:13px 12px;background:#202533;color:var(--text);text-align:left}.taskRow:hover{background:#293043}.taskRow.selected{border-color:#9270dd;background:#302940;box-shadow:inset 3px 0 #af8bff}.taskRowTop{display:flex;justify-content:space-between;align-items:center;gap:7px;margin-bottom:8px}.kindLabel{color:#b4a5d7;font-size:11px;font-weight:600}.taskRowTitle{display:block;font-size:13px;font-weight:650;overflow-wrap:anywhere;margin-bottom:5px}.taskRowMeta{display:block;font-size:11px;color:var(--muted);margin-top:3px}.tag,.badge{display:inline-flex;align-items:center;max-width:100%;font-size:11px;font-weight:600;line-height:1.3;padding:5px 8px;border-radius:6px;white-space:normal}.tag.ok,.badge.success{background:#243e34;color:#9bdfbd}.tag.warnTag,.badge.warning{background:#453c29;color:#f0ce8d}.tag.bad,.badge.danger{background:#492d38;color:#f9b0ba}.tag.infoTag,.badge.info{background:#283b4c;color:#adcee6}.listPagination{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:15px}.listPagination .btn{min-height:32px;padding:6px 9px;font-size:11px}.listPagination span{font-size:10px}.taskDetail{min-width:0;min-height:470px;padding:24px}.detailHeader{display:flex;justify-content:space-between;gap:18px;align-items:start;margin-bottom:18px}.detailHeader>div{min-width:0}.detailHeader h2{font-size:20px;overflow-wrap:anywhere;margin:6px 0}.detailHeader p{margin-bottom:0}.detailHeader>.tag{flex-shrink:0;max-width:150px}.taskRemark{border-left:3px solid #8973ae;padding:8px 12px;background:#242538;color:#d3d5e5;font-size:12px}.taskSettingsSummary{display:flex;flex-wrap:wrap;gap:6px 20px;color:var(--muted);font-size:12px;margin-bottom:18px}.taskOptions{padding:16px;background:#141823;border:1px solid #2c3447;border-radius:9px;margin-bottom:14px}.taskOptions .field{margin:0}.taskOptions .grid{gap:12px}.taskOptions label{font-size:11px}.taskOptions small{display:block;font-size:10px;margin-top:7px}.taskToolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:18px 0 24px;flex-wrap:wrap}.taskToolbar>.row{flex-wrap:wrap}.taskProgress{margin:20px 0 18px;font-size:12px}.progress{height:8px;overflow:hidden;border-radius:999px;background:#2b3141;margin-top:10px}.progress>span{display:block;height:100%;background:#aa88ff;transition:width .2s}.taskMetrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;border-bottom:1px solid var(--line);padding-bottom:20px}.taskMetrics>div span{display:block;color:var(--muted);font-size:11px}.taskMetrics strong{display:block;margin-top:3px;font-size:23px;font-weight:650}.taskFacts{margin-top:16px;padding:12px 0;border-top:1px solid var(--line)}summary{cursor:pointer;color:#c4bddb;font-size:12px;list-style-position:outside;margin-left:15px}.advancedFields{margin-top:16px}.taskFacts dl{display:grid;grid-template-columns:120px 1fr;gap:8px;font-size:12px;margin-bottom:0}.taskFacts dt{color:var(--muted)}.taskFacts dd{margin:0}.tableWrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:9px;scrollbar-width:thin}.table{width:100%;border-collapse:collapse;min-width:700px}.table th,.table td{padding:12px;text-align:left;vertical-align:top;border-bottom:1px solid #2b3243;font-size:12px}.table th{background:#202636;color:#b8c0d6;font-size:10px;letter-spacing:.04em;font-weight:650}.table tr:last-child td{border-bottom:0}.table td small{display:block;margin-top:5px}.table td .btn{font-size:11px;padding:7px 10px;min-height:32px}.table select{min-width:130px}.table.taskFiles{min-width:470px}.taskFiles th:first-child{width:40%}.fileName{font-weight:550;overflow-wrap:anywhere}.fileStage{display:block;max-width:320px;overflow-wrap:anywhere}.fileDownloads{display:flex;gap:7px;flex-wrap:wrap}.errorText,.errorText summary{color:var(--danger)}.emptyState{padding:36px 16px;text-align:center;color:var(--muted)}.emptyState h2{color:var(--text);margin-top:16px}.emptyIcon{display:block;font-size:34px;color:#b69bdd}.kpi{padding:18px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.kpi .k{font-size:11px;color:var(--muted)}.kpi .v{font-size:25px;line-height:1.3;font-weight:650;margin-top:8px;overflow-wrap:anywhere}.kpi .s{font-size:11px;color:var(--muted);margin-top:5px}.inlineInfo,.notice{padding:13px 15px;border:1px solid #354053;border-radius:8px;color:#bcc5d9;background:#1c2632;font-size:12px}.inlineInfo p:last-child{margin-bottom:0}.inlineInfo.error,.notice.error{background:#352632;border-color:#63404e;color:#f5bbc7}.notice{margin-bottom:18px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.tabBtn{padding:9px 14px;border:1px solid var(--line);border-radius:7px;color:var(--muted);background:#1b202d;font-size:12px}.tabBtn.active{background:#3a2d50;border-color:#695080;color:#e1d3ff}.analyticsView,.settingsView{display:none}.analyticsView.active,.settingsView.active{display:block}.chartGrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.barChart{display:grid;gap:12px}.barRow{display:grid;grid-template-columns:minmax(70px,145px) 1fr auto;gap:10px;font-size:11px;align-items:center}.barTrack{height:9px;background:#2b3345;border-radius:8px;overflow:hidden}.barFill{height:100%;background:#9a7acb}.barFill.good{background:#64b291}.barFill.warn{background:#c59a59}.analyticsDetail{display:none;margin-top:16px}.analyticsDetail.open{display:block}.analyticsDetailGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.logs{max-height:300px;overflow:auto}.log{font-size:12px;padding:10px 0;border-bottom:1px solid #303647}.log p{white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0 0}.uploadZone{padding:22px;border:1px dashed #76608c;border-radius:10px;background:#232031}.uploadZone label{display:block;font-weight:600;margin-bottom:12px}.uploadZone p:last-child{margin-bottom:0}.uploadZone.dropReady{background:#322940;border-color:#d2bbff}.dialog{width:min(600px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:28px;border:1px solid #4a435c;border-radius:14px;background:#1b1e2b;color:var(--text);box-shadow:0 24px 80px #0008}.dialog.compact{max-width:460px}.dialog::backdrop{background:#080b14b8;backdrop-filter:blur(3px)}.dialogHead{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:24px}.dialogHead p{font-size:12px;margin-bottom:0}.dialogActions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.dialog #newTaskError{margin-top:16px}.toast{position:fixed;right:24px;bottom:24px;max-width:min(480px,calc(100vw - 32px));padding:15px 20px;border:1px solid #53634f;border-radius:10px;background:#26382f;color:#d9f5e3;box-shadow:0 12px 50px #0008;z-index:100;font-size:13px}.toast.error{background:#412c37;border-color:#7b4f5d;color:#ffd1da}.modal{position:fixed;inset:0;z-index:80;background:#0c101ce8;display:none;align-items:center;justify-content:center;padding:20px}.modal.open{display:flex}.modalCard{width:min(760px,100%);border:1px solid var(--line);border-radius:16px;overflow:auto;max-height:calc(100dvh - 40px);background:var(--panel)}.authShell{display:grid;grid-template-columns:.8fr 1fr}.authBrand{background:#29233a;padding:40px 30px}.authBrand img{width:58px;height:58px;border-radius:10px;margin-bottom:25px}.authBrand h2{font-size:27px}.authBrand p{color:#b6aec9;font-size:13px}.authForm{padding:36px}.authForm .btn{width:100%}.authForm #authMsg{font-size:12px;color:var(--danger);margin:15px 0 0}.copyBox{padding:12px;border:1px solid var(--line);border-radius:8px;background:#121722;font-size:12px;overflow-wrap:anywhere}.copyLink{display:inline-block;max-width:330px;word-break:break-all;font:11px/1.6 ui-monospace,monospace}.dangerZone{padding:12px 0;border-top:1px solid #574044}.dangerZone p{margin-top:12px}.badge.neutral{color:var(--muted);background:#2a3040}
@media(min-width:1600px){.taskWorkspace{grid-template-columns:380px minmax(0,1fr)}}
@media(max-width:1250px){.app{grid-template-columns:190px minmax(0,1fr)}.main{padding:0 20px 28px}.side{padding:26px 10px}.taskWorkspace{grid-template-columns:290px minmax(0,1fr);gap:14px}.taskDetail{padding:18px}.cards4{grid-template-columns:repeat(2,minmax(0,1fr))}.taskOptions .cards3{grid-template-columns:1fr}.taskOptions .field{margin-bottom:10px}.taskOptions .field:last-child{margin-bottom:0}.taskRowTop{align-items:start;flex-wrap:wrap}}
@media(max-width:980px){.app{display:block}.side{position:static;height:auto;padding:14px 20px;border-right:0;border-bottom:1px solid var(--line);flex-direction:row;align-items:center;justify-content:space-between;gap:16px}.side nav{display:flex;gap:3px}.navBtn{width:auto;white-space:nowrap;margin:0;padding:9px 12px}.navBtn span{display:none}.sideFoot{display:none}.brandMark{padding:0}.brandMark b{font-size:19px}.brandMark small{display:none}.brandLogo{width:32px;height:32px}.topbar{height:68px;margin-bottom:20px}.taskListPanel{position:static}.taskWorkspace{grid-template-columns:280px minmax(0,1fr)}.taskList{max-height:65vh}.topUser .avatar{display:none}}
@media(max-width:760px){.side{flex-wrap:wrap;padding:12px 16px}.side nav{width:100%;justify-content:space-between}.navBtn{font-size:12px;padding:9px 10px}.main{padding:0 14px 24px}.topbar{gap:10px}.topUser b{max-width:160px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.statusPill{font-size:11px}.topbarRight{gap:9px}.topbar .btn{min-height:32px;padding:6px 10px;font-size:11px}.hero{gap:14px;flex-wrap:wrap;margin-bottom:18px}.hero h1{font-size:24px}.hero p{font-size:12px}.hero>.row{width:100%}.taskWorkspace{grid-template-columns:1fr}.taskList{max-height:280px;min-height:0}.taskDetail{padding:18px}.detailHeader{gap:10px;flex-wrap:wrap}.detailHeader h2{font-size:18px}.detailHeader>.tag{max-width:100%}.taskMetrics{gap:10px}.taskMetrics strong{font-size:21px}.taskToolbar .row{width:100%}.taskToolbar .btn{flex:1}.taskToolbar>a{width:100%}.table.taskFiles{min-width:460px}.cards2,.cards3,.cards4,.chartGrid,.analyticsDetailGrid{grid-template-columns:1fr}.grid.cards4#analyticsKpis{grid-template-columns:1fr 1fr}.taskFacts dl{grid-template-columns:90px 1fr}.dialog{padding:22px}.authShell{display:block}.authBrand{padding:22px;display:flex;align-items:center;gap:14px}.authBrand img{margin:0;width:40px;height:40px}.authBrand h2{margin:0}.authBrand p{display:none}.authForm{padding:26px}.toast{right:16px;bottom:16px}.barRow{grid-template-columns:minmax(65px,110px) 1fr auto}}

.priceHeading{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.priceHeading span{color:var(--muted);font-size:11px}.priceServices{display:grid;gap:5px;margin-top:9px;font-size:11px}.priceServices>div{display:flex;justify-content:space-between;gap:12px}

.employeeMode .app{display:block}.employeeMode .side{display:none!important}.employeeMode .main{max-width:1040px;margin:auto}.employeeMode .page:not(#page-employee){display:none!important}.employeeBalance{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.employeeBalance strong{display:block;font-size:32px;margin-top:8px}.employeeBalance p{margin:0}.employeeTasks{display:grid;gap:14px}.employeeFile{display:flex;justify-content:space-between;align-items:center;gap:20px}.employeeFile h2{font-size:17px;overflow-wrap:anywhere;margin:8px 0}.employeeFile .employeeAction{flex-shrink:0;max-width:260px}.employeeFile .employeeAction p{margin:8px 0 0}.employeeFile .small{line-height:1.5}.employeeFile .progress{margin-top:12px}.employeeFile .meta{margin-top:10px}.staffReportTable{min-width:740px}.employeeMode #serviceStatus{display:none}@media(max-width:760px){.employeeBalance{align-items:start;flex-direction:column;gap:10px}.employeeFile{align-items:stretch;flex-direction:column}.employeeFile .employeeAction{max-width:none}.employeeFile .btn{width:100%}}
