/* SmartISPBD shared experience layer: one semantic theme contract for every role and public page. */
:root,:root[data-theme="light"]{color-scheme:light;--app-bg:#f4f7fb;--sidebar-bg:#fff;--surface:#fff;--surface-raised:#fff;--surface-soft:#eef3f8;--surface-hover:#e8eef6;--surface-selected:#e7efff;--input-bg:#fff;--overlay-bg:rgba(15,23,42,.56);--text-primary:#172033;--text-secondary:#52627a;--text-tertiary:#718096;--border:#dce4ee;--border-strong:#c5d0dd;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-soft:rgba(37,99,235,.11);--success:#15803d;--success-soft:rgba(21,128,61,.11);--warning:#b45309;--warning-soft:rgba(180,83,9,.11);--danger:#dc2626;--danger-soft:rgba(220,38,38,.1);--info:#0369a1;--info-soft:rgba(3,105,161,.1);--accent-indigo:#4f46e5;--accent-pink:#db2777;--shadow-sm:0 1px 2px rgba(15,23,42,.04),0 3px 12px rgba(15,23,42,.035);--shadow-md:0 12px 30px rgba(15,23,42,.09);--shadow-lg:0 22px 55px rgba(15,23,42,.16);--radius-sm:7px;--radius-md:10px;--radius-lg:15px;--bg-dark:var(--app-bg);--card-dark:var(--surface);--glass-bg:var(--surface);--border-dark:var(--border);--text-white:var(--text-primary);--text-muted:var(--text-secondary);--shadow-premium:var(--shadow-sm);--card-bg:var(--surface)}
:root[data-theme="dark"],body.dark-mode{color-scheme:dark;--app-bg:#0a111d;--sidebar-bg:#0e1726;--surface:#111c2c;--surface-raised:#172438;--surface-soft:#19273a;--surface-hover:#1d2d42;--surface-selected:#19365f;--input-bg:#0e1928;--overlay-bg:rgba(2,6,23,.76);--text-primary:#edf3fb;--text-secondary:#a9b7c9;--text-tertiary:#8392a7;--border:#29384b;--border-strong:#3b4b60;--primary:#60a5fa;--primary-hover:#93c5fd;--primary-soft:rgba(96,165,250,.13);--success:#4ade80;--success-soft:rgba(74,222,128,.12);--warning:#fbbf24;--warning-soft:rgba(251,191,36,.12);--danger:#fb7185;--danger-soft:rgba(251,113,133,.12);--info:#38bdf8;--info-soft:rgba(56,189,248,.12);--accent-indigo:#818cf8;--accent-pink:#f472b6;--shadow-sm:0 8px 24px rgba(0,0,0,.18);--shadow-md:0 16px 36px rgba(0,0,0,.28);--shadow-lg:0 28px 65px rgba(0,0,0,.42);--bg-dark:var(--app-bg);--card-dark:var(--surface);--glass-bg:var(--surface);--border-dark:var(--border);--text-white:var(--text-primary);--text-muted:var(--text-secondary);--shadow-premium:var(--shadow-sm);--card-bg:var(--surface)}
html{background:var(--app-bg)}body{background:var(--app-bg);color:var(--text-primary);line-height:1.5;transition:none}h1,h2,h3{color:var(--text-primary);letter-spacing:-.025em;line-height:1.25}h2{font-size:clamp(1.35rem,2vw,1.8rem)}button,input,select,textarea{font:inherit}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--primary);outline-offset:3px}::selection{background:var(--primary-soft);color:var(--text-primary)}
/* Shell */
.app-container,.main-content,.content-area{background:var(--app-bg)}.sidebar{background:var(--sidebar-bg)!important;border-color:var(--border)}.topbar{background:var(--surface)!important;border-color:var(--border);box-shadow:var(--shadow-sm)}.sidebar-header h2,.topbar-left h3{color:var(--text-primary)}.sidebar-user:hover{background:var(--surface-hover)}.sidebar .nav-link{border-radius:var(--radius-md);margin:3px 10px;border-left:3px solid transparent}.sidebar .nav-link:hover,.sidebar .nav-link.active,.nav-link-sub:hover,.nav-link-sub.active{background:var(--surface-selected)!important;color:var(--primary)!important;border-left-color:var(--primary);box-shadow:none}.sidebar-nav .sidebar-submenu{background:var(--surface-soft)!important;border-color:var(--border)!important}.sidebar.collapsed .menu-item-has-child:hover .sidebar-submenu{background:var(--surface-raised)!important;box-shadow:var(--shadow-lg)!important}.menu-search-container input{background:var(--input-bg)!important;color:var(--text-primary)!important}.btn-icon:hover,.toggle-btn:hover{background:var(--surface-hover)!important;color:var(--primary)}
/* Surfaces */
.glass,.card,.stat-card,.ops-panel,.ops-router-card,.as-summary button,.glass-card{background:var(--surface)!important;border-color:var(--border)!important;color:var(--text-primary);box-shadow:var(--shadow-sm)}.card{border-radius:var(--radius-lg)}.card-header{gap:12px;flex-wrap:wrap;padding:19px 22px;background:var(--surface-soft)!important;border-color:var(--border)}.card-body{padding:22px}.stat-card{border-radius:14px!important;box-shadow:var(--shadow-sm)!important}.stat-card:hover,.ops-panel:hover,.ops-router-card:hover,.as-summary button:hover{border-color:var(--primary)!important;box-shadow:var(--shadow-md)!important}.ops-toolbar-actions select{background:var(--input-bg)!important}.ops-metric .stat-info strong,.ops-router-metrics b,.as-summary b{color:var(--text-primary)!important}.ops-notice{background:var(--warning-soft)!important;border-color:var(--warning)!important;color:var(--warning)!important}.permission-card,.as-current-summary,.profile-soft-surface{background:var(--surface-soft)!important;border-color:var(--border)!important}
/* Buttons */
.btn{min-height:38px;gap:8px;border-radius:var(--radius-md);font-weight:600;box-shadow:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-xs,.btn-sm{min-height:32px}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-orange{background:var(--warning);color:#fff}.btn-outline{background:transparent;color:var(--text-primary);border-color:var(--border-strong)}.btn-outline:hover{background:var(--surface-hover)!important}.btn-indigo{background:var(--primary-soft);color:var(--primary);border-color:var(--border-strong)}.btn-indigo:hover,.btn-indigo.active{background:var(--surface-selected);color:var(--primary)}
/* Forms */
.form-control,input:not([type="checkbox"]):not([type="radio"]),select,textarea{background:var(--input-bg)!important;color:var(--text-primary)!important;border-color:var(--border-strong)!important;border-radius:var(--radius-md);max-width:100%}.form-control{min-height:42px}.form-control:hover,input:hover,select:hover,textarea:hover{border-color:var(--text-tertiary)!important}.form-control:focus,input:focus,select:focus,textarea:focus{background:var(--input-bg)!important;border-color:var(--primary)!important;box-shadow:0 0 0 3px var(--primary-soft)}.form-control:disabled,input:disabled,select:disabled,textarea:disabled{background:var(--surface-soft)!important;color:var(--text-tertiary)!important;opacity:.78;cursor:not-allowed}.form-group>label,.form-label{display:block;margin-bottom:7px;color:var(--text-primary);font-weight:600}input::placeholder,textarea::placeholder{color:var(--text-tertiary);opacity:1}option{background:var(--surface-raised);color:var(--text-primary)}input[type="checkbox"],input[type="radio"]{accent-color:var(--primary)}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text-primary);box-shadow:0 0 0 1000px var(--input-bg) inset}
/* Data */
.table-responsive,.table-container{border:1px solid var(--border);border-radius:12px;overflow:auto;max-width:100%;overscroll-behavior-inline:contain}table{font-variant-numeric:tabular-nums}.table{background:transparent!important}.table th,thead th{background:var(--surface-soft);color:var(--text-secondary);font-size:.75rem;letter-spacing:.025em;white-space:nowrap;border-color:var(--border)}.table td,tbody td{color:var(--text-primary);border-color:var(--border)}.table tr:hover,tbody tr:hover{background:var(--surface-hover)!important}td[colspan]{text-align:center;padding:30px;color:var(--text-secondary)}.pagination button,.pagination a{background:var(--surface);color:var(--text-primary);border-color:var(--border)}.pagination .active,.pagination button:hover,.pagination a:hover{background:var(--surface-selected);color:var(--primary);border-color:var(--primary)}
/* Semantic status */
.badge-success,.bg-green-900{background:var(--success-soft)!important;color:var(--success)!important;border-color:var(--success)!important}.badge-danger,.bg-red-900{background:var(--danger-soft)!important;color:var(--danger)!important;border-color:var(--danger)!important}.badge-warning,.bg-yellow-900{background:var(--warning-soft)!important;color:var(--warning)!important;border-color:var(--warning)!important}.badge-info,.badge-cyan{background:var(--info-soft)!important;color:var(--info)!important}.badge-indigo,.bg-indigo-900{background:var(--primary-soft)!important;color:var(--accent-indigo)!important;border-color:var(--accent-indigo)!important}.text-indigo-400{color:var(--accent-indigo)!important}.text-pink-400{color:var(--accent-pink)!important}.text-success{color:var(--success)!important}.text-warning{color:var(--warning)!important}.text-danger{color:var(--danger)!important}.text-muted,.as-help,.as-install{color:var(--text-secondary)!important}
/* Dialogs, menus and transient UI */
.modal-overlay{background:var(--overlay-bg)}.modal-content,.dropdown-menu,.action-menu,.hotspot-action-menu,[role="menu"]{background:var(--surface-raised)!important;color:var(--text-primary)!important;border-color:var(--border)!important;box-shadow:var(--shadow-lg)!important}.modal-content{border:1px solid var(--border);border-radius:var(--radius-lg);max-height:90dvh;overflow:auto}.modal-header,.modal-footer{background:var(--surface-raised);border-color:var(--border)!important}.modal-close{color:var(--text-secondary)}.modal-close:hover{color:var(--danger)}.toast{background:var(--surface-raised);color:var(--text-primary);border-color:var(--border);box-shadow:var(--shadow-lg);max-width:min(420px,calc(100vw - 32px));overflow-wrap:anywhere}.flatpickr-calendar,.choices__inner,.choices__list,.select2-dropdown,.select2-selection{background:var(--surface-raised)!important;color:var(--text-primary)!important;border-color:var(--border)!important}
.profile-tabs,#cp-tabs,#isp-settings-tabs,.as-tabs{gap:8px;flex-wrap:wrap;border-color:var(--border)!important}.profile-tabs .btn.active,#cp-tabs .btn.active,#isp-settings-tabs .btn.active,.as-tabs .btn.active{background:var(--surface-selected);color:var(--primary);border-color:var(--primary)}
/* Feature pages that previously assumed a dark canvas. */
.sub-metrics strong,.sub-package strong{color:var(--text-primary)!important}.sub-status{background:var(--primary-soft)!important;color:var(--primary)!important}.sub-warning{background:var(--warning-soft)!important;border-color:var(--warning)!important;color:var(--warning)!important}.sub-package,.router-health-item,.router-result,.hotspot-detail{background:var(--surface-soft)!important;border-color:var(--border)!important;color:var(--text-primary)!important}.router-tool-group>span{color:var(--accent-indigo)!important}.router-tool-group button{color:var(--text-secondary)!important}.router-tool-group button:hover,.router-tool-group button.active{background:var(--surface-selected)!important;color:var(--primary)!important}.router-tool-group.danger>span,.router-tool-group.danger button{color:var(--danger)!important}.hotspot-action-menu button{color:var(--text-primary)!important}.hotspot-action-menu button:hover{background:var(--surface-hover)!important}.hotspot-action-menu button.danger{color:var(--danger)!important}.hotspot-action-menu button.warning{color:var(--warning)!important}.promised-item{border-color:var(--border)!important}
/* Profile */
.profile-view-container{padding:4px 0}.profile-layout{display:grid;grid-template-columns:minmax(270px,1fr) minmax(0,2fr);gap:24px}.profile-column{display:flex;flex-direction:column;gap:24px;min-width:0}.profile-cover{height:120px;background:linear-gradient(135deg,var(--accent-indigo),var(--primary))}.profile-card-body{margin-top:-60px;padding-bottom:30px;text-align:center}.profile-avatar-wrap{position:relative;display:inline-block;margin-bottom:15px}.profile-avatar{width:110px;height:110px;border-radius:50%;border:4px solid var(--surface);box-shadow:var(--shadow-md);background:var(--surface)}.profile-status-dot{position:absolute;right:8px;bottom:8px;width:16px;height:16px;background:var(--success);border:3px solid var(--surface);border-radius:50%}.profile-badges{display:flex;justify-content:center;gap:8px;margin-bottom:20px}.profile-stats,.profile-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.profile-stats,.profile-meta-item,.timeline-content{background:var(--surface-soft);border:1px solid var(--border);border-radius:12px;padding:15px}.profile-timeline{position:relative;padding-left:30px;display:flex;flex-direction:column;gap:25px}.profile-timeline:before{content:"";position:absolute;left:9px;top:5px;bottom:5px;width:2px;background:var(--border)}.timeline-item{position:relative}.timeline-icon{position:absolute;left:-30px;top:2px;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;color:#fff;z-index:1}
/* Authentication */
.auth-shell{min-height:100dvh;display:grid;grid-template-columns:1fr 460px;gap:clamp(32px,7vw,120px);align-items:center;max-width:1260px;margin:auto;padding:48px 32px}.auth-brand{font-size:26px;font-weight:700;color:var(--text-primary);text-decoration:none;display:inline-flex;gap:12px;align-items:center}.auth-brand i,.auth-card a{color:var(--primary)}.auth-story{display:flex;min-height:540px;flex-direction:column;justify-content:space-between}.auth-story h1{font-size:clamp(32px,4vw,54px);margin:18px 0 24px}.auth-story p{max-width:430px;color:var(--text-secondary)}.auth-eyebrow{font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--primary)}.auth-card{padding:36px;background:var(--surface)}.auth-card h2{margin-bottom:10px}.auth-password{display:flex;position:relative}.auth-password input{padding-right:48px}.auth-password button{position:absolute;right:5px;top:4px;width:36px;height:34px;border:0;border-radius:6px;background:transparent;color:var(--text-secondary)}.auth-remember{display:flex;gap:10px;align-items:center;margin:20px 0}.auth-remember input{width:18px;height:18px}.auth-footer{margin-top:24px;font-size:14px;text-align:center;color:var(--text-secondary)}#auth-feedback:not(:empty){padding:12px;margin-bottom:20px;background:var(--surface-soft);border-left:3px solid var(--primary);border-radius:8px}.auth-card .form-group{margin-bottom:20px}.register-shell{grid-template-columns:minmax(280px,1fr) minmax(500px,620px);max-width:1380px}.register-card{padding:32px}.auth-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field-error{display:block;min-height:18px;margin-top:5px;color:var(--danger);font-size:12px}.form-control.is-invalid{border-color:var(--danger)!important}.form-control.is-valid{border-color:var(--success)!important}.password-strength{height:4px;margin-top:8px;background:var(--border);border-radius:4px;overflow:hidden}.password-strength span{display:block;width:0;height:100%;background:var(--danger);transition:width .15s}.registration-success{text-align:center;padding:28px 0}.registration-success>i{font-size:52px;color:var(--success);margin-bottom:18px}.registration-success dl{display:grid;grid-template-columns:auto 1fr;gap:10px;text-align:left;background:var(--surface-soft);padding:18px;border-radius:12px;margin:22px 0}.registration-success dt{color:var(--text-secondary)}.registration-success dd{margin:0;font-weight:600;overflow-wrap:anywhere}
::-webkit-scrollbar-thumb{background:var(--border-strong)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}
@media(max-width:992px){.auth-shell,.register-shell{grid-template-columns:1fr;max-width:660px;padding:28px 20px;gap:24px}.auth-story{min-height:0}.auth-story>div,.auth-story>p{display:none}.auth-card{padding:28px}.sidebar{background:var(--sidebar-bg)!important}.sidebar.open{box-shadow:0 0 0 100vmax var(--overlay-bg)!important}.card-body,.card-header{padding:18px}.topbar-right{flex-wrap:wrap}.profile-layout{grid-template-columns:1fr}}
@media(max-width:600px){.content-area{padding:12px!important}.auth-card{padding:24px 20px}.auth-form-grid,.profile-meta-grid{grid-template-columns:1fr;gap:0}.profile-stats{grid-template-columns:1fr 1fr}.modal-content{max-width:calc(100vw - 24px)!important}.stats-grid{grid-template-columns:1fr!important}.auth-shell{padding:20px 14px}.btn{white-space:normal}}

/* Account Center — intentionally uses the shared theme tokens for light/dark parity. */
.account-center{max-width:1180px;margin:0 auto;display:grid;gap:18px}.account-hero{display:flex;align-items:center;gap:18px;padding:22px}.account-avatar-shell{position:relative;flex:0 0 auto}.account-avatar-shell img{width:82px;height:82px;border-radius:22px;object-fit:cover;border:1px solid var(--border);background:var(--surface-soft)}.account-avatar-shell span{position:absolute;right:-2px;bottom:-2px;width:16px;height:16px;border:3px solid var(--surface);border-radius:50%;background:var(--success)}.account-identity{min-width:0;flex:1}.account-identity h2{margin:2px 0 9px;color:var(--text-primary)}.account-eyebrow{margin:0;color:var(--primary);font-size:11px;font-weight:800;letter-spacing:.14em}.account-chips{display:flex;flex-wrap:wrap;gap:7px}.account-chips span{padding:4px 9px;border:1px solid var(--border);border-radius:999px;background:var(--surface-soft);color:var(--text-secondary);font-size:11px;font-weight:700}.account-tabs{display:flex;gap:6px;overflow-x:auto;padding:5px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.account-tabs button{border:0;background:transparent;color:var(--text-secondary);padding:10px 13px;border-radius:9px;white-space:nowrap;cursor:pointer;font-weight:650}.account-tabs button:hover,.account-tabs button.active{background:var(--surface-selected);color:var(--primary)}.account-panel{display:none}.account-panel.active{display:block}.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.account-span{grid-column:1/-1}.account-card{min-width:0}.account-card .card-header{display:flex;justify-content:space-between;align-items:center}.account-card .card-header h3{margin:0;font-size:16px}.account-narrow{max-width:720px}.account-facts{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0}.account-facts>div{padding:12px 0;border-bottom:1px solid var(--border)}.account-facts>div:nth-child(odd){padding-right:15px}.account-facts dt{font-size:11px;color:var(--text-muted);margin-bottom:4px}.account-facts dd{margin:0;color:var(--text-primary);font-weight:700;overflow-wrap:anywhere}.account-form{display:grid;grid-template-columns:1fr 1fr;gap:15px}.account-form.one-column{grid-template-columns:1fr}.account-form label{display:grid;gap:7px;color:var(--text-secondary);font-size:12px;font-weight:650}.account-wide{grid-column:1/-1}.account-media{text-align:center}.account-media img{display:block;width:150px;height:150px;margin:0 auto 14px;border-radius:18px;object-fit:contain;border:1px solid var(--border);background:var(--surface-soft)}.account-media p{font-size:12px}.account-activity,.account-sessions{display:grid;gap:0}.account-activity>div,.account-sessions>div{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.account-activity i{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:var(--surface-selected);color:var(--primary)}.account-activity span,.account-sessions span{display:grid;flex:1;min-width:0}.account-activity strong,.account-sessions strong{text-transform:capitalize;color:var(--text-primary)}.account-activity small,.account-sessions small{color:var(--text-muted);overflow-wrap:anywhere}.account-activity time,.account-sessions time{color:var(--text-muted);font-size:11px;text-align:right}.account-toggle{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 0;border-bottom:1px solid var(--border)}.account-toggle span{display:grid;gap:4px}.account-toggle small{color:var(--text-muted)}.account-toggle input{width:20px;height:20px;accent-color:var(--primary)}.account-notice{padding:12px 14px;border:1px solid var(--warning);border-radius:11px;background:var(--warning-soft);color:var(--warning)}.password-field{position:relative}.password-field input{padding-right:44px}.password-field button{position:absolute;right:5px;top:4px;bottom:4px;border:0;background:transparent;cursor:pointer}.password-strength{min-height:16px;color:var(--primary);font-size:11px}
@media(max-width:800px){.account-grid{grid-template-columns:1fr}.account-span{grid-column:auto}.account-hero{align-items:flex-start;flex-wrap:wrap}.account-hero>a{width:100%}.account-form{grid-template-columns:1fr}.account-wide{grid-column:auto}}
@media(max-width:520px){.account-center{gap:12px}.account-hero{padding:16px}.account-avatar-shell img{width:66px;height:66px;border-radius:18px}.account-tabs button{padding:9px 10px}.account-facts{grid-template-columns:1fr}.account-facts>div:nth-child(odd){padding-right:0}.account-activity>div,.account-sessions>div{align-items:flex-start;flex-wrap:wrap}.account-activity time,.account-sessions time{width:100%;text-align:left;padding-left:43px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Shared processing state used by long-running API actions. */
.smartisp-processing-overlay{position:fixed;inset:0;z-index:3000;display:none;align-items:center;justify-content:center;padding:20px;background:var(--overlay-bg,rgba(2,6,23,.58));backdrop-filter:blur(2px)}.smartisp-processing-overlay.active{display:flex}.smartisp-processing-card{min-width:260px;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:8px;padding:22px 26px;border:1px solid var(--border,rgba(148,163,184,.24));border-radius:14px;background:var(--surface,#111c2f);color:var(--text-primary,#f8fafc);box-shadow:var(--shadow-lg,0 20px 50px rgba(0,0,0,.38));text-align:center}.smartisp-processing-card span{color:var(--text-secondary,#94a3b8);font-size:13px}.smartisp-processing-spinner{font-size:28px;color:var(--primary,#60a5fa);margin-bottom:2px}.smartisp-is-processing{cursor:wait!important;opacity:.82}.smartisp-is-processing .fa-circle-notch{margin-right:6px}
