/* ── AUTH PAGES ── */
.auth-page{min-height:100vh;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:20px;position:relative;overflow:hidden;}
.auth-page::before{content:'';position:absolute;width:600px;height:600px;top:-200px;left:-200px;background:radial-gradient(circle,rgba(255,107,0,.1) 0%,transparent 65%);pointer-events:none;}
.auth-page::after{content:'';position:absolute;width:500px;height:500px;bottom:-150px;right:-150px;background:radial-gradient(circle,rgba(255,107,0,.07) 0%,transparent 65%);pointer-events:none;}
.auth-grid{position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,107,0,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,107,0,.022) 1px,transparent 1px);background-size:60px 60px;}
.auth-wrap{width:100%;max-width:460px;position:relative;z-index:1;}
.auth-logo{font-family:var(--font);font-size:28px;font-weight:900;letter-spacing:-1px;text-align:center;margin-bottom:4px;}
.auth-logo span{color:var(--p);}
.auth-sub-logo{font-size:11px;color:var(--mut);font-weight:700;text-transform:uppercase;letter-spacing:1px;text-align:center;margin-bottom:26px;}
.auth-card{background:var(--s1);border:1px solid var(--bd);border-radius:18px;padding:30px 26px;box-shadow:0 20px 60px rgba(0,0,0,.45);}
.auth-title{font-family:var(--font);font-size:19px;font-weight:800;margin-bottom:3px;}
.auth-subtitle{font-size:13px;color:var(--mut);margin-bottom:22px;}
.auth-footer{text-align:center;margin-top:16px;font-size:13px;color:var(--mut);}
.auth-footer a{color:var(--p);font-weight:700;}
/* Steps */
.sdots{display:flex;align-items:center;gap:5px;margin-bottom:20px;}
.sdot{width:7px;height:7px;border-radius:50%;background:var(--bd);transition:all .3s;}
.sdot.on{background:var(--p);width:20px;border-radius:4px;}
.sdot.done{background:var(--ok);}
.step{display:none;}.step.on{display:block;}
.resend-row{text-align:center;font-size:12px;color:var(--mut);margin-top:10px;}
.resend-row button{background:none;border:none;color:var(--p);font-weight:700;cursor:pointer;font-family:var(--body);font-size:12px;}
.resend-row button:disabled{color:var(--mut);cursor:default;}
/* Strength */
.str-bar{height:3px;background:var(--s3);border-radius:2px;overflow:hidden;margin-top:5px;}
.str-fill{height:100%;width:0;border-radius:2px;transition:all .3s;}

/* ── PORTAL LAYOUT ── */
.portal-wrap{display:flex;min-height:100vh;}
.sidebar{width:var(--sw);background:var(--s1);border-right:1px solid var(--bd);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;transition:transform .28s cubic-bezier(.4,0,.2,1);}
.sb-brand{padding:20px 16px 16px;border-bottom:1px solid var(--bd);}
.sb-logo{font-family:var(--font);font-size:18px;font-weight:900;letter-spacing:-.5px;}
.sb-logo span{color:var(--p);}
.sb-tag{font-size:10px;color:var(--mut);font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-top:2px;}
.sb-nav{flex:1;padding:12px 8px;overflow-y:auto;}
.sb-sec{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--mut);padding:10px 8px 4px;margin-top:4px;font-family:var(--font);}
.nb{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border-radius:7px;border:none;background:none;color:var(--mut);font-family:var(--body);font-size:13px;font-weight:500;cursor:pointer;transition:all .14s;text-align:left;margin-bottom:1px;text-decoration:none;}
.nb:hover{background:rgba(255,255,255,.04);color:var(--txt);}
.nb.on{background:rgba(255,107,0,.13);color:var(--p);font-weight:700;}
.nb .ni{font-size:14px;width:17px;text-align:center;flex-shrink:0;}
.nb .nbadge{margin-left:auto;background:var(--p);color:#fff;font-size:10px;font-weight:800;padding:2px 6px;border-radius:20px;font-family:var(--font);}
.sb-user{padding:12px 16px;border-top:1px solid var(--bd);display:flex;align-items:center;gap:9px;}
.sb-uname{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sb-urole{font-size:11px;color:var(--p);font-weight:700;}
.sb-out{background:var(--s2);border:1px solid var(--bd);color:var(--mut);width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s;}
.sb-out:hover{color:var(--err);border-color:var(--err);}
.portal-main{margin-left:var(--sw);flex:1;display:flex;flex-direction:column;min-height:100vh;}
.topbar{background:var(--s1);border-bottom:1px solid var(--bd);padding:0 22px;height:54px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50;}
.tb-title{font-family:var(--font);font-size:15px;font-weight:800;}
.tb-right{display:flex;align-items:center;gap:9px;}
.tb-pill{background:var(--s2);border:1px solid var(--bd);color:var(--mut);padding:6px 11px;border-radius:7px;cursor:pointer;font-size:12px;font-family:var(--body);display:flex;align-items:center;gap:5px;transition:all .2s;font-weight:600;}
.tb-pill:hover{color:var(--txt);border-color:var(--p);}
.hamburger{display:none;background:var(--s2);border:1px solid var(--bd);color:var(--txt);width:32px;height:32px;border-radius:7px;cursor:pointer;align-items:center;justify-content:center;font-size:15px;}
.portal-content{padding:22px;flex:1;}
.sb-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:99;}

/* PANELS */
.panel{display:none;animation:pIn .18s ease;}.panel.on{display:block;}
@keyframes pIn{from{opacity:0;transform:translateY(5px);}to{opacity:1;transform:translateY(0);}}

/* PAGE HEADER */
.ph{margin-bottom:20px;}
.ph-title{font-family:var(--font);font-size:19px;font-weight:900;margin-bottom:3px;}
.ph-desc{font-size:13px;color:var(--mut);}
.ph-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px;}

/* QUICK ACTIONS */
.qa-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:9px;margin-bottom:20px;}
.qa{background:var(--s1);border:1px solid var(--bd);border-radius:9px;padding:14px 10px;text-align:center;cursor:pointer;transition:all .2s;}
.qa:hover{border-color:var(--p);transform:translateY(-2px);}
.qa-icon{font-size:24px;margin-bottom:6px;}
.qa-lbl{font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.4px;}

/* TOOLBAR */
.tbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap;}
.search-w{position:relative;}.search-w input{padding-left:32px;min-width:200px;}
.search-w::before{content:'🔍';position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:12px;pointer-events:none;}

/* SETTINGS TABS */
.stabs{display:flex;gap:3px;border-bottom:1px solid var(--bd);margin-bottom:20px;}
.stab{padding:8px 15px;background:none;border:none;color:var(--mut);cursor:pointer;font-family:var(--body);font-size:13px;font-weight:600;border-bottom:2px solid transparent;transition:all .2s;margin-bottom:-1px;}
.stab:hover{color:var(--txt);}.stab.on{color:var(--p);border-bottom-color:var(--p);}
.ssec{display:none;}.ssec.on{display:block;}

/* ACTIVITY */
.act-item{display:flex;gap:11px;padding:11px 0;border-bottom:1px solid var(--bd);align-items:flex-start;}
.act-item:last-child{border:none;}
.act-ico{width:32px;height:32px;background:rgba(255,107,0,.1);border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;}

/* TASK SYSTEM */
.task-card{background:var(--s1);border:1px solid var(--bd);border-radius:9px;padding:15px;margin-bottom:10px;transition:all .2s;cursor:pointer;}
.task-card:hover{border-color:rgba(255,107,0,.3);}
.task-card.priority-high{border-left:3px solid var(--err);}
.task-card.priority-medium{border-left:3px solid var(--warn);}
.task-card.priority-low{border-left:3px solid var(--ok);}
.task-title{font-weight:700;font-size:14px;margin-bottom:4px;}
.task-meta{font-size:12px;color:var(--mut);}
.task-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px;}
.task-status-select{background:var(--s2);border:1px solid var(--bd);color:var(--txt);padding:4px 8px;border-radius:6px;font-size:11px;cursor:pointer;font-family:var(--body);}

/* KANBAN */
.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:start;}
.kc{background:var(--s2);border-radius:10px;padding:14px;}
.kc-head{font-family:var(--font);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;}
.kc-count{background:var(--s3);color:var(--mut);padding:2px 7px;border-radius:20px;font-size:11px;}
@media(max-width:900px){.kanban{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.kanban{grid-template-columns:1fr;}}

/* CLIENT SERVICES */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;}
.svc-card{background:var(--s2);border:2px solid var(--bd);border-radius:10px;padding:14px;text-align:center;cursor:pointer;transition:all .2s;}
.svc-card:hover{border-color:var(--p);}
.svc-card.active{border-color:var(--p);background:rgba(255,107,0,.08);}
.svc-card.active .svc-check{display:block;}
.svc-check{display:none;color:var(--ok);font-size:12px;margin-top:4px;font-weight:700;}
.svc-icon{font-size:26px;margin-bottom:7px;}
.svc-name{font-size:12px;font-weight:700;font-family:var(--font);}

/* PASSWORD VAULT */
.vault-card{background:var(--s2);border:1px solid var(--bd);border-radius:9px;padding:14px;margin-bottom:10px;display:flex;align-items:center;gap:12px;}
.vault-icon{width:38px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;background:var(--s3);flex-shrink:0;}
.vault-info{flex:1;min-width:0;}
.vault-title{font-weight:700;font-size:14px;}
.vault-user{font-size:12px;color:var(--mut);}
.vault-pwd{font-size:12px;font-family:monospace;letter-spacing:2px;color:var(--p);margin-top:2px;}
.vault-copy{background:none;border:1px solid var(--bd);color:var(--mut);padding:5px 10px;border-radius:6px;cursor:pointer;font-size:11px;font-family:var(--body);transition:all .2s;white-space:nowrap;}
.vault-copy:hover{color:var(--p);border-color:var(--p);}

/* PERF */
.perf-header{background:linear-gradient(135deg,#111,#181818);border:1px solid var(--bd);border-radius:12px;padding:20px;margin-bottom:20px;position:relative;overflow:hidden;}
.perf-header::before{content:'';position:absolute;top:-40px;right:-40px;width:160px;height:160px;background:radial-gradient(circle,rgba(255,107,0,.15) 0%,transparent 70%);pointer-events:none;}
.ch-card{background:var(--s1);border:1px solid var(--bd);border-radius:10px;padding:18px;}
.ckpi-g{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.ckpi{background:var(--s2);border-radius:7px;padding:10px 11px;}
.ckpi-v{font-size:17px;font-weight:900;font-family:var(--font);color:var(--p);}
.ckpi-l{font-size:10px;color:var(--mut);text-transform:uppercase;letter-spacing:.4px;font-weight:700;margin-top:2px;}
.chart-box{background:var(--s1);border:1px solid var(--bd);border-radius:10px;padding:18px;}

/* CLIENT SELECTOR */
.csel-bar{background:var(--s2);border:1px solid var(--bd);border-radius:9px;padding:12px 16px;margin-bottom:18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}

/* REG CARDS */
.reg-card{background:var(--s1);border:1px solid var(--bd);border-radius:10px;padding:16px;display:flex;align-items:flex-start;gap:12px;transition:all .2s;margin-bottom:10px;}
.reg-card:hover{border-color:rgba(255,107,0,.3);}

/* MOBILE */
@media(max-width:1024px){
  .sidebar{transform:translateX(-100%);}
  .sidebar.open{transform:translateX(0);box-shadow:20px 0 60px rgba(0,0,0,.6);}
  .portal-main{margin-left:0;}
  .hamburger{display:flex;}
  .sb-bg{display:none;}.sb-bg.show{display:block;}
}
@media(max-width:640px){
  .portal-content{padding:14px;}
  .topbar{padding:0 14px;}
  .stats-g{grid-template-columns:1fr 1fr;}
}
