*{box-sizing:border-box}body{margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#eceef1;color:#16191d}
a{color:#0a4ea8}header.top{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.6rem 1rem;background:#0f1114;color:#fff;border-bottom:3px solid #0a4ea8}
.brand{color:#fff;font-weight:700;text-decoration:none;font-size:1.05rem;display:flex;align-items:center;gap:.6rem}.brand .logo{background:#fff;border-radius:6px;padding:4px 8px;display:flex}.brand img{height:30px;width:auto;display:block}nav{display:flex;flex-wrap:wrap;gap:.25rem 1rem;align-items:center}
nav a,nav .link{color:#d4dbe5;text-decoration:none}nav a:hover{color:#fff}.link{background:none;border:0;padding:0;font:inherit;cursor:pointer}
main{max-width:1150px;margin:0 auto;padding:1rem}.card{background:#fff;border-radius:10px;padding:1rem 1.25rem;box-shadow:0 1px 3px #0002;margin-bottom:1rem}
.narrow{max-width:420px;margin:2rem auto}.wide{max-width:none}h1{font-size:1.4rem;margin:.2rem 0 .8rem}h2{font-size:1.1rem;margin:1rem 0 .5rem}
label{display:block;margin:.6rem 0;font-weight:600}label input,label select{display:block;width:100%;margin-top:.25rem}
input,select,button,.btn{font:inherit;padding:.45rem .6rem;border:1px solid #b9bfc8;border-radius:6px;background:#fff}
button,.btn{cursor:pointer;background:#e3e6ea;color:#16191d;text-decoration:none;display:inline-block}button:hover,.btn:hover{background:#d3d8de}
.primary{background:#0a4ea8;color:#fff;border-color:#0a4ea8}.primary:hover{background:#083d85}.danger{background:#c62828;color:#fff;border-color:#c62828}
.small{font-size:.8rem;padding:.15rem .45rem}.inline{display:inline}.muted{color:#5c636d}.err{color:#0f1114;font-weight:700;border-left:4px solid #0f1114;background:#dfe2e6;padding:.35rem .6rem;border-radius:4px}.ok{color:#0a4ea8;font-weight:600}.warn{color:#2b3440;font-weight:700}
.bar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.bar h1{margin-right:auto}.search input{width:10rem}
.ctrl>h2{margin-top:1.4rem}.tag{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.85rem;background:#dfe2e6}
.tag.new{background:#0a4ea8;color:#fff}.tag.old{background:#3a4049;color:#fff}.tag.good{background:#d6e4f7;color:#083d85}.tag.bad{background:#2b3035;color:#fff}.tag.small{font-size:.72rem}
details.site{background:#fff;border-radius:10px;margin:.5rem 0;box-shadow:0 1px 2px #0002}details.site>summary{padding:.75rem 1rem;cursor:pointer;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
details.site>*:not(summary){margin-left:1rem;margin-right:1rem}.wlans{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.75rem;padding-bottom:1rem}
.wlan{border:1px solid #d5d9df;border-radius:8px;padding:.6rem .8rem}.ssid{font-weight:700;font-size:1.05rem;margin-bottom:.3rem}
dl{display:grid;grid-template-columns:8.5rem 1fr;gap:.2rem .6rem;margin:0}dt{color:#6b7587}dd{margin:0;word-break:break-word}
code.pp{background:#e2ebf7;padding:.05rem .35rem;border-radius:4px;font-size:.95rem;user-select:all}code.big{font-size:1.2rem}
table{border-collapse:collapse;width:100%}.list th,.list td,.kv th,.kv td,.matrix th,.matrix td{border-bottom:1px solid #e6eaf0;padding:.4rem .5rem;text-align:left;vertical-align:top}
.kv th{width:12rem;color:#6b7587;font-weight:600}.tablewrap{overflow-x:auto}.matrix td{text-align:center}.matrix td.yes{background:#dce8f8}.matrix td.no{background:#f1f2f4}
.matrix thead th{position:sticky;top:0;background:#fff}.allrow{background:#e9edf2}.row{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.row input{min-width:8rem}
.chk{font-weight:400;display:block;margin:.4rem 0}.chk input{display:inline;width:auto}.danger-box{border:2px solid #c62828;border-radius:10px;padding:.5rem 1rem;margin:1rem 0;background:#fff7f7}
.ok-box{border:2px solid #0a4ea8;border-radius:10px;padding:.5rem 1rem;background:#eef3fb}.actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0}.nowrap{white-space:nowrap}
.adv summary{cursor:pointer;font-weight:600;margin:.6rem 0}
@media(max-width:600px){main{padding:.5rem}dl{grid-template-columns:7rem 1fr}.wlans{grid-template-columns:1fr}.kv th{width:auto}}
/* tap-friendly + narrow-screen layout */
button,.btn,input,select{min-height:44px}input[type=checkbox]{min-height:auto;width:1.3rem;height:1.3rem;vertical-align:middle}
.matrix input[type=checkbox]{width:1.5rem;height:1.5rem}
.matrix th:first-child{position:sticky;left:0;background:#fff;z-index:1;min-width:11rem}
@media(max-width:700px){
 header.top{padding:.5rem .75rem}nav{gap:.25rem .9rem;font-size:.95rem}
 .bar>*{flex:1 1 auto}.bar h1{flex-basis:100%}.search{display:flex;gap:.35rem}.search input{flex:1;width:auto}
 table.list,table.list tbody,table.list tr,table.list td{display:block;width:100%}table.list tr:first-child{display:none}
 table.list tr{border:1px solid #d5d9df;border-radius:8px;margin:.5rem 0;padding:.35rem .5rem;background:#fff}
 table.list td{border:0;padding:.2rem 0}.row input,.row select,.row button{flex:1 1 100%}
 .kv th,.kv td{display:block;border:0;padding:.15rem 0}.kv tr{display:block;border-bottom:1px solid #e6eaf0;padding:.3rem 0}
 .actions button{flex:1 1 100%}.card{padding:.85rem}
}
.loginlogo{display:block;margin:0 auto 1rem;max-width:240px;width:70%;height:auto}
@media(max-width:700px){.brand img{height:24px}.brand span{display:none}}
.notice-box{border:2px solid #3a4049;border-radius:10px;padding:.5rem 1rem;margin:1rem 0;background:#f1f3f6}
@media(max-width:700px){table.list td[data-label]::before{content:attr(data-label);display:block;font-size:.75rem;color:#5c636d;font-weight:600;text-transform:uppercase;letter-spacing:.03em}}
.tag.perm{background:#0f1114;color:#fff}.wlanhead{display:flex;gap:.35rem;margin-bottom:.25rem}.wlan.inactive{background:#f1f2f4;border-style:dashed}.wlan.inactive .ssid{color:#5c636d}
.wlanactions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:space-between;margin-top:.6rem;border-top:1px solid #e6eaf0;padding-top:.5rem}
.switch{display:inline-flex;align-items:center;gap:.5rem;margin:0;font-weight:600;cursor:pointer;min-height:44px}.switch input{position:absolute;opacity:0;width:1px;height:1px}
.slider{width:46px;height:26px;border-radius:13px;background:#9aa1ab;position:relative;transition:.15s;flex:none}.slider::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.15s}
.switch input:checked+.slider{background:#0a4ea8}.switch input:checked+.slider::after{left:23px}.switch input:focus-visible+.slider{outline:3px solid #7aa7e0}.switchlabel{font-size:.85rem;color:#2b3440}
dialog#modal{border:0;border-radius:12px;padding:1rem 1.25rem;max-width:min(440px,92vw);box-shadow:0 10px 40px #0006}dialog#modal::backdrop{background:#0f1114b3}
dialog#modal h2{margin-top:.2rem}dialog#modal .actions button{flex:1}
.danger,.danger:hover{color:#fff;border-color:#c62828}.danger{background:#c62828}.danger:hover{background:#a51f1f}.primary,.primary:hover{color:#fff}

/* permanent WLANs: collapsed single grey line for all users; click to open */
details.wlan.permline{background:#e6e8eb;border:1px solid #c4c9d0;padding:0}
details.wlan.permline>summary.permsum{cursor:pointer;padding:.55rem .8rem;color:#3d434b;font-weight:600;list-style:none;display:flex;align-items:center;gap:.4rem}
details.wlan.permline>summary.permsum::-webkit-details-marker{display:none}
details.wlan.permline>summary.permsum::before{content:"\25B8";color:#6b737e;transition:transform .15s}
details.wlan.permline[open]>summary.permsum::before{transform:rotate(90deg)}
details.wlan.permline .permword{color:#6b737e;font-weight:500}
details.wlan.permline[open]{background:#fff}
details.wlan.permline[open]>summary.permsum{border-bottom:1px solid #d5d9df;background:#e6e8eb;border-radius:8px 8px 0 0}
details.wlan.permline .permbody{padding:.6rem .8rem}
details.wlan.permline:not([open]){grid-column:1/-1;align-self:start}
details.wlan.permline{align-self:start}
details.wlan.permline>summary.permsum::before{content:"\25B8";transform:none}
details.wlan.permline[open]>summary.permsum::before{content:"\25BE";transform:none}

/* roles, permissions page, groups */
.tag.role-superadmin{background:#0f1114;color:#fff}.tag.role-admin{background:#0a4ea8;color:#fff}.tag.role-tech{background:#d6e4f7;color:#083d85}
nav a .tag{margin-left:.2rem;vertical-align:middle}
.legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.5rem .9rem;background:#f1f3f6;border:1px solid #d5d9df;border-radius:8px;padding:.6rem .8rem;margin:.4rem 0 .8rem;font-size:.9rem}
.legend .tag{margin-right:.25rem}.legend>div.muted{grid-column:1/-1}
.site-chip{display:inline-block;background:#eef2f7;border:1px solid #d5dbe4;border-radius:6px;padding:0 .4rem;margin:.1rem .15rem .1rem 0;font-size:.85rem}
.ctrlsites{margin:.15rem 0}.ctrlsites>.tag{margin-right:.3rem}
.matrix tr.ctrlrow th{background:#e9edf2;text-align:left;position:static}
.matrix td.viagrp{background:#eaf1fb;color:#4b74b3}.viagrp-key{background:#eaf1fb;color:#4b74b3;padding:0 .3rem;border-radius:3px}
.perm-cards{display:none}
details.usercard{background:#fff;border:1px solid #d5d9df;border-radius:8px;margin:.45rem 0}
details.usercard>summary{cursor:pointer;padding:.6rem .75rem;display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;justify-content:space-between}
details.usercard .cardbody{padding:0 .75rem .6rem;border-top:1px solid #e6eaf0}
.groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.75rem}
.group{border:1px solid #d5d9df;border-radius:8px;padding:.6rem .8rem}.grouphead{display:flex;gap:.4rem;align-items:center;margin-bottom:.35rem;font-size:1.05rem}
.groupform{border-top:1px solid #e6eaf0;margin-top:1rem}.groupform fieldset,.groupsel{border:1px solid #d5d9df;border-radius:8px;margin:.6rem 0;padding:.4rem .7rem}
.groupform legend,.groupsel legend{font-weight:600;padding:0 .3rem}.groupsel{margin:0;padding:.1rem .5rem}.groupsel .chk{margin:.15rem 0;font-size:.9rem}
.pickgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:0 .8rem}.pickctrl{margin:.4rem 0}
.formgrid{display:grid;grid-template-columns:2fr 1fr;gap:0 .8rem}
.choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.6rem;margin:.6rem 0}
.choice{border:1px solid #d5d9df;border-radius:8px;padding:.5rem .7rem;background:#fff}.choice button{width:100%}.choice p{margin:.4rem 0 0;font-size:.88rem}
form.choice{margin:.6rem 0}button.shared{background:#2b3440;color:#fff;border-color:#2b3440}button.shared:hover{background:#1c232c}
.notice-box.viewonly{margin:.4rem 0;font-size:.92rem}
@media(max-width:700px){
 .perm-users,.perm-matrix,.perm-matrix-note{display:none}.perm-cards{display:block}
 .formgrid{grid-template-columns:1fr}.groups{grid-template-columns:1fr}.legend{grid-template-columns:1fr}
}

/* sections: home tiles, nav current, network placeholder */
nav a.cur{color:#fff;font-weight:700;border-bottom:2px solid #4b8de0}
.home{max-width:900px;margin:1.5rem auto}.home h1{font-size:1.6rem}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.1rem;margin-top:1rem}
.tile{display:flex;flex-direction:column;gap:.35rem;padding:1.6rem 1.5rem;border-radius:14px;text-decoration:none;color:#fff;min-height:220px;box-shadow:0 2px 8px #0003;transition:transform .12s,box-shadow .12s;position:relative;overflow:hidden}
.tile:hover,.tile:focus-visible{transform:translateY(-2px);box-shadow:0 6px 18px #0004}
.tile.wifi{background:linear-gradient(135deg,#0a4ea8,#083d85)}.tile.network{background:linear-gradient(135deg,#2b3440,#0f1114)}
.tile-icon{width:64px;height:64px;border-radius:14px;background:#ffffff22;display:flex;align-items:center;justify-content:center;margin-bottom:.4rem}
.tile-title{font-size:1.7rem;font-weight:800;letter-spacing:.01em}.tile-sub{color:#d4dbe5}.tile-go{margin-top:auto;font-weight:700;color:#fff}
.tile .tag{background:#ffffff2e;color:#fff}.tag.soon{background:#2b3440;color:#fff;vertical-align:middle}
.consoles{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem;margin:.6rem 0 1rem}
.console{border:1px solid #d5d9df;border-left:5px solid #9aa1ab;border-radius:8px;padding:.6rem .8rem;background:#fff}
.console.st-ok{border-left-color:#0a4ea8}.console.st-not_owner{border-left-color:#3a4049}.console.st-firmware{border-left-color:#6b7587}.console.st-no_network{border-left-color:#b9bfc8}.console.st-error{border-left-color:#c62828}
.consolehead{display:flex;justify-content:space-between;gap:.5rem;align-items:center;font-size:1.05rem;margin-bottom:.3rem}
.cstatus{font-weight:700;margin-bottom:.35rem;display:flex;align-items:center;gap:.4rem}.dot{width:.7rem;height:.7rem;border-radius:50%;background:#9aa1ab;flex:none}
.st-ok .dot{background:#0a4ea8}.st-ok .cstatus{color:#083d85}.st-not_owner .dot{background:#3a4049}.st-firmware .dot{background:#6b7587}.st-error .dot{background:#c62828}
@media(max-width:700px){.home{margin:.5rem auto}.tile{min-height:170px;padding:1.2rem}.tile-title{font-size:1.45rem}}
details.groupform-wrap{border-top:1px solid #e6eaf0;margin-top:1rem}details.groupform-wrap>summary{cursor:pointer;font-weight:700;font-size:1.1rem;padding:.7rem 0}
details.groupform-wrap .groupform{border-top:0;margin-top:0}
.netsec h2{margin:.2rem auto .2rem 0}.small-note{font-size:.85rem}
.summary{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0 .6rem}.sumchip{display:inline-flex;align-items:center;gap:.35rem;background:#f1f3f6;border:1px solid #d5d9df;border-radius:999px;padding:.15rem .65rem;font-size:.88rem}
.st-offline .dot{background:#9aa1ab}.console.st-offline{border-left-color:#9aa1ab;background:#f6f7f9}.st-no_network .dot{background:#d0d4da}
.checking{display:flex;align-items:center;gap:.5rem;font-weight:600}.spinner{width:1rem;height:1rem;border:3px solid #d5d9df;border-top-color:#0a4ea8;border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}.console[hidden]{display:none}
a.btn,button.small{display:inline-flex;align-items:center;justify-content:center;gap:.3rem}
@media(max-width:700px){.group .actions .btn,.group .actions button{flex:0 0 auto;min-width:5.5rem}}
.netgroup .grouptitle{font-size:1.25rem;margin:.1rem auto .1rem 0}
details.netsec{margin:.4rem 0}details.netsec>summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:.3rem .7rem;align-items:center;padding:.45rem 0;list-style:none}
details.netsec>summary::-webkit-details-marker{display:none}details.netsec>summary::before{content:"\25B8";color:#6b737e}details.netsec[open]>summary::before{content:"\25BE"}
details.netsec .acctlabel{font-weight:700}details.netsec.sub{border:1px solid #d5d9df;border-radius:8px;padding:0 .75rem;background:#fafbfc}
details.netsec.sub>summary .acctlabel{font-size:1.05rem}.also{margin:.35rem 0 0;font-size:.8rem;color:#5c636d;font-style:italic}
.narrow-wide{max-width:640px;margin:1.5rem auto}textarea{font:inherit;width:100%;display:block;margin-top:.25rem;padding:.45rem .6rem;border:1px solid #b9bfc8;border-radius:6px}
.acctmeta{background:#fff;border:1px solid #e6eaf0;border-radius:6px;padding:.4rem .6rem;margin:.2rem 0 .5rem}.acctmeta p{margin:.1rem 0 .3rem}
/* scheduled networks */
.duration{border:1px solid #d5d9df;border-radius:8px;padding:.3rem .8rem;margin:.6rem 0}.duration legend{font-weight:600;padding:0 .3rem}
.formgrid2{display:grid;grid-template-columns:1fr 1fr;gap:0 .8rem}.ptnote{font-size:.85rem;margin:.2rem 0 .4rem}.schedfields[hidden]{display:none}
.tag.sched{background:#e2ebf7;color:#083d85}.schedrow{display:flex;flex-wrap:wrap;gap:.35rem .6rem;align-items:center;border:1px dashed #7aa7e0;background:#f3f7fd;border-radius:8px;padding:.45rem .7rem;margin:.4rem 0}
.schedrow.schederr{border-color:#c62828;background:#fff7f7}.schedactions{display:inline-flex;gap:.35rem;margin-left:auto}
.schedline{font-size:.88rem;background:#f3f7fd;border-radius:6px;padding:.3rem .5rem;margin:.2rem 0 .4rem;display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}
@media(max-width:600px){.formgrid2{grid-template-columns:1fr}.schedactions{margin-left:0}}
.warn-box{background:#fff4e0;border:1px solid #f0b85a;border-radius:6px;padding:10px 14px;margin:10px 0}
.mailtest{margin:8px 0 14px}
.emailpick{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center}
.emailin{min-width:16em}
input[readonly]{background:#f2f4f7;color:#444}
.forgot{text-align:center;margin-top:12px}
.tag.unifi{background:#e8f4ff;color:#0559c9;border-color:#9cc8f5}
h3.acctsub{margin:1rem 0 .4rem;font-size:1rem;color:#0a4ea8;border-bottom:1px solid #d7e3f4;padding-bottom:.2rem}
.notice-box.checking{background:#f2f7ff}
.small{font-size:.85em}
.tile.crm{background:linear-gradient(135deg,#5b2a86,#3a1659)}
.center{text-align:center}
.tiles{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.tile.unifi{background:linear-gradient(135deg,#006fff,#0047a5)}.tile.admin{background:linear-gradient(135deg,#7a4b00,#4a2d00)}
.tag.network{background:#2b3440;color:#fff}.tag.crm{background:#5b2a86;color:#fff}
details.permsec>summary{cursor:pointer;list-style:none}details.permsec>summary h2{display:inline-block;margin:.2rem 0}
details.permsec>summary::before{content:"▸ ";font-size:1.2rem}details.permsec[open]>summary::before{content:"▾ "}
.crmmatrix select{font-size:.8rem;padding:.1rem}.crmmatrix td.lv1{background:#eef6ff}.crmmatrix td.lv2{background:#e6f7ea}
.pcol.group{background:#f4f0fa}
/* CRM */
.crmtabs{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.3rem;margin:.6rem 0}.crmtabs a{white-space:nowrap;padding:.35rem .7rem;border-radius:999px;background:#eef1f5;text-decoration:none;color:#222;border-left:5px solid var(--c,#888)}
.crmtabs a.cur{background:#222;color:#fff}.crmtabs b{margin-left:.3rem}
.crmsec h2{border-left:6px solid var(--c,#888);padding-left:.5rem}
.evcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.8rem}
.evcard{display:block;border:1px solid #dde2e8;border-radius:10px;padding:.8rem 1rem;text-decoration:none;color:inherit;background:#fff}
.evcard:hover{box-shadow:0 2px 10px #0002}.evcard h3{margin:.1rem 0 .4rem;font-size:1.05rem}
.evcard dl,.evdetail dl{display:grid;grid-template-columns:max-content 1fr;gap:.2rem .7rem;margin:0}.evcard dt,.evdetail dt{color:#666;font-size:.85rem}.evcard dd,.evdetail dd{margin:0}
.stlabel{display:inline-block;padding:.1rem .5rem;border-radius:4px;color:#fff;font-size:.85rem;text-shadow:0 0 2px #0006}
.evdetail dd form{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;margin-top:.2rem}.evdetail dd form input,.evdetail dd form select{max-width:16rem}
.roflag{font-size:.75rem;color:#888}
@media(max-width:700px){.evcard dl,.evdetail dl{grid-template-columns:1fr}.evcard dt,.evdetail dt{margin-top:.3rem}}
.adminlinks{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.7rem}.adminlink{display:block;padding:.8rem 1rem;border:1px solid #dde2e8;border-radius:10px;text-decoration:none;color:inherit;background:#fff}.adminlink:hover{box-shadow:0 2px 10px #0002}
.profmenu{position:relative;display:inline-block}.profmenu>summary{cursor:pointer;list-style:none;padding:.3rem .5rem}.profmenu>summary::-webkit-details-marker{display:none}
.profdrop{position:absolute;right:0;top:100%;background:#fff;color:#222;border:1px solid #dde2e8;border-radius:8px;box-shadow:0 4px 14px #0003;min-width:160px;z-index:20;padding:.3rem 0}
.profdrop a,.profdrop button{display:block;width:100%;text-align:left;padding:.45rem .9rem;color:#222 !important;background:none;border:0;font:inherit;cursor:pointer}.profdrop a:hover,.profdrop button:hover{background:#f2f4f7}
.cleanlist td,.cleanlist th{vertical-align:middle}.addform{margin:.8rem 0}.addform>summary{cursor:pointer}
.site-chip.lv2{background:#e6f7ea}.site-chip.lv1{background:#eef6ff}
.tile.finance{background:linear-gradient(135deg,#0b7a4b,#06512f)}.tag.finance{background:#0b7a4b;color:#fff}
.site-chip.inherited{border:1px dashed #6b8bb5;background:#eef4fb}.site-chip.override{border:1px solid #b5791c;background:#fff4e0}
td.lv1{background:#eef6ff}td.lv2{background:#e6f7ea}

.site-chip.ovr{border:1px solid #888;background:#fff}.ovmark{font-size:.7em;text-transform:uppercase;color:#8a4b00;margin-left:.3em}.ovtable{width:100%;border-collapse:collapse}.ovtable td,.ovtable th{padding:.25em .5em;border-bottom:1px solid #eee;text-align:left}form.inline{display:inline}

.contform{margin:.5em 0 1em;display:flex;flex-direction:column;gap:.3em}.auditfilter label{display:inline-flex;flex-direction:column;margin-right:.5em}.pager{display:flex;gap:.5em}.profdrop form button.link{display:block}

.impbar{background:#c62828;color:#fff;font-weight:600;display:flex;align-items:center;justify-content:center;gap:1em;padding:.45em 1em;position:sticky;top:0;z-index:1000}.impbar .impexit{background:#fff;color:#c62828;border:1px solid #fff;font-weight:700;padding:.2em .8em;border-radius:4px;cursor:pointer}.logoutbtn{display:block;width:100%;margin:.4em 0 .2em;padding:.45em .8em;background:#c62828;color:#fff;border:0;border-radius:4px;font-weight:600;cursor:pointer;text-align:center}nav .logoutbtn{display:inline-block;width:auto;margin:0}

.tile.it{background:linear-gradient(135deg,#4fb6ec,#1f8fd6)}.tile.it .tile-icon{color:#fff}.tile.it .tile-sub{color:#f2f9ff}.tag.it{background:#eceff1;color:#37474f}
.vh{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.tile.tickets{background:linear-gradient(135deg,#f39c12,#d35400)}.tile.tickets .tile-icon{color:#fff}.tile.tickets .tile-sub{color:#fff3e6}.tag.tickets{background:#fdebd3;color:#a04000}
.uinfotabs{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.uinfotabs a{padding:5px 10px;border:1px solid #cfd6e0;border-radius:16px;font-size:13px;text-decoration:none}.uinfotabs a.on{background:#1f8fd6;color:#fff;border-color:#1f8fd6}
.uiblock{margin:14px 0}.tscroll{overflow-x:auto}table.kv th{text-align:left;font-weight:500;color:#555;padding-right:12px;white-space:nowrap}table.kv td{word-break:break-word}details.secret summary{cursor:pointer;color:#a04000}
.seg{display:inline-flex;border:1px solid #cfd6e0;border-radius:6px;overflow:hidden;vertical-align:middle;white-space:nowrap}.seg label{margin:0;cursor:pointer;display:inline-flex}
.seg input{position:absolute;opacity:0;width:1px;height:1px}.seg label span{padding:3px 8px;font-size:12px;border-left:1px solid #cfd6e0;color:#445}.seg label:first-child span{border-left:0}
.seg input:focus-visible+span{outline:2px solid #1f8fd6;outline-offset:-2px}.seg .seg0 input:checked+span{background:#e9ecf1;color:#333;font-weight:600}
.seg .seg1 input:checked+span{background:#d7ecfb;color:#0b5c8f;font-weight:600}.seg .seg2 input:checked+span{background:#d9f2df;color:#1d6b33;font-weight:600}
.seg .seg-i input:checked+span{background:#fff6d6;color:#7a5b00;font-weight:600}.nohint{display:block;font-size:11px}
.itcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:10px}.itcard{display:flex;flex-direction:column;gap:4px;padding:14px;border:1px solid #cfd6e0;border-radius:10px;text-decoration:none;color:inherit;background:#f7fbff}.itcard.soon{background:#f7f8fa}
.efb{border:1px solid #cfd6e0;border-radius:8px;padding:10px}.efb-palette,.efb-lit,.efb-tokens{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0;align-items:center}.chipbtn{font-size:12px;padding:3px 8px;border-radius:14px}
.efb-tokens{min-height:34px;padding:6px;background:#f7f8fa;border-radius:6px}.efb-chip{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 8px;border-radius:14px;font-size:13px}.efb-chip.var{background:#d7ecfb}.efb-chip.lit{background:#fff0d6;font-family:monospace}
.efb-chip button{border:0;background:transparent;padding:0 4px;cursor:pointer;font-size:13px}.efb-preview b{font-family:monospace}
table.itcgrid input,table.itcgrid select{width:100%;min-width:70px;box-sizing:border-box}tr.rowerr td{background:#fdecea}.pastebox textarea{width:100%;font-family:monospace}
fieldset.plain{border:0;padding:0;margin:0}
