:root{--navy1: #0b2040;--navy2: #1a5276;--cyan: #0097b2;--cyan-bright: #00c2d4;--bg: #eef4fa;--card: #ffffff;--ink: #0e3460;--muted: #5b7088}*{box-sizing:border-box}body{margin:0;font-family:DM Sans,system-ui,sans-serif;background:var(--bg);color:var(--ink)}.hdr{display:flex;align-items:center;gap:1.5rem;padding:.85rem 1.5rem;background:linear-gradient(135deg,var(--navy1),var(--navy2));color:#fff}.brand{font-weight:700;font-size:1.1rem}.nav{display:flex;gap:1rem;flex:1}.nav a{color:#cfe3f5;text-decoration:none;padding:.3rem .2rem;border-bottom:2px solid transparent}.nav a.active,.nav a:hover{color:#fff;border-color:var(--cyan-bright)}.user{display:flex;align-items:center;gap:.75rem;font-size:.85rem}.user span{max-width:16rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content{max-width:60rem;margin:1.5rem auto;padding:0 1.5rem}h1{font-family:Playfair Display,serif}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem}.card{background:var(--card);border-left:4px solid var(--cyan);border-radius:8px;padding:1rem;box-shadow:0 1px 4px #0e346014;display:flex;flex-direction:column;gap:.5rem}.card-name{font-weight:600}.card-meta{color:var(--muted);font-size:.85rem}.btn{background:var(--cyan);color:#fff;border:0;border-radius:6px;padding:.5rem .9rem;font-weight:600;cursor:pointer}.btn:hover{background:var(--cyan-bright)}.btn:disabled{opacity:.6;cursor:default}.btn-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5);border-radius:6px;padding:.35rem .7rem;cursor:pointer}.qsection{margin:1rem 0}.q{border:1px solid #dce7f2;border-radius:8px;margin:.75rem 0;padding:.75rem 1rem}.q legend{font-weight:600;padding:0 .4rem}.opt{display:block;padding:.25rem 0;cursor:pointer}.locked{color:var(--muted)}.result{background:var(--card);border-radius:10px;padding:1.25rem;margin-top:1rem;text-align:center}.result .pct{font-size:2.5rem;font-weight:700;color:var(--cyan)}.ok{color:#2e7d32}.warn{color:#b26a00}.muted{color:var(--muted)}.tbl{width:100%;border-collapse:collapse;background:var(--card);border-radius:8px;overflow:hidden}.tbl th{background:var(--ink);color:#fff;text-align:left;padding:.6rem .8rem;font-size:.85rem}.tbl td{padding:.55rem .8rem;border-top:1px solid #e3ecf5;font-size:.9rem}.login{max-width:26rem;margin:6rem auto;text-align:center;padding:2rem;background:var(--card);border-radius:12px;box-shadow:0 2px 12px #0e34601a}.login h1{margin-top:0}.ftr{text-align:center;color:var(--muted);padding:2rem;font-size:.85rem}
