:root{--brand:#0b5cab;--brand-ink:#0a2540;--bg:#f6f8fb;--card:#fff;--muted:#5b6b7b;--radius:14px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--brand-ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.shell{max-width:960px;margin:0 auto;padding:max(24px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom))}.hero{text-align:center;padding:32px 0 8px}.brand-star{font-size:44px;color:var(--brand);line-height:1}.hero h1{margin:8px 0 4px;font-size:clamp(28px,6vw,40px)}.hero p{margin:0 auto;max-width:48ch;color:#44566b}.pillars{display:grid;grid-gap:16px;gap:16px;grid-template-columns:1fr;margin-top:28px}@media (min-width:640px){.pillars{grid-template-columns:1fr 1fr}}.pillar-card{background:var(--card);border:1px solid #e6ecf3;border-radius:var(--radius);padding:18px 18px 16px;min-height:96px}.pillar-card h2{margin:0 0 6px;font-size:18px;color:var(--brand)}.pillar-card p{margin:0;color:#44566b;font-size:15px}.outbox{margin-top:28px;background:var(--card);border:1px solid #e6ecf3;border-radius:var(--radius);padding:18px}.outbox h2{margin:0 0 4px;font-size:18px;color:var(--brand)}.outbox-actions{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.outbox-actions button{min-height:44px;padding:0 16px;border-radius:10px;border:1px solid var(--brand);background:var(--brand);color:#fff;font-size:15px;cursor:pointer}.outbox-actions button:last-child{background:#fff;color:var(--brand)}.outbox-status{margin:6px 0 0;color:#44566b;font-size:14px}.foot{text-align:center;color:#6b7a8d;font-size:13px;margin-top:28px}.appbar{display:flex;align-items:center;justify-content:space-between;padding:12px max(16px,env(safe-area-inset-left)) 12px max(16px,env(safe-area-inset-right));border-bottom:1px solid #e6ecf3;background:#fff}.appbar-brand{font-weight:700;color:var(--brand-ink);text-decoration:none;display:inline-flex;align-items:center;gap:8px}.appbar-brand .brand-star{font-size:20px}.appbar-nav{display:flex;gap:16px;align-items:center}.appbar-nav a{color:var(--brand)}.appbar-nav a,.btn{text-decoration:none}.btn{display:inline-block;min-height:44px;line-height:44px;padding:0 18px;border-radius:10px;background:var(--brand);color:#fff;font-size:15px;border:1px solid var(--brand)}.btn-ghost{background:#fff}.btn-ghost,.link{color:var(--brand)}.link{background:none;border:none;cursor:pointer;font-size:15px;padding:4px 0;text-align:left}.muted{color:#6b7a8d}.hero-left{text-align:left}.hero-cta{display:flex;gap:10px;justify-content:center;margin-top:14px}.auth{max-width:460px;margin:0 auto;padding:48px 20px}.auth-card{background:var(--card);border:1px solid #e6ecf3;border-radius:var(--radius);padding:28px;text-align:center}.auth-card form{display:flex;flex-direction:column;gap:6px;text-align:left;margin-top:16px}.auth-card input,.onboard-card input,.onboard-card select{min-height:44px;padding:0 12px;border:1px solid #cdd7e2;border-radius:10px;font-size:15px}.auth-card button[type=submit]{min-height:44px;margin-top:8px;border-radius:10px;border:1px solid var(--brand);background:var(--brand);color:#fff;font-size:15px;cursor:pointer}.auth-error{color:#b00020;margin-top:10px}.auth-demo{margin-top:18px;display:flex;flex-direction:column;gap:6px;border-top:1px solid #eef2f6;padding-top:14px}.admin-cta{margin:6px 0 18px}.pillar-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.pillar-card.locked{opacity:.72;background:#f3f5f8}.badge{font-size:12px;color:#8a5a00;background:#fff4e0;border:1px solid #ffe2b0;border-radius:999px;padding:2px 8px}.pillar-card .open{display:inline-block;margin-top:8px;color:var(--brand);font-weight:600}.onboard-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:1fr;margin-top:20px}@media (min-width:760px){.onboard-grid{grid-template-columns:1fr 1fr 1fr}}.onboard-card{display:flex;flex-direction:column;gap:6px;background:var(--card);border:1px solid #e6ecf3;border-radius:var(--radius);padding:18px}.onboard-card h2{margin:0 0 8px;font-size:16px;color:var(--brand)}.onboard-card label{font-size:13px;color:#44566b;margin-top:6px}.onboard-card button{min-height:44px;margin-top:12px;border-radius:10px;border:1px solid var(--brand);background:var(--brand);color:#fff;font-size:15px;cursor:pointer}.form-ok{color:#1a7f37;font-size:14px}.form-err{color:#b00020;font-size:14px}.soler-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.pill{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px}.pill-on{background:#e3f5e9;color:#1a7f37}.pill-off{background:#fdeaea;color:#b00020}.soler-form{display:grid;grid-gap:12px;gap:12px;margin:14px 0}.soler-form label{display:grid;grid-gap:4px;gap:4px;font-size:14px;color:#44566b}.soler-form input,.soler-form select{min-height:40px;padding:0 10px;border:1px solid #cdd7e2;border-radius:10px;font-size:15px;background:#fff}.soler-trials{display:flex;gap:12px}.soler-trials label{flex:1 1}.outbox-actions button:disabled{opacity:.5;cursor:not-allowed}.soler-assignments{margin-top:16px;border-top:1px solid #e6ecf3;padding-top:12px}.soler-assignments h3{font-size:15px;color:var(--brand);margin:0 0 8px}.soler-assignments ul{list-style:none;padding:0;margin:0;display:grid;grid-gap:6px;gap:6px}.soler-assignments li{font-size:14px;color:#44566b}.status{display:inline-block;min-width:92px;font-size:11px;font-weight:700;text-align:center;padding:2px 8px;border-radius:6px;background:#eef2f7;color:#5b6b7b}.status-mastered{background:#e3f5e9;color:#1a7f37}.status-in_progress{background:#fff4e0;color:#9a6400}.status-assigned{background:#e8eefc;color:#2b4eaa}.pillar-link{display:block;text-decoration:none;color:inherit;transition:box-shadow .15s ease,transform .15s ease}.pillar-link:hover{box-shadow:0 6px 20px rgba(11,92,171,.15);transform:translateY(-2px)}.links-domains{display:grid;grid-gap:16px;gap:16px}.objective-list{list-style:none;padding:0;margin:0;display:grid;grid-gap:8px;gap:8px}.objective-list li{display:grid;grid-template-columns:130px 1fr auto;grid-gap:12px;gap:12px;align-items:baseline;padding:8px 0;border-top:1px solid #eef2f7;font-size:14px}.objective-list li:first-child{border-top:none}.obj-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--brand)}.obj-title{color:var(--brand-ink)}.obj-lessons{color:var(--muted);font-size:13px;white-space:nowrap}.risk{display:inline-block;min-width:74px;text-align:center;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.risk-green{background:#e3f5e9;color:#1a7f37}.risk-yellow{background:#fff4e0;color:#9a6400}.risk-red{background:#fdeaea;color:#b00020}.risk-list{list-style:none;padding:0;margin:0;display:grid;grid-gap:6px;gap:6px}.risk-row{display:flex;align-items:center;gap:12px;padding:9px 10px;border:1px solid #e6ecf3;border-radius:10px;text-decoration:none;color:var(--brand-ink);transition:background .12s ease,box-shadow .12s ease}.risk-row:hover{background:#f7fafc;box-shadow:0 2px 10px rgba(11,92,171,.08)}.risk-name{font-weight:600;flex:1 1}.risk-grade{font-size:13px}.risk-counts{display:flex;gap:4px}.risk-chip{display:inline-block;min-width:22px;text-align:center;font-size:11px;font-weight:700;padding:1px 6px;border-radius:6px}.goal-pred-list{list-style:none;padding:0;margin:10px 0 0;display:grid;grid-gap:8px;gap:8px}.goal-pred-list li{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid #e6ecf3;border-radius:10px}.goal-pred-main{flex:1 1;display:flex;flex-direction:column;gap:1px}.goal-pred-domain{font-size:11px;color:var(--brand);font-weight:700;text-transform:uppercase;letter-spacing:.02em}.goal-pred-desc{font-size:14px;color:var(--brand-ink)}.goal-pred-meta{text-align:right;display:flex;flex-direction:column;gap:0;min-width:92px}.goal-pred-prob{font-size:18px;font-weight:700;color:var(--brand-ink)}.goal-pred-acc{font-size:11px}.goal-pred-foot{font-size:12px;margin-top:12px}.riskbar{display:flex;height:22px;border-radius:6px;overflow:hidden;margin:12px 0 8px;border:1px solid #e6ecf3}.riskbar-seg{height:100%}.seg-red{background:#e4572e}.seg-yellow{background:#f0b429}.seg-green{background:#2f9e54}.riskbar-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:#44566b}.riskbar-legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:baseline}.dot-red{background:#e4572e}.dot-yellow{background:#f0b429}.dot-green{background:#2f9e54}@media (max-width:560px){.risk-grade{display:none}.goal-pred-desc{font-size:13px}}