:root{font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:#202521;background:#f4f5f2;--surface:#fff;--surface-muted:#f7f8f5;--border:#d9ded7;--muted:#687069;--green:#2f6f50;--green-dark:#24583f;--yellow:#b96b00;--red:#b42318;--blue:#356a8a;--shadow:0 6px 18px rgb(35 45 39 / 7%)}
[hidden]{display:none!important}
*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f4f5f2}button,input,select,textarea{font:inherit;letter-spacing:0}button{cursor:pointer}.demo-banner{padding:8px 16px;background:#fff0c9;color:#684500;text-align:center;font-size:13px;font-weight:700}.app-shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.sidebar{display:flex;flex-direction:column;gap:24px;padding:24px 16px;background:#26352d;color:#fff}.brand{display:flex;align-items:center;gap:12px;padding:0 8px}.brand-mark{display:grid;width:38px;height:38px;place-items:center;border-radius:8px;background:#f3b463;color:#26352d;font-weight:800}.brand strong,.brand span{display:block}.brand strong{font-size:15px}.brand div>span{margin-top:3px;color:#bdc8c0;font-size:11px}.nav-list{display:grid;gap:4px}.nav-item{display:flex;align-items:center;min-height:44px;gap:11px;width:100%;padding:0 12px;border:0;border-radius:6px;color:#dce4de;background:transparent;text-align:left}.nav-item svg,.button svg,.icon-button svg{width:18px;height:18px}.nav-item:hover,.nav-item:focus-visible,.nav-item.is-active{color:#fff;background:#3b4d43;outline:none}.scope-note{margin:auto 8px 0;padding-top:18px;border-top:1px solid #415148;color:#bdc8c0;font-size:12px}.workspace{min-width:0;padding:26px clamp(18px,4vw,52px)}.topbar,.view{max-width:1180px;margin-inline:auto}.topbar{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{color:var(--muted);font-size:12px}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:26px;line-height:1.2}h2{font-size:19px}h3{font-size:15px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;gap:8px;padding:0 15px;border:1px solid var(--border);border-radius:6px;background:#fff;color:#26352d}.button-primary{border-color:var(--green);color:#fff;background:var(--green)}.button-danger{border-color:#e7b8b3;color:var(--red);background:#fff}.button:hover{filter:brightness(.97)}.button:focus-visible,.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid #9dc5b1;outline-offset:1px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.metric{padding:16px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.metric span{display:block;color:var(--muted);font-size:12px}.metric strong{display:block;margin-top:7px;font-size:24px}.panel{margin-bottom:18px;padding:18px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.panel-header h2,.panel-header p{margin-bottom:0}.notice{padding:12px 14px;border-left:4px solid var(--blue);background:#eef5f8;color:#284d63;line-height:1.6}.risk-green{color:#2f7d4a}.risk-yellow{color:var(--yellow)}.risk-red{color:var(--red)}.risk-badge{display:inline-flex;align-items:center;gap:6px;font-weight:700}.risk-dot{width:9px;height:9px;border-radius:50%;background:currentColor}.table-scroll{max-width:100%;overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:11px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}th{background:var(--surface-muted);color:#4d564f;white-space:nowrap}.empty{padding:48px 18px;text-align:center;color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:6px}.field-wide{grid-column:1/-1}.field label,.fieldset legend{font-size:13px;font-weight:700}.field input,.field select,.field textarea{width:100%;min-height:42px;padding:9px 10px;border:1px solid #cbd2ca;border-radius:5px;background:#fff;color:#202521}.field textarea{min-height:88px;resize:vertical}.fieldset{grid-column:1/-1;padding:12px;border:1px solid var(--border);border-radius:6px}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.check{display:flex;align-items:flex-start;gap:8px;min-height:40px;padding:8px;border-radius:5px;background:var(--surface-muted);font-size:13px}.check input{margin-top:3px}.form-actions{display:flex;flex-wrap:wrap;gap:10px;grid-column:1/-1}.toast{position:fixed;top:18px;right:22px;z-index:50;padding:11px 15px;border-radius:6px;background:#26352d;color:#fff;box-shadow:var(--shadow)}dialog{width:min(640px,calc(100% - 28px));max-height:86vh;padding:0;border:0;border-radius:8px;box-shadow:0 24px 80px rgb(0 0 0 / 30%)}dialog::backdrop{background:rgb(25 31 27 / 55%)}.dialog-body{padding:20px}.dialog-title{display:flex;align-items:center;justify-content:space-between;gap:16px}.icon-button{display:grid;width:40px;height:40px;place-items:center;border:1px solid var(--border);border-radius:6px;background:#fff}.status-open{color:var(--yellow);font-weight:700}.status-closed{color:var(--green);font-weight:700}.timeline{display:grid;gap:10px;margin:12px 0;padding-left:18px}.timeline li{padding-left:6px;line-height:1.5}.schedule-grid{display:grid;grid-template-columns:90px repeat(5,minmax(130px,1fr));min-width:780px;border:1px solid var(--border)}.schedule-grid>div{min-height:58px;padding:9px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.schedule-head{background:var(--surface-muted);font-weight:700}.conflict{background:#fff1ef;color:var(--red);font-weight:700}.copy-output{position:absolute;left:-9999px}.muted{color:var(--muted)}.stack{display:grid;gap:12px}.danger-zone{border-color:#e7b8b3}.file-input{padding:8px;border:1px dashed var(--border);border-radius:6px}.mobile-nav-toggle{display:none}
.timeline li .button{min-height:34px;margin:7px 0 0 8px;padding-inline:10px;font-size:12px}
@media(max-width:900px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.app-shell{display:block}.sidebar{position:sticky;top:0;z-index:20;display:block;padding:10px 12px}.brand{padding:0}.brand div>span,.scope-note{display:none}.nav-list{display:flex;gap:4px;margin-top:9px;overflow-x:auto}.nav-item{flex:0 0 46px;justify-content:center;padding:0}.nav-item span{display:none}.workspace{padding:18px 14px}.topbar{align-items:flex-start}.topbar .button span{display:none}.topbar .button{width:42px;padding:0}.panel-header{align-items:flex-start}.panel-header>.button{flex:0 0 auto;max-width:108px;min-height:40px;white-space:normal}.form-grid{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.check-grid{grid-template-columns:1fr}.panel{padding:14px}.toast{top:8px;right:8px;left:8px;text-align:center}}
/* Mobile PWA controls and safe-area layout. */
.header-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px}.connection-status{display:inline-flex;align-items:center;min-height:34px;padding:0 10px;border:1px solid #c7d8c9;border-radius:999px;background:#eef7ef;color:#2f6f50;font-size:12px;font-weight:700}.connection-status::before{width:7px;height:7px;margin-right:6px;border-radius:50%;background:currentColor;content:""}.connection-status.is-offline{border-color:#e7b8b3;background:#fff1ef;color:var(--red)}.mobile-nav,.mobile-more{display:none}
.segmented{display:inline-grid;grid-template-columns:repeat(2,minmax(120px,1fr));margin-bottom:14px;padding:3px;border:1px solid var(--border);border-radius:7px;background:#e9ece8}.segmented button{min-height:38px;padding:0 14px;border:0;border-radius:5px;background:transparent;color:var(--muted);font-weight:700}.segmented button.is-active{background:#fff;color:var(--green);box-shadow:0 1px 4px rgb(35 45 39 / 10%)}.archive-layout{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:16px}.archive-list{display:grid;align-content:start;gap:7px;max-height:650px;overflow:auto}.archive-list-item{display:grid;gap:5px;width:100%;min-height:72px;padding:11px 12px;border:1px solid var(--border);border-radius:7px;background:#fff;color:#26352d;text-align:left}.archive-list-item span{color:var(--muted);font-size:12px}.archive-list-item.is-active{border-color:#7cab91;background:#f0f7f2}.archive-detail{min-width:0;padding-left:16px;border-left:1px solid var(--border)}.archive-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.archive-detail-header h3{margin-bottom:8px;font-size:18px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.detail-field{min-width:0;padding:11px;border:1px solid var(--border);border-radius:6px;background:var(--surface-muted)}.detail-field span{display:block;margin-bottom:5px;color:var(--muted);font-size:12px}.detail-field strong{display:block;overflow-wrap:anywhere;font-size:14px;line-height:1.5}.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.compact-panel{padding:14px}dialog{overflow:visible}.dialog-outer-close{position:absolute;top:-18px;right:-18px;z-index:3;display:grid;width:44px;height:44px;place-items:center;border:2px solid #fff;border-radius:50%;background:#26352d;color:#fff;box-shadow:0 5px 18px rgb(0 0 0 / 28%)}.dialog-outer-close svg{width:20px;height:20px}.dialog-body{max-height:86vh;overflow:auto}.dialog-title{padding-right:32px}
@media(max-width:760px){body{padding-bottom:calc(74px + env(safe-area-inset-bottom))}.app-shell{display:block}.sidebar{position:sticky;top:0;z-index:20;display:block;padding:10px 12px}.brand{padding:0}.brand div>span,.scope-note{display:none}.nav-list{display:none}.workspace{padding:14px 12px 0}.topbar{align-items:flex-start;margin-bottom:16px}.topbar h1{font-size:22px}.header-tools{gap:6px}.header-tools .connection-status{min-height:32px;padding:0 8px}.header-tools .button span{display:none}.header-tools .button{width:42px;padding:0}.panel-header{align-items:flex-start}.panel-header>.button{flex:0 0 auto;max-width:108px;min-height:40px;white-space:normal}.form-grid{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.check-grid{grid-template-columns:1fr}.panel{padding:14px;border-radius:7px}.field input,.field select,.field textarea{font-size:16px}.button{min-height:46px}.form-actions{display:grid;grid-template-columns:1fr}.form-actions .button{width:100%}.toast{top:8px;right:8px;left:8px;text-align:center}.mobile-nav{position:fixed;right:0;bottom:0;left:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);padding:7px 8px calc(7px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:rgb(255 255 255 / 96%);box-shadow:0 -4px 16px rgb(35 45 39 / 8%);backdrop-filter:blur(10px)}.mobile-nav .nav-item{display:grid;min-height:50px;gap:3px;justify-items:center;padding:5px 2px;border-radius:7px;color:var(--muted);font-size:11px}.mobile-nav .nav-item svg{width:19px;height:19px}.mobile-nav .nav-item.is-active{color:var(--green);background:#eef5ef}.mobile-more{position:fixed;right:8px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:31;display:grid;gap:4px;width:min(210px,calc(100vw - 16px));padding:8px;border:1px solid var(--border);border-radius:8px;background:#fff;box-shadow:0 12px 30px rgb(35 45 39 / 18%)}.mobile-more[hidden]{display:none}.mobile-more .nav-item{display:flex;align-items:center;gap:10px;min-height:46px;padding:0 12px;border:0;border-radius:6px;background:#fff;color:#26352d;text-align:left}.mobile-more .nav-item:hover,.mobile-more .nav-item.is-active{background:var(--surface-muted);color:var(--green)}dialog{max-height:calc(100vh - 28px);margin:auto}.dialog-body{padding:16px}}
@media(max-width:760px){.archive-layout{grid-template-columns:1fr}.archive-list{max-height:260px}.archive-detail{padding:14px 0 0;border-top:1px solid var(--border);border-left:0}.archive-detail-header{display:grid}.detail-grid,.filter-grid{grid-template-columns:1fr}.segmented{display:grid;width:100%}.dialog-outer-close{position:fixed;top:calc(8px + env(safe-area-inset-top));right:8px}.dialog-body{max-height:calc(100vh - 28px);padding-top:54px}}
