:root{--navy:#1b2a4a;--navy-2:#24365e;--accent:#2f6fed;--bg:#f4f6fa;--card:#fff;--ink:#1d2433;--muted:#66708a;--line:#dde3ee;--green:#1e9e5a;--yellow:#e0a400;--red:#d64545}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}header.app-header{background:var(--navy);color:#fff;flex-wrap:wrap;align-items:center;gap:16px;padding:16px 24px;display:flex}header.app-header h1{font-size:18px;font-weight:600}header.app-header .sub{opacity:.75;font-size:12.5px}header.app-header .spacer{flex:1}header.app-header a{color:#fff;text-decoration:none}header.app-header a:hover{text-decoration:underline}.btn{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:13.5px;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.08);color:#fff}.btn.danger{color:var(--red);border-color:#f0c2c2}header.app-header .btn{color:#fff;background:#ffffff1f;border-color:#ffffff40}header.app-header .btn:hover{color:#fff;background:#ffffff38}header.app-header .btn.primary{background:var(--accent);border-color:var(--accent)}.layout{gap:24px;max-width:1200px;margin:0 auto;padding:24px;display:flex}nav.sidebar{flex-shrink:0;align-self:flex-start;width:280px;max-height:calc(100vh - 40px);position:sticky;top:16px;overflow-y:auto}.navcard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px}.navitem{cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:9px 10px;font-family:inherit;font-size:13.5px;display:flex}.navitem:hover{background:#eef2fb}.navitem.active{background:var(--navy);color:#fff}.navitem .num{width:22px;height:22px;color:var(--muted);background:#e6ebf5;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.navitem.active .num{color:#fff;background:#fff3}.navitem .name{flex:1}.navitem .pct{color:var(--muted);font-size:11px}.navitem.active .pct{color:#ffffffbf}.navitem .dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.progresswrap{padding:12px 10px 6px}.progressbar{background:#e6ebf5;border-radius:4px;height:8px;overflow:hidden}.progressbar>div{background:var(--accent);width:0%;height:100%;transition:width .3s}.progresslabel{color:var(--muted);text-align:center;margin-top:6px;font-size:12px}main.form-main{flex:1;min-width:0}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:20px;padding:28px}.card h2{color:var(--navy);margin-bottom:4px;font-size:20px}.card .desc{color:var(--muted);margin-bottom:20px;font-size:13.5px}.q{margin-bottom:22px}.q>label.qlabel,label.qlabel{margin-bottom:8px;font-size:14.5px;font-weight:600;display:block}.q .hint,.hint{color:var(--muted);margin-top:2px;font-size:13px;font-weight:400;display:block}input[type=text],input[type=email],input[type=number],input[type=date],textarea,select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:8px;padding:9px 12px;font-family:inherit;font-size:14px}input[type=date]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;max-width:220px;min-height:40px}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:2px solid #2f6fed59}textarea{resize:vertical;min-height:70px}.optrow{flex-wrap:wrap;gap:8px;display:flex}.opt{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:7px;padding:7px 12px;font-size:13.5px;display:flex}.opt:hover{border-color:var(--accent)}.opt.checked{border-color:var(--accent);background:#e9f0ff}.opt input{accent-color:var(--accent);cursor:pointer}table.qtable{border-collapse:collapse;width:100%;font-size:13.5px}table.qtable th{text-align:left;border:1px solid var(--line);color:var(--navy);background:#f0f3f9;padding:8px 10px;font-size:12.5px}table.qtable td{border:1px solid var(--line);padding:4px}table.qtable td input{border:none;border-radius:4px;padding:7px 8px}table.qtable td.fixed{color:var(--muted);background:#fafbfe;padding:8px 10px;font-weight:500}.addrow{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-top:8px;font-family:inherit;font-size:13px;font-weight:600}.text-quickfill .quickfill{margin:0 0 6px}.quickfill{flex-wrap:wrap;align-items:center;gap:2px 0;margin:0 0 8px;font-size:12.5px;display:flex}.quickfill-sep{color:var(--line);-webkit-user-select:none;user-select:none;margin:0 6px}.quickfill-btn{color:var(--accent);cursor:pointer;font:inherit;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:12.5px;text-decoration:underline}.quickfill-btn:hover{color:var(--navy)}.quickfill-btn.active{font-weight:600;text-decoration:none}.row-del{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-family:inherit;font-size:18px;line-height:1}.row-del:hover{color:var(--red);background:#fdecec}.rating{border-top:1px dashed var(--line);margin-top:6px;padding-top:18px}.rating .rlabel{margin-bottom:10px;font-weight:600;display:block}.ratebtns{flex-wrap:wrap;gap:10px;margin-bottom:10px;display:flex}.ratebtn{border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:8px;padding:10px 16px;font-family:inherit;font-size:13.5px;font-weight:600;display:flex}.ratebtn .swatch{border-radius:50%;width:14px;height:14px}.ratebtn[data-v=green] .swatch{background:var(--green)}.ratebtn[data-v=yellow] .swatch{background:var(--yellow)}.ratebtn[data-v=red] .swatch{background:var(--red)}.ratebtn.sel[data-v=green]{border-color:var(--green);background:#e8f7ef}.ratebtn.sel[data-v=yellow]{border-color:var(--yellow);background:#fdf6e3}.ratebtn.sel[data-v=red]{border-color:var(--red);background:#fdecec}.footnav{justify-content:space-between;margin:8px 0 40px;display:flex}.savebar{color:var(--muted);text-align:right;padding:4px 2px;font-size:12px}.intro-card ul{margin:10px 0 10px 20px}.intro-card li{margin-bottom:6px}.keyrow{flex-wrap:wrap;gap:14px;margin-top:10px;font-size:13px;display:flex}.keyrow span{align-items:center;gap:6px;display:flex}.keyrow i{border-radius:50%;width:11px;height:11px;display:inline-block}.page{max-width:1100px;margin:0 auto;padding:28px 24px 60px}.page h1{color:var(--navy);margin-bottom:6px;font-size:24px}.page .lede{color:var(--muted);margin-bottom:24px}.muted{color:var(--muted)}.error{color:var(--red);margin-top:12px;font-size:14px}.success{color:var(--green);margin-top:12px;font-size:14px}.table-list{border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:12px;width:100%;overflow:hidden}.table-list th,.table-list td{text-align:left;border-bottom:1px solid var(--line);padding:12px 14px;font-size:14px}.table-list th{color:var(--navy);background:#f0f3f9;font-size:12.5px}.table-list tr:last-child td{border-bottom:none}.dash-progress{align-items:center;gap:10px;min-width:120px;display:flex}.dash-progress-bar{background:#e6ebf5;border-radius:4px;flex:1;min-width:72px;height:8px;overflow:hidden}.dash-progress-bar>div{background:var(--accent);height:100%}.dash-progress-label{color:var(--navy);min-width:36px;font-size:13px;font-weight:600}.badge{color:var(--muted);background:#e6ebf5;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:600;display:inline-block}.badge.complete{color:var(--green);background:#e8f7ef}.badge.in_progress{color:var(--accent);background:#e9f0ff}.login-page{background:radial-gradient(1200px 500px at 10% -10%, #d9e6ff 0%, transparent 55%), radial-gradient(900px 400px at 100% 0%, #e8eef8 0%, transparent 50%), var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--card);border:1px solid var(--line);border-radius:14px;width:100%;max-width:420px;padding:28px;box-shadow:0 10px 30px #1b2a4a0f}.login-card h1{color:var(--navy);margin-bottom:8px;font-size:22px}.admin-grid{gap:20px;display:grid}.admin-panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}.admin-panel h2{color:var(--navy);margin-bottom:12px;font-size:16px}.invite-option{border-top:1px solid var(--line);padding:14px 0}.invite-option:first-of-type{border-top:none;padding-top:0}.invite-option-title{color:var(--navy);margin-bottom:4px;font-size:14px;font-weight:600}.invite-option-desc{margin:0 0 10px;font-size:13px;line-height:1.45}.invite-url{word-break:break-all;margin:10px 0 0;font-size:12.5px;line-height:1.4}.invite-url code{font-size:12px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.member-list{margin-top:12px;list-style:none}.member-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:8px 0;font-size:14px;display:flex}.schema-editor textarea{min-height:480px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12.5px;line-height:1.45}.stale-warn{color:#7a5b00;background:#fdf6e3;border:1px solid #f0d98a;border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:13.5px}@media (max-width:860px){.layout{flex-direction:column}nav.sidebar{width:100%;max-height:none;position:static}}@media print{@page{size:letter;margin:.55in .65in}html,body{-webkit-print-color-adjust:exact;print-color-adjust:exact;font-size:10.5pt;line-height:1.35;color:#111!important;background:#fff!important}header.app-header .btn,nav.sidebar,.footnav,.addrow,.row-del,.savebar,.progresswrap,.no-print{display:none!important}header.app-header{border-bottom:1.5pt solid #1b2a4a;margin:0 0 12pt;padding:0 0 8pt;display:block;color:#111!important;background:0 0!important}header.app-header h1{margin:0 0 2pt;font-size:16pt;color:#1b2a4a!important}header.app-header .sub{opacity:1;font-size:9pt;color:#555!important}header.app-header .spacer{display:none}.layout{gap:0!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;display:block!important}main.form-main,.print-document{width:100%!important;min-width:0!important;max-width:none!important}.page{max-width:none!important;margin:0!important;padding:0!important}.card{break-inside:auto;page-break-inside:auto;box-shadow:none!important;background:0 0!important;border:none!important;border-radius:0!important;margin:0 0 8pt!important;padding:0 0 10pt!important}.card h2{break-after:avoid;page-break-after:avoid;border-bottom:.6pt solid #c8c8c8;margin:0 0 6pt;padding-bottom:3pt;font-size:12pt;color:#1b2a4a!important}.card .desc{margin-bottom:8pt;font-size:9pt}.q{break-inside:avoid;page-break-inside:avoid;margin-bottom:7pt}.qlabel{margin-bottom:2pt;font-size:9.5pt}.hint{font-size:8pt}input[type=text],input[type=email],input[type=number],input[type=date],textarea,select{color:#111!important;box-shadow:none!important;background:0 0!important;border:none!important;border-bottom:.5pt solid #bbb!important;border-radius:0!important;outline:none!important;width:100%!important;min-height:0!important;padding:1pt 0!important;font-size:10pt!important}textarea{resize:none!important;height:auto!important;overflow:visible!important}.optrow{gap:4pt 10pt}.opt{font-size:9.5pt;background:0 0!important;border:none!important;border-radius:0!important;padding:0 8pt 0 0!important}.opt:not(.checked){opacity:.4}.opt.checked{opacity:1;font-weight:600;background:0 0!important}.opt input{transform:scale(.85)}.rating{border-top:.5pt dashed #ccc;margin-top:4pt;padding-top:6pt}.ratebtn:not(.sel){display:none!important}.ratebtn.sel{font-size:10pt;background:0 0!important;border:none!important;padding:0!important}.ratebtn .swatch{width:8pt;height:8pt}table.qtable{table-layout:fixed;break-inside:auto;font-size:8pt;width:100%!important}table.qtable th,table.qtable td{word-wrap:break-word;overflow-wrap:break-word;padding:2pt 3pt;border-color:#bbb!important}table.qtable th{font-size:7.5pt;background:#eee!important}table.qtable td input{border:none!important;padding:0!important;font-size:8pt!important}table.qtable td.fixed{font-size:8pt;background:#f5f5f5!important}.intro-card ul{margin:4pt 0 4pt 14pt}.intro-card li{margin-bottom:2pt;font-size:9pt}.intro-card hr{display:none}.keyrow{gap:8pt;margin-top:4pt;font-size:8pt}.print-only{display:block!important}}.print-only{display:none}
