/* Nilab-branded portals; no backend UI resources or vendor menus are exposed. */
.nilab-auth,.nilab-portal-shell,.nilab-portal-guard{font-family:'Nilab Vazir',Vazir,Tahoma,sans-serif!important;direction:rtl;color:#103654}
.nilab-auth{max-width:570px;margin:38px auto 55px;padding:clamp(20px,4vw,34px);background:#fff;border:1px solid #e1edf4;border-radius:24px;box-shadow:0 24px 70px #07365513}
.nilab-auth *,.nilab-portal-shell *{box-sizing:border-box}
.nilab-auth-head{display:flex;gap:16px;align-items:center;margin-bottom:28px}.nilab-auth-head span{color:#0a7dd3;font-weight:700;font-size:12px}.nilab-auth-head h2{margin:3px 0;color:#063659;font-size:27px}.nilab-auth-head p{margin:0;color:#678296;font-size:13px}
.nilab-symbol{height:64px;width:64px;display:grid;place-items:center;border-radius:20px;color:#fff;font-weight:800;font-size:33px;background:linear-gradient(130deg,#08446b,#06a2d4)}
.nilab-auth-tabs{display:flex;gap:6px;padding:5px;background:#f1f7fb;border:1px solid #e3edf4;border-radius:12px;margin-bottom:24px;overflow-x:auto}
.nilab-auth-tabs button{font:700 12px 'Nilab Vazir',Tahoma,sans-serif;border:0;border-radius:9px;background:transparent;padding:13px 12px;color:#628099;cursor:pointer;flex:1;white-space:nowrap}
.nilab-auth-tabs button.active{background:#fff;color:#065a9b;box-shadow:0 2px 10px #06406c12}
.nilab-auth-pane{display:none}.nilab-auth-pane.active{display:block}.nilab-auth-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.nilab-auth-form label,.nilab-profile-form label{display:grid;gap:7px;font-size:13px;color:#345b75;font-weight:700}.nilab-auth-form input,.nilab-profile-form input{box-sizing:border-box;width:100%;border:1px solid #ccdfeb;border-radius:11px;min-height:46px;padding:11px;font:inherit;background:#fbfdff;color:#15394f;direction:rtl}.nilab-auth-form input[dir=ltr]{direction:ltr;text-align:left}
.nilab-auth-form label:has(input[name=password]),.nilab-auth-form label:has(input[name=confirm]),.nilab-auth-form label:has(input[name=name]),.nilab-auth-form label:has(input[name=mobile]),.nilab-auth-form label:has(input[name=code]){grid-column:span 2}
.nilab-btn,.nilab-auth-form button,.nilab-portal-guard .nilab-btn{display:inline-flex;justify-content:center;align-items:center;background:#0674cb;color:#fff!important;text-decoration:none!important;border:0;border-radius:11px;min-height:45px;padding:10px 20px;font:700 13px 'Nilab Vazir',Tahoma,sans-serif;cursor:pointer}
.nilab-auth-form>.nilab-btn,.nilab-auth-form>.nilab-auth-send-code,.nilab-auth-message,.nilab-auth-code{grid-column:1/-1}.nilab-auth-send-code{background:#e8f4ff!important;color:#075892!important}.nilab-auth-code{display:grid;gap:11px}.nilab-auth-code[hidden]{display:none}.nilab-auth-message{min-height:22px;font-size:12px;color:#176b96;line-height:1.9}.nilab-auth-helper,.nilab-auth-footer{color:#71899c;font-size:12px;line-height:2}.nilab-auth-footer{margin-top:24px;border-top:1px solid #e9eff4;padding-top:14px}.nilab-auth .nilab-otp{box-shadow:none;border:0;padding:0;margin:0}.nilab-auth .nilab-otp h3{font-size:18px}
.nilab-portal-shell{max-width:1450px;margin:24px auto;padding:0 15px 35px}.nilab-portal-top{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;border-radius:17px;padding:17px 24px;margin-bottom:18px;color:#fff;background:#073b62}.nilab-portal-top a{color:#e9f6ff;text-decoration:none}.nilab-portal-top>div{display:flex;align-items:center;gap:20px;font-size:12px}.nilab-portal-brand{font-size:27px;font-weight:800}.nilab-portal-brand small{font-size:11px;opacity:.75;margin-inline-start:12px;font-weight:400}
.nilab-portal-shell .nilab-mm{max-width:100%;padding:0;margin:0}.nilab-portal-shell .nilab-mm-hero{background:linear-gradient(128deg,#063e62,#058dca)}.nilab-portal-shell .nilab-mm-hero h1{font-size:23px}
.nilab-portal-shell .nilab-mm-card,.nilab-portal-shell .nilab-mm-kpi{box-shadow:0 8px 20px #073a6210}.nilab-portal-shell .nilab-mm .button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #c4d9e8;background:#f7fbff;border-radius:9px;padding:8px 12px;color:#0a5486;cursor:pointer;font:700 12px 'Nilab Vazir',Tahoma,sans-serif;text-decoration:none;min-height:36px}.nilab-portal-shell .nilab-mm .button-primary{background:#0777cc;color:#fff;border-color:#0777cc}
.nilab-portal-shell .nilab-mm input,.nilab-portal-shell .nilab-mm select{border:1px solid #c7dbea;border-radius:9px;padding:7px;font-family:inherit}.nilab-portal-shell .nilab-mm-table{overflow-x:auto}
.nilab-mm-native-hidden{color:#637e93;font-size:12px}.nilab-customer-lead{background:linear-gradient(125deg,#06436a,#0784c5);color:#fff;padding:25px 30px;border-radius:20px}.nilab-customer-lead h2{color:#fff;font-size:26px;margin:6px 0}.nilab-customer-lead p{margin:0;color:#d1eafb;font-size:13px}.nilab-customer-nav{display:flex;gap:9px;flex-wrap:wrap;padding:14px;margin:18px 0;border:1px solid #e5eef5;border-radius:14px;background:#fff}.nilab-customer-nav a{color:#426785;text-decoration:none;padding:12px 17px;border-radius:9px;font-weight:700;font-size:12px}.nilab-customer-nav a.active,.nilab-customer-nav a:hover{background:#e4f3fe;color:#0a66a7}.nilab-customer-panel{background:#fff;border:1px solid #e4eef5;border-radius:18px;padding:25px;margin-bottom:18px}.nilab-customer-panel h2{font-size:20px;color:#10456c;margin:0 0 18px}.nilab-customer-order{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:19px;border:1px solid #e1edf5;border-radius:13px;margin:8px 0;color:#1d536f;text-decoration:none}.nilab-customer-order span small{display:block;color:#8aa2b3;font-size:11px}.nilab-customer-order b{color:#087bc5}.nilab-profile-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.nilab-profile-form .nilab-btn{grid-column:1/-1;justify-self:start}.nilab-portal-notice{background:#e9f6ff;color:#176393;padding:15px;margin-bottom:16px;border-radius:11px}.nilab-portal-guard{max-width:550px;padding:30px;margin:40px auto;background:#f5fafd;border:1px solid #e1edf6;border-radius:16px;text-align:center}
@media(max-width:680px){.nilab-portal-top{padding:15px}.nilab-auth{margin:15px auto;padding:19px}.nilab-auth-head h2{font-size:22px}.nilab-auth-form,.nilab-profile-form{grid-template-columns:1fr}.nilab-auth-form label:has(input){grid-column:1/-1}.nilab-customer-nav a{flex:1;text-align:center}.nilab-customer-panel{padding:17px}.nilab-portal-shell .nilab-mm-hero h1{font-size:20px}}
/* Explicitly override the shared white button text on the pale SMS request button. */
.nilab-auth .nilab-auth-form>.nilab-auth-send-code{background:#e3f2ff!important;color:#075892!important;border:1px solid #add6f5}

/* v0.5.1: login fields have identical widths and heights on every viewport. */
.nilab-auth .nilab-auth-form {grid-template-columns:minmax(0,1fr)}
.nilab-auth .nilab-auth-form > label,
.nilab-auth .nilab-auth-form > .nilab-auth-code,
.nilab-auth .nilab-auth-code > label {grid-column:1 / -1!important;min-width:0;width:100%;max-width:100%;margin:0}
.nilab-auth .nilab-auth-form > label > input,
.nilab-auth .nilab-auth-code input {display:block;width:100%!important;max-width:100%;min-width:0;height:48px;min-height:48px;box-sizing:border-box}
.nilab-portal-shell .nilab-mm-permission-grid {align-items:stretch}
.nilab-mm-permissions .nilab-mm-permission-item:has(input:checked) {background:#e9f7ff;border-color:#84bfef}
.nilab-mm-permission-item input:focus-visible {outline:3px solid #338dd0;outline-offset:3px}
.nilab-mm-staff-role {margin:10px 0 0;display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.nilab-mm-staff-role select {min-width:220px;min-height:40px}
