:root{--navy: #1e2342;--navy-700: #2b3358;--navy-900: #141834;--cyan: #1c9fd6;--cyan-050: #e9f6fc;--cyan-100: #cfebf8;--cyan-700: #0a6f9e;--bg: #f4f6fa;--surface: #ffffff;--surface-2: #f8fafc;--text: #1a2030;--text-2: #3c4557;--muted: #5b6478;--border: #dde3ec;--border-strong: #c5cede;--ok: #1e8e5a;--ok-bg: #e4f5ec;--warn: #9a6400;--warn-bg: #fbf0dc;--danger: #c0392b;--danger-bg: #f7e4e2;--radius: 12px;--radius-sm: 8px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(20, 24, 52, .06), 0 1px 3px rgba(20, 24, 52, .07);--shadow-md: 0 4px 14px rgba(20, 24, 52, .09), 0 2px 6px rgba(20, 24, 52, .05);--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", sans-serif;--shell-max: 940px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:15px;line-height:1.55;color:var(--text);background:var(--bg);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{line-height:1.25;color:var(--text)}h2{font-size:1.15rem;margin:0 0 var(--s-3);letter-spacing:-.01em}h3{font-size:1rem;margin:var(--s-5) 0 var(--s-2)}p{margin:0 0 var(--s-3)}a{color:var(--cyan-700);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:3px solid var(--cyan);outline-offset:2px;border-radius:4px}.app-shell{max-width:var(--shell-max);margin:0 auto;padding:var(--s-6) var(--s-5) var(--s-7)}@media(max-width:600px){.app-shell{padding:var(--s-4) var(--s-4) var(--s-7)}}.topbar{display:flex;align-items:center;gap:var(--s-4);padding:var(--s-3) var(--s-5);background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.topbar .brand{display:flex;align-items:center;gap:var(--s-3);min-width:0}.topbar .brand img{height:26px;width:auto;display:block}.topbar .brand .ctx{font-size:.85rem;color:var(--muted);padding-left:var(--s-3);border-left:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .spacer{flex:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:var(--s-5);margin-bottom:var(--s-4)}.card>h2:first-child{margin-top:0}.card-hint{color:var(--muted);font-size:.88rem;margin-top:-4px}.section-head{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4)}.section-head h2{margin:0}.section-head .spacer{flex:1}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--s-4)}.field>label{font-weight:600;font-size:.9rem;color:var(--text-2)}.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=number],.field input[type=date],.field input[type=url],.field textarea,.field select{font:inherit;font-size:16px;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);width:100%;transition:border-color .12s ease,box-shadow .12s ease}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px var(--cyan-050)}.field textarea{min-height:92px;resize:vertical}.field .help-text{color:var(--muted);font-size:.8rem}.field-checkbox{flex-direction:row;align-items:center;gap:var(--s-2)}.field-checkbox input{width:18px;height:18px;accent-color:var(--cyan-700)}.check{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-pill);font-size:.88rem;cursor:pointer;background:var(--surface)}.check input{accent-color:var(--cyan-700)}.check:has(input:checked){border-color:var(--cyan);background:var(--cyan-050);color:var(--navy)}button,.btn{font:inherit;font-weight:600;font-size:.92rem;cursor:pointer;border:1px solid var(--navy);background:var(--navy);color:#fff;padding:10px 18px;border-radius:var(--radius-sm);transition:background .12s ease,border-color .12s ease,opacity .12s ease;min-height:42px}button:hover,.btn:hover{background:var(--navy-700);border-color:var(--navy-700)}button.secondary{background:var(--surface);color:var(--navy);border-color:var(--border-strong)}button.secondary:hover{background:var(--surface-2);border-color:var(--muted)}button.ghost{background:transparent;border-color:transparent;color:var(--cyan-700);padding-left:8px;padding-right:8px}button.ghost:hover{background:var(--cyan-050)}button.danger{background:transparent;color:var(--danger);border-color:var(--danger)}button.danger:hover{background:var(--danger-bg)}button:disabled{opacity:.45;cursor:not-allowed}button:disabled:hover{background:var(--navy);border-color:var(--navy)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--border);font-size:.9rem}th{color:var(--muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}tbody tr:hover{background:var(--surface-2)}tbody tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:3px 10px;border-radius:var(--radius-pill);font-size:.75rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.badge.draft{background:#eef1f6;color:var(--muted)}.badge.active{background:var(--cyan-050);color:var(--cyan-700)}.badge.submitted{background:var(--ok-bg);color:var(--ok)}.badge.closed{background:#eceef2;color:var(--text-2)}.badge.paid{background:var(--ok-bg);color:var(--ok)}.badge.unpaid{background:var(--warn-bg);color:var(--warn)}.row{display:flex;gap:var(--s-3);flex-wrap:wrap;align-items:center}.spacer{flex:1}.muted{color:var(--muted)}.error{color:var(--danger);font-size:.9rem;background:var(--danger-bg);border:1px solid #eab9b3;border-radius:var(--radius-sm);padding:8px 12px}.notice{background:var(--cyan-050);border:1px solid var(--cyan-100);border-radius:var(--radius-sm);padding:12px 14px;font-size:.9rem;color:var(--text-2)}.progress{height:8px;background:#e7ebf2;border-radius:var(--radius-pill);overflow:hidden}.progress>span{display:block;height:100%;background:var(--cyan);border-radius:inherit;transition:width .3s ease}.timeline{list-style:none;margin:0;padding:0}.timeline li{position:relative;display:flex;gap:var(--s-4);padding:0 0 var(--s-5) 0}.timeline li:last-child{padding-bottom:0}.timeline .marker{position:relative;flex:none;width:28px;display:flex;justify-content:center}.timeline .marker:before{content:"";position:absolute;top:26px;bottom:-4px;width:2px;background:var(--border)}.timeline li:last-child .marker:before{display:none}.timeline .dot{width:26px;height:26px;border-radius:50%;border:2px solid var(--border-strong);background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:var(--muted);z-index:1}.timeline li.done .dot{background:var(--ok);border-color:var(--ok);color:#fff}.timeline li.current .dot{background:var(--cyan);border-color:var(--cyan);color:#fff;box-shadow:0 0 0 4px var(--cyan-050)}.timeline li.locked{opacity:.55}.timeline .body{padding-top:2px}.timeline .body strong{display:block;font-size:.98rem}.timeline .body .meta{color:var(--muted);font-size:.83rem}.timeline li.current .body strong{color:var(--cyan-700)}.accordion{border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:var(--s-3);overflow:hidden;background:var(--surface)}.accordion>summary{padding:13px 16px;cursor:pointer;font-weight:600;font-size:.95rem;background:var(--surface-2);list-style:none;display:flex;align-items:center;gap:var(--s-2)}.accordion>summary::-webkit-details-marker{display:none}.accordion>summary>span:first-child{flex:1}.accordion>summary:after{content:"";flex:none;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .15s ease}.accordion[open]>summary:after{transform:rotate(45deg)}.accordion[data-locked=true]>summary{color:var(--muted);cursor:default}.accordion[data-locked=true]>summary:after{border-color:var(--border-strong)}.accordion .accordion-body{padding:var(--s-4) var(--s-4) var(--s-2)}.accordion .sec-status{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:2px 8px;border-radius:var(--radius-pill)}.accordion .sec-status.done{background:var(--ok-bg);color:var(--ok)}.accordion .sec-status.todo{background:#eef1f6;color:var(--muted)}.accordion .sec-status.lock{background:var(--warn-bg);color:var(--warn)}.list-item{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--s-4);margin-bottom:var(--s-3);background:var(--surface-2)}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius);padding:var(--s-5);text-align:center;background:var(--surface-2);color:var(--muted)}.bucket-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--s-3)}.bucket{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--s-3) var(--s-4);background:var(--surface)}.bucket .name{font-weight:600;font-size:.9rem;display:flex;align-items:center;justify-content:space-between}.bucket ul{margin:var(--s-2) 0 0;padding-left:18px;font-size:.85rem;color:var(--text-2)}.bucket .empty{font-size:.83rem;color:var(--muted);margin-top:4px}.checklist{list-style:none;margin:0;padding:0}.checklist li{display:flex;align-items:flex-start;gap:var(--s-3);padding:10px 0;border-bottom:1px solid var(--border);font-size:.92rem}.checklist li:last-child{border-bottom:none}.checklist li.done{color:var(--muted)}.checklist li.done .cl-label{text-decoration:line-through}.checklist .cl-box{flex:none;width:20px;height:20px;border-radius:6px;border:2px solid var(--border-strong);margin-top:1px;display:flex;align-items:center;justify-content:center}.checklist li.done .cl-box{background:var(--ok);border-color:var(--ok);color:#fff}.checklist .cl-auto{font-size:.75rem;color:var(--muted)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:var(--s-5);overflow-x:auto}.tabs button{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);border-radius:0;padding:10px 14px;min-height:0;white-space:nowrap}.tabs button:hover{background:var(--surface-2);color:var(--text)}.tabs button[aria-selected=true]{color:var(--navy);border-bottom-color:var(--cyan)}.centered{min-height:100%;display:flex;align-items:center;justify-content:center;padding:var(--s-5)}.centered .box{width:100%;max-width:400px}.centered .box .brand-lockup{text-align:center;margin-bottom:var(--s-5)}.centered .box .brand-lockup img{height:34px}.pin-input{font-size:1.6rem!important;letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums}.copy-row{display:flex;gap:var(--s-2);align-items:stretch}.copy-row input{flex:1}.markdown h2{font-size:1.05rem;margin:var(--s-5) 0 var(--s-2)}.markdown h2:first-child{margin-top:0}.markdown h3{font-size:.95rem}.markdown p{color:var(--text-2)}.markdown p:last-child{margin-bottom:0}
