:root{--ground:#F3F5F7;--surface:#FFFFFF;--ink:#0F1B24;--muted:#5A6B78;--line:#E1E6EA;--line2:#EEF1F4;
--nav:#0F1B24;--nav-hi:#1F3A5F;--nav-ink:#B9C4CE;--accent:#1D4FB8;--ok:#157F4A;--ok-bg:#DDF1E6;--warn:#8A4B06;--warn-bg:#FCEFD9;
--crit:#A51F17;--crit-ink:#A51F17}
body.admin{--ground:#F2F1EE;--nav:#2A221C;--nav-hi:#45372D;--nav-ink:#D9D2C7;--line:#E4E1DA}
*{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--ink);font:15px/1.45 'IBM Plex Sans',system-ui,sans-serif}
a{color:var(--accent)}a:hover{color:#133A8A}
.mono{font-family:'IBM Plex Mono',ui-monospace,monospace}
.muted{color:var(--muted)}
.shell{display:flex;flex-wrap:wrap;min-height:100vh}
nav.side{flex:1 1 220px;max-width:260px;background:var(--nav);padding:20px 14px;display:flex;flex-direction:column;gap:20px}
.brand{display:flex;align-items:center;gap:10px;padding:0 6px;color:#fff}
.brand b{font-size:16px}.brand small{display:block;color:#8FA0AE;font-size:12px}
body.admin .brand small{color:#F0B37E;font-weight:600}
.menu{display:flex;flex-direction:column;gap:2px}
.menu a{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border-radius:8px;color:var(--nav-ink);text-decoration:none;font-size:14px}
.menu a:hover{background:rgba(255,255,255,.07);color:#fff}
.menu a.on{background:var(--nav-hi);color:#fff}
.pill{font:500 12px 'IBM Plex Mono',monospace;padding:2px 8px;border-radius:10px;background:rgba(255,255,255,.12)}
.pill.red{background:var(--crit-ink);color:#fff}.pill.blue{background:var(--accent);color:#fff}
.side-foot{margin-top:auto;border-top:1px solid var(--nav-hi);padding:14px 6px 0;font-size:13px;color:#8FA0AE}
.side-foot button{background:none;border:0;color:#C9D3DB;font:inherit;text-decoration:underline;cursor:pointer;padding:0;margin-top:6px}
main{flex:999 1 560px;min-width:0;padding:24px 32px 40px;display:flex;flex-direction:column;gap:20px;max-width:1200px}
h1{margin:0;font-size:26px;font-weight:600}h2{margin:0;font-size:18px;font-weight:600}
.head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px}
.sub{font-size:14px;color:var(--muted);margin-top:4px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:16px}
.tile{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--ink)}
.lbl{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}
.big{font-size:40px;font-weight:600;line-height:1}
.big small{font-size:20px;color:var(--muted)}
.cols{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}
.row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 0;border-top:1px solid var(--line2);font-size:14px}
.kv{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line2);font-size:14px}
.kv>span:first-child{color:var(--muted)}
.sq{display:inline-block;width:10px;height:10px;border-radius:3px;flex:none;margin-top:5px}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%}
.s-ok{background:var(--ok)}.s-crit{background:var(--crit)}.s-warn{background:var(--warn)}.s-off{background:var(--muted)}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:13px;padding:4px 10px;border-radius:14px}
.badge.ok{color:#0F6B4B;background:var(--ok-bg)}.badge.warn{color:#6B3D06;background:var(--warn-bg)}.badge.crit{color:#fff;background:var(--crit-ink)}
.v-crit{color:var(--crit);font-weight:600}.v-warn{color:var(--warn);font-weight:600}.v-ok{color:var(--ok)}
.pons{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:12px;margin-top:14px}
.pon{border:1px solid #CFE3D8;background:#F3FAF6;border-radius:10px;padding:14px}
.bar{height:6px;background:var(--line);border-radius:3px;margin-top:10px}.bar>div{height:6px;background:var(--ok);border-radius:3px}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #D5DCE2;border-radius:8px;padding:0 12px;min-height:42px;flex:1 1 260px}
.search input{border:0;outline:0;font:inherit;font-size:14px;width:100%;background:transparent}
select,.inp{min-height:42px;border:1px solid #D5DCE2;border-radius:8px;background:#fff;font:inherit;font-size:14px;padding:0 10px;color:var(--ink)}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border-radius:18px;border:1px solid #D5DCE2;background:#fff;font:inherit;font-size:14px;cursor:pointer;color:var(--ink)}
.chip.on{background:var(--nav);color:#fff;border-color:var(--nav)}
.btn{min-height:44px;padding:0 18px;border-radius:8px;border:1px solid #D5DCE2;background:#fff;font:inherit;font-size:14px;cursor:pointer;color:var(--ink)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500}
.btn[disabled]{color:var(--muted);background:var(--ground);cursor:not-allowed}
.tbl{background:#fff;border:1px solid var(--line);border-radius:12px;overflow-x:auto}
table{border-collapse:collapse;width:100%}
th{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:10px 12px;border-bottom:1px solid var(--line2);font-size:14px;white-space:nowrap}
tbody tr:hover td{background:#F7F9FB}
tbody tr.click{cursor:pointer}
.note{background:var(--warn-bg);border:1px solid #F0D7AE;border-radius:10px;padding:12px 16px;font-size:14px;color:#6B3D06}
.diag{border-color:#CFE3D8;background:#F6FBF8}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:20px}
.empty{padding:40px 20px;text-align:center;color:var(--muted)}
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}
.login form{width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px}
.login label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500;color:#3D444D}
.err{color:var(--crit);font-size:14px;min-height:20px}
.spin{opacity:.6}
@media (max-width:700px){main{padding:16px}nav.side{max-width:none}.big{font-size:32px}}
.f{display:flex;flex-direction:column;gap:6px}
form .inp,form select{width:100%}
.filters .inp,.filters select{width:auto}
table.compact td{padding:7px 10px;font-size:13.5px;white-space:normal;vertical-align:top}
table.compact th{padding:8px 10px}
.sm{font-size:12px;margin-top:2px}
/* страница ONU как в SmartOLT */
.onu-top{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:20px}
.kvbox{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 18px}
.kvl{display:grid;grid-template-columns:minmax(120px,40%) 1fr;gap:12px;padding:5px 0;font-size:14px;align-items:baseline}
.kvl>span:first-child{text-align:right;font-weight:600;color:#3D444D}
.lnk{background:none;border:0;padding:0;font:inherit;color:var(--accent);cursor:pointer;text-align:left}
.lnk:hover{text-decoration:underline;color:#123F8F}
.onu-sec{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:start}
.onu-sec>.lbl{text-align:right;padding-top:12px}
.sm2{min-height:36px;padding:0 14px;font-size:13.5px}
.warnb{background:#F0A02B;border-color:#F0A02B;color:#fff}.warnb[disabled]{background:#F6CF8F;border-color:#F6CF8F;color:#fff}
.delb{background:#D63B2F;border-color:#D63B2F;color:#fff}
.rad{display:inline-flex;align-items:center;gap:6px;margin-right:14px}
dialog#dlg{border:0;border-radius:12px;padding:0;width:min(560px,94vw);box-shadow:0 20px 60px rgba(0,0,0,.25)}
dialog#dlg.wide{width:min(860px,96vw)}
dialog#dlg::backdrop{background:rgba(15,23,32,.45)}
.dlg-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line2)}
.dlg-body{padding:16px 20px;max-height:70vh;overflow:auto}
.dlg-foot{display:flex;justify-content:flex-end;gap:10px;padding:12px 20px;border-top:1px solid var(--line2)}
.rawpre{font-size:12px;background:#0F1720;color:#D6E2EC;padding:12px;border-radius:8px;white-space:pre;overflow:auto;max-height:60vh;margin:0}
@media (max-width:700px){.onu-sec{grid-template-columns:1fr}.onu-sec>.lbl{text-align:left;padding-top:0}.kvl{grid-template-columns:1fr}.kvl>span:first-child{text-align:left}}
.sub3{font-size:15px;margin:16px 0 6px;font-weight:600}
.btn.danger{color:#B42318;border-color:#F3C3BE}
.btn.danger:hover{background:#FEF3F2}
.vlchk{max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:6px 12px}
.trwrap{display:flex;flex-direction:column;gap:6px}
.trsec{background:#fff;border:1px solid var(--line);border-radius:10px}
.trsec>summary{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;font-weight:600;background:#F4F5F7;border-radius:10px;list-style:none}
.trsec[open]>summary{border-bottom:1px solid var(--line);border-radius:10px 10px 0 0}
.trsec>summary::-webkit-details-marker{display:none}
.trsec .tri{width:18px;text-align:center;color:var(--muted)}
.trbody{padding:12px 14px;overflow-x:auto}
.trkv td{padding:5px 8px;vertical-align:top}
.trkv tr:nth-child(odd){background:#FAFAFB}

.onul td{padding:6px 8px;vertical-align:top;font-size:13px}
.onul th{font-size:12px;padding:8px}
.onul .xs{font-size:12px;line-height:1.35}
.onul .vbtn{min-height:28px;padding:0 12px;font-size:12.5px;text-decoration:none;display:inline-flex;align-items:center}
.bdg{display:inline-block;color:#fff;font-size:10.5px;font-weight:700;padding:2px 6px;border-radius:4px;white-space:nowrap;letter-spacing:.2px}
body.wide main{max-width:none}
/* все страницы панели — во всю ширину экрана; узкие формы ограничивают себя сами */
main{max-width:none}
@media (max-width:700px){.tbl table{font-size:12.5px}.tbl th,.tbl td{padding:7px 8px}.head{flex-wrap:wrap;gap:10px}.filters{flex-wrap:wrap}}
.onul{width:100%}
.vlt{width:100%}.vlt td,.vlt th{padding-left:8px;padding-right:8px}.vlt td:nth-child(3){max-width:220px;overflow:hidden;text-overflow:ellipsis}
.langs{display:inline-flex;gap:2px;background:rgba(127,140,150,.15);border-radius:8px;padding:2px}
.lang{font:inherit;font-size:12px;font-weight:600;letter-spacing:.3px;border:0;background:transparent;color:inherit;opacity:.7;padding:6px 10px;border-radius:6px;cursor:pointer;min-height:30px}
.lang.on{background:#1D5FD1;color:#fff;opacity:1}

/* olt.am: знак, меню с иконками, страница входа */
.brand b{font-size:19px;letter-spacing:-.3px}.brand b i{font-style:normal;color:#5B8CFF}
.menu a .ic{display:inline-flex;align-items:center;gap:11px}.menu a svg{flex:none;opacity:.85}
.menu a.on{box-shadow:inset 3px 0 0 #5B8CFF}
.login2{display:flex;flex-wrap:wrap;min-height:100vh;background:#0F1B24}
.login2 .hero{flex:1 1 460px;padding:56px 64px;display:flex;flex-direction:column;justify-content:space-between;gap:40px;color:#fff}
.login2 .hero h1{font-size:44px;line-height:1.1;letter-spacing:-.8px;max-width:560px}
.login2 .hero p{font-size:18px;line-height:1.55;color:#B9C4CE;max-width:560px;margin:18px 0 0}
.login2 .facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;max-width:560px;font-size:14px;color:#B9C4CE}
.login2 .facts b{display:block;font:500 15px 'IBM Plex Mono',monospace;color:#fff}
.login2 .side{flex:1 1 400px;background:var(--ground);display:flex;align-items:center;justify-content:center;padding:40px 20px}
.login2 form{width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px}
.login2 label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:#3A4A56}
.login2 .inp{min-height:48px;font-size:15px}
.login2 .btn.primary{min-height:48px;font-size:15px;font-weight:600}
@media (max-width:700px){.login2 .hero{padding:32px 20px}.login2 .hero h1{font-size:30px}.login2 .facts{grid-template-columns:1fr}}
/* узкие экраны: ничего не вылезает вбок */
@media (max-width:700px){.card{padding:16px}.head h1{font-size:22px}.kvl{grid-template-columns:1fr}.filters>.btn,.filters>a.btn{flex:1 1 auto;justify-content:center}}
main>*{max-width:100%;min-width:0}

/* публичный сайт olt.am */
.site{background:#fff;color:var(--ink)}
.sw{max-width:1200px;margin:0 auto;padding:0 24px;box-sizing:border-box}
.sh{background:#0F1B24;color:#fff;position:sticky;top:0;z-index:5}
.sh-in{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between;padding-top:16px;padding-bottom:16px}
.snav{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center}
.snav>a:not(.btn){color:#D5DEE6;text-decoration:none;font-size:15px}.snav>a:not(.btn):hover{color:#fff}
.snav .langs{color:#fff}
.sbtn-ghost{background:transparent;color:#fff;border-color:#3A4B58;display:inline-flex;align-items:center;text-decoration:none}
a.btn{display:inline-flex;align-items:center;text-decoration:none}
.sbig{min-height:52px;padding:0 24px;font-size:16px;font-weight:600}
.hero2{background:#0F1B24;color:#fff}
.hero2-in{display:flex;flex-wrap:wrap;gap:48px;align-items:center;padding-top:64px;padding-bottom:88px}
.hero2 h1{font-size:52px;line-height:1.06;letter-spacing:-1.2px;margin:14px 0 0;max-width:640px}
.hero2 p{font-size:19px;line-height:1.6;color:#B9C4CE;max-width:580px;margin:20px 0 0}
.hero2-pic{flex:1 1 420px;min-width:0}
.hp-card{background:#F3F5F7;border-radius:14px;padding:18px;color:var(--ink);box-shadow:0 30px 60px rgba(0,0,0,.35)}
.hp-row{display:flex;justify-content:space-between;align-items:baseline}
.hp-kpi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}
.hp-kpi>div{background:#fff;border-radius:8px;padding:10px}.hp-kpi small{display:block;font-size:11px;color:var(--muted)}.hp-kpi b{font-size:18px;letter-spacing:2px;color:#157F4A}
.hp-line{display:grid;grid-template-columns:12px 1fr 80px;gap:10px;align-items:center;padding:9px 4px;border-top:1px solid var(--line2);font-size:13px}
.hp-line .mono:last-child{text-align:right}
.ss{padding:88px 0}.ss.dark{background:#F3F5F7}
.ss h2{font-size:38px;letter-spacing:-.6px;margin:0 0 40px;max-width:760px}
.slead{font-size:17px;line-height:1.6;color:#4A5A66;margin:0;max-width:440px}
.sgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:40px 48px}
.sfeat h3,.ssteps h3{margin:14px 0 6px;font-size:18px}.sfeat p,.ssteps p{margin:0;font-size:15px;line-height:1.6;color:#4A5A66}
.sfi{display:block;width:44px;height:44px;border-radius:10px;background:#E5ECF8 radial-gradient(circle,#1D4FB8 6px,transparent 7px)}
.ssteps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr));gap:20px}
.ssteps li{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px}.ssteps .mono{color:#1D4FB8}
.slist{list-style:none;padding:0;margin:0;display:grid;gap:14px;font-size:16px;max-width:820px}.slist li{border-top:1px solid var(--line);padding-top:14px}
.sfaq{display:grid;gap:10px;max-width:820px}
.sfaq details{border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:#fff}
.sfaq summary{cursor:pointer;font-weight:600;font-size:16px}.sfaq p{margin:10px 0 0;color:#4A5A66;line-height:1.6}
.apply{display:flex;flex-wrap:wrap;gap:40px;align-items:flex-start}.apply h2{margin-bottom:14px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.sfoot{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding-top:32px;padding-bottom:40px;font-size:14px;color:var(--muted)}
@media (max-width:700px){.hero2 h1{font-size:32px}.ss{padding:56px 0}.ss h2{font-size:28px;margin-bottom:24px}.hero2-in{padding-top:36px;padding-bottom:56px}.sh{position:static}}
