@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--font-body:"Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-display:"Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--brand:#7c5cbf;--brand-dark:#5b3f97;--brand-soft:#ece6f9;--brand-softer:#f6f2fc;--accent:#b8a4e0;--bg:#f6f2fc;--surface:#fff;--surface-2:#faf8fe;--border:#e6ddf5;--text:#2c2440;--text-soft:#6b6280;--danger:#c0567a;--danger-dark:#9c3f60;--ok:#4f9d7a;--warn:#c98a3c;--shadow:0 1px 3px #3c286414, 0 4px 16px #3c28640f;--radius:12px}:root[data-theme=dark]{--brand:#b9a3e8;--brand-dark:#cbb8f2;--brand-soft:#2a2340;--brand-softer:#1b1730;--accent:#8f7bc0;--bg:#16121f;--surface:#221c33;--surface-2:#1c1729;--border:#33294d;--text:#ece8f6;--text-soft:#a99fc4;--shadow:0 1px 3px #0000004d, 0 4px 16px #00000040}*{box-sizing:border-box}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;letter-spacing:-.01em;margin:0}a{color:var(--brand-dark);text-decoration:none}a:hover{text-decoration:underline}.app-shell{min-height:100vh;display:flex}.sidebar{background:linear-gradient(180deg, var(--surface), var(--surface-2));border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:4px;width:250px;padding:20px 14px;display:flex}.sidebar .brand{font-family:var(--font-display);color:var(--brand-dark);letter-spacing:-.03em;padding:6px 10px 16px;font-size:20px;font-weight:800;line-height:1.15}.sidebar .brand small{font-family:var(--font-body);color:var(--text-soft);letter-spacing:.04em;text-transform:uppercase;margin-top:3px;font-size:11px;font-weight:500;display:block}.nav-group-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-soft);padding:12px 10px 4px;font-size:11px}.nav-link{color:var(--text);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:10px 12px;font-size:14px;transition:background .15s,color .15s,transform .12s;display:flex}.nav-link:hover{background:var(--brand-softer);text-decoration:none;transform:translate(3px)}.nav-link.active{background:var(--brand-soft);color:var(--brand-dark);box-shadow:inset 3px 0 0 var(--brand);font-weight:600}.main{flex-direction:column;flex:1;min-width:0;display:flex}.content{width:100%;max-width:1100px;padding:26px 32px}.topbar{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.topbar .who{color:var(--text-soft);font-size:13px}.topbar .who b{color:var(--text)}h1{font-family:var(--font-display);letter-spacing:-.03em;margin:0 0 6px;font-size:28px;font-weight:800;line-height:1.15}h2{font-family:var(--font-display);letter-spacing:-.02em;margin:28px 0 14px;font-size:19px;font-weight:700}.page-sub{color:var(--text-soft);margin:0 0 22px;font-size:15px}.btn{cursor:pointer;background:var(--brand-soft);color:var(--brand-dark);border:none;border-radius:10px;align-items:center;gap:6px;padding:10px 17px;font-size:14px;font-weight:600;transition:transform 80ms,filter .15s,box-shadow .15s;display:inline-flex}.btn:hover{filter:brightness(.98);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--brand-dark);color:#fff}.btn-primary:hover{background:var(--brand)}.btn-danger{background:var(--danger-dark);color:#fff}.btn-ghost{color:var(--text-soft);background:0 0}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:6px 12px;font-size:13px}.grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.doc-card{cursor:pointer;flex-direction:column;gap:8px;transition:transform 80ms;display:flex}.doc-card:hover{border-color:var(--accent);transform:translateY(-2px)}.doc-card .title{font-size:15px;font-weight:600}.doc-card .desc{color:var(--text-soft);font-size:13px;line-height:1.4}.doc-meta{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.tile{background:linear-gradient(135deg, var(--surface), var(--surface-2));border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;padding:22px;transition:transform .1s,border-color .15s,box-shadow .15s;position:relative;overflow:hidden}.tile:before{content:"";background:var(--brand);opacity:0;width:3px;transition:opacity .15s;position:absolute;top:0;bottom:0;left:0}.tile:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 6px 22px #50378224}.tile:hover:before{opacity:1}.tile .count{color:var(--brand-dark);font-size:26px;font-weight:700}.tile .label{color:var(--text);letter-spacing:-.01em;font-size:15px;font-weight:600}.badge{background:var(--brand-soft);color:var(--brand-dark);border-radius:999px;align-items:center;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.badge.branch{color:#2f6b52;background:#e3f0ea}.badge.type{background:var(--surface-2);color:var(--text-soft);border:1px solid var(--border)}.badge.restricted{color:var(--danger-dark);background:#f6e0e8}.badge.general{color:#3a5f9c;background:#e5eefb}:root[data-theme=dark] .badge.branch{color:#8fd4b0;background:#23402f}:root[data-theme=dark] .badge.restricted{color:#e6a3bd;background:#3f2230}:root[data-theme=dark] .badge.general{color:#9fbef0;background:#222f47}label{margin:14px 0 6px;font-size:13px;font-weight:600;display:block}input,select,textarea{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:9px;padding:10px 12px;font-family:inherit;font-size:14px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);border-color:var(--accent)}.search-bar input{border-radius:11px;padding:13px 16px;font-size:15px}.hint{color:var(--text-soft);margin-top:4px;font-size:12px}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-soft);font-size:12px}.empty{text-align:center;color:var(--text-soft);padding:48px 16px}.notice{background:var(--brand-soft);color:var(--brand-dark);border-radius:9px;margin-bottom:14px;padding:10px 14px;font-size:14px}.error{color:var(--danger-dark);background:#f6e0e8;border-radius:9px;margin-bottom:14px;padding:10px 14px;font-size:14px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.spacer{flex:1}.login-wrap{background:linear-gradient(120deg, var(--brand-softer), var(--brand-soft), var(--brand-softer));background-size:200% 200%;place-items:center;min-height:100vh;padding:20px;animation:14s infinite floatBg;display:grid}.login-card{width:100%;max-width:420px;animation:.45s both fadeUp}.demo-user-list{flex-direction:column;gap:8px;max-height:340px;margin-top:8px;display:flex;overflow-y:auto}.demo-user{border:1px solid var(--border);cursor:pointer;background:var(--surface);border-radius:9px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.demo-user:hover{border-color:var(--accent);background:var(--brand-softer)}.demo-user .nm{font-size:14px;font-weight:600}.demo-user .em{color:var(--text-soft);font-size:12px}@media (width<=720px){.sidebar{display:none}.content{padding:18px}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes floatBg{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.content{animation:.34s both fadeUp}h1,.page-sub{animation:.4s both fadeUp}.grid>*{animation:.42s both fadeUp}.grid>:first-child{animation-delay:20ms}.grid>:nth-child(2){animation-delay:60ms}.grid>:nth-child(3){animation-delay:.1s}.grid>:nth-child(4){animation-delay:.14s}.grid>:nth-child(5){animation-delay:.18s}.grid>:nth-child(6){animation-delay:.22s}.grid>:nth-child(n+7){animation-delay:.26s}.card{transition:transform .1s,box-shadow .15s,border-color .15s}.doc-card:hover{box-shadow:0 6px 22px #50378224}tbody tr{transition:background .12s}tbody tr:hover{background:var(--brand-softer)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
