:root{--ink:#202043;--muted:#61617c;--paper:#fffafd;--surface:#fff;--line:#e8e1f1;--primary:#5f3ee8;--primary-dark:#4627be;--coral:#f25474;--teal:#0aa999;--sun:#ffbd32;--lavender:#eee9ff;--danger:#c83f54;--radius:18px;--shadow:0 15px 38px rgba(66,43,130,.12);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;line-height:1.5;background:radial-gradient(circle at 94% 0,#ffe7a9 0,transparent 21rem),radial-gradient(circle at 0 20%,#e2fffa 0,transparent 22rem),var(--paper)}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;z-index:4;background:#fff;padding:.75rem}.topbar{min-height:74px;display:flex;align-items:center;gap:1rem;padding:.75rem max(1rem,calc((100vw - 1280px)/2));background:rgba(255,255,255,.86);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:.6rem;font-weight:900;color:var(--ink);text-decoration:none;font-size:1.1rem}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:linear-gradient(135deg,var(--coral),var(--primary) 58%,var(--teal));color:#fff;box-shadow:0 7px 16px #8d79de77}.tagline{margin:0;color:var(--muted);font-size:.9rem;flex:1}.shell{max-width:1280px;margin:auto;display:grid;grid-template-columns:210px 1fr;min-height:calc(100vh - 74px)}.sidebar{padding:1.4rem .75rem;border-right:1px solid var(--line)}.sidebar ul{list-style:none;margin:0;padding:0}.sidebar a{display:block;padding:.7rem .8rem;text-decoration:none;color:var(--ink);border-radius:11px;font-weight:650}.sidebar a:hover,.sidebar a:focus-visible{background:var(--lavender);color:var(--primary)}.main{padding:2.25rem;max-width:1040px;width:100%}h1{font-size:clamp(2rem,4vw,3.25rem);line-height:1.04;letter-spacing:-.04em;margin:.1rem 0 1rem}h2{margin-top:0}.lead{font-size:1.1rem;color:var(--muted);max-width:70ch}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.card{background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.3rem}.stat{font-size:1.9rem;font-weight:900;margin:.25rem 0;color:var(--primary)}.muted{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.65rem 1rem;border-radius:12px;border:1px solid var(--primary);background:var(--primary);color:#fff;text-decoration:none;font:inherit;font-weight:800;cursor:pointer;box-shadow:0 7px 15px #5f3ee833}.btn:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn--ghost{color:var(--primary);background:#fff;box-shadow:none}.btn--sun{border-color:var(--sun);background:var(--sun);color:#372800;box-shadow:none}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.form-field{display:grid;gap:.35rem;font-weight:700}.input,textarea,select{width:100%;padding:.72rem .78rem;border:1px solid #cfc5e3;border-radius:10px;background:#fff;font:inherit;color:var(--ink)}textarea{min-height:120px}.notice{padding:.8rem 1rem;border-left:4px solid var(--teal);background:#e5fbf7;border-radius:10px}.warning{border-left-color:#d78200;background:#fff4d6}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.7rem;border-bottom:1px solid var(--line)}.portal--public .shell{display:block;max-width:1180px}.portal--public .sidebar{display:none}.portal--public .main{max-width:none;padding:clamp(2rem,6vw,5rem) 2rem}.portal--public h1{max-width:750px;background:linear-gradient(105deg,var(--primary),#bb3e9b 45%,var(--coral));background-clip:text;color:transparent}.portal--public .lead{font-size:1.25rem;max-width:630px}.portal--public .grid{margin-top:2rem;max-width:880px}.portal--public .card:first-child{border-top:5px solid var(--coral)}.portal--public .card:last-child{border-top:5px solid var(--teal)}:focus-visible{outline:3px solid var(--sun);outline-offset:2px}@media(max-width:700px){.tagline{display:none}.shell{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);overflow:auto}.sidebar ul{display:flex;min-width:max-content}.main,.portal--public .main{padding:1.25rem}.topbar{padding:.75rem 1rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto;transition:none!important}}
