:root{--bg: #0b0d14;--bg2: #11141f;--card: #161a28;--card2: #1c2133;--fg: #eef1f8;--mut: #9aa4bd;--bd: #262c40;--acc: #6d5efc;--acc2: #9b6dff;--acc-grad: linear-gradient(135deg, #6d5efc, #9b6dff);--low: #22c55e;--unc: #f59e0b;--high: #ef4444;--heavy: #b91c1c;--glass: rgba(255,255,255,.04);--shadow: 0 10px 40px rgba(0,0,0,.45);--r: 16px}:root[data-theme=light]{--bg: #f4f6fc;--bg2: #eef1fa;--card: #ffffff;--card2: #f7f9ff;--fg: #131725;--mut: #5b6480;--bd: #e4e8f4;--glass: rgba(0,0,0,.02);--shadow: 0 10px 40px rgba(80,80,160,.12)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow-x:hidden;max-width:100%}body{font:15px/1.6 Segoe UI,system-ui,-apple-system,sans-serif;color:var(--fg);background:var(--bg);background-image:radial-gradient(1200px 600px at 80% -10%,rgba(109,94,252,.18),transparent 60%),radial-gradient(900px 500px at -10% 20%,rgba(155,109,255,.12),transparent 55%);background-attachment:fixed}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}.app{min-height:100%;display:flex;flex-direction:column}.container{width:100%;max-width:1140px;margin:0 auto;padding:0 20px}.page{flex:1;padding:28px 0 60px;animation:fadeUp .5s ease both}.nav{position:sticky;top:0;z-index:40;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:color-mix(in srgb,var(--bg) 72%,transparent);border-bottom:1px solid var(--bd)}.nav-in{display:flex;align-items:center;gap:18px;height:62px}.brand{font-weight:800;font-size:19px;display:flex;align-items:center;gap:9px}.brand .logo{width:30px;height:30px;border-radius:9px;background:var(--acc-grad);display:grid;place-items:center;color:#fff;font-weight:900;box-shadow:0 4px 16px #6d5efc80}.nav-links{display:flex;gap:4px;margin-left:8px}.nav-links a{padding:8px 14px;border-radius:10px;color:var(--mut);font-weight:600;transition:.2s;font-size:14px}.nav-links a:hover{color:var(--fg);background:var(--glass)}.nav-links a.active{color:var(--fg);background:color-mix(in srgb,var(--acc) 16%,transparent)}.nav-right{margin-left:auto;display:flex;align-items:center;gap:10px}.chip{font-size:12px;padding:4px 10px;border-radius:20px;border:1px solid var(--bd);color:var(--mut)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;border-radius:12px;border:0;font-weight:700;font-size:14px;background:var(--acc-grad);color:#fff;transition:transform .15s,box-shadow .2s,opacity .2s;box-shadow:0 6px 20px #6d5efc59}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 28px #6d5efc80}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn.sec{background:var(--card2);color:var(--fg);border:1px solid var(--bd);box-shadow:none}.btn.sec:hover{background:var(--card);box-shadow:var(--shadow)}.btn.ghost{background:transparent;color:var(--mut);box-shadow:none}.btn.lg{padding:14px 28px;font-size:15px;border-radius:14px}.btn-row{display:flex;gap:10px;flex-wrap:wrap}.card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:22px;box-shadow:var(--shadow);animation:fadeUp .5s ease both}.card.glass{background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.grid{display:grid;gap:18px}.grid.g2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid.g3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid.g4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}h1,h2,h3{margin:0 0 12px;line-height:1.25}h1{font-size:34px;font-weight:800;letter-spacing:-.5px}.muted{color:var(--mut)}.mt{margin-top:16px}.mb{margin-bottom:16px}textarea,input,select{width:100%;padding:13px 15px;border-radius:12px;border:1px solid var(--bd);background:var(--card2);color:var(--fg);font:inherit;transition:border .2s,box-shadow .2s}textarea:focus,input:focus,select:focus{outline:0;border-color:var(--acc);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 25%,transparent)}textarea{min-height:200px;resize:vertical;line-height:1.7}label{font-size:13px;color:var(--mut);font-weight:600;display:block;margin:12px 0 6px}.hero{text-align:center;padding:64px 0 40px}.hero h1{font-size:52px;background:linear-gradient(120deg,var(--fg),var(--acc2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero .sub{font-size:19px;color:var(--mut);max-width:640px;margin:14px auto 26px}.hero .badge{display:inline-block;padding:6px 14px;border-radius:20px;font-size:13px;background:color-mix(in srgb,var(--acc) 14%,transparent);color:var(--acc2);font-weight:700;border:1px solid color-mix(in srgb,var(--acc) 30%,transparent);animation:pulse 3s infinite}.feature{text-align:left;transition:transform .25s,border .25s}.feature:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--acc) 40%,transparent)}.feature .ic{width:44px;height:44px;border-radius:12px;background:var(--acc-grad);display:grid;place-items:center;font-size:20px;margin-bottom:12px;box-shadow:0 6px 18px #6d5efc66}.rb{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;border-radius:22px;font-weight:800;color:#fff;font-size:14px;animation:popIn .4s cubic-bezier(.3,1.4,.5,1) both}.rb.low{background:linear-gradient(135deg,#16a34a,#22c55e)}.rb.uncertain{background:linear-gradient(135deg,#d97706,#f59e0b)}.rb.high{background:linear-gradient(135deg,#dc2626,#ef4444)}.rb.heavily{background:linear-gradient(135deg,#991b1b,#b91c1c)}.rb.gray,.rb.insufficient,.rb.ood{background:linear-gradient(135deg,#6b7280,#9aa4bd)}.dot{width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 8px #fff}.kpi{text-align:center;padding:20px 14px;background:var(--card2);border:1px solid var(--bd);border-radius:14px;transition:transform .2s}.kpi:hover{transform:translateY(-3px)}.kpi b{display:block;font-size:32px;font-weight:800;background:var(--acc-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.kpi span{font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.5px}.count{display:inline-block}.gauge{--v: 0;width:160px;height:160px;border-radius:50%;margin:0 auto;position:relative;background:conic-gradient(var(--gcol) calc(var(--v)*1%),var(--bd) 0);display:grid;place-items:center;transition:--v 1s ease}.gauge:before{content:"";position:absolute;inset:14px;border-radius:50%;background:var(--card)}.gauge .val{position:relative;font-size:30px;font-weight:800}.gauge .lbl{position:relative;font-size:12px;color:var(--mut)}.heat{display:flex;flex-direction:column;gap:10px}.seg{padding:12px 14px;border-radius:12px;border-left:4px solid;background:var(--card2);animation:slideIn .4s ease both}.seg.low{border-color:var(--low)}.seg.uncertain{border-color:var(--unc)}.seg.high{border-color:var(--high)}.seg.heavily{border-color:var(--heavy)}.seg.insufficient{border-color:var(--mut)}.seg .st{font-size:12px;font-weight:700;margin-bottom:4px}.psteps{display:flex;flex-direction:column;gap:12px}.pstep{display:flex;align-items:center;gap:12px;opacity:.4;transition:opacity .4s}.pstep.active,.pstep.done{opacity:1}.pstep .num{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--bd);font-weight:700;font-size:13px;flex-shrink:0;transition:.3s}.pstep.active .num{border-color:var(--acc);color:var(--acc);animation:pulse 1.2s infinite}.pstep.done .num{background:var(--low);border-color:var(--low);color:#fff}.pbar{height:8px;border-radius:6px;background:var(--bd);overflow:hidden;margin-top:4px}.pbar>i{display:block;height:100%;background:var(--acc-grad);border-radius:6px;transition:width .5s ease;box-shadow:0 0 12px var(--acc);position:relative}.pbar>i:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer 1.4s infinite}.toasts{position:fixed;top:20px;right:20px;z-index:100;display:flex;flex-direction:column;gap:10px}.toast{min-width:280px;max-width:380px;padding:13px 16px;border-radius:12px;color:#fff;box-shadow:var(--shadow);display:flex;align-items:center;gap:10px;font-weight:600;font-size:14px;animation:toastIn .4s cubic-bezier(.2,1.3,.4,1) both;border:1px solid rgba(255,255,255,.15)}.toast.out{animation:toastOut .35s ease forwards}.toast.info{background:linear-gradient(135deg,#4f46e5,#6d5efc)}.toast.success{background:linear-gradient(135deg,#16a34a,#22c55e)}.toast.error{background:linear-gradient(135deg,#dc2626,#ef4444)}.toast.warn{background:linear-gradient(135deg,#d97706,#f59e0b)}.toast .ic{font-size:18px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--bd)}th{color:var(--mut);font-size:12px;text-transform:uppercase;letter-spacing:.5px}tr{transition:background .15s}tbody tr:hover{background:var(--glass)}.spin{width:20px;height:20px;border:2.5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:rot .7s linear infinite}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes slideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:none}}@keyframes popIn{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes toastIn{0%{opacity:0;transform:translate(120%)}to{opacity:1;transform:none}}@keyframes toastOut{to{opacity:0;transform:translate(120%)}}@keyframes shimmer{to{transform:translate(100%)}}@keyframes pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--acc) 50%,transparent)}50%{box-shadow:0 0 0 8px transparent}}@keyframes rot{to{transform:rotate(360deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.burger{display:none;width:42px;height:42px;border-radius:10px;background:var(--card2);border:1px solid var(--bd);color:var(--fg);font-size:20px}.mobile-menu{display:none}.admin-wrap{display:grid;grid-template-columns:232px 1fr;gap:0;min-height:calc(100vh - 62px)}.sidebar{border-right:1px solid var(--bd);padding:18px 12px;background:color-mix(in srgb,var(--card) 40%,transparent)}.sidebar .sec-t{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--mut);margin:14px 10px 6px}.sidebar a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:var(--mut);font-weight:600;font-size:14px;transition:.18s;margin-bottom:2px}.sidebar a:hover{background:var(--glass);color:var(--fg)}.sidebar a.active{background:color-mix(in srgb,var(--acc) 16%,transparent);color:var(--fg)}.admin-main{padding:26px 26px 60px;overflow-x:hidden}.tabs{display:flex;gap:6px;background:var(--card2);padding:4px;border-radius:12px;border:1px solid var(--bd);flex-wrap:wrap}.tabs button{padding:8px 16px;border-radius:9px;background:transparent;color:var(--mut);font-weight:600;font-size:13px;transition:.18s}.tabs button.active{background:var(--acc-grad);color:#fff;box-shadow:0 4px 12px #6d5efc66}.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px}.tw table{min-width:560px}.barlist{display:flex;flex-direction:column;gap:10px}.barrow{display:grid;grid-template-columns:120px 1fr 46px;align-items:center;gap:10px;font-size:13px}.barrow .track{height:12px;background:var(--bd);border-radius:6px;overflow:hidden}.barrow .track>i{display:block;height:100%;border-radius:6px;background:var(--acc-grad);transition:width .7s ease}.doc h2{margin-top:26px;padding-bottom:8px;border-bottom:1px solid var(--bd)}.doc code,code{background:var(--card2);padding:2px 7px;border-radius:6px;font-size:13px;border:1px solid var(--bd);font-family:ui-monospace,monospace}.doc pre{background:var(--bg2);border:1px solid var(--bd);border-radius:12px;padding:16px;overflow-x:auto;font-size:13px}.method{display:inline-block;padding:2px 9px;border-radius:6px;font-weight:700;font-size:11px;color:#fff}.method.get{background:#16a34a}.method.post{background:#6d5efc}.admin-toggle,.admin-backdrop{display:none}@media(max-width:860px){.admin-wrap{grid-template-columns:1fr}.admin-toggle{display:inline-flex}.sidebar{display:none}.sidebar.open{display:block;position:fixed;top:62px;left:0;bottom:0;width:250px;z-index:60;background:var(--card);box-shadow:var(--shadow);overflow-y:auto;animation:slideIn .3s ease}.admin-backdrop.open{display:block;position:fixed;inset:62px 0 0;background:#00000073;z-index:55;animation:fadeIn .2s ease}.admin-main{padding:18px 16px 50px}}@media(max-width:720px){.nav-links,.burger{display:none}.mobile-menu{display:none!important}.nav-desktop{display:none}.nav-in{gap:8px}.brand{font-size:17px}.container{padding:0 14px}.barrow{grid-template-columns:84px 1fr 40px}.app{padding-bottom:calc(64px + env(safe-area-inset-bottom))}}.nav{padding-top:env(safe-area-inset-top)}.bottomnav{display:none}@media(max-width:720px){.bottomnav{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:70;height:64px;padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--card) 94%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--bd);box-shadow:0 -6px 24px #00000040}.bn-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;color:var(--mut);font-size:11px;font-weight:600;text-decoration:none;padding:8px 4px}.bn-item.active,.bn-item:active{color:var(--acc2)}.bn-ic{font-size:20px;line-height:1}.bn-backdrop{position:fixed;inset:0;background:#00000080;z-index:68;animation:fadeIn .2s ease}.bn-sheet{position:fixed;left:0;right:0;bottom:0;z-index:69;transform:translateY(110%);transition:transform .28s cubic-bezier(.2,.8,.2,1);background:var(--card);border-radius:20px 20px 0 0;box-shadow:0 -10px 40px #0006;padding:14px 16px calc(76px + env(safe-area-inset-bottom));max-height:76vh;overflow-y:auto}.bn-sheet.open{transform:translateY(0)}.bn-sheet:before{content:"";position:absolute;left:50%;top:8px;transform:translate(-50%);width:40px;height:4px;border-radius:3px;background:var(--bd)}.bn-sheet-h{display:flex;align-items:center;gap:8px;padding:12px 2px 6px}.bn-group{margin-top:10px}.bn-group-t{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--mut);margin-bottom:8px}.bn-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.bn-tile{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;border-radius:14px;background:var(--card2);border:1px solid var(--bd);color:var(--fg);font-size:12px;font-weight:600;text-align:center;text-decoration:none}.bn-tile.active{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 14%,transparent)}.bn-tile-ic{font-size:24px}.install-banner{bottom:calc(72px + env(safe-area-inset-bottom))}}@media(max-width:640px){h1{font-size:26px}.hero h1{font-size:34px}.hero{padding:40px 0 24px}.btn.lg{width:100%}.hero .btn-row{flex-direction:column}}.donut-wrap{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.donut path{transform-origin:center;animation:donutIn .5s cubic-bezier(.2,.8,.2,1) both}@keyframes donutIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.donut-total{fill:var(--fg);font-size:20px;font-weight:800}.donut-sub{fill:var(--mut);font-size:10px}.donut-legend{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}.dl-row{display:grid;grid-template-columns:14px 1fr auto auto;gap:8px;align-items:center;font-size:13px}.dl-row .dot{width:11px;height:11px;border-radius:3px}.dl-row .dl-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-row b{text-align:right}.dl-row .muted{min-width:34px;text-align:right}.pager{display:flex;gap:14px;align-items:center;justify-content:center}.kpi.hero b{background:var(--acc-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.modal-bg{position:fixed;inset:0;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;padding:20px;animation:fadeIn .18s ease}.modal{width:100%;max-height:88vh;overflow:auto;animation:modalIn .22s cubic-bezier(.2,.8,.2,1)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:14px}.crumb{background:none;border:none;color:var(--acc);cursor:pointer;padding:3px 6px;border-radius:6px;font-size:14px}.crumb:hover{background:var(--glass);text-decoration:underline}.crumb-sep{color:var(--mut);margin:0 2px}.linklike{background:none;border:none;color:var(--fg);cursor:pointer;padding:0;font:inherit;text-align:left}.linklike:hover{color:var(--acc);text-decoration:underline}.combo{position:relative}.combo-input{display:flex;align-items:center;gap:6px;border:1px solid var(--bd);border-radius:10px;background:var(--bg2);padding:2px 8px;min-height:40px;cursor:text}.combo-input.disabled{opacity:.55;cursor:not-allowed}.combo-input input{border:none;background:none;flex:1;padding:8px 0;color:var(--fg);outline:none}.combo-val{flex:1;padding:8px 0}.combo-clear{background:none;border:none;color:var(--mut);cursor:pointer;font-size:13px;padding:2px 6px}.combo-pop{position:absolute;z-index:60;top:calc(100% + 4px);left:0;right:0;max-height:260px;overflow:auto;background:var(--card);border:1px solid var(--bd);border-radius:10px;box-shadow:var(--shadow)}.combo-opt{padding:9px 12px;cursor:pointer;font-size:14px;border-bottom:1px solid var(--bd)}.combo-opt:last-child{border-bottom:none}.combo-opt:hover{background:var(--glass)}.fieldwarn{font-size:12px;margin-top:4px;display:flex;align-items:center;gap:5px}.fieldwarn.warn{color:var(--unc)}.fieldwarn.error{color:var(--high)}.fieldwarn.ok{color:var(--low)}.inp-err{border-color:var(--high)!important;box-shadow:0 0 0 2px #ef444426}.funnel{display:flex;flex-direction:column;gap:10px}.funnel-row{display:grid;grid-template-columns:160px 1fr 60px;gap:10px;align-items:center}.funnel-track{height:26px;background:var(--bg2);border-radius:8px;overflow:hidden}.funnel-track i{display:block;height:100%;border-radius:8px;animation:growW .7s cubic-bezier(.2,.8,.2,1) both}.funnel-lbl{font-size:13px;color:var(--mut)}.funnel-row b{text-align:right}@keyframes growW{0%{width:0!important}}.rte{border:1px solid var(--bd);border-radius:10px;overflow:hidden;background:var(--bg2)}.rte-tools{display:flex;flex-wrap:wrap;gap:2px;padding:6px;background:var(--card2);border-bottom:1px solid var(--bd)}.rte-btn{min-width:30px;height:30px;border:1px solid transparent;border-radius:6px;background:none;color:var(--fg);cursor:pointer;font-size:13px}.rte-btn:hover{background:var(--glass);border-color:var(--bd)}.rte-body{min-height:220px;max-height:420px;overflow:auto;padding:14px;outline:none;line-height:1.6}.rte-body:focus{box-shadow:inset 0 0 0 2px #6d5efc40}.rte-body h2{font-size:1.4em;margin:.6em 0 .3em}.rte-body h3{font-size:1.15em;margin:.5em 0 .3em}.rte-body blockquote{border-left:3px solid var(--acc);margin:.5em 0;padding-left:12px;color:var(--mut)}.cms-content{line-height:1.75}.cms-content h2{font-size:1.5em;margin:1em 0 .4em}.cms-content h3{font-size:1.2em;margin:.8em 0 .3em}.cms-content a{color:var(--acc)}.cms-content blockquote{border-left:3px solid var(--acc);padding-left:14px;color:var(--mut)}.announce{background:var(--acc-grad);color:#fff;text-align:center;padding:6px 12px;font-size:13px}.logo-img{height:28px;width:auto;vertical-align:middle;margin-right:8px;border-radius:6px}.site-footer{border-top:1px solid var(--bd);margin-top:40px;padding:24px 0;background:var(--card)}.footer-in{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.footer-links{display:flex;gap:16px;flex-wrap:wrap}.footer-links a{color:var(--mut);font-size:14px;text-decoration:none}.footer-links a:hover{color:var(--acc)}.or-sep{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--mut);font-size:13px}.or-sep:before,.or-sep:after{content:"";flex:1;height:1px;background:var(--bd)}.social-row{display:flex;flex-direction:column;gap:8px}.social-btn{justify-content:center;text-decoration:none}.install-banner{position:fixed;left:12px;right:12px;bottom:12px;z-index:150;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;background:var(--card);border:1px solid var(--bd);box-shadow:var(--shadow);max-width:520px;margin:0 auto;animation:modalIn .3s ease}
