:root{--rust: #c2410c;--rust-deep: #9a3412;--orange: #f97316;--peach: #fdba74;--cream: #fff7ed;--white: #ffffff;--ink: #1c1917;--muted: #8a5a44;--faint: #b89684;--line: rgba(194, 65, 12, .14);--line-soft: rgba(194, 65, 12, .08);--danger: #9f1239;--danger-bg: #ffe4e6;--r-card: 16px;--r-button: 10px;--r-input: 8px;--r-cell: 6px;--r-pill: 999px;--shadow: 0 1px 2px rgba(194, 65, 12, .06), 0 8px 24px rgba(194, 65, 12, .06);--side: 232px;color:var(--ink);background:var(--cream);font:14px/1.5 PingFang SC,Microsoft YaHei,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--cream)}a{color:var(--rust);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit}h1{margin:0;font-size:24px;line-height:1.3;font-weight:700;color:var(--rust)}h2{margin:0;font-size:15px;font-weight:650;color:var(--rust)}.icon{flex:none}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app{min-height:100vh}aside{position:fixed;inset:0 auto 0 0;z-index:20;width:var(--side);display:flex;flex-direction:column;background:var(--white);border-right:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;padding:20px 20px 10px}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:10px 10px 10px 3px;background:var(--rust);color:var(--white);font-size:18px;font-weight:700}.brand strong{display:block;color:var(--rust);font-size:17px;line-height:1.2}.brand small{display:block;color:var(--muted);font-size:12px}aside nav{padding:0 12px 24px;overflow:auto}.nav-label{margin:18px 0 6px;padding:0 12px;color:var(--faint);font-size:11px;font-weight:650;letter-spacing:.08em}aside nav a{display:flex;align-items:center;gap:10px;margin-bottom:2px;padding:8px 12px;border-radius:var(--r-button);color:var(--muted);font-weight:500}aside nav a .icon{color:var(--faint)}aside nav a:hover{background:var(--cream);color:var(--rust);text-decoration:none}aside nav a.active{background:var(--cream);color:var(--rust);font-weight:650;box-shadow:inset 3px 0 0 var(--orange)}aside nav a.active .icon{color:var(--orange)}.workspace{margin-left:var(--side);min-width:0}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:flex-end;gap:14px;padding:10px 28px;background:var(--white);border-bottom:1px solid var(--line)}.topbar .name{text-align:right;line-height:1.3}.topbar .name strong{display:block;color:var(--ink);font-size:14px}.topbar .name span{color:var(--muted);font-size:12px}main{padding:24px 28px 56px;min-width:0}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;border:1px solid transparent;border-radius:var(--r-button);background:var(--rust);color:var(--white);padding:0 14px;font-weight:650;white-space:nowrap;cursor:pointer;text-decoration:none;transition:background .12s,border-color .12s,color .12s}button:hover,.btn:hover{background:var(--rust-deep);text-decoration:none}button:focus-visible,.btn:focus-visible,a:focus-visible,.btn:focus-within{outline:2px solid var(--orange);outline-offset:2px}button:disabled{background:var(--peach);cursor:not-allowed}button.ghost,.btn.ghost{border-color:#c2410c4d;background:var(--white);color:var(--rust)}button.ghost:hover,.btn.ghost:hover{border-color:var(--rust);background:var(--cream)}button.warn{border-color:#fecdd3;background:var(--white);color:var(--danger)}button.warn:hover{border-color:var(--danger);background:var(--danger-bg)}button.small,.btn.small{min-height:28px;padding:0 10px;border-radius:var(--r-input);font-size:13px}button.icon-only{min-height:30px;width:30px;padding:0;border-radius:var(--r-input)}button.ghost:disabled,button.warn:disabled{border-color:var(--line);background:var(--white);color:var(--faint)}.back{display:inline-flex;align-items:center;gap:6px;margin-bottom:14px;padding:5px 14px 5px 10px;border:1px solid rgba(194,65,12,.3);border-radius:var(--r-pill);background:var(--white);color:var(--rust);font-weight:650}.back:hover{border-color:var(--rust);background:var(--cream);text-decoration:none}.back .icon{transition:transform .12s}.back:hover .icon{transform:translate(-2px)}input,select{min-height:36px;border:1px solid rgba(194,65,12,.22);border-radius:var(--r-input);background:var(--white);color:var(--ink);padding:0 10px}input::placeholder{color:var(--faint)}input:hover,select:hover{border-color:#c2410c73}input:focus,select:focus{outline:2px solid rgba(249,115,22,.4);outline-offset:0;border-color:var(--orange)}input:disabled,select:disabled{border-color:transparent;background:transparent;color:var(--ink);opacity:1;-webkit-text-fill-color:var(--ink)}input[type=date]{cursor:pointer}input[type=checkbox]{min-height:0;width:16px;height:16px;margin:0;padding:0;accent-color:var(--orange);cursor:pointer;vertical-align:-3px}label.field{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:12px;font-weight:600}label.field input,label.field select{font-size:14px;font-weight:400}.search-field,.filter-select{position:relative;display:inline-flex;align-items:center}.search-field input{width:240px;padding-left:34px}.filter-select select{padding-left:34px;padding-right:14px;-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer}.search-field .icon,.filter-select .icon{position:absolute;left:11px;color:var(--orange);pointer-events:none}.unit{display:inline-flex;align-items:center;gap:6px}.unit em,.th-unit{color:var(--faint);font-style:normal;font-size:12px;font-weight:400;white-space:nowrap}.th-unit{margin-left:5px}.unit input{width:78px;text-align:right;font-variant-numeric:tabular-nums}.page-head{margin-bottom:18px}.head-row{display:flex;align-items:center;justify-content:space-between;gap:10px 24px;flex-wrap:wrap;min-height:36px}.title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}.lede{margin:6px 0 0;max-width:80ch;color:var(--muted)}.meta{display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap;margin:8px 0 0;color:var(--muted);font-size:13px}.meta .sep{color:var(--peach)}.actions,.rename{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rename input{width:min(360px,70vw);min-height:40px;font-size:18px;font-weight:650;color:var(--rust)}.rename-hint{flex-basis:100%;margin:0;color:var(--muted);font-size:12px}.block{margin-bottom:22px;min-width:0}.block-head{display:flex;align-items:center;gap:8px;margin:0 2px 8px}.block-head h2{font-size:16px;font-weight:650;color:var(--ink)}.block-head .count{border-radius:var(--r-pill);background:var(--cream);color:var(--rust);padding:0 8px;font-size:12px;font-weight:650}.block-aside{margin-left:auto;color:var(--muted);font-size:13px}.sheet{background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);overflow:hidden;min-width:0}.sheet-body{padding:16px 18px}.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:end;padding:14px 18px;border-bottom:1px solid var(--line)}.card-foot{display:flex;gap:10px 16px;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:12px 18px;border-top:1px solid var(--line);background:#fffdfa}.card-foot .foot-note{color:var(--muted);font-size:13px}.card-foot .actions{margin-left:auto}.table-wrap{overflow-x:auto}table{width:max-content;min-width:100%;border-collapse:collapse}th,td{padding:10px 14px;text-align:left;vertical-align:middle;white-space:nowrap}th{border-bottom:1px solid var(--line);background:#fffdfa;color:var(--muted);font-size:12px;font-weight:600}td{border-top:1px solid var(--line-soft)}tbody tr:first-child td{border-top:0}tbody tr{background:var(--white)}tbody tr:hover{background:#fffaf3}th.right,td.num{text-align:right;font-variant-numeric:tabular-nums}th.check,td.check{width:44px;padding-right:0}td.empty{padding:28px 18px;color:var(--faint);text-align:center}td .strong,td.strong{font-weight:650}td input,td select{min-height:32px;width:124px;border-radius:var(--r-cell);padding:0 8px}td input.short{width:76px}td.neg{color:var(--danger);font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.dash{color:var(--peach)}.pending{color:var(--faint)}.used{display:inline-block;margin-left:6px;border-radius:4px;background:var(--cream);color:var(--rust);padding:0 5px;font-size:11px;font-weight:650}.used.off{visibility:hidden}tr.pickable{cursor:pointer}tr.picked,tr.picked:hover{background:var(--cream)}tr.picked td:first-child{box-shadow:inset 3px 0 0 var(--orange)}.row-open{display:inline-flex;align-items:center;gap:2px;color:var(--faint);font-size:13px}tr.pickable:hover .row-open{color:var(--rust)}td.tail{width:1%;text-align:right}tr.group-row td{border-top:1px solid var(--line);background:#fffaf3;color:var(--rust);font-weight:650}tr.group-row.picked td{background:var(--cream)}tr.group-row .group-info{margin-left:10px;color:var(--muted);font-weight:400;font-size:13px}tr.new-row td{background:#fffdfa}.pin-first th:first-child,.pin-first td:first-child{position:sticky;left:0;z-index:1;background:inherit;box-shadow:inset -1px 0 0 var(--line)}.pin-first th:first-child{background:#fffdfa}.chip{display:inline-flex;align-items:center;gap:4px;border-radius:var(--r-pill);padding:1px 9px;font-size:12px;font-weight:600;white-space:nowrap}.chip.need-pgta{background:var(--peach);color:var(--ink)}.chip.need-pgtp{background:var(--cream);color:var(--rust);box-shadow:inset 0 0 0 1px var(--peach)}.chip.need-skip{background:var(--white);color:var(--faint);box-shadow:inset 0 0 0 1px var(--line)}.chip.todo{background:var(--peach);color:var(--ink)}.chip.done{background:var(--white);color:var(--rust);box-shadow:inset 0 0 0 1px #c2410c4d}.note,.error,.hint{display:flex;align-items:flex-start;gap:8px;margin-bottom:14px;border-radius:12px 12px 12px 4px;padding:9px 12px}.note .icon,.error .icon,.hint .icon{margin-top:3px}.note{border:1px solid var(--peach);background:var(--white);color:var(--ink)}.note .icon{color:var(--orange)}.error{background:var(--danger-bg);color:var(--danger)}.hint{border:1px solid var(--line);background:var(--white);color:var(--muted)}.hint.warn{border-color:var(--peach);background:var(--cream);color:var(--rust)}.loading{color:var(--muted)}.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px 24px;margin:0;padding:16px 18px}.facts dt{color:var(--muted);font-size:12px;font-weight:600}.facts dd{margin:2px 0 0;font-variant-numeric:tabular-nums}.facts dd .th-unit{margin-left:4px}.user-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,320px));gap:12px}.checks{display:flex;flex-wrap:wrap;gap:8px}.checks label{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:var(--r-pill);padding:4px 12px 4px 10px;cursor:pointer}.checks label:has(input:checked){border-color:var(--peach);background:var(--cream);color:var(--rust);font-weight:600}.field-label{margin:14px 0 6px;color:var(--muted);font-size:12px;font-weight:600}.auth-page{display:grid;min-height:100vh;place-items:center;background:var(--cream);padding:24px}.auth{width:min(400px,100%);border:1px solid var(--line);border-radius:var(--r-card);background:var(--white);box-shadow:var(--shadow);padding:32px}.auth .brand{justify-content:center;padding:0 0 20px}.auth h1{margin-bottom:4px;font-size:20px;text-align:center}.auth .lede{margin:0 0 20px;text-align:center}.auth .field{margin-bottom:14px}.auth input{width:100%;min-height:40px}.auth button{width:100%;min-height:40px;margin-top:6px}.auth-links{display:flex;justify-content:center;gap:16px;margin:18px 0 0}.auth-links a{display:inline-flex;align-items:center;gap:4px}@media(max-width:860px){aside{position:static;width:auto;flex-direction:row;align-items:center;border-right:0;border-bottom:1px solid var(--line)}.brand{flex:none;padding:10px 14px;white-space:nowrap}.brand small,.nav-label{display:none}aside nav{display:flex;gap:2px;min-width:0;padding:8px 12px 8px 0}aside nav>div{display:flex;gap:2px}aside nav a{margin:0;white-space:nowrap}aside nav a.active{box-shadow:inset 0 -3px 0 var(--orange)}.workspace{margin-left:0}.topbar{position:static;padding:8px 16px}main{padding:18px 16px 40px}.search-field,.search-field input{width:100%}}@media print{@page{size:landscape;margin:10mm}:root,body{background:var(--white);font-size:11px}aside,.topbar,.noprint,.toolbar.noprint,.card-foot,.note,.error,.hint{display:none!important}.workspace{margin:0}main{padding:0}.block{margin-bottom:12px}.sheet{border:0;border-radius:0;box-shadow:none;overflow:visible;break-inside:avoid-page}.block-head{margin-bottom:4px}.table-wrap{overflow:visible}table{width:100%}th,td{padding:4px 6px;border:1px solid #999;white-space:normal}th{background:var(--white);color:var(--ink)}.pin-first th:first-child,.pin-first td:first-child{position:static;box-shadow:none}td input,td select,.unit input{width:auto;min-width:48px;min-height:0;border:0;padding:0;background:transparent}.unit em{display:none}}
