:root{color-scheme:light;--ink: #18233a;--mute: #5b6a82;--mute-light: rgba(91, 106, 130, .14);--acc: #3a6cf4;--acc-hover: #2f5de0;--acc2: #14b8a6;--warn: #e5484d;--amber: #f59e0b;--edge: rgba(255, 255, 255, .78);--shadow: 0 12px 34px rgba(58, 90, 160, .13);--glass-bg: linear-gradient(140deg, rgba(255, 255, 255, .68), rgba(255, 255, 255, .28));box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}*,*:before,*:after{box-sizing:inherit}html{height:100%;scroll-padding-top:env(safe-area-inset-top,0px)}body{margin:0;min-height:100%;font-family:Figtree,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--ink);background:#e8eefb;font-size:15px;overflow-x:hidden;-webkit-font-smoothing:antialiased}.blobs{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;background:linear-gradient(160deg,#eef3ff,#e4f5f3 60%,#fdf0e6);pointer-events:none}.blobs i{position:absolute;border-radius:50%;filter:blur(64px);opacity:.78;animation:drift 22s ease-in-out infinite alternate}.blobs i:nth-child(1){width:48vmax;height:48vmax;left:-12vmax;top:-10vmax;background:#9bb8ff}.blobs i:nth-child(2){width:40vmax;height:40vmax;right:-8vmax;top:18vh;background:#8fe3d4;animation-delay:-7s}.blobs i:nth-child(3){width:36vmax;height:36vmax;left:28vw;bottom:-15vmax;background:#ffd0b0;animation-delay:-13s}@keyframes drift{0%{transform:translate(0) scale(1)}to{transform:translate(6vmax,-4vmax) scale(1.12)}}@media(prefers-reduced-motion:reduce){.blobs i{animation:none}*{transition:none!important}}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(24px) saturate(1.7);backdrop-filter:blur(24px) saturate(1.7);border:1px solid var(--edge);border-radius:24px;box-shadow:inset 0 1.5px #fffffff2,inset 0 -1px #ffffff59,var(--shadow)}.glass-pill{background:#ffffff8c;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--edge);border-radius:999px}.app{display:grid;grid-template-columns:272px minmax(0,1fr);gap:16px;padding:16px;min-height:100vh}.side{position:sticky;top:16px;height:calc(100vh - 32px);padding:18px 14px;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:2px 8px 20px;font-weight:700;font-size:19px;letter-spacing:-.01em;color:var(--ink);text-decoration:none;-webkit-user-select:none;user-select:none}.logo{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,var(--acc),var(--acc2));display:grid;place-items:center;box-shadow:inset 0 1px #fff9,0 6px 14px #3a6cf459;color:#fff;flex:none}.logo svg{width:20px;height:20px;stroke:#fff}nav{display:flex;flex-direction:column;gap:4px;flex:1}.grp{display:flex;flex-direction:column}.mi{display:flex;align-items:center;gap:11px;width:100%;padding:11px 12px;border:0;border-radius:15px;background:transparent;color:var(--ink);font:inherit;font-weight:500;cursor:pointer;text-align:left;text-decoration:none;transition:background .2s,color .2s}.mi:hover{background:#ffffff8c}.mi svg.ico{width:19px;height:19px;stroke:var(--mute);flex:none;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:stroke .2s}.mi .chev{margin-left:auto;width:16px;height:16px;stroke:var(--mute);transition:transform .25s ease;fill:none;stroke-width:2;stroke-linecap:round}.grp.open>.mi .chev{transform:rotate(90deg)}.mi.active{background:linear-gradient(140deg,#fffffff2,#ffffff8c);box-shadow:inset 0 1px #fff,0 6px 16px #3a5aa024;color:var(--acc);font-weight:600}.mi.active svg.ico{stroke:var(--acc)}.sub{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease}.grp.open>.sub{grid-template-rows:1fr}.sub>div{overflow:hidden;margin-left:23px;padding-left:10px;border-left:1.5px solid rgba(91,106,130,.22)}.sub .mi{padding:8px 12px;font-size:14px;color:var(--mute)}.sub .mi:hover{color:var(--ink)}.sub .mi.active{color:var(--acc);font-weight:600;background:#ffffffa6}.sub>div>:first-child{margin-top:4px}.sub>div>:last-child{margin-bottom:4px}.me{margin-top:auto;display:flex;align-items:center;gap:10px;padding:10px;border-radius:16px;background:#ffffff73;border:1px solid var(--edge);position:relative}.av{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#ffb88c,#f27ca5);color:#fff;font-weight:700;display:grid;place-items:center;flex:none;font-size:14px;text-transform:uppercase}.me b{display:block;font-size:14px}.me small{color:var(--mute);font-size:12px}.logout-btn{margin-left:auto;background:transparent;border:0;padding:6px;border-radius:8px;color:var(--mute);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.logout-btn:hover{background:#e5484d1f;color:var(--warn)}main{min-width:0;display:flex;flex-direction:column;gap:16px}.top{display:flex;align-items:center;gap:14px;padding:12px 18px}.top h1{margin:0;font-size:20px;letter-spacing:-.01em;font-weight:700}.crumb{color:var(--mute);font-size:13px;margin-bottom:1px}.burger{display:none;border:0;background:#fff9;border-radius:12px;width:40px;height:40px;cursor:pointer;align-items:center;justify-content:center}.burger svg{width:20px;height:20px;stroke:var(--ink);fill:none;stroke-width:2;stroke-linecap:round}.search{margin-left:auto;display:flex;align-items:center;gap:8px;background:#ffffff8c;border:1px solid var(--edge);border-radius:14px;padding:0 12px;height:40px;min-width:0;width:min(290px,35vw)}.search svg{width:16px;height:16px;stroke:var(--mute);fill:none;stroke-width:2;flex:none}.search input{border:0;background:transparent;font:inherit;color:var(--ink);outline:0;width:100%;min-width:0;font-size:14px}.search input::placeholder{color:var(--mute)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:14px;padding:0 18px;height:42px;font:inherit;font-weight:600;cursor:pointer;color:#fff;background:linear-gradient(135deg,#4f80ff,#2f5de0);box-shadow:inset 0 1px #ffffff80,0 8px 18px #3a6cf452;transition:transform .15s,box-shadow .15s,opacity .15s;text-decoration:none;white-space:nowrap}.btn:hover{transform:translateY(-1px);box-shadow:inset 0 1px #fff9,0 10px 22px #3a6cf461}.btn:active{transform:translateY(0)}.btn.ghost,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--edge);border-radius:14px;padding:0 18px;height:42px;font:inherit;font-weight:600;cursor:pointer;color:var(--ink);background:#ffffffa6;box-shadow:inset 0 1px #fff,0 4px 12px #3a5aa014;transition:all .18s ease;text-decoration:none;white-space:nowrap}.btn.ghost:hover,.btn-ghost:hover{background:#fffffff2;transform:translateY(-1px);box-shadow:inset 0 1px #fff,0 6px 16px #3a5aa024}.btn.ghost:active,.btn-ghost:active{transform:translateY(0)}.btn.sm,.btn-ghost.sm{height:34px;padding:0 12px;font-size:13px;border-radius:10px}.btn.danger{background:linear-gradient(135deg,#ff5c5c,#e5484d);box-shadow:inset 0 1px #ffffff80,0 8px 18px #e5484d52}.act{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:11px;border:1px solid var(--edge);background:#ffffffa6;color:var(--ink);cursor:pointer;transition:all .18s ease;box-shadow:0 2px 6px #0000000a}.act:hover{background:#fff;color:var(--acc);border-color:#3a6cf466;transform:translateY(-1px);box-shadow:0 4px 12px #3a6cf42e}.act.del{color:#c0343a}.act.del:hover{background:#ffebebf2;color:#e5484d;border-color:#e5484d66;box-shadow:0 4px 12px #e5484d33}.act svg{width:16px;height:16px;stroke-width:2;stroke:currentColor;fill:none;display:block}.badge-pill{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.badge-pill.active{background:#14b8a629;color:#0b8579}.badge-pill.warn{background:#f59e0b2e;color:#b45309}.badge-pill.inactive{background:#64748b26;color:#64748b}.toggle{width:44px;height:24px;border-radius:999px;background:#5b6a8238;border:1px solid var(--edge);cursor:pointer;position:relative;transition:all .25s ease;padding:0;display:inline-block;vertical-align:middle}.toggle.on{background:linear-gradient(135deg,#10b981,#059669);border-color:transparent}.toggle .dot{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #0003;transition:transform .25s cubic-bezier(.16,1,.3,1);display:block}.toggle.on .dot{transform:translate(20px)}.close-btn{background:#fff9;border:1px solid var(--edge);border-radius:10px;width:32px;height:32px;display:grid;place-items:center;font-size:20px;line-height:1;color:var(--mute);cursor:pointer;transition:all .2s}.close-btn:hover{background:#fffffff2;color:var(--ink);transform:scale(1.05)}:focus-visible{outline:2.5px solid var(--acc);outline-offset:2px}.grid{display:grid;gap:16px}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g-aside{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.card{padding:20px}.card h2{margin:0 0 4px;font-size:17px;letter-spacing:-.01em;font-weight:700}.card p.s{margin:0 0 14px;color:var(--mute);font-size:13px}.stat{display:flex;flex-direction:column;gap:6px}.stat span{color:var(--mute);font-size:13px;font-weight:500}.stat b{font-size:30px;letter-spacing:-.02em;line-height:1.1;font-weight:700}.pill{align-self:flex-start;font-size:12px;font-weight:600;padding:3px 9px;border-radius:99px;background:#14b8a629;color:#0b8579}.pill.dn{background:#e5484d24;color:#c0343a}svg.chart{width:100%;height:auto;display:block;overflow:visible}.chart text{font-family:Figtree,sans-serif;font-size:11px;fill:var(--mute)}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.list li{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:14px;background:#ffffff73;transition:background .15s}.list li:hover{background:#ffffffb3}.list li div{min-width:0}.list li b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list li small{color:var(--mute);font-size:12px}.tag{margin-left:auto;font-size:12px;font-weight:600;padding:3px 10px;border-radius:99px;background:#3a6cf421;color:var(--acc);flex:none}.tag.d{background:#f59e0b2e;color:#a96300}.tag.green{background:#14b8a629;color:#0b8579}.quick{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick button,.quick a{display:flex;flex-direction:column;align-items:flex-start;gap:8px;border:1px solid var(--edge);background:#ffffff80;border-radius:16px;padding:14px;font:inherit;font-weight:600;color:var(--ink);cursor:pointer;text-decoration:none;transition:background .2s,transform .15s}.quick button:hover,.quick a:hover{background:#ffffffd9;transform:translateY(-1px)}.quick svg{width:20px;height:20px;stroke:var(--acc);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.formwrap{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;align-items:start}.f{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.f label{font-weight:600;font-size:14px;color:var(--ink)}.inp{position:relative}.inp input,.inp select,.inp textarea{width:100%;height:48px;padding:0 14px;border-radius:14px;border:1px solid rgba(255,255,255,.9);background:#ffffff8c;font:inherit;color:var(--ink);box-shadow:inset 0 2px 6px #3a5aa014;transition:box-shadow .2s,border-color .2s,background .2s;font-size:14.5px}.inp textarea{height:auto;padding:12px 14px;min-height:90px;resize:vertical}.inp input:focus,.inp select:focus,.inp textarea:focus{outline:0;border-color:var(--acc);background:#ffffffd9;box-shadow:0 0 0 4px #3a6cf42e,inset 0 2px 6px #3a5aa00f}.f.bad input{border-color:var(--warn)}.err{color:#c0343a;font-size:12.5px;min-height:0;display:none}.f.bad .err{display:block}.eye{position:absolute;right:8px;top:8px;height:32px;border:0;background:#ffffffb3;border-radius:10px;padding:0 10px;font:inherit;font-size:12px;font-weight:600;color:var(--mute);cursor:pointer;transition:background .15s}.eye:hover{background:#fffffff2;color:var(--ink)}.meter{display:flex;gap:5px;margin-top:4px}.meter i{flex:1;height:5px;border-radius:9px;background:#5b6a822e;transition:background .2s}.hint{font-size:12.5px;color:var(--mute);margin-top:2px}.pv{text-align:center;padding:26px 20px}.pv .av{width:78px;height:78px;font-size:26px;margin:0 auto 12px;box-shadow:0 10px 24px #f27ca566}.pv h3{margin:0;font-size:18px}.pv p{margin:4px 0;color:var(--mute);font-size:14px;overflow-wrap:anywhere}.seg{display:inline-flex;padding:4px;border-radius:15px;background:#ffffff80;border:1px solid var(--edge)}.seg button{border:0;background:transparent;font:inherit;font-weight:600;color:var(--mute);padding:8px 16px;border-radius:11px;cursor:pointer;transition:all .2s}.seg button.on{background:#fff;color:var(--acc);box-shadow:0 3px 10px #3a5aa026}.tw{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:520px}th,td{text-align:left;padding:12px 10px;font-size:14px;border-bottom:1px solid rgba(91,106,130,.14)}th{font-size:13px;color:var(--mute);font-weight:600}tr:last-child td{border:0}.bar{height:7px;border-radius:9px;background:#5b6a8226;min-width:80px}.bar i{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,var(--acc),var(--acc2))}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.toast{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));padding:14px 20px;border-radius:16px;font-weight:600;transform:translateY(30px);opacity:0;pointer-events:none;transition:.3s cubic-bezier(.16,1,.3,1);z-index:50;display:flex;align-items:center;gap:10px}.toast.on{transform:none;opacity:1;pointer-events:auto}.scrim{display:none}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;position:relative}.login-card{width:100%;max-width:440px;padding:36px 32px;display:flex;flex-direction:column;gap:20px;animation:modalFadeIn .4s cubic-bezier(.16,1,.3,1)}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.login-header{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}.login-header .logo{width:52px;height:52px;border-radius:16px;box-shadow:inset 0 1.5px #fffc,0 10px 24px #3a6cf466}.login-header .logo svg{width:28px;height:28px}.login-header h1{margin:4px 0 0;font-size:24px;font-weight:700;letter-spacing:-.02em}.login-header p{margin:0;font-size:14px;color:var(--mute)}.login-form{display:flex;flex-direction:column;gap:14px}.login-options{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin-top:-4px}.remember-label{display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--ink);-webkit-user-select:none;user-select:none}.remember-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--acc);cursor:pointer}.forgot-link{color:var(--acc);text-decoration:none;font-weight:500;transition:opacity .15s}.forgot-link:hover{text-decoration:underline}.demo-account-box{border-radius:14px;padding:12px 14px;background:#ffffff73;border:1px dashed rgba(58,108,244,.35);font-size:13px;display:flex;flex-direction:column;gap:6px}.demo-account-box b{color:var(--ink);display:flex;align-items:center;justify-content:space-between}.demo-btn-fill{background:#3a6cf41f;color:var(--acc);border:0;border-radius:8px;padding:3px 8px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.demo-btn-fill:hover{background:var(--acc);color:#fff}.login-footer{text-align:center;font-size:12.5px;color:var(--mute)}@media(max-width:1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g2,.formwrap{grid-template-columns:1fr}}@media(max-width:820px){.app{grid-template-columns:1fr;padding:10px}.side{position:fixed;z-index:30;left:10px;top:calc(10px + env(safe-area-inset-top,0px));bottom:10px;height:auto;width:min(290px,86vw);transform:translate(-120%);transition:transform .3s ease;background:linear-gradient(140deg,#fffffff2,#fffc);-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px)}.side.open{transform:none}.scrim.on{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#18233a40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:25}.burger{display:grid;place-items:center}.search{display:none}.top .btn{margin-left:auto}}@media(max-width:480px){.g4{grid-template-columns:1fr 1fr}.stat b{font-size:24px}.card{padding:16px}.login-card{padding:24px 18px}}
