.portal{max-width:980px;margin:0 auto;padding:48px 24px}.portal-head{margin-bottom:28px}.portal-head h1{margin:0 0 6px;font-size:26px}.portal-head p{color:var(--muted);margin:0}.portal-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;display:grid}.portal-tile{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:14px;flex-direction:column;gap:8px;min-height:120px;padding:22px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.portal-tile:hover{border-color:var(--accent);transform:translateY(-2px)}.portal-tile .tile-name{font-size:18px;font-weight:700}.portal-tile .tile-blurb{color:var(--muted);font-size:13px}.portal-tile .tile-cta{color:var(--accent);margin-top:auto;font-size:13px;font-weight:600}.portal-tile.locked{opacity:.55;cursor:default}.portal-tile.locked:hover{border-color:var(--border);transform:none}.portal-tile.locked .tile-cta{color:var(--muted)}.portal-tile.admin{border-style:dashed}.tile-badge{border:1px solid var(--border);color:var(--muted);border-radius:999px;align-self:flex-start;padding:2px 8px;font-size:11px}.admin-wrap{max-width:1000px;margin:0 auto}.admin-table{border-collapse:collapse;width:100%;margin-top:12px}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 12px}.admin-table th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.feat-toggles{flex-wrap:wrap;gap:14px;display:flex}.feat-toggle{color:var(--text);align-items:center;gap:6px;font-size:13px;display:inline-flex}.feat-toggle input{width:auto}.role-select{width:auto;min-width:140px}.admin-tabs{gap:8px;margin:8px 0 18px;display:flex}.admin-tabs button{background:var(--panel);color:var(--muted);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:8px 14px}.admin-tabs button.active{color:var(--text);border-color:var(--accent)}.row-actions{align-items:center;gap:8px;display:flex}.saved-tag{color:var(--met);font-size:12px}.subportal{max-width:980px;margin:0 auto;padding:24px 16px 48px}.subportal-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.subportal-logo{height:32px}.subportal-brand-logo{object-fit:contain;background:#fff;border-radius:8px;max-width:230px;height:48px;padding:4px 10px}.subportal-head h1{flex-basis:100%;margin:4px 0 0;font-size:1.35rem}@media (width<=520px){.subportal-brand-logo{max-width:46vw;height:40px}.subportal-head h1{font-size:1.15rem}}.subportal button.primary{background:var(--sub-accent,#4f8ff7);color:#fff}.subportal .linklike,.subportal .sub-dropzone-icon{color:var(--sub-accent,#1a56db)}.subportal .sub-dropzone.drag{border-color:var(--sub-accent,#1a56db);background:#f4f8ff}.subportal .subportal-progress-fill{background:var(--sub-accent,#2e7d32)}.subportal .upload-bar-fill{background:var(--sub-accent,#1a56db)}.subportal-card{color:#1a1a1a;background:#fff;border:1px solid #e3e3e3;border-radius:10px;margin-bottom:14px;padding:18px 20px}.subportal-card h2,.subportal-card h3{color:#111;margin-top:0}.subportal-card p{color:#222}.subportal-card .muted,.sub-muted{color:#555!important}.subportal-card.req-done{background:#f6fcf7;border-color:#b7e2c0}.subportal-form{flex-direction:column;gap:12px;max-width:380px;display:flex}.subportal-form label{color:#222;flex-direction:column;gap:4px;font-size:.9rem;font-weight:600;display:flex}.subportal-form input{color:#111;background:#fff;border:1px solid #bbb;border-radius:6px;padding:8px 10px;font-size:1rem}.deadline-banner{color:#1a3c78;background:#eef4ff;border:1px solid #c4d7f5;border-radius:8px;margin:10px 0;padding:8px 14px;font-size:.92rem}.deadline-banner.deadline-soon{color:#8a4b08;background:#fff4e5;border-color:#f0ce9a}.deadline-banner.deadline-over{color:#8c1d18;background:#fdecea;border-color:#f2b8b5}.check-list{margin:14px 0 0;padding:0;list-style:none}.check-row{border-top:1px solid #eee;padding:10px 0}.check-row-main{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;display:flex}.check-label{color:#222;font-weight:600}.check-done .check-label{color:#1e7e34}.check-desc{margin:6px 0 0;font-size:.88rem}.sub-dropzone{cursor:pointer;text-align:center;border:2px dashed #b9c3d0;padding:26px 16px;transition:border-color .15s,background .15s}.sub-dropzone.drag{background:#eef4ff;border-color:#1a56db}.sub-dropzone-icon{color:#1a56db;font-size:2rem}.sub-dropzone h3{margin:6px 0 4px}.upload-queue{margin:6px 0 0;padding:0;list-style:none}.upload-row{border-top:1px solid #f0f0f0;justify-content:space-between;align-items:center;gap:14px;padding:8px 0;display:flex}.upload-row .req-filename{text-overflow:ellipsis;white-space:nowrap;color:#222;flex:1;min-width:0;overflow:hidden}.upload-bar{background:#eaeaea;border-radius:6px;flex:0 0 180px;height:8px;display:inline-block;overflow:hidden}.upload-bar-fill{background:#1a56db;height:100%;transition:width .2s;display:block}.subportal .chip{cursor:default;border:none;align-items:center;width:auto;display:inline-flex}.subportal-foot{text-align:center;margin-top:24px;font-size:.85rem}.subportal-progress{background:#eee;border-radius:6px;height:10px;margin:10px 0;position:relative;overflow:hidden}.subportal-progress-fill{background:#2e7d32;height:100%;transition:width .3s}.req-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.req-files{margin:10px 0;padding:0;list-style:none}.req-files li{border-top:1px solid #f0f0f0;padding:6px 0}.req-filename{word-break:break-all;margin-right:8px}.req-issues{margin-top:2px;font-size:.85rem}.req-lines{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.line-matrix{border-collapse:collapse;background:#fff;margin:8px 0;font-size:.85rem}.line-matrix th,.line-matrix td{text-align:center;color:#222;border:1px solid #eee;padding:3px 9px}.line-matrix th{background:#fafafa;font-weight:600}.line-matrix .lm-line{text-align:left;white-space:nowrap;font-weight:600}.line-matrix .lm-got{color:#1e7e34;background:#e6f4ea;font-weight:700}.line-matrix .lm-need{color:silver}.line-matrix .lm-tally{background:0 0;border:none}.chip{white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:600;display:inline-block}.chip-ok{color:#1e7e34;background:#e6f4ea}.chip-busy{color:#1a56db;background:#e8f0fe}.chip-partial{color:#b25e09;background:#fff4e5}.chip-warn{color:#c62828;background:#fdecea}.chip-todo{color:#555;background:#f1f1f1}.linklike{color:#1a56db;cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.logo-picker{flex-direction:column;gap:4px;font-size:.85rem;font-weight:600;display:flex}.logo-picker-preview{align-items:center;gap:8px;display:flex}.logo-picker-preview img{object-fit:contain;background:#fff;border-radius:6px;max-width:140px;height:34px;padding:2px 6px}.intake-grid{overflow-x:auto}.intake-grid table{border-collapse:collapse;width:100%;font-size:.88rem}.intake-grid th,.intake-grid td{text-align:left;border:1px solid #e5e5e5;padding:6px 8px}.intake-grid th{background:#fafafa;position:sticky;top:0}.intake-grid td.c{text-align:center}.intake-cell-ok{background:#e6f4ea}.intake-cell-busy{background:#e8f0fe}.intake-cell-partial{background:#fff4e5}.intake-cell-warn{background:#fdecea}.intake-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0;display:flex}.intake-invite-form{flex-wrap:wrap;align-items:flex-end;gap:8px;margin:10px 0;display:flex}.intake-invite-form label{flex-direction:column;gap:3px;font-size:.85rem;font-weight:600;display:flex}.intake-invite-form input{border:1px solid #ccc;border-radius:6px;padding:6px 8px}:root{--bg:#0b0d10;--panel:#14171c;--border:#232830;--text:#e7eaf0;--muted:#8a93a3;--accent:#6aa9ff;--met:#1f8a4c;--not-met:#c63939;--review:#c8932a}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);margin:0;font:14px/1.5 -apple-system,system-ui,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--border);align-items:center;gap:24px;padding:12px 24px;display:flex}.topbar nav{gap:16px;display:flex}.topbar nav a{color:var(--muted);border-radius:6px;padding:6px 8px}.topbar nav a.active{color:var(--text);background:var(--panel)}.topbar-right{align-items:center;gap:12px;margin-left:auto;display:flex}.brand{align-items:center;display:inline-flex}.brand-logo{width:auto;height:30px;display:block}.dev-badge{color:var(--review);border:1px solid var(--review);border-radius:999px;padding:2px 8px;font-size:11px}.content{width:100%;max-width:1100px;margin:0 auto;padding:24px}.page-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.muted{color:var(--muted)}.section{margin-top:24px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.reason{color:var(--muted);font-size:12px}.cards{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px;display:grid}.card{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:12px;padding:20px;display:block}.card:hover{border-color:var(--accent)}.card h3{margin:0 0 6px}.tabs{gap:8px;margin-bottom:16px;display:flex}.tabs button{background:var(--panel);color:var(--muted);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:8px 14px}.tabs button.active{color:var(--text);border-color:var(--accent)}button.primary{background:var(--accent);color:#0b0d10;cursor:pointer;border:0;border-radius:8px;padding:8px 14px;font-weight:600}button.danger{color:#fff;cursor:pointer;background:#d9534f;border:0;border-radius:8px;padding:8px 14px;font-weight:600}button.danger:hover{background:#c44742}button.link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0}.grid.one{grid-template-columns:1fr;gap:12px;max-width:320px;display:grid}.grid.two{grid-template-columns:1fr 1fr;gap:12px;display:grid}.grid.three{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}label>span{color:var(--muted);margin-bottom:4px;font-size:12px;display:block}input,select{background:var(--panel);border:1px solid var(--border);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:8px 10px}input:focus,select:focus{border-color:var(--accent);outline:none}.dropzone{border:2px dashed var(--border);cursor:pointer;height:160px;color:var(--muted);border-radius:12px;justify-content:center;align-items:center;margin-bottom:16px;display:flex}.dropzone.over{border-color:var(--accent);color:var(--text)}.dropzone.disabled{opacity:.6;cursor:progress}.req-row{background:var(--panel);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;padding:16px}.req-row-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.endorsements{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.chip{background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:flex}.add-row{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.add-row button{background:var(--panel);border:1px dashed var(--border);color:var(--muted);cursor:pointer;border-radius:8px;padding:6px 10px}.acord-picker{gap:8px;margin-bottom:12px;display:flex}.acord-picker button{background:var(--panel);border:1px solid var(--border);color:var(--muted);cursor:pointer;border-radius:8px;padding:8px 14px}.acord-picker button.active{color:var(--text);border-color:var(--accent)}.coverages{border-collapse:collapse;width:100%;margin-top:12px}.coverages th,.coverages td{text-align:left;border-bottom:1px solid var(--border);padding:8px 10px;font-size:12px}.coverages th{color:var(--muted);font-weight:500}.results-table{border-collapse:collapse;width:100%}.results-table th,.results-table td{text-align:left;border-bottom:1px solid var(--border);padding:10px}.results-table th{color:var(--muted);font-size:12px;font-weight:500}.badge{border:1px solid;border-radius:999px;padding:2px 10px;font-size:11px;display:inline-block}.badge.met{color:var(--met);border-color:var(--met)}.badge.not_met{color:var(--not-met);border-color:var(--not-met)}.badge.needs_review{color:var(--review);border-color:var(--review)}.badge.large{padding:4px 14px;font-size:13px}.warning{border:1px solid var(--review);background:#c8932a14;border-radius:8px;margin-top:12px;padding:10px 14px}.warning ul{margin:6px 0 0;padding-left:20px}.centered{justify-content:center;align-items:center;min-height:100vh;display:flex}.actions{align-items:center;gap:12px;display:flex}textarea{background:var(--panel);border:1px solid var(--border);width:100%;color:var(--text);font:inherit;resize:vertical;border-radius:8px;padding:8px 10px}textarea:focus{border-color:var(--accent);outline:none}.error-banner{border:1px solid var(--not-met);color:#f3b4b4;background:#c639391f;border-radius:8px;margin:12px 0;padding:10px 14px}.info-banner{border:1px solid var(--accent);color:#bcd6ff;background:#6aa9ff1f;border-radius:8px;margin:12px 0;padding:10px 14px}.grid2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.grid2>label{display:block}@media (width<=640px){.grid2{grid-template-columns:1fr}}.field-label{color:var(--muted);margin-bottom:6px;font-size:12px;display:block}.check-row{align-items:center;gap:8px;display:flex}.check-row input[type=checkbox]{width:auto}.chip.chip-on,.chip-on{border-color:var(--accent);color:var(--accent)}.apply-wrap{background:var(--bg);min-height:100vh}.apply-header{width:100%}.apply-header-inner{align-items:center;gap:14px;max-width:760px;margin:0 auto;padding:14px 24px;display:flex}.apply-logo{background:#fff;border-radius:4px;width:auto;height:36px;padding:2px 4px}.apply-agency{color:#fff;font-size:16px;font-weight:700}.apply-contact{color:#ffffffd9;margin-left:auto;font-size:12px}.apply-body{max-width:760px;margin:0 auto;padding:24px}.apply-actions{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:14px;margin-top:28px;padding-top:18px;display:flex}.section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text);border-left:3px solid var(--accent);margin:22px 0 14px;padding-left:10px;font-size:14px}.qfield{margin-bottom:18px}.qlabel{margin-bottom:6px;font-weight:600;display:block}.qhelp{color:var(--muted);margin:0 0 8px;font-size:12px}.yesno{gap:8px;display:flex}.yn{background:var(--panel);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:8px;padding:8px 22px}.yn.on{font-weight:700}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--panel);color:var(--text);border:1px solid var(--border)}.chip:hover{border-color:var(--accent)}.chip.chip-on{background:var(--accent);color:#0b0d10;border-color:var(--accent);font-weight:600}
