:root{--pri: #772c77;--pri-l: #8e3d8e;--pri-d: #5c1f5c;--acc: #dbb13b;--acc-l: #e6c45a;--bg: #f7f4f7;--surface: #ffffff;--text: #2d1a2d;--muted: #7a6480;--border: #e0d4e0;--ok: #2a9d8f;--err: #e63946}*{margin:0;padding:0;box-sizing:border-box}body{font-family:DM Sans,system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:.9rem;line-height:1.5}.btn{padding:.5rem 1.1rem;border-radius:.5rem;border:none;font-weight:600;font-size:.82rem;cursor:pointer;transition:all .15s;font-family:inherit;display:inline-flex;align-items:center;gap:.35rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-pri{background:var(--pri);color:#fff}.btn-pri:hover:not(:disabled){background:var(--pri-d)}.btn-acc{background:var(--acc);color:#2d1a2d}.btn-acc:hover:not(:disabled){background:var(--acc-l)}.btn-out{background:transparent;border:1.5px solid var(--border);color:var(--text)}.btn-out:hover:not(:disabled){border-color:var(--pri);color:var(--pri)}.btn-danger{background:var(--err);color:#fff}.btn-danger:hover:not(:disabled){background:#c62a36}.btn-outline{background:transparent;border:1.5px solid var(--border);color:var(--text)}.btn-outline:hover:not(:disabled){border-color:var(--pri);color:var(--pri)}.btn-err{background:var(--err);color:#fff}.btn-err:hover:not(:disabled){background:#c62a36}.btn-sm{padding:.3rem .7rem;font-size:.78rem}.card{background:var(--surface);border:1.5px solid var(--border);border-radius:.75rem;padding:1.25rem;margin-bottom:1rem}.fl{display:block;font-size:.78rem;font-weight:600;color:var(--muted);margin-bottom:.2rem}.fl .req{color:var(--err);margin-left:2px}.fi{width:100%;padding:.5rem .65rem;border:1.5px solid var(--border);border-radius:.5rem;font-size:.85rem;font-family:inherit;background:#fff;transition:border-color .15s}.fi:focus{outline:none;border-color:var(--pri);box-shadow:0 0 0 3px #772c7714}.fi.err{border-color:var(--err)}.fg{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 1rem}.fw{grid-column:1 / -1}.dt{width:100%;border-collapse:collapse;font-size:.82rem}.dt th{background:var(--bg);padding:.55rem .75rem;text-align:left;font-weight:600;color:var(--muted);border-bottom:2px solid var(--border);white-space:nowrap}.dt td{padding:.55rem .75rem;border-bottom:1px solid var(--border)}.dt tbody tr:hover{background:#772c7708}.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600}.badge-ok{background:#e6f7f4;color:var(--ok)}.badge-warn{background:#fef9e7;color:#b8860b}.badge-err{background:#fef2f2;color:var(--err)}.badge-info{background:#f0edf5;color:var(--pri)}.stat-card{background:var(--surface);border:1.5px solid var(--border);border-radius:.75rem;padding:1.1rem 1.25rem;text-align:center}.stat-card .num{font-size:1.6rem;font-weight:700;color:var(--pri)}.stat-card .lab{font-size:.75rem;color:var(--muted);margin-top:.15rem}.sidebar{width:240px;min-height:100vh;background:linear-gradient(180deg,var(--pri-d) 0%,var(--pri) 100%);color:#fff;flex-shrink:0}.slink{display:flex;align-items:center;gap:.5rem;width:100%;padding:.6rem 1.25rem;border:none;background:none;color:#ffffffa6;font-size:.82rem;font-weight:500;cursor:pointer;transition:all .15s;font-family:inherit;text-align:left}.slink:hover{background:#ffffff14;color:#fff}.slink.act{background:#ffffff21;color:#fff;font-weight:600;border-left:3px solid var(--acc)}.slink.module-header{color:#ffffffd9;font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;padding:.7rem 1.25rem;margin-top:.25rem}.slink.sub-link{padding:.45rem 1rem;font-size:.8rem;border-left:3px solid transparent}.toast{position:fixed;bottom:2rem;right:2rem;padding:.75rem 1.25rem;border-radius:.65rem;color:#fff;font-weight:500;font-size:.85rem;z-index:9999;animation:slideIn .3s ease;box-shadow:0 4px 12px #00000026}.toast.ok{background:var(--ok)}.toast.er{background:var(--err)}@keyframes slideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.gold-bar{height:2px;background:linear-gradient(90deg,var(--acc),rgba(219,177,59,.2));border-radius:1px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:999;padding:1rem}.main-content{flex:1;padding:2rem;overflow-x:hidden;max-width:1200px}.mobile-header,.sidebar-close-btn,.sidebar-backdrop{display:none}@media print{.sidebar,.btn,.fi,.toast,.no-print,.mobile-header{display:none!important}main{padding:0!important}.card{break-inside:avoid}}@media (max-width: 768px){.sidebar{position:fixed;top:0;left:0;bottom:0;width:270px;transform:translate(-100%);transition:transform .3s ease;z-index:1001}.sidebar.sidebar-open{transform:translate(0)}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.sidebar-close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:#ffffff1f;border:none;color:#fff;font-size:1.1rem;cursor:pointer}.sidebar-close-btn:hover{background:#fff3}.slink{padding:.85rem 1.25rem;font-size:.9rem;min-height:48px}.mobile-header{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem;background:var(--surface);border-bottom:1.5px solid var(--border);position:sticky;top:0;z-index:100}.mobile-header-title{font-weight:700;font-size:1rem;color:var(--pri)}.hamburger-btn{display:flex;flex-direction:column;justify-content:center;gap:4px;width:40px;height:40px;padding:8px;background:none;border:1.5px solid var(--border);border-radius:8px;cursor:pointer}.hamburger-btn span{display:block;width:100%;height:2.5px;background:var(--pri);border-radius:2px}.hamburger-btn:active{background:var(--bg)}.main-content{padding:1rem}.fg{grid-template-columns:1fr}.btn{min-height:42px;padding:.55rem 1rem;font-size:.85rem}.btn-sm{min-height:36px;padding:.4rem .75rem}.fi{padding:.6rem .75rem;font-size:.9rem;min-height:44px}.dt td,.dt th{padding:.65rem .5rem;font-size:.8rem}.stat-card{padding:.85rem}.stat-card .num{font-size:1.3rem}.toast{left:1rem;right:1rem;bottom:1rem;text-align:center}.modal-overlay{padding:.75rem}.modal-overlay .card{max-width:100%}.card{padding:1rem;margin-bottom:.75rem}h1{font-size:1.1rem!important}}@media (max-width: 380px){.sidebar{width:100%}.main-content{padding:.75rem}.btn{font-size:.8rem;padding:.5rem .75rem}.dt td,.dt th{padding:.5rem .35rem;font-size:.75rem}}
