:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light;--bg:#f4f7fb;--card:#fff;--ink:#152439;--muted:#67778d;--border:#e2e9f0;--primary:#0c789a;--primary2:#085e79;--success:#0d8d73;--danger:#b93248;--soft:#eaf5f8;--shadow:0 8px 34px rgba(24,48,78,.04)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #81cce7;outline-offset:2px}.hidden{display:none!important}.layout{min-height:100vh}.topbar{height:84px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 max(25px,calc((100vw - 1370px)/2));background:#101e31;color:#f7fbff;border-bottom:1px solid #28384a}.brand{display:flex;align-items:center;gap:14px}.brand b{display:block;font-size:17px;letter-spacing:-.35px}.brand small{display:block;margin-top:3px;color:#a9bbce;font-size:12px}.brandicon{width:45px;height:45px;border-radius:14px;background:#167c9e;display:grid;place-items:center}.brandicon svg{width:26px;height:26px}.topactions{display:flex;align-items:center;gap:17px}.status-pill{color:#b9d5df;font-size:12px;border:1px solid #34475f;padding:9px 12px;border-radius:30px}.status-pill.ok{color:#aff6dc;border-color:#2c796a}.status-pill.bad{color:#ffe7ad;border-color:#85683f}.profile{width:38px;height:38px;border-radius:50%;border:1px solid #52738c;background:#203c58;color:white;font-weight:800}.shell{max-width:1370px;margin:auto;display:grid;grid-template-columns:230px minmax(0,1fr);gap:35px;padding:38px 25px}.sidebar{position:sticky;top:25px;align-self:start;min-height:calc(100vh - 134px);display:flex;flex-direction:column;gap:3px}.navlabel{font-size:10px;letter-spacing:2px;font-weight:850;color:#8293a7;margin:10px 10px 11px}.navlabel.second{margin-top:28px}.nav{border:0;text-align:left;background:transparent;color:#5c6d82;padding:14px 17px;border-radius:12px;font-weight:700;display:flex;gap:13px;align-items:center}.nav:hover{background:#e8eff7}.nav.active{background:#dfeff4;color:#085d7b}.emoji{font-size:19px;width:24px;text-align:center}.sidebottom{margin-top:auto;padding:23px 13px 10px;border-top:1px solid var(--border);color:var(--muted);line-height:1.5}.sidebottom small{font-size:11px}.sidebottom #identity{font-size:13px;font-weight:650;color:var(--ink);margin:8px 0}.main{min-width:0;max-width:1050px;padding-bottom:70px}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:850;color:var(--primary);margin:0 0 12px}.pagehead h1{font-size:clamp(27px,3.1vw,35px);letter-spacing:-1.2px;margin:0 0 8px;line-height:1.15}.lead{margin:0;color:var(--muted);line-height:1.6;font-size:14px}.btn{border:1px solid transparent;border-radius:11px;min-height:44px;padding:12px 18px;font-size:14px;font-weight:750;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:background .15s}.btn.primary{background:var(--primary);color:white}.btn.primary:hover{background:var(--primary2)}.btn.secondary{background:white;border-color:#cad9e4;color:#38536e}.btn.secondary:hover{background:#f4f9fc}.btn.danger{background:#fff0f2;color:#ae2840;border:1px solid #f2c8d0}.btn.full{width:100%;justify-content:space-between;font-size:16px;padding:15px 19px}.linkbtn{border:none;background:none;color:var(--primary);padding:6px 2px;font-weight:700;font-size:13px}.searchbar{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--border);border-radius:15px;padding:5px 15px;box-shadow:var(--shadow)}.searchbar>span{font-size:28px;color:#7b8da1}.searchbar input{border:0;outline:none!important;min-height:48px;flex:1;min-width:0;color:var(--ink);background:transparent;font-size:16px}.hintline{font-size:13px;color:var(--muted);margin:18px 0 13px}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.contact-card{border:1px solid var(--border);background:white;border-radius:15px;padding:20px;box-shadow:var(--shadow);min-width:0}.contact-head{display:flex;align-items:start;gap:12px;justify-content:space-between}.avatar{width:42px;height:42px;border-radius:13px;background:#e3f0f5;color:#0b789e;display:grid;place-items:center;font-size:17px;font-weight:900;flex-shrink:0}.contact-title{font-size:17px;font-weight:800;overflow-wrap:anywhere;margin:0 0 3px}.contact-subtitle{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.contact-top{display:flex;align-items:center;gap:12px;min-width:0}.contact-numbers{margin-top:15px;border-top:1px solid #eef1f6;padding-top:12px;display:grid;gap:9px}.contact-line{display:flex;align-items:center;gap:10px;font-size:13px;min-width:0}.contact-line .kind{color:#8191a2;min-width:65px;font-size:12px}.contact-line a{font-weight:700;color:#0a7498;text-decoration:none;overflow-wrap:anywhere}.contact-line a:hover{text-decoration:underline}.contact-actions{display:flex;gap:7px;margin-top:17px}.smallbtn{border:1px solid #e0e9f0;border-radius:8px;background:white;color:#426078;font-weight:700;font-size:12px;padding:8px 11px}.smallbtn:hover{background:#eff7fb}.empty{background:white;border:1px dashed #bed1de;border-radius:15px;padding:55px 24px;text-align:center;color:var(--muted);grid-column:1/-1}.empty strong{display:block;color:var(--ink);font-size:19px;margin:8px 0}.gentle{display:flex;gap:10px;margin-top:22px;color:#5c7185;background:#eaf2f7;border-radius:12px;padding:15px 17px;font-size:13px;line-height:1.55}.gentle span{font-size:17px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}.stat,.panel,.user-card{background:white;border:1px solid var(--border);border-radius:15px;box-shadow:var(--shadow)}.stat{padding:20px}.stat small{color:var(--muted);font-size:12px;display:block;margin-bottom:12px}.stat strong{font-size:19px;letter-spacing:-.5px}.panel{padding:24px;margin:15px 0}.panel h2{font-size:18px;letter-spacing:-.4px;margin:0 0 11px}.panel p{color:var(--muted);font-size:14px;line-height:1.7}.panelhead{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.panelhead p{margin:0}.buttons{display:flex;gap:9px;flex-wrap:wrap}.notice{padding:14px 18px;border-radius:11px;font-weight:750;background:#ebf2f7;color:#356376;font-size:13px}.notice.healthy{background:#e9f8f1;color:#087b60}.notice.error{background:#fff0f2;color:#a72f45}.notice.warning{background:#fff7e6;color:#866112}.details{border-top:1px solid var(--border);margin-top:24px;padding-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:18px}.details small{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.details b{font-size:13px}.runlist{display:grid;gap:0}.run,.auditrow{display:flex;gap:15px;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid #ecf1f5;font-size:13px}.run:last-child,.auditrow:last-child{border-bottom:0}.run .meta{color:var(--muted);font-size:12px}.stateok{color:var(--success);font-weight:750}.statewarn{color:#bd7a18;font-weight:750}.statebad{color:var(--danger);font-weight:750}.logs{background:#101d2c;color:#bac9db;padding:14px;border-radius:10px;max-height:360px;overflow:auto;font:12px/1.7 ui-monospace,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.logrow{padding:4px 3px;border-bottom:1px solid #24344a}.logrow.success{color:#8ce8c7}.logrow.error{color:#ffacb8}.logrow.warning{color:#ffd589}select{padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:white;color:var(--ink)}.legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.legend b{display:block;font-size:14px}.legend span{display:block;font-size:12px;color:var(--muted);margin-top:7px;line-height:1.6}.userlist{display:grid;gap:11px}.user-card{padding:17px 20px;display:flex;justify-content:space-between;gap:14px;align-items:center}.user-card b{display:block;font-size:16px}.user-card small{color:var(--muted);font-size:13px;line-height:2}.user-card .buttons{justify-content:flex-end}.integration{display:flex;gap:18px}.integr-icon{background:#e5f3f7;border-radius:16px;width:56px;height:56px;display:grid;place-items:center;font-size:30px;flex-shrink:0}.auditrow .meta{font-size:12px;color:var(--muted)}.profilePanel{max-width:610px}.muted{color:var(--muted)}form label,.field{display:block;font-weight:730;font-size:13px;color:#32475d;margin-bottom:16px}form label input,.field input,.field textarea{display:block;width:100%;border:1px solid #d3e0e9;border-radius:10px;margin-top:7px;padding:13px 14px;font-size:16px;color:var(--ink);background:white;min-height:48px}textarea{min-height:90px;resize:vertical}.field select{display:block;width:100%;margin-top:7px;min-height:46px}.fields-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.fieldhelp{font-size:12px;color:var(--muted);margin:-6px 0 14px}.modal{position:fixed;inset:0;display:grid;place-items:center;z-index:20;padding:12px}.modalshade{position:absolute;inset:0;background:#0a182acc;backdrop-filter:blur(3px)}.modalbody{position:relative;background:white;border-radius:18px;width:min(620px,100%);max-height:min(92vh,880px);overflow:auto;box-shadow:0 28px 90px #001a3440}.modalhead{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--border);padding:16px 24px;z-index:1}.modalhead h2{margin:0;font-size:21px}.close{background:#eef3f7;border:0;border-radius:10px;color:#516478;font-size:25px;width:42px;height:42px}.modalcontent{padding:24px}.modalfooter{display:flex;justify-content:flex-end;gap:9px;border-top:1px solid var(--border);padding:18px 0 0;margin-top:15px;flex-wrap:wrap}.phonegroup{margin-bottom:15px}.phonegroup .pair{display:flex;align-items:center;gap:8px;margin-top:8px}.phonegroup .pair input{flex:1;min-width:0;border:1px solid #d3e0e9;border-radius:10px;padding:12px 13px;font-size:16px;min-height:45px}.phonegroup .pair button{min-width:41px;min-height:43px;border:1px solid #dce5ee;border-radius:10px;background:white;color:#a64b55;font-size:19px}.phonegroup>label{display:block;font-weight:730;font-size:13px}.addfield{border:0;background:transparent;color:var(--primary);font-size:13px;font-weight:750;padding:8px 0}.toast{position:fixed;bottom:20px;right:20px;background:#142b3b;color:#fff;padding:14px 18px;border-radius:12px;box-shadow:0 10px 40px #0b243b33;z-index:100;font-weight:700;font-size:14px;max-width:min(410px,calc(100% - 30px))}.toast.fail{background:#982d45}.loginbody{min-height:100vh;background:radial-gradient(ellipse at top left,#203e58,#0b1628 68%);display:grid;place-items:center;padding:25px}.loginbox{background:white;border-radius:24px;width:min(440px,100%);padding:37px 34px 26px;box-shadow:0 26px 90px #0002}.loginicon{width:62px;height:62px;display:grid;place-items:center;background:#e6f4f7;font-size:33px;border-radius:18px;margin-bottom:24px}.loginbox h1{font-size:32px;letter-spacing:-1.2px;margin:0 0 9px}.loginbox .lead{margin-bottom:30px}.loginbox label{margin-bottom:18px}.loginbox .full{margin-top:10px}.danger{color:var(--danger)!important;font-size:13px;min-height:20px}.loginfooter{border-top:1px solid var(--border);padding-top:21px;margin-top:16px;text-align:center;color:#8b9aaa;font-size:12px}@media(max-width:980px){.shell{grid-template-columns:190px minmax(0,1fr);gap:21px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.cards{grid-template-columns:1fr}.topbar{padding:0 25px}}@media(max-width:680px){.topbar{height:71px;padding:0 14px}.brand{gap:9px}.brandicon{width:40px;height:40px}.brand b{font-size:14px}.brand small{font-size:10px}.status-pill{display:none}.shell{display:block;padding:0 14px 110px}.sidebar{position:fixed;bottom:0;top:auto;left:0;right:0;min-height:0;display:flex;flex-direction:row;padding:9px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:#fff;border-top:1px solid var(--border);z-index:10;overflow-x:auto;gap:5px;box-shadow:0 -7px 23px #143d6114}.sidebar .navlabel,.sidebottom{display:none!important}.sidebar>.admin-only:not(.hidden){display:contents!important}.sidebar .nav{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:10px;min-width:72px;padding:8px 10px;white-space:nowrap}.sidebar .nav .emoji{font-size:21px}.main{padding-top:28px;padding-bottom:12px}.pagehead{align-items:flex-start;flex-direction:column;gap:15px;margin-bottom:20px}.pagehead h1{font-size:28px}.pagehead .btn{width:100%}.cards{gap:11px}.contact-card{padding:17px}.stats{gap:9px}.stat{padding:15px}.stat strong{font-size:16px}.panel{padding:18px}.panelhead{align-items:flex-start}.panelhead .buttons{width:100%}.panelhead .buttons .btn{flex:1}.details{grid-template-columns:1fr}.legend{grid-template-columns:1fr}.user-card{align-items:flex-start;flex-direction:column}.user-card .buttons{width:100%}.user-card .buttons button{flex:1}.fields-two{grid-template-columns:1fr;gap:0}.modal{padding:0;place-items:end center}.modalbody{width:100%;border-radius:19px 19px 0 0;max-height:91dvh;padding-bottom:env(safe-area-inset-bottom)}.modalcontent{padding:17px}.modalhead{padding:13px 17px}.contact-title{font-size:16px}.integration{flex-direction:column}.loginbox{padding:30px 24px}.toast{bottom:calc(85px + env(safe-area-inset-bottom));right:14px;left:14px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* v2.1 – UniFi Network inspired application theme; original product identity. */
:root {color-scheme:dark;--bg:#111318;--card:#1d2027;--ink:#f0f2f6;--muted:#9ba3b1;--border:#343942;--primary:#298aff;--primary2:#1672e4;--success:#43bb8e;--danger:#f07b85;--soft:#222936;--shadow:none;--field:#242830;--head:#17191f;--sidebar:#171a20;--hover:#292f39}
body.ui-unifi {background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,sans-serif;font-size:14px;font-weight:400}
.ui-unifi .layout {background:var(--bg)}
.ui-unifi .topbar{height:65px;padding:0 clamp(18px,3.5vw,55px);background:var(--head);border-bottom:1px solid var(--border)}
.ui-unifi .brandicon{background:#207df4;border-radius:9px;width:35px;height:35px;box-shadow:0 2px 12px #0e5bd024}
.ui-unifi .brandicon svg{width:21px;height:21px}
.ui-unifi .brand b{font-size:14px;letter-spacing:-.18px;font-weight:670;color:#f1f5fb}
.ui-unifi .brand small{font-size:10px;color:#848d9c;letter-spacing:.18px}
.ui-unifi .header-version{font-size:10px;color:#828d9b;letter-spacing:1.1px;font-weight:700}
.ui-unifi .theme-toggle{background:#262b33;color:#b5c5d8;border:1px solid #353e4b;border-radius:8px;width:35px;height:35px;font-size:21px}
.ui-unifi .status-pill{border:0;background:#1d3229;color:#5bd3a2;padding:7px 12px;font-weight:580;border-radius:5px;letter-spacing:.1px}
.ui-unifi .status-pill:before{content:'●';font-size:9px;margin-right:7px}
.ui-unifi .status-pill.bad{background:#3b272e;color:#ffc5bc}
.ui-unifi .profile{width:34px;height:34px;border:1px solid #424c5b;border-radius:50%;background:#263f61;color:#badcff;font-size:13px}
.ui-unifi .shell{max-width:none;margin:0;grid-template-columns:226px minmax(0,1fr);gap:0;padding:0}
.ui-unifi .sidebar{position:sticky;top:0;min-height:calc(100vh - 65px);height:calc(100vh - 65px);overflow:auto;padding:24px 12px 18px;background:var(--sidebar);border-right:1px solid var(--border);align-self:start}
.ui-unifi .navlabel{color:#787f8d;font-size:10px;letter-spacing:1.35px;margin:10px 13px 11px;font-weight:710}
.ui-unifi .navlabel.second{margin-top:30px}
.ui-unifi .nav{min-height:42px;border-radius:7px;padding:10px 12px;color:#9ca6b3;font-weight:570;font-size:13px;transition:background .15s}
.ui-unifi .nav:hover{background:var(--hover);color:var(--ink)}
.ui-unifi .nav.active{background:#1e344f;color:#76b6ff;box-shadow:inset 3px 0 0 #298aff}
.ui-unifi .emoji{display:inline-flex;width:19px;height:19px;align-items:center;justify-content:center;font-size:17px}
.ui-unifi .emoji svg{width:18px;height:18px;flex:0 0 18px;stroke-width:1.8}
.ui-unifi .sidebottom{padding:15px 12px;border-color:var(--border)}
.ui-unifi .sidebottom small{font-size:10px;color:#778493;letter-spacing:.4px}
.ui-unifi .sidebottom #identity{color:var(--ink);font-size:12px}
.ui-unifi .main{max-width:1310px;width:100%;margin:0 auto;padding:39px clamp(22px,4vw,68px) 100px}
.ui-unifi .pagehead{margin-bottom:26px}
.ui-unifi .eyebrow{color:#6baeff;letter-spacing:1.45px;font-weight:740;font-size:10px;margin-bottom:10px}
.ui-unifi .pagehead h1{font-size:clamp(26px,3vw,33px);font-weight:670;letter-spacing:-.8px;margin-bottom:8px}
.ui-unifi .lead{color:var(--muted);font-size:13px;line-height:1.7}
.ui-unifi .btn{border-radius:7px;font-weight:640;font-size:12px;min-height:38px;padding:9px 15px;transition:background .12s,transform .12s}
.ui-unifi .btn.primary,.auth-body .btn.primary{background:#2582eb;border-color:#2787f6;color:white}
.ui-unifi .btn.primary:hover,.auth-body .btn.primary:hover{background:#1475de}
.ui-unifi .btn.secondary{background:#272d36;color:#cfdae9;border-color:#3c4551}
.ui-unifi .btn.secondary:hover{background:#343e4c}
.ui-unifi .btn.danger{color:#f9b0b2;background:#3b272c;border:1px solid #6b343b}
.ui-unifi .linkbtn{font-weight:550}
.ui-unifi .searchbar,.ui-unifi .contact-card,.ui-unifi .stat,.ui-unifi .panel,.ui-unifi .user-card,.ui-unifi .empty{background:var(--card);border:1px solid var(--border);box-shadow:none;border-radius:9px}
.ui-unifi .searchbar{padding:4px 14px;background:#22262e}
.ui-unifi .searchbar input{color:var(--ink);font-size:14px}
.ui-unifi .searchbar>span{color:#8190a8}
.ui-unifi .cards{gap:12px}
.ui-unifi .contact-card{padding:19px 20px;transition:border-color .15s,background .15s}
.ui-unifi .contact-card:hover{border-color:#52657e;background:#202630}
.ui-unifi .avatar{border-radius:7px;width:42px;height:42px;background:#263c53;color:#82bcfb;font-weight:690}
.ui-unifi .contact-title{font-size:15px;font-weight:670;color:var(--ink)}
.ui-unifi .contact-subtitle{color:var(--muted)}
.ui-unifi .contact-numbers{border-top:1px solid var(--border)}
.ui-unifi .contact-line .kind{color:#8d9aa9}
.ui-unifi .contact-line a{color:#8cbfff;font-weight:570}
.ui-unifi .smallbtn{border:1px solid var(--border);border-radius:7px;background:#282e38;color:#cbd8e6;font-weight:570}
.ui-unifi .smallbtn:hover{background:#334053}
.ui-unifi .gentle{background:#192a3c;color:#a9c6e6;border:1px solid #28415c;border-radius:8px}
.ui-unifi .empty{color:var(--muted);border-style:dashed}
.ui-unifi .empty strong{color:var(--ink)}
.ui-unifi .stat{padding:19px 20px;position:relative;overflow:hidden}
.ui-unifi .stat::before{content:'';position:absolute;inset:0 0 auto;height:2px;background:#2d7cce;opacity:.65}
.ui-unifi .stat strong{font-size:22px;color:var(--ink);font-weight:650;letter-spacing:-.65px}
.ui-unifi .stat small,.ui-unifi .details small{color:var(--muted)}
.ui-unifi .panel{padding:23px 24px;margin:14px 0}
.ui-unifi .panel h2{font-size:15px;font-weight:690;letter-spacing:-.1px;color:var(--ink)}
.ui-unifi .panel p{color:var(--muted);font-size:13px}
.ui-unifi .notice{border-radius:7px;background:#29364a;color:#c3d6f5}
.ui-unifi .notice.healthy{background:#1a372d;color:#71d9aa}
.ui-unifi .notice.warning{background:#3b3423;color:#f3d18d}
.ui-unifi .notice.error{background:#3c2831;color:#ffb5bd}
.ui-unifi .details,.ui-unifi .run,.ui-unifi .auditrow,.ui-unifi .sidebottom{border-color:var(--border)}
.ui-unifi .logs{background:#14171c;border:1px solid var(--border);color:#c0cad6}
.ui-unifi .logrow{border-color:#29313c}
.ui-unifi select{background:var(--field);color:var(--ink);border-color:var(--border);border-radius:7px}
.ui-unifi .user-card{padding:18px 20px}
.ui-unifi .user-card b{font-size:14px;color:var(--ink)}
.ui-unifi .integration .integr-icon{background:#2b3e56;border-radius:9px}
.ui-unifi .profilePanel{max-width:730px}
.ui-unifi form label,.ui-unifi .field{color:var(--ink);font-weight:580}
.ui-unifi form label input,.ui-unifi .field input,.ui-unifi .field textarea,.ui-unifi .field select,.ui-unifi .phonegroup .pair input{background:var(--field);color:var(--ink);border:1px solid #464c58;border-radius:7px}
.ui-unifi .phonegroup .pair button{background:#2d3037;border:1px solid #424954;color:#ff8c91}
.ui-unifi .modalshade{background:#03070dd9}
.ui-unifi .modalbody,.ui-unifi .modalhead{background:#20252d;border-color:var(--border);color:var(--ink)}
.ui-unifi .modalbody{border:1px solid #4d5664;border-radius:12px}
.ui-unifi .close{background:#343b45;color:#d4dce6;border-radius:7px}
.ui-unifi .toast{background:#27547e}
.ui-unifi .security-mark{color:#7ad0a5;font-size:11px;font-weight:660;border:1px solid #2c5f49;border-radius:5px;padding:7px 9px}
.ui-unifi .security-summary{background:#1a2d27;border:1px solid #2d5645;color:#91dec1;padding:16px;border-radius:7px;font-weight:550;font-size:13px;line-height:1.6;margin-top:12px}
.ui-unifi .security-summary.off{background:#352f23;border-color:#56452c;color:#efd3a1}
/* Authentication: light content area on a deep UniFi-style graphite background. */
.auth-body{background:#101318;color:#ebf2fb;display:grid;place-items:center;min-height:100vh;padding:24px;color-scheme:light}
.auth-split{display:grid;grid-template-columns:minmax(280px,440px) minmax(330px,450px);width:min(940px,100%);gap:40px;align-items:center}
.auth-aside{padding:40px 24px;color:#f3f6fc}
.auth-aside .eyebrow{color:#7cb9ff;font-size:11px;letter-spacing:2px}
.auth-aside h1{font-size:clamp(34px,4.4vw,54px);font-weight:650;line-height:1.05;letter-spacing:-2px;margin:18px 0}
.auth-aside p:not(.eyebrow){color:#9eaab9;line-height:1.8;font-size:15px}
.auth-symbol{width:57px;height:57px;background:#246fd3;box-shadow:0 6px 25px #176cdd2b;display:grid;place-items:center;font-size:36px;border-radius:13px}
.auth-chip{display:inline-flex;margin-top:36px;color:#a5bdcf;padding:10px 14px;border-radius:7px;background:#1c242e;font-size:12px;border:1px solid #334153}
.auth-login{background:#f9fafc;color:#18283d;box-shadow:0 25px 100px #0007;border-radius:13px;padding:38px 38px 26px}
.auth-login .loginicon{width:52px;height:52px;border-radius:9px;background:#e2eeff;color:#176cd1;font-size:28px;margin-bottom:22px}
.auth-login h1{color:#162336;font-size:27px;font-weight:670;letter-spacing:-.7px}
.auth-login .lead{color:#697788;font-size:13px}
.auth-login .eyebrow{color:#2179dd}
.auth-login label{font-size:13px;font-weight:650;color:#33445c}
.auth-login label input{color:#162336;background:#fff;border:1px solid #d5dfeb;border-radius:7px;min-height:45px}
.auth-login .fieldhelp{color:#687b90;font-size:12px;line-height:1.6}
.auth-login .loginfooter{border-color:#dbe3eb;color:#8190a3}
.auth-login .btn{border-radius:7px}
.auth-login .btn.secondary{color:#225c9a;background:#e9f1fc;border:1px solid #c5d9ef}
.auth-login .linkbtn{display:block;margin:15px auto 0;color:#64819c}
.qr-box{display:grid;place-items:center;margin:19px 0;padding:14px;border-radius:8px;border:1px solid #dee5ee;background:#fff}
.qr-box img{max-width:100%;height:auto}
.secret-box{display:flex;gap:9px;align-items:center;justify-content:space-between;min-width:0;padding:10px;background:#f0f4fa;border:1px solid #d6e2ee;border-radius:7px;margin:12px 0 20px}
.secret-box code{overflow-wrap:anywhere;color:#184a81;font-size:12px;letter-spacing:1px}
.recovery-codes{white-space:pre-wrap;line-height:1.7;padding:15px;background:#f2f6fb;border:1px solid #dbe5ed;border-radius:8px;color:#213d5c;font-size:14px;letter-spacing:.8px}
.auth-login .notice.warning{background:#fff4e1;color:#8b5c09;border:1px solid #f5dfb0}
.auth-login .btn.full{margin:10px 0;min-height:47px}
/* Optional bright mode, while retaining the structure. */
body.ui-unifi.theme-light{color-scheme:light;--bg:#f3f5f8;--card:#fff;--ink:#1f2937;--muted:#697688;--border:#dce2e9;--field:#fff;--head:#f8fafc;--sidebar:#f8fafc;--hover:#e9eff7}
.ui-unifi.theme-light .topbar .brand b{color:#24374a}
.ui-unifi.theme-light .brand small{color:#7d8998}
.ui-unifi.theme-light .header-version{color:#8290a3}
.ui-unifi.theme-light .nav{color:#526173}
.ui-unifi.theme-light .nav.active{background:#dfedfe;color:#176cc3}
.ui-unifi.theme-light .status-pill{background:#e3f6ed;color:#197b56}
.ui-unifi.theme-light .profile{background:#e3f0ff;color:#226ac3;border-color:#b7d2f4}
.ui-unifi.theme-light .theme-toggle{background:#eef3fa;color:#507094;border-color:#d9e3ef}
.ui-unifi.theme-light .contact-card:hover{background:#f8fbff;border-color:#a8c5e7}
.ui-unifi.theme-light .avatar{background:#e4eefc;color:#226bd5}
.ui-unifi.theme-light .contact-numbers{border-color:var(--border)}
.ui-unifi.theme-light .contact-line a{color:#1c71be}
.ui-unifi.theme-light .searchbar{background:#fff}
.ui-unifi.theme-light .btn.secondary,.ui-unifi.theme-light .smallbtn{background:#f6f9fc;color:#2c475f;border-color:var(--border)}
.ui-unifi.theme-light .gentle{background:#e8f3ff;color:#38628e;border-color:#cfe3fa}
.ui-unifi.theme-light .stat strong{color:#1d2e46}
.ui-unifi.theme-light .panel h2,.ui-unifi.theme-light .contact-title,.ui-unifi.theme-light .user-card b{color:var(--ink)}
.ui-unifi.theme-light .notice.healthy{background:#e8f7ed;color:#177d55}
.ui-unifi.theme-light .notice.warning{background:#fff3dc;color:#805e15}
.ui-unifi.theme-light .notice.error{background:#ffe6e6;color:#a03e42}
.ui-unifi.theme-light .security-summary{background:#eaf9f0;color:#14744e;border-color:#b8e8ce}
.ui-unifi.theme-light .security-summary.off{background:#fff7e6;color:#916e21;border-color:#f5e3b2}
.ui-unifi.theme-light form label,.ui-unifi.theme-light .field{color:#33465c}
.ui-unifi.theme-light form label input,.ui-unifi.theme-light .field input,.ui-unifi.theme-light .field textarea,.ui-unifi.theme-light .field select,.ui-unifi.theme-light .phonegroup .pair input{border-color:#d1dce7}
.ui-unifi.theme-light .modalbody,.ui-unifi.theme-light .modalhead{background:white;color:#223548;border-color:#dbe3ec}
.ui-unifi.theme-light .close{background:#eef3f7;color:#456077}
@media(max-width:980px){.ui-unifi .shell{grid-template-columns:190px minmax(0,1fr)}.ui-unifi .main{padding:30px 23px 90px}.ui-unifi .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-split{gap:12px}}
@media(max-width:680px){.ui-unifi .topbar{height:64px;padding:0 14px}.ui-unifi .header-version{display:none}.ui-unifi .topactions{gap:8px}.ui-unifi .shell{display:block;padding:0}.ui-unifi .sidebar{position:fixed;top:auto;bottom:0;left:0;right:0;min-height:0;height:auto;max-height:none;display:flex;flex-direction:row;align-items:stretch;z-index:10;overflow-x:auto;overflow-y:hidden;gap:3px;padding:9px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:var(--sidebar);border-top:1px solid var(--border);border-right:none;box-shadow:0 -8px 30px #0004}.ui-unifi .sidebar .navlabel,.ui-unifi .sidebottom{display:none!important}.ui-unifi .sidebar>.admin-only:not(.hidden){display:contents!important}.ui-unifi .sidebar .nav{display:flex;flex:0 0 auto;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:6px 10px;min-width:72px;font-size:10px;min-height:56px;white-space:nowrap}.ui-unifi .nav.active{box-shadow:inset 0 2px 0 #298aff}.ui-unifi .main{padding:26px 15px 120px}.ui-unifi .pagehead{gap:15px}.ui-unifi .pagehead h1{font-size:27px}.ui-unifi .pagehead .btn{width:100%}.ui-unifi .cards{grid-template-columns:1fr}.ui-unifi .panel{padding:18px}.ui-unifi .stat{padding:14px}.ui-unifi .stat strong{font-size:18px}.ui-unifi .modalbody{border-radius:12px 12px 0 0}.ui-unifi .topactions .status-pill{display:none}.auth-split{display:block;max-width:440px}.auth-aside{padding:12px 9px 24px}.auth-aside h1{font-size:31px;margin:10px 0}.auth-aside .auth-symbol,.auth-aside .auth-chip{display:none}.auth-aside p:not(.eyebrow){display:none}.auth-body{padding:14px}.auth-login{padding:28px 22px 24px}.ui-unifi .toast{bottom:calc(90px + env(safe-area-inset-bottom))}}
/* Family Phonebook 2.2: help desk, imports, resource dashboard */
.remember-option{display:flex!important;align-items:center;gap:10px;font-size:13px;font-weight:500!important;margin:15px 0 18px;color:inherit!important}.remember-option input{width:17px;height:17px;accent-color:#2582eb;flex:none}.remember-option small{opacity:.65}
.ticket-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:14px}.ticket-card{background:var(--card);border:1px solid var(--border);padding:22px;text-align:left;color:var(--ink);border-radius:9px;min-height:165px}.ticket-card:hover{border-color:#348bf2;background:var(--hover)}.ticket-card h3{font-size:16px;line-height:1.35;margin:18px 0 8px}.ticket-card p{font-size:12px;color:var(--muted);margin:0 0 12px}.ticket-card small{color:var(--muted)}.ticket-head{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.ticket-badge{padding:4px 8px;border-radius:6px;font-size:11px;background:#2e3946;color:#d8e3f2}.badge-open{color:#88bdff!important}.badge-working{color:#f8d488!important}.badge-resolved{color:#74e2b4!important}.badge-closed{color:#9baac0!important}.badge-invalid,.badge-error{color:#f7a5aa!important}.badge-done{color:#80dba9!important}
.ticket-description{white-space:pre-wrap;line-height:1.6;border:1px solid var(--border);border-radius:9px;padding:15px;color:var(--ink)}.ticket-thread{max-height:400px;overflow-y:auto;margin:20px 0}.ticket-message{border-left:3px solid #2a86eb;padding:12px 17px;margin:8px 0;background:var(--hover);border-radius:6px}.ticket-message.private{border-left-color:#f1bc61}.ticket-message b{font-size:13px}.ticket-message small{display:block;color:var(--muted);font-size:11px;margin:4px 0 9px}.ticket-message p{white-space:pre-wrap;line-height:1.55;font-size:13px;margin:0}.ticket-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.ticket-actions select{min-width:140px;padding:10px;border-radius:7px;background:var(--field);color:var(--ink);border:1px solid var(--border)}.ticket-detail h3{font-size:18px;margin-top:12px}
.resource-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.resource-card{padding:14px;background:var(--field);border:1px solid var(--border);border-radius:8px}.resource-card small{display:block;font-size:12px;color:var(--muted);margin-bottom:8px}.resource-card strong{font-size:20px;font-weight:650}.resource-progress{margin-top:12px;height:5px;border-radius:10px;background:#344151;overflow:hidden}.resource-progress i{display:block;height:100%;background:#3594fa;border-radius:10px;transition:width .25s}.charts{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;margin-top:23px}.chart-panel{min-width:0;padding:16px;border:1px solid var(--border);border-radius:8px}.chart-panel h3{font-size:13px;margin:0 0 12px}.chart-panel svg{display:block;width:100%;height:auto}.chart-legend{display:flex;gap:15px;font-size:11px;color:var(--muted)}.chart-legend span:first-child{color:#4599ff}.chart-legend span:last-child{color:#34c6a1}.bar-chart{height:200px;display:flex;justify-content:space-evenly;gap:7px;align-items:end;padding:10px 0 0;border-bottom:1px solid var(--border)}.bar-col{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:4px;height:100%}.bar-value{width:70%;max-width:30px;border-radius:4px 4px 0 0;background:linear-gradient(#68a9ff,#236ed9)}.bar-col small{font-size:8px;color:var(--muted);white-space:nowrap}.ticket-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.ticket-stat{border:1px solid var(--border);background:var(--field);padding:18px;border-radius:8px}.ticket-stat small{display:block;color:var(--muted)}.ticket-stat strong{font-size:22px;margin-top:9px;display:block}.import-preview{margin-top:18px;max-height:400px;overflow-y:auto}.import-row{display:grid;grid-template-columns:90px 1fr 175px;align-items:center;gap:10px;padding:10px 13px;border-bottom:1px solid var(--border);font-size:12px}.import-row small{overflow-wrap:anywhere}.security-details{display:grid;gap:9px;border-top:1px solid var(--border);margin-top:20px;padding-top:18px;font-size:13px;color:var(--muted)}#csvInput{max-width:100%;color:var(--ink);padding:12px;background:var(--field);border:1px solid var(--border);border-radius:8px}
@media(max-width:850px){.resource-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.charts{grid-template-columns:1fr}.ticket-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.import-row{grid-template-columns:65px 1fr;gap:7px}.import-row small{grid-column:2}}
@media(max-width:450px){.resource-card strong{font-size:17px}.resource-card{padding:12px}.ticket-card{min-height:140px}.ticket-grid{grid-template-columns:1fr}.ticket-actions select{min-width:0;flex:1}.ticket-actions button{width:100%}}
