:root{--color-bg:#faf8f3;--color-surface:#fff;--color-surface-alt:#f6f3ea;--color-surface-sunken:#f0ead9;--color-text:#1c1a16;--color-text-muted:#726b5c;--color-text-soft:#9a927e;--color-black:#111;--color-black-soft:#1c1c1c;--color-primary:#f2c230;--color-primary-dark:#caa023;--color-primary-50:#fdf6df;--color-danger:#c0392b;--color-danger-soft:#fbe4e1;--color-success:#2e7d32;--color-success-soft:#e3f1e4;--color-border:#e5e0d2;--color-shell-900:var(--color-black);--color-shell-800:var(--color-black-soft);--color-shell-hover:#ffffff12;--color-shell-border:#ffffff17;--color-shell-text:#ffffffb8;--color-shell-text-strong:#fff;--radius:10px;--radius-sm:6px;--radius-lg:16px;--radius-pill:999px;--shadow-sm:0 1px 2px #1111110f, 0 1px 1px #1111110a;--shadow-md:0 6px 16px #11111117, 0 1px 3px #1111110f;--shadow-lg:0 16px 36px #11111129, 0 4px 10px #11111114;--sidebar-width:232px;--sidebar-width-collapsed:76px;--header-height:64px;--transition-fast:.15s ease;--transition-base:.22s cubic-bezier(.4, 0, .2, 1);--font-sans:"Segoe UI", system-ui, -apple-system, Roboto, sans-serif}*{box-sizing:border-box}body{font-family:var(--font-sans);background:var(--color-surface-alt);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{letter-spacing:-.01em;margin:0 0 .35rem;font-weight:700}h1{margin-bottom:.3rem;font-size:1.65rem}h2{color:var(--color-text);margin-top:2rem;margin-bottom:.85rem;font-size:1.15rem}p{color:var(--color-text-muted)}a{color:inherit}button,input,select{font-family:inherit;font-size:.95rem}button{cursor:pointer;border-radius:var(--radius-sm);background:var(--color-primary);min-height:44px;color:var(--color-black);box-shadow:var(--shadow-sm);transition:background-color var(--transition-fast), box-shadow var(--transition-fast), transform 50ms ease;border:none;padding:.6rem 1.1rem;font-weight:600}button:hover{background:var(--color-primary-dark);box-shadow:var(--shadow-md)}button:active{transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.6;box-shadow:none}button.secondary{color:var(--color-text);border:1px solid var(--color-border);box-shadow:none;background:0 0}button.secondary:hover{background:var(--color-surface-alt);box-shadow:none}button.danger{background:var(--color-danger);color:#fff}button.danger:hover{background:#a53125}.btn-sm{min-height:32px;padding:.3rem .75rem;font-size:.82rem}.icon-btn{width:32px;min-height:32px;color:var(--color-text-muted);border:1px solid var(--color-border);box-shadow:none;background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover{background:var(--color-danger);color:#fff;border-color:var(--color-danger);box-shadow:none}.actions-cell{white-space:nowrap;flex-wrap:nowrap;align-items:center;gap:.4rem;display:flex}.actions-cell button{flex-shrink:0}input,select{border:1px solid var(--color-border);border-radius:var(--radius-sm);min-height:44px;color:var(--color-text);width:100%;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);background:#fff;padding:.55rem .65rem}input:focus,select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #f2c2304d}.table-scroll{-webkit-overflow-scrolling:touch;border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);overflow-x:auto}table{border-collapse:collapse;background:var(--color-surface);width:100%;min-width:560px}th,td{text-align:left;border-bottom:1px solid var(--color-border);padding:.7rem .85rem;font-size:.92rem}th{background:var(--color-black);color:var(--color-primary);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;font-size:.78rem;font-weight:600}tbody tr:last-child td{border-bottom:none}tbody tr:nth-child(2n){background:var(--color-surface-alt)}tbody tr:hover{background:#f0ead9}tfoot td{border-top:2px solid var(--color-border);background:var(--color-surface-alt);border-bottom:none}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.5rem}.error-message{color:var(--color-danger);font-size:.88rem;font-weight:500}.success-message{color:var(--color-success);font-size:.88rem;font-weight:500}.page{max-width:1120px;margin:0 auto;padding:1.75rem 1.5rem 3rem}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem;margin-bottom:1.5rem;display:flex}.page-header p{max-width:60ch;margin:0}.form-row{flex-wrap:wrap;align-items:end;gap:.85rem;margin-bottom:1.25rem;display:flex}.form-row label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.02em;flex-direction:column;flex:160px;gap:.3rem;font-size:.8rem;font-weight:600;display:flex}.form-row button{flex:none}.badge{border-radius:var(--radius-pill);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;align-items:center;gap:.3rem;padding:.22rem .6rem;font-size:.74rem;font-weight:700;line-height:1.4;display:inline-flex}.badge-success{background:var(--color-success-soft);color:var(--color-success)}.badge-warning{background:var(--color-primary-50);color:var(--color-primary-dark)}.badge-danger{background:var(--color-danger-soft);color:var(--color-danger)}.badge-neutral{background:var(--color-surface-alt);color:var(--color-text-muted);border:1px solid var(--color-border)}.badge-gold{background:var(--color-primary);color:var(--color-black)}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.module-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.skeleton{background:var(--color-surface-alt);border-radius:var(--radius-sm);position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffff8c,#0000);animation:1.4s ease-in-out infinite skeleton-sweep;position:absolute;inset:0;transform:translate(-100%)}@keyframes skeleton-sweep{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.skeleton:after{animation:none}}@media (width<=640px){.page{padding:1.25rem 1rem 2.5rem}.form-row{flex-direction:column;align-items:stretch}.form-row label,.form-row button{flex:auto;width:100%}}.loading-overlay.svelte-1qpkoic{z-index:1000;background:#1119;justify-content:center;align-items:center;animation:.15s svelte-1qpkoic-fade-in;display:flex;position:fixed;inset:0}.spinner.svelte-1qpkoic{border:5px solid #f2c23040;border-top-color:var(--color-primary,#f2c230);border-radius:50%;width:52px;height:52px;animation:.7s linear infinite svelte-1qpkoic-spin}@keyframes svelte-1qpkoic-spin{to{transform:rotate(360deg)}}@keyframes svelte-1qpkoic-fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.spinner.svelte-1qpkoic{animation-duration:1.6s}.loading-overlay.svelte-1qpkoic{animation:none}}.confirm-backdrop.svelte-193t4hn{z-index:1100;background:#1111118c;justify-content:center;align-items:center;padding:1rem;animation:.15s svelte-193t4hn-confirm-fade;display:flex;position:fixed;inset:0}.confirm-backdrop-dismiss.svelte-193t4hn{width:100%;height:100%;box-shadow:none;cursor:default;background:0 0;border:none;border-radius:0;position:absolute;inset:0}.confirm-dialog.svelte-193t4hn{background:var(--color-surface);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:var(--shadow-lg);text-align:center;outline:none;padding:1.5rem;animation:.18s svelte-193t4hn-confirm-pop;position:relative}.confirm-icon.svelte-193t4hn{background:var(--color-danger-soft);width:48px;height:48px;color:var(--color-danger);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.75rem;display:inline-flex}.confirm-icon-primary.svelte-193t4hn{background:var(--color-primary-50);color:var(--color-primary-dark)}.confirm-dialog.svelte-193t4hn h2:where(.svelte-193t4hn){margin-bottom:.4rem;font-size:1.05rem}.confirm-dialog.svelte-193t4hn p:where(.svelte-193t4hn){margin:0;font-size:.9rem}.confirm-actions.svelte-193t4hn{justify-content:center;gap:.6rem;margin-top:1.35rem;display:flex}.confirm-actions.svelte-193t4hn button:where(.svelte-193t4hn){flex:1}@keyframes svelte-193t4hn-confirm-fade{0%{opacity:0}to{opacity:1}}@keyframes svelte-193t4hn-confirm-pop{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.confirm-backdrop.svelte-193t4hn,.confirm-dialog.svelte-193t4hn{animation:none}}
