:root{--blue:#4a90e2;--blue-dark:#2e3092;--blue-light:#e3f2fd;--green:#7db655;--green-dark:#5a9a35;--green-light:#e8f5e9;--teal:#009688;--teal-light:#e0f2f1;--gray-50:#fafafa;--gray-100:#f5f5f5;--gray-200:#eeeeee;--gray-300:#e0e0e0;--gray-400:#bdbdbd;--gray-600:#757575;--gray-800:#424242;--gray-900:#212121;--danger:#e74c3c;--brand:var(--blue-dark);--brand-dark:#232575;--accent:var(--green);--ink:var(--gray-900);--muted:var(--gray-600);--bg:#ffffff;--surface:var(--gray-50);--line:var(--gray-300);--radius:12px;--shadow-sm:0 2px 12px rgba(0,0,0,0.08);--shadow-md:0 4px 24px rgba(0,0,0,0.12)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg);line-height:1.55;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}h1,h2,h3{line-height:1.25;letter-spacing:-.01em}h1{font-size:1.9rem}h2{font-size:1.35rem}a{color:var(--blue-dark);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--blue)}::selection{background:color-mix(in srgb,var(--brand) 18%,transparent)}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{transition:filter .12s ease,transform 60ms ease}button:not(:disabled):hover{filter:brightness(1.06)}button:not(:disabled):active{transform:translateY(1px)}input,select,textarea{background:var(--bg);transition:border-color .12s ease,box-shadow .12s ease}input:focus,select:focus,textarea:focus{border-color:var(--brand)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 15%,transparent);outline:none}input::placeholder,textarea::placeholder{color:#9e9e9e}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}details>summary{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}details>summary:hover{color:var(--brand)}table{border-collapse:collapse}img{max-width:100%}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.muted{color:var(--muted)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}button{transition:none}}