:root{--charcoal:#2b2828;--charcoal-dark:#201d1d;--charcoal-deep:#141312;--gold:#c8922a;--gold-soft:#e7c88a;--gold-light:#fef3dc;--gold-line:#ecd9ae;--bg:#f3f0ea;--card:#fff;--ink:#2b2828;--ink-soft:#6b6b6b;--ink-faint:#9a958d;--line:#e6e2db;--line-soft:#efece6;--good:#1e7d46;--good-bg:#e3f1e8;--bad:#b3261e;--bad-bg:#fbe7e5;--pend:#8a5a00;--pend-bg:#f8eccf;--info:#2f5d86;--info-bg:#e7eef5;--fs-xs:11px;--fs-sm:12px;--fs-base:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:26px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--radius:12px;--radius-sm:8px;--radius-xs:6px;--shadow-sm:0 1px 2px #1e1b1b0d, 0 1px 3px #1e1b1b0d;--shadow-md:0 1px 2px #1e1b1b0d, 0 4px 16px #1e1b1b0f;--shadow-lg:0 8px 30px #14131229;--ease:.15s cubic-bezier(.2,.6,.2,1);--fill-subtle:#faf8f4;--row-hover:#1413120d}:root[data-theme=dark]{--bg:#1b1917;--card:#232020;--ink:#f2efe9;--ink-soft:#aaa49b;--ink-faint:#807a70;--line:#38332f;--line-soft:#2d2926;--good:#46c479;--good-bg:#18301f;--bad:#ef847d;--bad-bg:#3a1f1e;--pend:#e0a23c;--pend-bg:#322a17;--info:#6ea8da;--info-bg:#1a2a3a;--gold-light:#2e2716;--gold-line:#574a2c;--fill-subtle:#2c2825;--row-hover:#ffffff0f;--shadow-sm:0 1px 2px #0006, 0 1px 3px #00000059;--shadow-md:0 1px 2px #0006, 0 4px 16px #0006;--shadow-lg:0 8px 30px #0000008c}:root[data-theme=dark] tbody tr:hover td,:root[data-theme=dark] .btn-secondary:hover,:root[data-theme=dark] button.secondary:hover,:root[data-theme=dark] .btn-ghost:hover,:root[data-theme=dark] .step-num,:root[data-theme=dark] .drop-zone,:root[data-theme=dark] .wbs-row:hover,:root[data-theme=dark] .assign-chip,:root[data-theme=dark] .review-card-header:hover,:root[data-theme=dark] .review-narrative,:root[data-theme=dark] .bulk-bar,:root[data-theme=dark] .review-steps-head,:root[data-theme=dark] .doc-link:hover,:root[data-theme=dark] .disp-choice.on,:root[data-theme=dark] .picker-results li button:hover,:root[data-theme=dark] .picker-chip,:root[data-theme=dark] .roc-table tbody tr:hover,:root[data-theme=dark] .mode-pill{background:var(--fill-subtle)}:root[data-theme=dark] .reorder-btn,:root[data-theme=dark] .step-remove,:root[data-theme=dark] .step-activity-row,:root[data-theme=dark] .review-step .rs-check,:root[data-theme=dark] .doc-link{background:var(--card)}:root[data-theme=dark] .btn-secondary,:root[data-theme=dark] button.secondary,:root[data-theme=dark] .signin-logo .mark{color:var(--ink)}:root[data-theme=dark] .btn-secondary:hover,:root[data-theme=dark] button.secondary:hover,:root[data-theme=dark] .drop-zone,:root[data-theme=dark] .error-box,:root[data-theme=dark] .info-box,:root[data-theme=dark] .review-step .rs-check,:root[data-theme=dark] .step-activity-row.covered,:root[data-theme=dark] .disp-choice:hover{border-color:var(--line)}:root[data-theme=dark] .badge-draft,:root[data-theme=dark] .badge-superseded,:root[data-theme=dark] .archived-chip{background:#312d29}:root[data-theme=dark] .btn-primary:disabled,:root[data-theme=dark] button.primary:disabled{color:var(--ink-faint);background:#3a3633}:root[data-theme=dark] .btn-danger:disabled,:root[data-theme=dark] button.danger:disabled{background:#5a2f2c}:root[data-theme=dark] .chip-variation{color:var(--pend)}:root[data-theme=dark] .chip-disp{background:var(--good-bg);color:var(--good)}.app-menu{display:inline-flex;position:relative}.menu-btn{width:34px;height:34px;min-height:0;margin-left:var(--sp-1);color:#fff;cursor:pointer;border-radius:var(--radius-sm);opacity:.85;transition:opacity var(--ease), background var(--ease);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.menu-btn:hover{opacity:1;background:#ffffff1a}.menu-pop{background:var(--card);min-width:210px;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:200;padding:6px;position:absolute;top:calc(100% + 8px);right:0}.menu-row{justify-content:flex-start;align-items:center;gap:var(--sp-3);width:100%;min-height:40px;padding:var(--sp-2) var(--sp-3);color:var(--ink);font:inherit;font-size:var(--fs-md);text-align:left;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--ease);background:0 0;border:none;font-weight:600;display:flex}.menu-row:hover{background:var(--row-hover)}.menu-row:active{transform:none}.menu-ic{color:var(--ink-soft);flex:none;display:flex}.menu-label{flex:1}.menu-div{background:var(--line);height:1px;margin:4px}.switch{background:var(--line);width:40px;height:22px;transition:background var(--ease);border-radius:999px;flex:none;position:relative}.switch.on{background:var(--gold)}.switch .knob{width:16px;height:16px;transition:transform var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000059}.switch.on .knob{transform:translate(18px)}*,:before,:after{box-sizing:border-box}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:var(--fs-base);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.5}.navbar{background:var(--charcoal-deep);color:#fff;align-items:center;gap:var(--sp-2);height:54px;padding:0 var(--sp-5);z-index:100;display:flex;position:sticky;top:0;box-shadow:inset 0 -1px #ffffff0f}.navbar .brand{font-size:var(--fs-lg);letter-spacing:-.01em;margin-right:var(--sp-5);color:#fff;align-items:center;gap:9px;font-weight:700;display:inline-flex}.navbar a{color:#ffffffa8;font-size:var(--fs-base);padding:var(--sp-1) var(--sp-3);border-radius:var(--radius-xs);transition:color var(--ease), background var(--ease);font-weight:550;text-decoration:none}.navbar a:hover{color:#fff;background:#ffffff14}.navbar a.active{color:#fff;background:#ffffff1f}.spacer{flex:1}.nav-user{font-size:var(--fs-base);color:#ffffff94}.nav-signout{color:#ffffffd9;padding:var(--sp-1) var(--sp-3);border-radius:var(--radius-xs);font-size:var(--fs-sm);cursor:pointer;margin-left:var(--sp-2);transition:background var(--ease), border-color var(--ease);background:0 0;border:1px solid #ffffff38;font-weight:550}.nav-signout:hover{color:#fff;background:#ffffff1a;border-color:#ffffff57}.nav-install{background:var(--gold);border:1px solid var(--gold);color:var(--charcoal-deep);padding:var(--sp-1) var(--sp-3);border-radius:var(--radius-xs);font-size:var(--fs-sm);cursor:pointer;margin-right:var(--sp-2);transition:filter var(--ease);font-weight:650}.nav-install:hover{filter:brightness(1.07)}.subnav{background:var(--card);border-bottom:1px solid var(--line);align-items:center;gap:var(--sp-1);padding:0 var(--sp-5);height:44px;display:flex}.subnav a{font-size:var(--fs-base);color:var(--ink-soft);padding:0 var(--sp-2);height:44px;transition:color var(--ease);border-bottom:2px solid #0000;align-items:center;margin-bottom:-1px;font-weight:550;text-decoration:none;display:inline-flex;position:relative}.subnav a:hover{color:var(--ink)}.subnav a.active{color:var(--ink);border-bottom-color:var(--gold);font-weight:650}.subnav .proj-code{font-size:var(--fs-sm);color:var(--ink-faint);margin-right:var(--sp-3)}.main{max-width:1120px;padding:var(--sp-6) var(--sp-5);margin:0 auto}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5);margin-bottom:var(--sp-4);box-shadow:var(--shadow-md)}.card-title{font-size:var(--fs-md);letter-spacing:-.01em;margin:0 0 var(--sp-4);font-weight:650}.page-header{justify-content:space-between;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-5);display:flex}.page-header h1{font-size:var(--fs-xl);letter-spacing:-.02em;margin:0;font-weight:700}table{border-collapse:collapse;width:100%}th{text-align:left;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);background:0 0;font-weight:650}td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line-soft);vertical-align:middle}tr:last-child td{border-bottom:none}tbody tr{transition:background var(--ease)}tbody tr:hover td{background:#faf8f4}button,.btn{justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-sm);font-size:var(--fs-base);letter-spacing:-.005em;cursor:pointer;transition:background var(--ease), border-color var(--ease), box-shadow var(--ease), transform var(--ease), color var(--ease);border:none;font-family:inherit;font-weight:600;text-decoration:none;display:inline-flex}button:active,.btn:active{transform:translateY(1px)}.btn-primary,button.primary{background:var(--charcoal);color:#fff;box-shadow:0 1px 2px #1e1b1b29,0 2px 8px #1e1b1b1f}.btn-primary:hover,button.primary:hover{background:var(--charcoal-dark)}.btn-primary:disabled,button.primary:disabled{box-shadow:none;cursor:not-allowed;background:#bdb8b4;transform:none}.btn-secondary,button.secondary{background:var(--card);color:var(--charcoal);border:1px solid var(--line);box-shadow:var(--shadow-sm)}.btn-secondary:hover,button.secondary:hover{background:#faf9f7;border-color:#d8d3cb}.btn-danger,button.danger{background:var(--bad);color:#fff}.btn-danger:hover,button.danger:hover{background:#9c211b}.btn-danger:disabled,button.danger:disabled{cursor:not-allowed;background:#d8a6a2;transform:none}.btn-ghost{color:var(--ink-soft);background:0 0;border:1px solid #0000}.btn-ghost:hover{color:var(--ink);background:#ece8e1}button:disabled{opacity:.55;cursor:not-allowed}button:disabled:active{transform:none}.btn-group{gap:var(--sp-2);flex-wrap:wrap;display:flex}.badge{font-size:var(--fs-xs);letter-spacing:.01em;border-radius:999px;padding:2px 9px;font-weight:650;line-height:1.6;display:inline-block}.badge-submitted{background:var(--pend-bg);color:var(--pend)}.badge-approved{background:var(--good-bg);color:var(--good)}.badge-rejected{background:var(--bad-bg);color:var(--bad)}.badge-draft{color:var(--ink-soft);background:#ece9e3}.badge-superseded{color:var(--ink-faint);background:#ece9e3}.badge-locked{background:var(--info-bg);color:var(--info)}.badge-open{background:var(--pend-bg);color:var(--pend)}.field{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-direction:column;display:flex}.field span,.field label{font-size:var(--fs-base);color:var(--ink);letter-spacing:-.005em;font-weight:600}.field input,.field textarea,.field select{padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:var(--fs-md);background:var(--card);color:var(--ink);transition:border-color var(--ease), box-shadow var(--ease);font-family:inherit}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--gold-soft);outline:none;box-shadow:0 0 0 3px #c8922a29}.field textarea{resize:vertical;min-height:80px;line-height:1.5}.error-box{background:var(--bad-bg);border-radius:var(--radius-sm);padding:var(--sp-3) var(--sp-4);color:var(--bad);font-size:var(--fs-base);margin-bottom:var(--sp-4);border:1px solid #f1c4c0}.info-box{background:var(--info-bg);border-radius:var(--radius-sm);padding:var(--sp-3) var(--sp-4);color:var(--info);font-size:var(--fs-base);margin-bottom:var(--sp-4);border:1px solid #c5d6e6;line-height:1.55}.warn-box{background:var(--gold-light);border:1px solid var(--gold-line);border-radius:var(--radius-sm);padding:var(--sp-3) var(--sp-4);color:var(--pend);font-size:var(--fs-base);margin-bottom:var(--sp-4)}.muted{color:var(--ink-soft);font-size:var(--fs-base)}.signin-wrap{background:var(--bg);min-height:100vh;padding:var(--sp-5);flex-direction:column;justify-content:center;align-items:center;display:flex}.signin-logo{text-align:center;margin-bottom:var(--sp-6)}.signin-logo .brandmark{margin:0 auto var(--sp-4);display:block}.signin-logo .mark{font-size:var(--fs-2xl);color:var(--charcoal);letter-spacing:-.02em;font-weight:800;display:inline-block}.signin-logo .sub{font-size:var(--fs-md);color:var(--ink-soft);margin-top:var(--sp-3)}.wm-step{color:#c8922a}.signin-wrap .card{width:100%;max-width:380px;box-shadow:var(--shadow-md);flex-direction:column;gap:0;display:flex}.signin-wrap button.primary{width:100%;min-height:46px;margin-top:var(--sp-1);justify-content:center}.signin-wrap a{color:var(--gold);font-weight:600;text-decoration:none}.signin-wrap a:hover{text-decoration:underline}.plan-options{margin-top:var(--sp-2);flex-direction:column;gap:10px;display:flex}.plan-option{justify-content:space-between;align-items:center;gap:var(--sp-3);text-align:left;width:100%;font:inherit;cursor:pointer;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--card);color:var(--ink);transition:border-color var(--ease), background var(--ease);padding:14px 16px;display:flex}.plan-option:hover{border-color:var(--gold-soft)}.plan-option.selected{border-color:var(--gold);background:#c8922a1a}.plan-option .po-left{align-items:center;gap:var(--sp-3);display:flex}.plan-option .po-radio{border:2px solid var(--line);border-radius:50%;flex:none;width:18px;height:18px;position:relative}.plan-option.selected .po-radio{border-color:var(--gold)}.plan-option.selected .po-radio:after{content:"";background:var(--gold);border-radius:50%;position:absolute;inset:3px}.plan-option .po-text{flex-direction:column;gap:2px;display:flex}.plan-option .po-name{align-items:center;gap:var(--sp-2);font-weight:650;font-size:var(--fs-md);color:var(--ink);display:inline-flex}.plan-option .po-sub{font-size:var(--fs-sm);color:var(--ink-soft)}.plan-option .po-badge{font-size:var(--fs-xs);color:var(--gold);background:#c8922a29;border-radius:999px;padding:2px 8px;font-weight:700}.plan-option .po-badge.green{color:var(--good);background:var(--good-bg)}.plan-option .po-pricewrap{flex-direction:column;align-items:flex-end;gap:1px;display:flex}.plan-option .po-price{font-weight:700;font-size:var(--fs-md);color:var(--ink);white-space:nowrap}.plan-option .po-period{font-size:var(--fs-sm);color:var(--ink-soft)}.account-page{max-width:760px}.account-page h1{font-size:var(--fs-xl);margin:0 0 var(--sp-4)}.account-section{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5);margin-bottom:var(--sp-4)}.account-section h2{margin:0 0 var(--sp-3);font-size:var(--fs-lg)}.account-section .muted{color:var(--ink-soft);font-size:var(--fs-base);margin:0 0 var(--sp-3)}.account-dl{gap:var(--sp-3) var(--sp-4);margin:0 0 var(--sp-4);grid-template-columns:1fr 1fr;display:grid}.account-dl>div{flex-direction:column;gap:2px;display:flex}.account-dl dt{font-size:var(--fs-sm);color:var(--ink-soft)}.account-dl dd{margin:0;font-weight:600}.inline-form{gap:var(--sp-2);display:flex}.inline-form input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);color:var(--ink);flex:1;padding:9px 12px}.inline-form input:focus{border-color:var(--gold-soft);outline:none}.device-list{margin:var(--sp-2) 0 0;padding:0;list-style:none}.device-row{align-items:center;gap:4px var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--line-soft);flex-wrap:wrap;display:flex}.device-row:last-child{border-bottom:none}.device-name{font-weight:650}.badge-this{font-size:var(--fs-xs);color:var(--gold);background:#c8922a29;border-radius:999px;margin-left:8px;padding:1px 8px;font-weight:700}.device-meta{color:var(--ink-soft);font-size:var(--fs-sm);flex:1}.device-actions{gap:var(--sp-4);display:flex}.link-btn{color:var(--gold);font-weight:600;font-size:var(--fs-base);cursor:pointer;background:0 0;border:none;padding:0}.link-btn:hover{text-decoration:underline}.link-btn.danger{color:var(--bad)}.drop-overlay{z-index:60;pointer-events:none;background:#14131280;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.drop-overlay-inner{background:var(--card);border:2px dashed var(--gold);border-radius:var(--radius);padding:var(--sp-6);text-align:center;box-shadow:var(--shadow-lg)}.drop-overlay-inner .drop-icon{font-size:40px}.drop-overlay-inner .drop-title{font-size:var(--fs-lg);margin-top:var(--sp-2);font-weight:700}.loading{min-height:100vh;color:var(--ink-soft);font-size:var(--fs-md);justify-content:center;align-items:center;display:flex}.access-denied{text-align:center;min-height:100vh;padding:var(--sp-5);flex-direction:column;justify-content:center;align-items:center;display:flex}.access-denied h2{margin-bottom:var(--sp-2);letter-spacing:-.01em;font-weight:700}.access-denied p{color:var(--ink-soft);margin-bottom:var(--sp-5)}.wizard-steps{gap:var(--sp-2);margin-bottom:var(--sp-6);display:flex}.wizard-step{align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:var(--fs-base);color:var(--ink-faint);box-shadow:var(--shadow-sm);transition:background var(--ease), color var(--ease), border-color var(--ease);flex:1;font-weight:550;display:flex}.wizard-step.active{background:var(--charcoal);color:#fff;border-color:var(--charcoal);font-weight:650}.wizard-step.done{background:var(--card);color:var(--good);border-color:var(--good-bg)}.step-num{width:20px;height:20px;color:var(--ink-soft);font-size:var(--fs-xs);background:#ece8e1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.wizard-step.active .step-num{color:#fff;background:#ffffff38}.wizard-step.done .step-num{background:var(--good);color:#fff}.drop-zone{border-radius:var(--radius);padding:var(--sp-6) var(--sp-6);text-align:center;cursor:pointer;transition:border-color var(--ease), background var(--ease);background:#faf8f4;border:1.5px dashed #cfc8bc}.drop-zone:hover,.drop-zone.over{border-color:var(--gold-soft);background:var(--gold-light)}.drop-zone .drop-icon{margin-bottom:var(--sp-3);opacity:.45;font-size:34px}.drop-zone .drop-title{font-size:var(--fs-md);margin-bottom:var(--sp-1);letter-spacing:-.01em;font-weight:650}.drop-zone .drop-hint{font-size:var(--fs-base);color:var(--ink-soft)}.drop-zone input[type=file]{display:none}.parse-summary{gap:var(--sp-6);margin-bottom:var(--sp-5);flex-wrap:wrap;display:flex}.parse-stat{text-align:center}.parse-stat .stat-val{font-size:var(--fs-2xl);color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:750}.parse-stat .stat-label{font-size:var(--fs-sm);color:var(--ink-soft);margin-top:2px}.warnings-list{margin:0;padding:0;list-style:none}.warnings-list li{font-size:var(--fs-sm);color:var(--pend);padding:3px 0}.warnings-list li:before{content:"⚠ "}.wbs-layout{gap:var(--sp-4);grid-template-columns:1fr 360px;align-items:start;display:grid}.wbs-tree{font-size:var(--fs-base)}.wbs-row{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-xs);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--ease);border-left:2px solid #0000;display:flex}.wbs-row:hover{background:#faf8f4}.wbs-row.selected{background:var(--gold-light);border-left-color:var(--gold)}.wbs-toggle{width:16px;color:var(--ink-faint);flex-shrink:0;font-size:10px}.wbs-name{color:var(--ink);flex:1}.wbs-code{font-size:var(--fs-sm);color:var(--ink-faint);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.wbs-assign-count{font-size:var(--fs-xs);background:var(--charcoal);color:#fff;text-align:center;border-radius:999px;min-width:20px;padding:1px 8px;font-weight:650}.wbs-children{padding-left:20px}.assignment-panel .card-title{margin-bottom:var(--sp-3)}.assign-chip{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--line-soft);border-radius:var(--radius-sm);margin-bottom:var(--sp-2);font-size:var(--fs-base);background:#f6f4f0;display:flex}.assign-chip .chip-name{flex:1}.assign-chip .chip-revoke{color:var(--bad);cursor:pointer;font-size:var(--fs-sm);padding:0 var(--sp-1);background:0 0;border:none;font-weight:600}.assign-chip .chip-revoke:hover{text-decoration:underline}.panel-label{font-size:var(--fs-xs);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--sp-2);font-weight:650}.review-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);margin-bottom:var(--sp-3);box-shadow:var(--shadow-sm);transition:box-shadow var(--ease);overflow:hidden}.review-card.open{box-shadow:var(--shadow-md)}.review-card-header{align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--sp-4);cursor:pointer;transition:background var(--ease);border-bottom:1px solid #0000;display:flex}.review-card.open .review-card-header{border-bottom-color:var(--line)}.review-card-header:hover{background:#faf8f4}.review-pct{font-size:var(--fs-xl);color:var(--ink);text-align:right;letter-spacing:-.02em;font-variant-numeric:tabular-nums;min-width:58px;font-weight:750}.review-activity{flex:1;min-width:0}.review-activity .act-id{font-size:var(--fs-xs);color:var(--ink-faint);letter-spacing:.02em;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.review-activity .act-name{font-weight:650;font-size:var(--fs-md);letter-spacing:-.01em;margin-top:1px}.review-meta{font-size:var(--fs-sm);color:var(--ink-soft);text-align:right;line-height:1.45}.review-body{padding:var(--sp-4)}.review-narrative{font-size:var(--fs-md);color:var(--ink);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:var(--sp-3) var(--sp-3);margin-bottom:var(--sp-4);white-space:pre-wrap;background:#f6f4f0;line-height:1.55}.photos-grid{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.photos-grid img{object-fit:cover;border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--line);width:124px;height:92px;box-shadow:var(--shadow-sm);transition:border-color var(--ease), transform var(--ease)}.photos-grid img:hover{border-color:var(--gold-soft);transform:translateY(-1px)}.review-actions{gap:var(--sp-3);flex-wrap:wrap;align-items:flex-start;display:flex}.review-actions .field{flex:1;min-width:220px;margin-bottom:0}.review-grid{gap:var(--sp-4);flex-wrap:wrap;align-items:flex-start;display:flex}.review-main{flex:360px;min-width:300px}.review-side{gap:var(--sp-3);flex-direction:column;flex:0 0 320px;max-width:360px;display:flex}.review-video-box{flex-direction:column;gap:6px;display:flex}.review-video-box video{aspect-ratio:4/3;object-fit:contain;border-radius:var(--radius-sm);background:#000;width:100%}.review-video-dl{font-size:var(--fs-sm);color:var(--gold);align-self:flex-start;font-weight:600;text-decoration:none}.review-video-dl:hover{text-decoration:underline}.review-narrative-block{flex-direction:column;gap:6px;display:flex}.review-narrative-label{font-size:var(--fs-sm);color:var(--ink-soft);font-weight:650}.review-side .review-narrative{margin:0}.review-narrative.empty{color:var(--ink-faint);background:#faf8f4;font-style:italic}.lightbox{z-index:300;background:#141312e0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox img{border-radius:var(--radius-sm);max-width:90vw;max-height:90vh;box-shadow:var(--shadow-lg)}.lightbox-close{color:#fff;cursor:pointer;background:#ffffff1f;border:none;border-radius:50%;width:40px;height:40px;font-size:24px;line-height:1;position:absolute;top:20px;right:24px}.lightbox-close:hover{background:#fff3}.snapshot-row td:first-child{font-weight:650}.snapshot-actions{gap:var(--sp-2);display:flex}.modal-backdrop{z-index:200;padding:var(--sp-5);background:#1413126b;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--card);border-radius:var(--radius);padding:var(--sp-6);width:100%;max-width:480px;max-height:90vh;box-shadow:var(--shadow-lg);overflow-y:auto}.modal h3{margin:0 0 var(--sp-5);font-size:var(--fs-lg);letter-spacing:-.01em;font-weight:700}.modal-footer{gap:var(--sp-2);margin-top:var(--sp-5);justify-content:flex-end;display:flex}.qr-wrap{text-align:center}.qr-wrap img{width:200px;height:200px;margin:var(--sp-4) auto;border-radius:var(--radius-sm);display:block}.qr-link-box{font-size:var(--fs-sm);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);word-break:break-all;color:var(--ink-soft);margin-bottom:var(--sp-3);background:#f6f4f0;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.qr-meta{font-size:var(--fs-sm);color:var(--ink-soft)}.wbs-head{font-size:var(--fs-sm);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.chip{font-size:var(--fs-sm);background:var(--info-bg);color:var(--info);border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-weight:650;display:inline-flex}.covered-chip{background:var(--good-bg);color:var(--good)}.archived-chip{color:var(--ink-faint);margin-left:var(--sp-2);background:#ece9e3}.wbs-assign-count.full{background:var(--good)}.template-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.template-card{padding:var(--sp-4);flex-direction:column;display:flex}.template-card.archived{opacity:.65}.template-card-head{justify-content:space-between;align-items:baseline;display:flex}.template-steps{margin:var(--sp-3) 0;border-top:1px solid var(--line-soft);flex:1;padding:0;list-style:none}.template-steps li{justify-content:space-between;gap:var(--sp-3);border-bottom:1px solid var(--line-soft);font-size:var(--fs-md);padding:6px 0;display:flex}.template-steps .ts-name{color:var(--ink)}.template-steps .ts-weight{color:var(--gold);font-variant-numeric:tabular-nums;font-weight:700}.template-actions{margin-top:auto}.modal.step-editor{width:92vw;max-width:560px}.step-editor-rows{gap:var(--sp-2);margin-top:var(--sp-2);flex-direction:column;display:flex}.step-editor-row{align-items:center;gap:var(--sp-2);display:flex}.step-reorder{flex-direction:column;gap:2px;display:flex}.reorder-btn{border:1px solid var(--line);width:22px;height:18px;color:var(--ink-soft);border-radius:var(--radius-xs);cursor:pointer;background:#fff;padding:0;font-size:9px;line-height:1}.reorder-btn:disabled{opacity:.35;cursor:not-allowed}.step-name-input{flex:1}.step-weight-input{text-align:right;flex:none;width:72px}.step-editor-row .step-share{text-align:right;width:42px;color:var(--ink-faint);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;flex:none}.step-remove{border-radius:var(--radius-xs);border:1px solid var(--line);width:28px;height:28px;color:var(--ink-faint);cursor:pointer;background:#fff;flex:none;font-size:12px}.step-remove:hover:not(:disabled){background:var(--bad-bg);color:var(--bad);border-color:var(--bad-bg)}.step-remove:disabled{opacity:.35;cursor:not-allowed}.step-editor .field input,.step-editor .field{margin-bottom:var(--sp-3)}.bulk-bar{gap:var(--sp-2);padding:var(--sp-3);margin:var(--sp-3) 0;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:#faf8f4;flex-wrap:wrap;align-items:center;display:flex}.bulk-bar select{min-width:180px}.step-activity-list{gap:var(--sp-2);margin-top:var(--sp-2);flex-direction:column;display:flex}.step-activity-row{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;display:flex}.step-activity-row.covered{background:var(--good-bg);border-color:#cfe6d8}.sa-main{flex:1;min-width:0}.sa-id{font-size:var(--fs-xs);color:var(--ink-faint);letter-spacing:.02em;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.sa-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin:1px 0 3px;font-weight:600;overflow:hidden}.sa-controls{gap:var(--sp-2);flex:none;align-items:center;display:flex}.sa-controls select{max-width:150px}.review-steps{border:1px solid var(--line-soft);border-radius:var(--radius-sm);margin-bottom:var(--sp-4);overflow:hidden}.review-steps-head{border-bottom:1px solid var(--line-soft);font-size:var(--fs-sm);color:var(--ink-soft);background:#faf8f4;padding:8px 12px;font-weight:650}.review-step{align-items:center;gap:var(--sp-3);border-bottom:1px solid var(--line-soft);font-size:var(--fs-md);padding:7px 12px;display:flex}.review-step:last-child{border-bottom:none}.review-step .rs-check{border-radius:var(--radius-xs);color:#fff;background:#fff;border:1.5px solid #cfccc9;flex:none;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;font-weight:800;display:inline-flex}.review-step.done .rs-check{background:var(--gold);border-color:var(--gold)}.review-step .rs-name{color:var(--ink-soft);flex:1}.review-step.done .rs-name{color:var(--ink);font-weight:600}.review-step .rs-weight{color:var(--ink-faint);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;flex:none}.review-step.done .rs-weight{color:var(--gold);font-weight:700}.doc-links{gap:var(--sp-2);margin-top:var(--sp-3);flex-direction:column;display:flex}.doc-link{align-items:center;gap:var(--sp-3);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);background:#fff;padding:9px 12px;text-decoration:none;display:flex}.doc-link:hover{border-color:var(--gold-soft);background:#faf8f4}.doc-link-ext{text-align:center;border-radius:var(--radius-xs);background:var(--charcoal);color:#fff;letter-spacing:.03em;flex:none;min-width:42px;padding:3px 6px;font-size:11px;font-weight:700}.doc-link-name{min-width:0;font-size:var(--fs-md);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.doc-link-open{font-size:var(--fs-sm);color:var(--gold);flex:none;font-weight:650}.seg{border:1px solid var(--line);background:var(--card);border-radius:999px;display:inline-flex;overflow:hidden}.seg button{color:var(--ink-soft);padding:var(--sp-2) var(--sp-4);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:none;font-weight:600}.seg button.on{background:var(--charcoal);color:#fff}.report-facts{gap:var(--sp-3);margin-top:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.report-facts .muted{font-size:var(--fs-sm);display:block}.chip-variation{font-size:var(--fs-sm);background:var(--gold-light,#fef3dc);color:#8a6a1f;white-space:nowrap;border-radius:999px;flex:none;padding:3px 10px;font-weight:650}.chip-disp{font-size:var(--fs-sm);color:var(--good,#2f7d4f);background:#e3f1e8;border-radius:999px;padding:3px 10px;font-weight:650}.report-disp-row{gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.disp-block{border-top:1px solid var(--line);margin-top:var(--sp-4);padding-top:var(--sp-4)}.disp-label{margin-bottom:var(--sp-3);font-weight:650}.disp-choices{gap:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}@media (width<=640px){.disp-choices{grid-template-columns:1fr}}.disp-choice{text-align:left;padding:var(--sp-3);border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--card);cursor:pointer;transition:border-color var(--ease), background var(--ease);flex-direction:column;align-items:flex-start;gap:2px;display:flex}.disp-choice span{font-size:var(--fs-sm);color:var(--ink-soft);font-weight:500}.disp-choice:hover{border-color:#d8d3cb}.disp-choice.on{border-color:var(--charcoal);box-shadow:inset 0 0 0 1px var(--charcoal);background:#faf9f7}.disp-choice.on span{color:var(--ink)}.disp-promote{margin-top:var(--sp-3)}.disp-variation{align-items:flex-start;gap:var(--sp-2);margin:var(--sp-4) 0 var(--sp-3);cursor:pointer;font-size:var(--fs-md);display:flex}.disp-variation input{flex:none;margin-top:3px}.picker{position:relative}.picker-results{z-index:20;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;max-height:280px;margin:4px 0 0;padding:4px;list-style:none;position:absolute;overflow-y:auto;box-shadow:0 8px 24px #1e1b1b29}.picker-results li button{text-align:left;border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:1px;width:100%;padding:8px 10px;display:flex}.picker-results li button:hover{background:#f1ede6}.picker-code{font-weight:650;font-size:var(--fs-md)}.picker-name{font-size:var(--fs-sm);color:var(--ink-soft)}.picker-chip{justify-content:space-between;align-items:center;gap:var(--sp-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:#faf9f7;padding:8px 12px;display:flex}.roc-toolbar{gap:var(--sp-3);flex-direction:column;display:flex}.roc-coverage{align-items:center;gap:var(--sp-3);display:flex}.roc-coverage-track{background:var(--line);border-radius:999px;flex:0 0 220px;height:8px;overflow:hidden}.roc-coverage-fill{background:var(--gold);height:100%;transition:width var(--ease)}.roc-coverage-text{font-size:var(--fs-md);color:var(--ink-soft)}.roc-coverage-text strong{color:var(--ink)}.roc-filters{gap:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.roc-filters input[type=search]{flex:240px;min-width:200px}.roc-filters select{flex:none;min-width:200px;max-width:320px}.roc-table{border-collapse:collapse;width:100%}.roc-table th{text-align:left;font-size:var(--fs-sm);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;padding:var(--sp-3) var(--sp-3);border-bottom:1px solid var(--line);white-space:nowrap;font-weight:700}.roc-table td{padding:10px var(--sp-3);border-bottom:1px solid var(--line-soft);vertical-align:middle}.roc-table tbody tr:hover{background:#faf9f7}.roc-table tbody tr.sel{background:var(--gold-light)}.roc-check{text-align:center;width:40px}.roc-check input{cursor:pointer;width:16px;height:16px}.roc-id{white-space:nowrap;width:1%}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:var(--fs-sm)}.roc-name{color:var(--ink);font-weight:600}.roc-area{color:var(--ink-soft);font-size:var(--fs-sm);white-space:nowrap}.roc-mode{white-space:nowrap;width:1%}.mode-pill{border:1px solid var(--line);max-width:260px;color:var(--ink-soft);font-size:var(--fs-sm);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:#f1ede6;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-weight:600;display:inline-flex;overflow:hidden}.mode-pill:hover{border-color:var(--gold-soft)}.mode-pill.assigned{background:var(--good-bg);color:var(--good);border-color:#0000}.roc-row-edit{align-items:center;gap:6px;display:flex}.roc-row-edit select{min-width:180px;padding:6px 8px}.btn-sm{font-size:var(--fs-sm);padding:6px 10px}.roc-actionbar{bottom:var(--sp-4);z-index:10;align-items:center;gap:var(--sp-3);margin-top:var(--sp-4);padding:var(--sp-3) var(--sp-4);background:var(--charcoal);color:#fff;border-radius:var(--radius);flex-wrap:wrap;display:flex;position:sticky;box-shadow:0 6px 24px #1e1b1b47}.roc-ab-count{font-size:var(--fs-md)}.roc-ab-count strong{font-size:var(--fs-lg)}.roc-actionbar select{border-radius:var(--radius-sm);border:none;min-width:220px;padding:8px 10px}.roc-actionbar .btn-ghost{color:#d8d3cb;margin-left:auto}.roc-actionbar .btn-ghost:hover{color:#fff;background:#ffffff1f}.admin-header{align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-5);background:var(--charcoal-deep);color:#fff;display:flex}.admin-header .brand{font-weight:800;font-size:var(--fs-lg);letter-spacing:-.02em}.admin-header .brand .gold{color:var(--gold)}.admin-header .tag{font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--gold);border:1px solid var(--gold-line);border-radius:999px;padding:1px 8px;font-weight:700}.admin-header .spacer{flex:1}.admin-header .who{font-size:var(--fs-sm);color:#ffffffb8}.admin-header button.linklike{color:#ffffffd1;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.admin-main{max-width:1200px;padding:var(--sp-5);margin:0 auto}.admin-bar{margin-bottom:var(--sp-4);align-items:center;display:flex}.admin-bar h1{font-size:var(--fs-xl);margin:0}.admin-bar .spacer{flex:1}button.btn-secondary{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;padding:9px 16px;font-weight:600}button.btn-secondary:hover{border-color:var(--gold-soft)}.admin-table{border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);width:100%;overflow:hidden}.admin-table th,.admin-table td{text-align:left;font-size:var(--fs-base);border-bottom:1px solid var(--line-soft);vertical-align:middle;padding:11px 14px}.admin-table th{color:var(--ink-soft);background:var(--fill-subtle);font-weight:700;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em}.admin-table tr:last-child td{border-bottom:none}.admin-table td.cust{color:var(--ink);font-weight:650}.admin-table td.muted{color:var(--ink-soft)}.admin-table td.num{font-variant-numeric:tabular-nums}.badge{font-size:var(--fs-xs);text-transform:capitalize;border-radius:999px;padding:2px 9px;font-weight:700;display:inline-block}.badge.trialing,.badge.info{color:var(--info);background:var(--info-bg)}.badge.active{color:var(--good);background:var(--good-bg)}.badge.past_due,.badge.unpaid,.badge.pending,.badge.incomplete,.badge.paused{color:var(--pend);background:var(--pend-bg)}.badge.canceled,.badge.incomplete_expired,.badge.none{color:var(--bad);background:var(--bad-bg)}.row-actions{flex-wrap:wrap;gap:6px;display:flex}.row-actions button{font-size:var(--fs-sm);border-radius:var(--radius-xs);border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;white-space:nowrap;padding:4px 10px;font-weight:600}.row-actions button:hover{border-color:var(--gold-soft)}.row-actions button:disabled{opacity:.45;cursor:not-allowed}.row-actions button.danger{color:var(--bad)}.row-actions button.danger:hover{border-color:var(--bad)}.admin-empty,.admin-loading{padding:var(--sp-6);text-align:center;color:var(--ink-soft);background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}.admin-error{background:var(--bad-bg);color:var(--bad);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-sm);margin-bottom:var(--sp-4);font-size:var(--fs-base)}.provision-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5);margin-bottom:var(--sp-4);box-shadow:var(--shadow-md)}.provision-panel h2{margin:0 0 var(--sp-4);font-size:var(--fs-lg)}.provision-grid{gap:var(--sp-3) var(--sp-4);grid-template-columns:1fr 1fr;display:grid}.provision-grid .field{margin-bottom:0}.provision-grid .field.full{grid-column:1/-1}.provision-actions{gap:var(--sp-3);margin-top:var(--sp-4);align-items:center;display:flex}.link-out{background:var(--fill-subtle);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--sp-3);margin-top:var(--sp-4);font-size:var(--fs-sm)}.link-out .link-row{gap:var(--sp-2);margin-top:6px;display:flex}.link-out input{font-size:var(--fs-sm);border:1px solid var(--line);border-radius:var(--radius-xs);background:var(--card);color:var(--ink);flex:1;padding:7px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
