:root{--fill: #fbeeb0;--bg: #f4f5f7;--surface: #ffffff;--border: #d9dde3;--border-strong: #c2c8d0;--text: #1d2733;--text-muted: #667085;--accent: #1f5fa9;--accent-soft: #e8f0fa;--good: #1f7a4d;--warn: #a8660a;--bad: #b02a25;--radius: 6px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.45}h1,h2,h3{margin:0;font-weight:600}p{margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-weight:500;cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.btn:hover:not(:disabled){background:#eef1f5}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:#1a5091}.btn-quiet{border-color:transparent;background:transparent;color:var(--text-muted);padding:5px 10px}.btn-block{width:100%}.field{display:flex;flex-direction:column;gap:4px}.field>span{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}input[type=text],input[type=password],.textarea{width:100%;padding:8px 10px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;resize:vertical}input[type=text]:focus,input[type=password]:focus,.textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.login-screen{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:340px;display:flex;flex-direction:column;gap:14px;padding:26px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 2px 10px #141e2d0f}.login-card h1{font-size:19px}.login-intro{color:var(--text-muted);font-size:13px}.login-error{color:var(--bad);font-size:13px}.app{height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:24px;padding:10px 18px;background:var(--surface);border-bottom:1px solid var(--border);flex:0 0 auto}.brand{display:flex;flex-direction:column;min-width:200px}.brand-title{font-weight:600}.brand-sub{font-size:12px;color:var(--text-muted)}.account{margin-left:auto;display:flex;align-items:center;gap:10px}.account-name{font-size:13px;color:var(--text-muted)}.body{flex:1 1 auto;display:flex;min-height:0}.list-pane{flex:0 0 320px;width:320px;overflow-y:auto;background:var(--surface);border-right:1px solid var(--border)}.main-pane{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;overflow:hidden}.main-pane>.notice{margin:20px 26px}.list-empty{padding:16px;color:var(--text-muted);font-size:13px}.progress-summary{display:flex;align-items:center;gap:22px;flex:1 1 auto}.progress-block{min-width:190px}.section-block{min-width:210px}.overall-block{min-width:175px}.progress-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-fill-muted{background:var(--border-strong)}.progress-line{display:flex;align-items:baseline;gap:6px;font-size:12px;white-space:nowrap}.section-count{margin-left:auto}.muted{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis}.bar{margin-top:4px;height:6px;border-radius:3px;background:#e4e8ed;overflow:hidden}.bar-fill{height:100%;background:var(--accent);transition:width .2s ease}.save-state{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);white-space:nowrap}.save-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.save-clean .save-dot{background:var(--good)}.save-saving .save-dot{background:var(--accent)}.save-dirty .save-dot{background:var(--warn)}.save-error{color:var(--bad)}.save-error .save-dot{background:var(--bad)}.question-list{padding:6px 0 40px}.section-head,.group-head{display:flex;align-items:center;gap:7px;width:100%;padding:7px 12px;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer;color:var(--text)}.section-head{font-weight:600;border-top:1px solid var(--border)}.section-head:hover,.group-head:hover{background:#f0f3f7}.group-head{padding-left:24px;font-size:13px;color:var(--text-muted)}.section-title,.group-title{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.count{font-size:11px;font-variant-numeric:tabular-nums;color:var(--text-muted)}.caret{display:inline-block;width:10px;flex:0 0 10px;font-size:9px;line-height:1;text-align:center;color:var(--text-muted)}.group-body{list-style:none;margin:0;padding:0}.q-item{display:flex;align-items:flex-start;gap:7px;width:100%;padding:5px 12px 5px 38px;border:0;border-left:3px solid transparent;background:transparent;font:inherit;font-size:12.5px;text-align:left;cursor:pointer;color:var(--text-muted)}.q-item:hover{background:#f0f3f7}.q-item.done{color:var(--text)}.q-item.done .q-text{font-style:italic}.q-item.current{background:var(--accent-soft);border-left-color:var(--accent);color:var(--text);font-weight:500}.q-status{font-size:9px;line-height:1.7;color:var(--border-strong)}.q-item.done .q-status{color:var(--good)}.q-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.question-pane{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.question-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:20px 26px 28px}.question-body{max-width:780px;display:flex;flex-direction:column;gap:16px}.question-header{display:flex;flex-direction:column;gap:8px}.question-position{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:2px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:11px;color:var(--text-muted)}.chip-id{font-family:var(--mono);font-weight:600;color:var(--accent);border-color:#c5d8ee;background:var(--accent-soft)}.chip-phase2{color:var(--warn);border-color:#e8d3ac;background:#fdf6e8}.chip-required{color:var(--bad);border-color:#eec9c7;background:#fdeceb}.requirement-block{padding:12px 14px;border:1px solid var(--border);border-left:4px solid var(--border-strong);border-radius:var(--radius);background:#fbfbfc}.requirement-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:5px}.requirement-text{font-family:var(--mono);font-size:13px;white-space:pre-wrap}.requirement-notes{margin-top:8px;font-size:12.5px;color:var(--text-muted);white-space:pre-wrap}.requirement-notes-label{font-weight:600}.prompt-block{display:flex;flex-direction:column;gap:12px;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.prompt{font-size:16px;line-height:1.35}.help{margin-top:-6px;font-size:12.5px;color:var(--text-muted)}.answer-input{display:flex;flex-direction:column;gap:14px}.choice-list{display:flex;flex-direction:column;gap:6px}.choice{display:flex;align-items:flex-start;gap:9px;padding:8px 11px;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.choice:hover{background:#f6f8fa}.choice.selected{border-color:var(--accent);background:var(--accent-soft)}.choice input{margin:2px 0 0}.scale-row{display:flex;gap:8px;flex-wrap:wrap}.scale-item{display:flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}.scale-item.selected{border-color:var(--accent);background:var(--accent-soft)}.comment-field{padding-top:4px}.tags{display:flex;flex-wrap:wrap;gap:5px}.tag{padding:1px 7px;border-radius:3px;background:#eef0f3;color:var(--text-muted);font-size:11px}.question-footer{flex:0 0 auto;display:flex;gap:10px;align-items:center;padding:12px 26px;border-top:1px solid var(--border);background:var(--surface);box-shadow:0 -1px 3px #0f172a0d}.footer-nav{display:flex;gap:10px;flex:0 0 auto}.question-footer-position{flex:1 1 auto;text-align:center;color:var(--text-muted);font-size:12px;font-variant-numeric:tabular-nums}.notice{max-width:560px;padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text-muted);display:flex;flex-direction:column;gap:12px;align-items:flex-start}.notice h2{font-size:16px;color:var(--text)}.notice-error{border-color:#e6c3c1;color:var(--bad)}.resuming{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--text-muted);font-size:14px}.intro{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.intro-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:28px 24px 32px}.intro-footer{flex:0 0 auto;display:flex;align-items:center;gap:14px;padding:12px 26px;border-top:1px solid var(--border);background:var(--surface);box-shadow:0 -1px 3px #0f172a0d}.intro-skip{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.intro-skip input{width:15px;height:15px;cursor:pointer}.intro-footer .intro-hint{margin-left:auto}.intro-card{max-width:760px;margin:0 auto;padding:30px 34px 26px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 2px 10px #141e2d0d}.intro-head h1{font-size:22px}.intro-lede{margin-top:8px;color:var(--text-muted);font-size:14.5px;line-height:1.55}.intro-stats{display:flex;gap:10px;margin:22px 0 4px}.intro-stat{flex:1 1 0;display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.intro-stat strong{font-size:19px;font-variant-numeric:tabular-nums}.intro-stat span{font-size:11.5px;color:var(--text-muted)}.intro-body h2{margin:24px 0 8px;font-size:14px;color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.intro-body p{line-height:1.6}.intro-body ul{margin:8px 0 0;padding-left:20px}.intro-body li{margin-bottom:7px;line-height:1.55}.btn-large{padding:10px 20px;font-size:15px}.intro-hint{color:var(--text-muted);font-size:12.5px}.requirement-head{display:flex;align-items:baseline;gap:6px;width:100%;padding:5px 12px 5px 36px;border:0;border-left:3px solid transparent;background:transparent;font:inherit;font-size:12.5px;text-align:left;cursor:pointer;color:var(--text)}.requirement-head:hover{background:#f0f3f7}.requirement-head.current{border-left-color:var(--accent);background:var(--accent-soft)}.requirement-id{flex:0 0 auto;font-family:var(--mono);font-size:11px;color:var(--accent)}.requirement-text{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted)}.requirement-body{list-style:none;margin:0;padding:0}.requirement-body .q-item{padding-left:52px}.pos-sep{color:var(--border-strong);margin:0 2px}.pos-strong{font-weight:600;color:var(--text)}.question-position{font-variant-numeric:tabular-nums}.section-head.done .section-title,.group-head.done .group-title,.requirement-head.done .requirement-id,.requirement-head.done .requirement-text{font-style:italic}.section-head.done .count,.group-head.done .count,.requirement-head.done .count{color:var(--good)}.comment-field .textarea{min-height:7.35em}.status{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.status-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:24px 26px 30px}.status-footer{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:12px 26px;border-top:1px solid var(--border);background:var(--surface);box-shadow:0 -1px 3px #0f172a0d}.status-footer .intro-hint{margin-left:auto}.status-head h1{font-size:20px}.status-lede{margin-top:6px;margin-bottom:18px;color:var(--text-muted);font-size:13.5px;max-width:720px}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.status-table{border-collapse:collapse;width:100%;font-size:13px}.status-table th,.status-table td{padding:8px 10px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-align:center;white-space:nowrap}.status-table th:last-child,.status-table td:last-child{border-right:0}.status-table thead th{position:sticky;top:0;background:var(--bg);font-size:11.5px;font-weight:600;letter-spacing:.03em;color:var(--text-muted);text-transform:uppercase}.status-table .col-user{text-align:left;position:sticky;left:0;background:var(--surface);border-right:1px solid var(--border);min-width:190px}.status-table thead .col-user{background:var(--bg);z-index:1}.user-name{display:block;font-weight:600}.user-meta{display:block;font-size:11.5px;color:var(--text-muted)}.col-total{display:block;font-size:10px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-muted)}.cell{font-variant-numeric:tabular-nums}.cell .pct{font-size:10px;color:var(--text-muted);margin-left:1px}.cell-overall{font-weight:600;border-left:1px solid var(--border)}.cell-sub{display:block;font-size:10.5px;font-weight:400;color:var(--text-muted)}.col-when{color:var(--text-muted);font-size:12px}.status-table tfoot td{border-top:2px solid var(--border-strong);border-bottom:0;font-weight:600;background:var(--bg)}.status-table .cell{position:relative;background-clip:padding-box}.status-table .cell:not([style]){color:var(--text-muted)}.content-menu{flex:0 0 auto;display:flex;align-items:center;gap:2px;padding:6px 20px;border-bottom:1px solid var(--border);background:var(--surface)}.menu-item{padding:5px 10px;border:0;border-radius:var(--radius);background:transparent;color:var(--text);font:inherit;font-size:13px;cursor:pointer}.menu-item:hover{background:#eef1f5}.menu-trigger.open{background:var(--accent-soft);color:var(--accent)}.menu-caret{font-size:9px;color:var(--text-muted)}.menu-dropdown{position:relative}.menu-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:20;min-width:330px;padding:6px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 6px 18px #0f172a1f}.menu-group+.menu-group{margin-top:4px;padding-top:4px;border-top:1px solid var(--border)}.menu-group-title{padding:6px 10px 4px;font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-option{display:flex;align-items:baseline;gap:12px;width:100%;padding:6px 10px;border:0;border-radius:var(--radius);background:transparent;color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer}.menu-option:hover:not(:disabled){background:var(--accent-soft)}.menu-option:disabled{color:var(--text-muted);opacity:.55;cursor:default}.menu-option-hint{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--text-muted);white-space:nowrap}.menu-spacer{flex:1 1 auto}.menu-context{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
