:root{color-scheme:light;--bg:#f4f6fb;--panel:rgba(255,255,255,.76);--ink:#263149;--muted:#7b8498;--line:rgba(130,143,169,.16);--nav:rgba(255,255,255,.8);--accent:#77c8ad;--blue:#86a8ff;--purple:#b59af4;--warn:#d4955b;--danger:#d86c7c;--mint:#bdebdc;--peach:#ffd4c4;--lemon:#f7e9a9;--sky:#cfe5ff;--shadow:0 18px 50px rgba(56,68,95,.09),0 3px 12px rgba(56,68,95,.05);font-family:Inter,"SF Pro Display","PingFang SC",system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.shell{min-height:100vh;display:grid;grid-template-columns:264px 1fr}.sidebar{background:var(--nav);color:#eee;padding:18px 14px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;gap:12px;align-items:center;padding:8px 10px 20px;font-weight:700}.brand-badge{width:36px;height:36px;border-radius:12px;background:#fff;color:#111;display:grid;place-items:center}.nav-group{margin:12px 0 18px}.nav-label{font-size:11px;color:#8e8e8e;padding:5px 11px;text-transform:uppercase;letter-spacing:.08em}.nav-link{display:flex;align-items:center;gap:9px;color:#d4d4d4;text-decoration:none;padding:9px 11px;border-radius:9px;font-size:14px;margin:2px 0}.nav-link:hover,.nav-link.active{background:#2b2b2b;color:#fff}.main{min-width:0}.topbar{height:66px;background:rgba(247,247,248,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:10}.content{max-width:1500px;margin:0 auto;padding:30px}.title h1{font-size:28px;margin:0 0 7px}.title p{margin:0;color:var(--muted)}.user{display:flex;align-items:center;gap:10px}.avatar{width:34px;height:34px;border-radius:50%;background:#e7e7e7;display:grid;place-items:center;font-weight:650}.btn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 13px;cursor:pointer;color:var(--ink)}.btn:hover{background:#f3f4f6}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.green{background:var(--accent);color:#fff;border-color:var(--accent)}.grid{display:grid;gap:16px}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin:24px 0}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px rgba(0,0,0,.025)}.metric{padding:18px}.metric strong{font-size:28px;display:block;margin-top:9px}.metric span{font-size:13px;color:var(--muted)}.toolbar{padding:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.toolbar input,.toolbar select{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 10px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.table th{background:#fafafa;color:#5d626b;text-align:left;font-weight:600;position:sticky;top:0}.table th,.table td{padding:12px 13px;border-bottom:1px solid var(--line);vertical-align:top}.table tr:last-child td{border-bottom:0}.table tr:hover td{background:#fcfcfc}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:12px;background:#eef2ff;color:#3949ab}.pill.design{background:#f3e8ff;color:#7e22ce}.pill.done{background:#dcfce7;color:#166534}.pill.warn{background:#ffedd5;color:#9a3412}.pill.gray{background:#f3f4f6;color:#4b5563}.split{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);gap:16px}.section{padding:18px}.section h2{font-size:16px;margin:0 0 14px}.empty{padding:50px;text-align:center;color:var(--muted)}.group{margin-bottom:18px}.group-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.requirement-card{padding:14px;margin:8px 0;cursor:pointer}.requirement-card:hover{border-color:#c9cbd1}.requirement-title{font-weight:650;margin-bottom:6px}.meta{font-size:12px;color:var(--muted);display:flex;gap:12px;flex-wrap:wrap}.calendar{overflow:auto;padding-bottom:4px}.calendar-grid{display:grid;min-width:960px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.cal-cell{min-height:70px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px;font-size:12px}.cal-head{min-height:auto;background:#fafafa;font-weight:600;color:#61656d}.cal-owner{background:#fafafa;font-weight:600;position:sticky;left:0;z-index:2}.task{border-radius:7px;padding:7px;margin:2px 0;background:#eaf0ff;color:#263c92;border-left:3px solid var(--blue);cursor:pointer}.task.design{background:#f4eaff;color:#6d28a8;border-color:var(--purple)}.task[draggable=true]{cursor:grab}.task[draggable=true]:active{cursor:grabbing}.drop-active{background:#e9fbf5}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.36);display:grid;place-items:center;padding:24px;z-index:50}.modal{width:min(720px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:22px}.modal h2{margin-top:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:12px;color:var(--muted);font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:9px;padding:10px;background:#fff}.field textarea{min-height:90px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.diff{display:grid;grid-template-columns:1fr 1fr;gap:12px}.diff>div{background:#f7f7f8;border-radius:10px;padding:12px}.toast{position:fixed;right:24px;bottom:24px;background:#202123;color:#fff;padding:12px 16px;border-radius:10px;z-index:80;box-shadow:var(--shadow)}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bar{height:8px;background:#eceef1;border-radius:999px;overflow:hidden}.bar i{display:block;height:100%;background:var(--accent)}.offline{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;padding:10px 14px;border-radius:10px;margin-bottom:16px}.mobile-menu{display:none}
@media(max-width:960px){.shell{grid-template-columns:1fr}.sidebar{display:none}.sidebar.open{display:block;position:fixed;inset:0 auto 0 0;width:280px;z-index:30}.mobile-menu{display:inline-flex}.content{padding:20px}.topbar{padding:0 18px}.metrics{grid-template-columns:repeat(2,1fr)}.split,.report-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}}

/* 轻盈看板主题：参考飞书看板的信息密度，以马卡龙色和磨砂层次区分状态。 */
body{background:radial-gradient(circle at 8% 0%,rgba(207,229,255,.72),transparent 29%),radial-gradient(circle at 92% 8%,rgba(255,212,196,.55),transparent 27%),linear-gradient(145deg,#f7f9fd,#f2f4f9 65%,#f7f3fa);color:var(--ink)}
.shell{grid-template-columns:250px 1fr}.sidebar{background:var(--nav);color:var(--ink);border-right:1px solid rgba(255,255,255,.72);box-shadow:8px 0 28px rgba(70,82,112,.05);backdrop-filter:blur(26px) saturate(130%)}
.brand{font-weight:750}.brand-badge{border-radius:13px;background:linear-gradient(145deg,#ffe899,#ffcfc4);color:#384052;box-shadow:0 8px 18px rgba(230,170,113,.22)}
.nav-label{color:#9aa2b2}.nav-link{color:#5e687c;border-radius:11px;transition:.18s ease}.nav-link:hover{background:rgba(232,236,246,.7);color:#364056;transform:translateX(2px)}.nav-link.active{background:linear-gradient(115deg,rgba(207,229,255,.9),rgba(232,220,255,.8));color:#3d4d75;box-shadow:inset 0 0 0 1px rgba(136,163,219,.14),0 7px 20px rgba(80,100,145,.08)}
.topbar{background:rgba(255,255,255,.53);backdrop-filter:blur(22px) saturate(140%);border-bottom:1px solid rgba(255,255,255,.85);box-shadow:0 5px 24px rgba(61,72,99,.04)}
.title h1{font-size:29px;letter-spacing:-.025em}.avatar{background:linear-gradient(145deg,var(--lemon),var(--peach));box-shadow:0 7px 16px rgba(193,154,114,.18)}
.btn{border-color:rgba(124,138,164,.16);background:rgba(255,255,255,.78);box-shadow:0 4px 12px rgba(55,70,99,.05);transition:.16s ease}.btn:hover{background:#fff;transform:translateY(-1px);box-shadow:0 8px 18px rgba(55,70,99,.09)}.btn:disabled{opacity:.55;cursor:wait}.btn.primary,.btn.primary-action{background:linear-gradient(135deg,#657fc2,#8298d4);color:#fff;border-color:transparent}.btn.green{background:linear-gradient(135deg,#67b99f,#7bc8ad);border-color:transparent}
.card,.glass{background:var(--panel);border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow);backdrop-filter:blur(22px) saturate(125%)}
.metric:nth-child(4n+1){background:linear-gradient(145deg,rgba(207,229,255,.78),rgba(255,255,255,.72))}.metric:nth-child(4n+2){background:linear-gradient(145deg,rgba(226,216,255,.74),rgba(255,255,255,.72))}.metric:nth-child(4n+3){background:linear-gradient(145deg,rgba(255,224,211,.73),rgba(255,255,255,.72))}.metric:nth-child(4n){background:linear-gradient(145deg,rgba(210,241,225,.76),rgba(255,255,255,.72))}
.pill{background:#eaf0ff;color:#4d64a6}.pill.design{background:#f0e8ff;color:#7654a9}.pill.done{background:#dff4e9;color:#35745f}.pill.warn{background:#fff0dd;color:#a86632}.pill.gray{background:#edf0f5;color:#687083}
.approval-toolbar{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;margin:20px 0 14px;border-radius:15px}.filter-chips{display:flex;gap:7px;flex-wrap:wrap}.chip{border:0;background:rgba(235,238,245,.72);color:#6a7488;border-radius:999px;padding:7px 12px;cursor:pointer}.chip.active{background:linear-gradient(135deg,#cfe5ff,#e2d8ff);color:#465b91;box-shadow:0 5px 14px rgba(84,107,158,.13)}
.approval-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.approval-card{position:relative;overflow:hidden;padding:18px 18px 15px;border-radius:17px;transition:.18s ease}.approval-card:hover{transform:translateY(-2px);box-shadow:0 22px 55px rgba(56,68,95,.13)}.approval-card.urgent{box-shadow:0 18px 48px rgba(205,126,104,.14)}.approval-accent{position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--sky)}.approval-accent.mint{background:linear-gradient(#a9e4d2,#7cccb1)}.approval-accent.purple{background:linear-gradient(#d4c3ff,#a991ec)}.approval-accent.coral{background:linear-gradient(#ffd0bf,#f0a78d)}.approval-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.approval-top h3{margin:6px 0 0;font-size:16px;line-height:1.42}.eyebrow{font-size:11px;color:#8b94a6;letter-spacing:.03em}.approval-card>p{color:#646e82;font-size:13px;line-height:1.6;min-height:42px}.approval-meta{display:flex;gap:8px 16px;flex-wrap:wrap;color:#8c94a4;font-size:12px;border-top:1px solid rgba(131,143,166,.11);padding-top:11px}.inline-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.btn.soft{background:rgba(239,241,247,.74);box-shadow:none}
.requirement-card{background:rgba(255,255,255,.68);border-color:rgba(255,255,255,.9);box-shadow:0 9px 25px rgba(60,72,100,.055)}.calendar-grid{border-color:rgba(126,139,166,.13);box-shadow:var(--shadow)}.cal-head,.cal-owner{background:rgba(247,248,251,.82)}.task{background:linear-gradient(135deg,#dce8ff,#ecf2ff);border-color:#7f9fe9;box-shadow:0 5px 12px rgba(81,105,163,.09)}.task.design{background:linear-gradient(135deg,#ede3ff,#f6efff);border-color:#ad91e7}
@media(max-width:1100px){.approval-grid{grid-template-columns:1fr}}@media(max-width:680px){.approval-toolbar{align-items:flex-start;gap:12px;flex-direction:column}.approval-meta{display:grid;grid-template-columns:1fr 1fr}.inline-actions{justify-content:stretch}.inline-actions .btn{flex:1}}

/* 超级发财系统：统一信息密度与 ChatGPT 风格基础层。 */
:root{
  --bg:#fff;--panel:#f7f7f8;--ink:#202123;--muted:#6f6f78;--line:#e7e7e9;
  --nav:#f9f9f9;--shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.055);
  font-family:Inter,"SF Pro Display","PingFang SC",system-ui,sans-serif;
}
html,body{background:#fff;color:var(--ink);font-size:14px;line-height:1.5;letter-spacing:0}
body{background-image:none}.shell{grid-template-columns:248px minmax(0,1fr)}
.sidebar{background:#f9f9f9;color:var(--ink);border-right:1px solid #ececee;box-shadow:none;backdrop-filter:none;padding:16px 12px}
.brand{padding:10px 10px 18px;font-size:14px;line-height:20px;letter-spacing:0;font-weight:700;white-space:nowrap}
.nav-group{margin:4px 0 10px}.nav-label{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;background:transparent;color:#85858b;padding:8px 10px;font-size:12px;line-height:18px;letter-spacing:0;cursor:pointer;text-align:left}
.chevron{font-size:12px;transition:transform .16s ease}.nav-group.collapsed .chevron{transform:rotate(-90deg)}.nav-group.collapsed .nav-items{display:none}
.nav-link{color:#4b4b52;padding:9px 10px;margin:2px 0;border-radius:9px;font-size:14px;line-height:20px;gap:10px;transform:none;white-space:nowrap}
.nav-link:hover{background:#ececee;color:#202123;transform:none}.nav-link.active{background:#e8e8ea;color:#202123;box-shadow:none}
.panel-icon{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:#e8f2ff;color:#5275ad;flex:0 0 22px}
.nav-group:nth-of-type(3) .panel-icon{background:#e8f7ef;color:#4e8e70}.nav-group:nth-of-type(4) .panel-icon{background:#fff0e7;color:#b66f48}.nav-group:nth-of-type(5) .panel-icon{background:#f1ebff;color:#7759aa}.nav-group:nth-of-type(6) .panel-icon{background:#fff7d9;color:#9e7c2f}.nav-group:nth-of-type(7) .panel-icon{background:#e9f5f6;color:#49868b}
.panel-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.topbar{height:60px;background:#fff;border-bottom:1px solid #ececee;box-shadow:none;backdrop-filter:none;padding:0 24px}.topbar-title{font-weight:650;font-size:14px;line-height:20px}.user{gap:8px;font-size:12px;color:var(--muted)}.avatar{width:30px;height:30px;background:#ececee;box-shadow:none;font-size:12px}
.content{max-width:1500px;padding:24px;margin:0 auto}.title{margin:0 0 18px}.title h1{display:none}.title p{font-size:14px;line-height:21px;color:var(--muted);margin:0}
.grid{gap:16px}.metrics{margin:0 0 20px;gap:14px}.card,.glass{background:#f7f7f8;border:1px solid #ededee;border-radius:14px;box-shadow:none;backdrop-filter:none}
.metric{min-height:104px;padding:17px;text-align:left;color:var(--ink);font-size:14px}.metric strong{font-size:24px;line-height:30px;margin-top:8px}.metric span{font-size:12px;line-height:18px;color:var(--muted)}
.metric:nth-child(4n+1){background:#e7f2ff}.metric:nth-child(4n+2){background:#f0eaff}.metric:nth-child(4n+3){background:#ffede5}.metric:nth-child(4n){background:#e7f7ef}
.metric-filter{font:inherit;border:0;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;white-space:nowrap}.metric-filter:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.metric-filter.active{outline:2px solid #202123;outline-offset:2px}
.approval-toolbar{background:#f7f7f8;border:1px solid #ededee;box-shadow:none;backdrop-filter:none;padding:12px 14px;margin:0 0 16px}.chip{font-size:12px;line-height:18px;padding:6px 12px;background:#ececee;color:#5f5f66;white-space:nowrap}.chip.active{background:#202123;color:#fff;box-shadow:none}
.approval-grid{gap:16px}.approval-card{background:#f7f7f8;border:1px solid #ededee;box-shadow:none;backdrop-filter:none;border-radius:14px;padding:17px 17px 15px}.approval-card:hover{transform:none;box-shadow:var(--shadow)}.approval-card.urgent{box-shadow:none;border-color:#f1cdbf}
.approval-top{gap:12px}.approval-top h3{font-size:14px;line-height:21px;margin:5px 0 0}.eyebrow,.approval-card>p,.approval-meta,.meta{font-size:12px;line-height:18px}.approval-card>p{min-height:36px;line-height:18px}.pill,.btn,.chip{white-space:nowrap;word-break:keep-all;flex-shrink:0}.pill{font-size:12px;line-height:18px;padding:2px 8px}
.btn{font-size:14px;line-height:20px;padding:8px 12px;border-radius:9px;background:#fff;box-shadow:none}.btn:hover{background:#f0f0f1;transform:none;box-shadow:none}.btn.primary,.btn.primary-action{background:#202123;color:#fff;border-color:#202123}.btn.green{background:#4e9a79;border-color:#4e9a79}.btn.soft{background:#ececee}
.toolbar{gap:10px;padding:12px;margin-bottom:16px}.toolbar input,.toolbar select{font-size:14px;line-height:20px;padding:8px 10px}.group{margin-bottom:20px}.group-head{margin-bottom:10px}.group-head h2,.group-head h3,.section h2,.modal h2{font-size:14px;line-height:21px;margin:0}.requirement-card{background:#fff;border:1px solid #e8e8ea;box-shadow:none;margin:8px 0;padding:13px}.requirement-title{font-size:14px;line-height:21px;margin-bottom:5px}.section{padding:16px}
.calendar{background:#fff;padding:0;overflow:auto;border-color:#e7e7e9}.calendar-grid{background:#fff;box-shadow:none;border:0;border-radius:0}.cal-cell{font-size:12px;line-height:18px;min-height:68px;padding:7px}.cal-head{background:#f7f7f8;display:flex;flex-direction:column;gap:1px;justify-content:center}.cal-head strong{font-size:12px;line-height:18px}.cal-head span{font-size:12px;line-height:18px;color:var(--muted);font-weight:400}.cal-owner{background:#f7f7f8}.task{font-size:12px;line-height:18px;padding:6px;background:#e7f2ff;border-color:#77a5df;box-shadow:none}.task.design{background:#f0eaff;border-color:#9a7bd1}.task:hover{filter:brightness(.97);outline:1px solid currentColor}
.table{font-size:12px;line-height:18px}.table th,.table td{padding:11px 12px}.modal{border-radius:14px;padding:20px}.field label{font-size:12px;line-height:18px}.field input,.field select,.field textarea{font-size:14px;line-height:20px}.offline{font-size:12px;line-height:18px}.empty{padding:42px;font-size:14px}
[hidden]{display:none!important}
@media(max-width:960px){.content{padding:18px}.topbar{padding:0 16px}.shell{grid-template-columns:1fr}}

/* 审批、编辑与日历：紧凑列表优先，排期以同需求同色呈现。 */
.approval-list{display:flex;flex-direction:column;gap:10px}.approval-list.approval-grid{grid-template-columns:1fr}.approval-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;min-height:92px;padding:14px 16px}.approval-row .approval-summary{min-width:0}.approval-row .approval-top h3{max-width:880px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.approval-row .approval-meta{border:0;padding-top:6px}.approval-row .inline-actions{margin:0;align-self:center;justify-content:flex-end;flex-wrap:wrap;max-width:350px}
.filter-toolbar{display:grid;grid-template-columns:minmax(200px,1.45fr) repeat(3,minmax(120px,.7fr)) repeat(2,minmax(130px,.6fr));gap:10px}.filter-toolbar input,.filter-toolbar select{width:100%;border-color:#dedee1;background:#fff}.requirement-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.requirement-row>div:first-child{min-width:0}.owner-badge{flex:0 0 auto;display:flex;align-items:center;gap:7px;padding:7px 10px;border-radius:9px;background:#f0f1f3;color:#53545a;font-size:12px;line-height:18px}.owner-badge span{color:#85858b}.owner-badge strong{font-size:12px;line-height:18px;color:#202123}.day-table td{vertical-align:middle}.doc-link{color:#2766b3;text-decoration:none;font-size:12px;white-space:nowrap}.doc-link:hover{text-decoration:underline}
.task-color-0{background:#e5f1ff;color:#315b95;border-left-color:#72a5df}.task-color-1{background:#f1eaff;color:#7655a9;border-left-color:#aa8cdd}.task-color-2{background:#e5f8ef;color:#317d61;border-left-color:#6bc09b}.task-color-3{background:#fff0e7;color:#a55d3b;border-left-color:#e4a17c}.task-color-4{background:#fff7d9;color:#8f6e27;border-left-color:#d5b353}.task-color-5{background:#e7f7f6;color:#397f82;border-left-color:#6cbec0}.task-color-6{background:#ffe9f0;color:#a84c69;border-left-color:#dc849e}.task-color-7{background:#edf0f4;color:#586170;border-left-color:#959eaa}
.month-calendar{overflow:auto;padding:0}.month-grid{display:grid;grid-template-columns:150px max-content;min-width:1668px}.month-head{display:grid;background:#f7f7f8;border-bottom:1px solid var(--line)}.month-head .cal-head{min-width:48px;padding:7px;border-right:1px solid var(--line);align-items:center}.month-owner{display:flex;align-items:center;padding:10px 12px;background:#f7f7f8;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;font-weight:650;position:sticky;left:0;z-index:2}.month-track{display:grid;gap:3px;padding:4px 0;background:repeating-linear-gradient(90deg,transparent 0,transparent 47px,#ececee 48px);border-bottom:1px solid var(--line);min-height:38px}.month-task{border:0;border-left:3px solid;min-width:0;margin:0 2px;padding:5px 7px;border-radius:6px;font-size:12px;line-height:18px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.month-task:hover{filter:brightness(.97);outline:1px solid currentColor}
@media(max-width:900px){.approval-row{grid-template-columns:1fr;gap:10px}.approval-row .inline-actions{justify-content:flex-start;max-width:none}.filter-toolbar{grid-template-columns:1fr 1fr}.filter-toolbar input:first-child{grid-column:1/-1}}@media(max-width:560px){.filter-toolbar{grid-template-columns:1fr}.filter-toolbar input:first-child{grid-column:auto}.requirement-row{align-items:flex-start;flex-direction:column}.owner-badge{align-self:flex-start}}
.unplanned-owner{min-height:48px;color:#777;background:#fbfbfc}.unplanned-cell{min-height:48px;padding:7px 9px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:7px;flex-wrap:wrap;background:#fbfbfc;color:var(--muted);font-size:12px}.unplanned-task{display:inline-flex;margin:0;max-width:260px;border:1px dashed currentColor;cursor:grab}.day-owner{justify-content:flex-start;gap:10px}.day-owner h2{padding:5px 10px;border-radius:8px;background:#e7f2ff;color:#315b95}.day-owner strong{color:var(--muted)}.day-project-col{width:42%}.day-product-col{width:120px}.day-table th,.day-table td{text-align:left}.day-table td:nth-child(n+2){white-space:nowrap}
.schedule-edit{display:flex;justify-content:flex-end;align-items:center;gap:8px;position:sticky;top:8px;z-index:30;width:max-content;margin:-34px 0 14px auto;padding:7px;border:1px solid #f1d3aa;border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(31,41,55,.12);color:#9a5f24;font-size:12px}.schedule-edit span{background:#fff0dd;border-radius:999px;padding:7px 10px}
.approval-row{grid-template-columns:minmax(0,1fr) 190px}.approval-row .approval-top h3{width:min(700px,100%);white-space:normal;overflow-wrap:anywhere;word-break:break-word}.approval-row .inline-actions{width:190px}.editor-actions{display:flex;justify-content:flex-end;margin:-34px 0 14px}
.draft-task{outline:2px dashed #2563eb;outline-offset:-2px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.55)}.repair-list{display:grid;gap:10px;max-height:45vh;overflow:auto}.repair-list label{display:block;padding:10px;border:1px solid var(--line);border-radius:10px}.repair-list small{color:var(--muted)}
.daypilot-wrap{padding:0;overflow:hidden;background:#fff}.daypilot-wrap .scheduler_default_main{border:0!important;font-family:Inter,"PingFang SC",system-ui,sans-serif!important}.daypilot-wrap .scheduler_default_rowheader,.daypilot-wrap .scheduler_default_corner,.daypilot-wrap .scheduler_default_timeheadergroup,.daypilot-wrap .scheduler_default_timeheadercol{background:#f8f9fb!important;border-color:#e7e9ee!important;color:#4b5563!important;font-weight:650!important}.daypilot-wrap .scheduler_default_rowheader{font-size:13px!important}.daypilot-wrap .scheduler_default_cell{border-color:#edf0f4!important;background:#fff!important}.daypilot-wrap .scheduler_default_cell:nth-child(2n){background:#fcfcfd!important}.daypilot-wrap .scheduler_default_event{border-radius:8px!important;box-shadow:0 1px 2px rgba(15,23,42,.08)!important}.daypilot-wrap .scheduler_default_event_inner{padding:5px 7px!important;border-radius:8px!important;border-width:1px!important}.schedule-event{display:grid;gap:2px;line-height:17px}.schedule-event strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-event small{font-size:11px;opacity:.8}.schedule-draft-event .scheduler_default_event_inner{box-shadow:inset 0 0 0 2px #2563eb!important}.schedule-leave-event .scheduler_default_event_inner{background:#f3f4f6!important;color:#374151!important}
.shared-queue{margin:0 0 18px;border:1px solid #dfe4eb;border-radius:12px;background:#fafbfd}.shared-queue>header,.schedule-person-board>header{display:flex;align-items:baseline;gap:10px;padding:11px 14px;border-bottom:1px solid #e8ebef}.shared-queue header strong,.schedule-person-board header strong{font-size:14px}.shared-queue header small,.schedule-person-board header small{font-size:12px;color:var(--muted)}.shared-queue-body{min-height:74px;padding:10px;display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.queue-empty,.cell-empty{font-size:12px;color:#9aa1ad;padding:5px}.schedule-person-list{display:grid;gap:18px}.schedule-person-board{border:1px solid #dfe4eb;border-radius:12px;overflow:hidden;background:#fff}.schedule-week-grid{display:grid;grid-template-columns:repeat(8,minmax(118px,1fr));overflow-x:auto}.schedule-day-head{min-height:46px;padding:9px 10px;background:#f7f8fa;border-right:1px solid #e8ebef;border-bottom:1px solid #e8ebef;font-size:12px;font-weight:650;display:flex;align-items:center;gap:5px}.schedule-day-head small{font-size:11px;font-weight:400;color:var(--muted)}.schedule-day-head.is-past,.schedule-day-cell.is-past{background:#f3f4f6;color:#a3a8b2}.next-week-head{background:#f1f6ff;color:#3d6293}.schedule-day-cell{min-height:120px;padding:7px;border-right:1px solid #eef0f3;border-bottom:1px solid #eef0f3;background:#fff}.schedule-day-cell.drop-active,.shared-queue-body.drop-active{background:#eaf3ff;box-shadow:inset 0 0 0 2px #6f9fe3}.next-week-cell{background:#f8fbff}.schedule-card{display:grid;gap:2px;margin:0 0 6px;padding:7px 8px;border-radius:7px;background:var(--task-bg);color:var(--task-color);border:1px solid color-mix(in srgb,var(--task-color) 20%,transparent);cursor:grab;line-height:16px}.schedule-card strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-card span{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-card small{font-size:11px;opacity:.8}.schedule-card.is-draft{box-shadow:inset 0 0 0 2px #2563eb}.schedule-card.is-locked{cursor:not-allowed;filter:grayscale(1);opacity:.58}.schedule-card.leave{--task-bg:#f1f3f5;--task-color:#6b7280;cursor:not-allowed}@media(max-width:900px){.schedule-week-grid{grid-template-columns:repeat(8,132px)}.schedule-person-board{overflow-x:auto}}
.nav-subgroup{margin:2px 0 4px}.nav-sublabel{display:flex;width:100%;align-items:center;justify-content:space-between;border:0;background:transparent;color:#777b84;padding:7px 10px 7px 18px;font-size:12px;cursor:pointer;text-align:left}.nav-subitems{display:grid;gap:1px}.nav-subgroup.collapsed .nav-subitems{display:none}.nav-link-owner{padding-left:18px;font-size:13px}.nav-empty{padding:6px 18px;color:#9ca3af;font-size:12px}.schedule-owner-grid{min-width:920px}.schedule-grid-head,.schedule-track-row{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr)) 136px}.schedule-grid-head{border-bottom:1px solid #e8ebef}.schedule-track-row{min-height:54px;border-bottom:1px solid #edf0f3}.schedule-track-row:last-child{border-bottom:0}.schedule-track-timeline{grid-column:1/8;display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));position:relative;min-height:54px;background:repeating-linear-gradient(90deg,#fff 0,#fff calc(14.285% - 1px),#edf0f3 calc(14.285% - 1px),#edf0f3 14.285%)}.schedule-track-timeline:has(.schedule-card.is-locked){background:repeating-linear-gradient(90deg,#fbfbfc 0,#fbfbfc calc(14.285% - 1px),#edf0f3 calc(14.285% - 1px),#edf0f3 14.285%)}.schedule-track-timeline.drop-active{background-color:#eaf3ff;box-shadow:inset 0 0 0 2px #6f9fe3}.schedule-track-segment{z-index:1;padding:6px 4px;min-width:0}.schedule-next-week{grid-column:8;padding:6px;border-left:1px solid #e8ebef;background:#f8fbff;min-height:54px}.schedule-track-empty{grid-column:1/8;padding:16px;color:#9aa1ad;font-size:12px}.track-drop-hint{grid-column:1/8;align-self:center;justify-self:center;color:#a2a8b3;font-size:12px}.schedule-card{height:100%;margin:0;padding:6px 8px}.schedule-card.is-continuation{display:flex;align-items:center;justify-content:space-between}.schedule-card.is-continuation small{margin-left:5px}@media(max-width:960px){.schedule-person-board{overflow:auto}.schedule-owner-grid{min-width:906px}}
.approval-filters{display:block}.approval-filter-row{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(5,minmax(110px,.7fr)) auto auto;gap:8px;margin-top:10px}.approval-filter-row input,.approval-filter-row select{width:100%;border:1px solid #dedee1;border-radius:9px;padding:8px 10px;background:#fff;font-size:12px}.approval-row .approval-top>div:first-child{min-width:0}.approval-row .approval-top h3{max-width:none}.approval-row .approval-summary{overflow:hidden}.owner-color-0 h2{background:#e7f2ff;color:#315b95}.owner-color-1 h2{background:#f0eaff;color:#7655a9}.owner-color-2 h2{background:#e5f8ef;color:#317d61}.owner-color-3 h2{background:#fff0e7;color:#a55d3b}.owner-color-4 h2{background:#fff7d9;color:#8f6e27}.owner-color-5 h2{background:#e7f7f6;color:#397f82}.owner-color-6 h2{background:#ffe9f0;color:#a84c69}.owner-color-7 h2{background:#edf0f4;color:#586170}@media(max-width:1200px){.approval-filter-row{grid-template-columns:repeat(3,minmax(150px,1fr))}}@media(max-width:900px){.approval-filter-row{grid-template-columns:1fr 1fr}}@media(max-width:560px){.approval-filter-row{grid-template-columns:1fr}}
.schedule-track-timeline{background:linear-gradient(90deg,#f3f4f6 0 calc(var(--past-columns,0) * 14.2857%),transparent calc(var(--past-columns,0) * 14.2857%)),repeating-linear-gradient(90deg,#fff 0,#fff calc(14.285% - 1px),#edf0f3 calc(14.285% - 1px),#edf0f3 14.285%)}
.schedule-track-timeline:has(.schedule-card.is-locked){background:linear-gradient(90deg,#f3f4f6 0 calc(var(--past-columns,0) * 14.2857%),transparent calc(var(--past-columns,0) * 14.2857%)),repeating-linear-gradient(90deg,#fbfbfc 0,#fbfbfc calc(14.285% - 1px),#edf0f3 calc(14.285% - 1px),#edf0f3 14.285%)}
.schedule-card.is-readonly{cursor:default;opacity:.82}
.schedule-card.is-calculating{cursor:wait;opacity:.72;animation:schedule-pulse 1s ease-in-out infinite}.schedule-card.is-calculating small{font-weight:650}@keyframes schedule-pulse{50%{opacity:.48}}
.schedule-day-head.is-weekend{background:#f3f4f6;color:#a3a8b2}.schedule-track-timeline{background:linear-gradient(90deg,transparent 0 71.4286%,#f3f4f6 71.4286% 100%),linear-gradient(90deg,#f3f4f6 0 calc(var(--past-columns,0) * 14.2857%),transparent calc(var(--past-columns,0) * 14.2857%)),repeating-linear-gradient(90deg,#fff 0,#fff calc(14.285% - 1px),#edf0f3 calc(14.285% - 1px),#edf0f3 14.285%)}.schedule-track-timeline:has(.schedule-card.is-locked){background:linear-gradient(90deg,transparent 0 71.4286%,#f3f4f6 71.4286% 100%),linear-gradient(90deg,#f3f4f6 0 calc(var(--past-columns,0) * 14.2857%),transparent calc(var(--past-columns,0) * 14.2857%)),repeating-linear-gradient(90deg,#fbfbfc 0,#fbfbfc calc(14.285% - 1px),#edf0f3 calc(14.285% - 1px),#edf0f3 14.285%)}
