:root{--ink: #10233a;--ink-soft: #3d536b;--teal: #1b7a74;--teal-deep: #0f4f4c;--teal-wash: #dceceb;--sand: #f4efe6;--sand-soft: #e8e2d6;--sand-faint: #c9c1b3;--paper: #f6f3ee;--line: #d8d0c4;--card: #fff;--danger: #9b2c2c;--sans: "Source Sans 3", "Segoe UI", sans-serif}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.5}a{color:var(--teal-deep)}:focus-visible{outline:2px solid var(--teal);outline-offset:2px}h1,h2,h3{line-height:1.2}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.45rem 1rem;border-radius:8px;border:1px solid transparent;background:var(--ink);color:#fff;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;transition:background .15s ease,border-color .15s ease,transform .15s ease}.btn:hover{background:var(--teal-deep)}.btn:active{transform:translateY(1px)}.btn[disabled]{opacity:.6;cursor:default}.btn[disabled]:hover{background:var(--ink)}.btn[disabled]:active{transform:none}.btn-ghost{background:var(--card);color:var(--ink);border-color:var(--line)}.btn-ghost:hover{background:var(--card);border-color:var(--ink)}.btn-ghost[disabled]:hover{border-color:var(--line)}.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.9rem}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:8px;padding:.6rem .75rem;font:inherit;background:var(--card)}input.ng-touched.ng-invalid,textarea.ng-touched.ng-invalid,select.ng-touched.ng-invalid{border-color:var(--danger)}.field-err{font-size:.82rem;color:var(--danger)}textarea{min-height:7rem;resize:vertical}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem}.notice{padding:.75rem .9rem;border-radius:8px;margin-bottom:.9rem}.notice-ok{background:var(--teal-wash)}.notice-err{background:#f8e6e6;color:var(--danger)}.muted{color:var(--ink-soft)}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:.65rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}.status{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:#e8e4db;border-radius:999px;padding:.15rem .5rem}@media(max-width:640px){.table{display:block;overflow-x:auto}}
