:root{color:#e8edf0;font-synthesis:none;--bg:#0b1115;--surface:#111a20;--surface-2:#162128;--surface-3:#1b282f;--border:#2a3941;--text:#e8edf0;--muted:#8f9da5;--accent:#2bb8b0;--accent-soft:#123f43;--green:#49b879;--amber:#e5a82c;--red:#e65d5d;--radius:7px;background:#0b1115;font-family:Inter,Manrope,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button{color:inherit}.loading-screen,.login-screen{background:var(--bg);place-items:center;min-height:100vh;display:grid}.loading-screen{color:var(--muted);align-content:center;gap:13px;font-size:13px}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:27px;height:27px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-screen{padding:24px}.login-panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;gap:18px;width:min(390px,100%);padding:32px;display:grid;box-shadow:0 24px 60px #0005}.login-panel h1{font-size:24px}.login-panel>p{color:var(--muted);margin-top:-12px;font-size:12px}.login-mark{color:var(--accent);align-items:center;gap:10px;display:flex}.login-mark span{letter-spacing:-1px;font-size:23px;font-weight:750}.login-submit{width:100%}.login-submit:disabled{opacity:.65;cursor:wait}.app-shell{background:var(--bg);grid-template:64px 1fr/248px minmax(620px,1fr);min-height:100vh;display:grid}.topbar{border-bottom:1px solid var(--border);z-index:5;background:#0e161b;grid-column:1/-1;align-items:center;gap:28px;padding:0 22px;display:flex}.brand{white-space:nowrap;min-width:220px;font-size:18px;font-weight:680}.brand span{color:var(--accent);letter-spacing:-1px;margin-right:7px;font-size:25px}.health{color:#cad3d8;white-space:nowrap;align-items:center;gap:9px;font-size:13px;display:flex}.health i,.status i{background:var(--green);border-radius:50%;flex:none;width:9px;height:9px}.health.preview i{background:var(--amber)}.topbar-spacer{flex:1}.updated{color:var(--muted);align-items:center;gap:7px;font-size:13px;display:flex}.icon-button{color:#aebbc2;background:0 0;border:0;border-radius:6px;place-items:center;padding:8px;display:grid}.icon-button:hover{background:var(--surface-3);color:#fff}.sidebar{border-right:1px solid var(--border);background:#0f181e;flex-direction:column;grid-area:2/1;padding:20px 10px 16px;display:flex}.sidebar nav{gap:6px;display:grid}.sidebar nav button{color:#a9b6bd;text-align:left;border-radius:var(--radius);background:0 0;border:0;align-items:center;gap:13px;min-height:48px;padding:0 15px;font-size:14px;display:flex}.sidebar nav button:hover{background:var(--surface-2);color:var(--text)}.sidebar nav button svg{width:19px}.sidebar nav button.active{background:var(--accent-soft);color:#ecffff;border-left:3px solid var(--accent);padding-left:12px}.sidebar-foot{border-top:1px solid var(--border);color:var(--muted);gap:8px;margin-top:auto;padding:17px 14px 0;font-size:12px;display:flex}.workspace{grid-area:2/2;min-width:0;padding:20px;overflow:auto}.apply-strip{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);align-items:center;gap:12px;min-height:42px;margin:-4px 0 16px;padding:8px 12px;display:flex}.apply-strip span{align-items:center;gap:7px;font-size:11px;font-weight:650;display:inline-flex}.apply-strip span i{background:var(--amber);border-radius:50%;width:8px;height:8px}.apply-strip span.ok i{background:var(--green)}.apply-strip span.error i{background:var(--red)}.apply-strip small{color:var(--muted);margin-left:auto;font-size:10px}.workspace-heading{justify-content:space-between;align-items:flex-start;margin-bottom:17px;display:flex}h1,h2,p{margin:0}h1{font-size:25px;font-weight:650}.workspace-heading p,.editor-head p{color:var(--muted);margin-top:4px;font-size:12px}.subsection-heading{margin-bottom:13px}.subsection-heading h2{font-size:18px}.subsection-heading p{color:var(--muted);margin-top:4px;font-size:12px}.primary,.secondary{border-radius:var(--radius);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 17px;font-size:13px;font-weight:600;display:inline-flex}.primary{color:#f3ffff;background:#167f7e}.primary:hover{background:#1b9693}.primary:disabled{opacity:.58;cursor:wait}.secondary{color:#d6dee2;background:0 0;border-color:#44545d}.toolbar{gap:10px;margin-bottom:12px;display:flex}.search{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:min(380px,48%);min-height:40px;color:var(--muted);align-items:center;gap:8px;padding:0 12px;display:flex}.search input{width:100%;color:var(--text);background:0 0;border:0;outline:0}select,.field input{min-height:40px;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);outline:none;padding:0 11px}.field textarea{resize:vertical;width:100%;min-height:126px;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);outline:none;padding:11px;line-height:1.55}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 2px #2bb8b022}.toolbar>select{min-width:190px}.wifi-strip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:auto 310px minmax(220px,1fr);align-items:center;gap:16px;margin-bottom:12px;padding:11px 13px;display:grid}.wifi-title{align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.mode-switch{border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.mode-switch button{color:#aab6bc;background:0 0;border:0;min-height:46px;font-size:13px}.mode-switch small{color:var(--muted);margin-top:2px;font-size:10px;display:block}.mode-switch button.selected{color:#78eee7;box-shadow:inset 0 0 0 1px var(--accent);background:#133338}.pac-url{border-left:1px solid var(--border);color:#72d9d3;justify-content:space-between;align-items:center;gap:8px;min-width:0;padding-left:12px;font-size:12px;display:flex}.pac-url span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pac-url button{color:#aebbc2;background:0 0;border:0;padding:7px}.routes-table{border:1px solid var(--border);border-radius:var(--radius);background:#0f181e;overflow:hidden}.table-head,.route-row{grid-template-columns:82px minmax(150px,1.35fr) 110px minmax(120px,1fr) minmax(145px,1fr) 104px;align-items:center;display:grid}.table-head{background:var(--surface-2);color:#aebbc2;text-transform:uppercase;letter-spacing:.04em;min-height:43px;padding:0 14px;font-size:11px}.route-row{text-align:left;background:0 0;border:0;border-top:1px solid #25343c;width:100%;min-height:54px;padding:0 14px;font-size:12.5px}.route-row:hover{background:#142128}.route-row.selected{box-shadow:inset 3px 0 var(--accent);background:#123b3f}.resource{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;font-weight:550;display:flex;overflow:hidden}.priority{color:var(--muted)}.action{color:#61d9d3;font-size:11px}.action-ru_direct{color:#60cf8e}.action-ru_zapret{color:var(--amber)}.action-warp_test{color:#bb90ed}.action-block{color:var(--red)}.status{color:#bdc8cd;align-items:center;gap:7px;display:flex}.status svg{color:#819099;margin-left:auto}.status i.off{background:var(--muted)}.routes-table footer{border-top:1px solid var(--border);min-height:38px;color:var(--muted);align-items:center;padding:0 14px;font-size:11px;display:flex}.scoped-table{margin-top:12px}.scoped-table .table-head,.scoped-table .route-row{grid-template-columns:82px minmax(190px,1.5fr) minmax(120px,.8fr) minmax(145px,1fr) 104px 38px}.row-edit{border:1px solid var(--border);width:32px;height:32px;color:var(--muted);background:0 0;border-radius:6px;place-items:center;display:grid}.row-edit:hover{color:var(--accent);border-color:var(--accent)}.rule-editor{z-index:50;background:#111b21;border:1px solid #3f6467;border-radius:10px;width:min(720px,100vw - 32px);max-height:calc(100vh - 32px);padding:18px;position:fixed;inset:50% auto auto 50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 25px 90px #000b}.rule-editor-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.rule-editor-head strong{font-size:17px}.rule-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.rule-editor-grid .field-wide{grid-column:1/-1}.rule-editor-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.empty-state{min-height:94px;color:var(--muted);justify-content:center;align-items:center;gap:10px;font-size:13px;display:flex}.empty-state svg{width:19px}.overview-grid{grid-template-columns:repeat(2,minmax(230px,1fr));gap:12px;display:grid}.overview-grid button{text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:9px;grid-template-rows:auto auto auto;grid-template-columns:38px 1fr auto;align-items:center;gap:2px 12px;min-height:132px;padding:20px;display:grid;position:relative}.overview-grid button:hover{background:#132027;border-color:#3f7778}.overview-grid button>svg:first-child{width:27px;color:var(--accent);grid-row:1/4}.overview-grid button>svg:last-child{color:var(--muted);grid-area:1/3/4}.overview-grid strong{font-size:25px}.overview-grid span{font-size:14px;font-weight:650}.overview-grid small{color:var(--muted)}.scope-note{background:#10201f;border:1px solid #35504d;border-radius:8px;align-items:flex-start;gap:13px;margin-top:14px;padding:16px;display:flex}.scope-note svg{color:var(--green);flex:none}.scope-note strong{font-size:13px}.scope-note p{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.5}.section-tabs{border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:1fr 1fr;min-width:330px;margin:0 0 18px;display:inline-grid;overflow:hidden}.section-tabs button{background:var(--surface);min-height:42px;color:var(--muted);border:0}.section-tabs button.active{background:var(--accent-soft);color:#7ef2ea;box-shadow:inset 0 -2px var(--accent)}.bulk-panel{margin-bottom:12px}.bulk-trigger{margin-bottom:0}.bulk-body{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:14px;margin-top:10px;padding:16px;display:grid}.bulk-grid{grid-template-columns:1fr 1.2fr .55fr;align-items:start;gap:12px;display:grid}.bulk-body>.primary{justify-self:start}.section-settings{margin-top:0}.connection-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;align-items:center;gap:14px;min-height:76px;margin-bottom:12px;padding:14px 16px;display:flex}.connection-card>svg{color:var(--accent)}.connection-card div{gap:5px;display:grid}.connection-card p{color:var(--muted);font-size:12px}.connection-card>span{margin-left:auto}.ok-label,.error-label{color:#79e0a2;text-transform:uppercase;background:#183a2a;border-radius:999px;padding:4px 8px;font-size:10px}.error-label{color:#ff9b9b;background:#402022}.analyzer-input{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:12px;padding:16px;display:grid}.analyzer-input .primary{justify-self:start}.inline-message{color:#87dcd7;font-size:12px}.analysis-toolbar{z-index:3;border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#111b21f5;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;display:flex;position:sticky;top:-20px}.analysis-toolbar span{color:var(--muted);font-size:12px}.analysis-toolbar select{margin-left:auto}.analysis-results{gap:12px;margin-top:12px;display:grid}.analysis-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:16px}.analysis-card>header{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.analysis-card header div{gap:4px;display:grid}.analysis-card header small{color:var(--muted)}.finding{overflow-wrap:anywhere;background:#0e171c;border-left:2px solid #31575a;gap:4px;margin-top:9px;padding:10px 12px;font-size:12px;display:grid}.finding b{color:#d9e5e8}.finding span{color:#9eabb2}.analysis-card details{margin-top:12px}.analysis-card summary{cursor:pointer;color:#71dcd5;font-size:12px}.entity-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;max-height:220px;margin-top:9px;display:grid;overflow:auto}.entity-list label{color:#bec9ce;overflow-wrap:anywhere;align-items:flex-start;gap:7px;font-size:11px;display:flex}.error-text{color:#ff9f9f;font-size:12px}.audit-list{gap:8px;display:grid}.audit-list article{border:1px solid var(--border);background:var(--surface);border-radius:7px;gap:12px;padding:13px 15px;display:flex}.audit-list article>svg{color:var(--accent);width:18px}.audit-list article div{flex:1;grid-template-columns:1fr auto;gap:4px 12px;display:grid}.audit-list span{color:var(--muted);font-size:11px}.audit-list code{color:#85949b;grid-area:1/2/3;align-self:center;font-size:10px}.editor{border-left:1px solid var(--border);background:#121c22;flex-direction:column;grid-area:2/3;min-width:0;display:flex}.editor-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-height:75px;padding:15px 18px;display:flex}.editor-head h2{font-size:17px;font-weight:650}.editor-scroll{gap:16px;padding:17px 18px;display:grid;overflow:auto}.segmented{border:0;grid-template-columns:repeat(4,1fr);margin:0;padding:0;display:grid}.segmented legend,.field{color:#c9d2d7;font-size:12px;font-weight:600}.segmented legend{margin-bottom:8px}.segmented button{border:1px solid var(--border);color:#a8b4ba;background:0 0;min-height:37px;margin-left:-1px}.segmented button:first-of-type{border-radius:var(--radius) 0 0 var(--radius);margin-left:0}.segmented button:last-of-type{border-radius:0 var(--radius) var(--radius) 0}.segmented button.selected{color:#7ff5ed;border-color:var(--accent);z-index:1;background:#12383b}.field{gap:7px;display:grid}.field small,.toggle small{color:var(--muted);font-size:10.5px;font-weight:400;line-height:1.4}.field input,.field select{width:100%}.toggle{justify-content:space-between;align-items:center;display:flex}.toggle span{gap:4px;display:grid}.toggle strong{font-size:12px}.toggle input{appearance:none;background:#48545b;border-radius:20px;width:39px;height:22px;transition:all .18s;position:relative}.toggle input:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:all .18s;position:absolute;top:3px;left:3px}.toggle input:checked{background:#178d88}.toggle input:checked:after{transform:translate(17px)}.message{border-radius:var(--radius);align-items:center;gap:8px;min-height:39px;padding:0 11px;font-size:11px;display:flex}.message svg{width:16px}.message.success{color:#8de6ae;background:#173829}.message.error{color:#faa;background:#3d2022}.editor-actions{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:10px;margin-top:auto;padding:14px 18px;display:grid}.bottom-nav,.mobile-menu{display:none}@media (width<=1180px){.app-shell{grid-template-columns:74px minmax(560px,1fr)}.sidebar nav button{justify-content:center;padding:0;font-size:0}.sidebar nav button.active{box-shadow:inset 3px 0 var(--accent);border-left:0;padding:0}.sidebar-foot{display:none}.brand{min-width:175px}.wifi-strip{grid-template-columns:auto 260px minmax(180px,1fr)}.scoped-table .table-head,.scoped-table .route-row{grid-template-columns:64px minmax(160px,1.2fr) minmax(105px,.8fr) minmax(130px,1fr) 90px 34px}}@media (width<=820px){.app-shell{background:var(--bg);padding:64px 0 72px;display:block}.topbar{gap:12px;height:64px;padding:0 17px 0 64px;position:fixed;inset:0 0 auto}.brand{min-width:0;font-size:14px}.brand span{font-size:21px}.health{margin-left:auto;font-size:0}.health:after{content:"OK";color:#b9c7cc;font-size:10px}.desktop-only,.sidebar{display:none!important}.workspace{padding:18px 14px;overflow:visible}.apply-strip{z-index:4;flex-wrap:wrap;margin:-6px -2px 14px;position:sticky;top:0}.apply-strip small{width:100%;margin-left:0}.workspace-heading{align-items:center}.workspace-heading p{display:none}h1{font-size:23px}.workspace-heading .primary{min-height:40px;padding:0 13px}.toolbar{grid-template-columns:1fr 1fr;display:grid}.search{grid-column:1/-1;width:auto}.toolbar>select{width:100%;min-width:0}.overview-grid{grid-template-columns:1fr 1fr}.overview-grid button{min-height:116px;padding:14px}.bulk-grid{grid-template-columns:1fr}.bulk-body>.primary,.analyzer-input .primary{width:100%}.section-tabs{width:100%;min-width:0}.wifi-strip{background:0 0;border-left:0;border-right:0;border-radius:0;padding:0;display:block}.wifi-title{display:none}.mode-switch{margin:10px 0}.pac-url{border-left:0;padding:10px 4px 12px}.table-head{display:none}.routes-table{border-left:0;border-right:0;border-radius:0;margin:0 -14px}.scoped-table .route-row{grid-template-rows:auto auto;grid-template-columns:minmax(120px,1.15fr) 1fr;gap:5px 15px;min-height:104px;padding:14px 44px 14px 17px;position:relative}.route-row .priority{font-size:0;position:absolute;top:16px;left:4px}.route-row .resource{white-space:normal;grid-row:1/3;align-self:start;padding-left:4px;font-size:13px}.route-row>span[data-label]:before{content:attr(data-label);color:var(--muted);margin-bottom:2px;font-size:9px;display:block}.route-row .action{font-size:10.5px}.route-row .status{right:10px;position:absolute;inset-block:0}.route-row .status i,.route-row .status:not(svg),.route-row .status{font-size:0}.route-row .row-edit{position:absolute;bottom:8px;right:7px}.routes-table footer{padding-left:17px}.analysis-toolbar{grid-template-columns:1fr auto;display:grid;top:44px}.analysis-toolbar select,.analysis-toolbar .primary{width:100%;margin:0}.entity-list{grid-template-columns:1fr}.bottom-nav{z-index:30;border-top:1px solid var(--border);background:#0f181ef5;grid-template-columns:repeat(6,minmax(0,1fr));height:68px;display:grid;position:fixed;inset:auto 0 0}.bottom-nav button{min-width:0;color:var(--muted);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0 2px;font-size:9px;display:flex}.bottom-nav button svg{width:18px}.bottom-nav button.active{color:#66e0d9;background:#153137}}@media (width<=520px){.overview-grid{grid-template-columns:1fr}.overview-grid button{min-height:96px}.workspace{padding-inline:12px}.routes-table{margin-inline:-12px}.bulk-body,.analyzer-input,.analysis-card{padding:13px}.analysis-toolbar{margin-inline:-12px}.connection-card{align-items:flex-start}.rule-editor{width:calc(100vw - 18px);padding:14px}.rule-editor-grid{grid-template-columns:1fr}.rule-editor-grid .field-wide{grid-column:auto}.rule-editor-actions{grid-template-columns:1fr;display:grid}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}}
