*,*::before,*::after{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;}
a{color:var(--accent-deep);text-decoration:none;} a:hover{text-decoration:underline;}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;}
.wrap{max-width:1180px;margin:0 auto;padding:0 var(--sp-8);}
.topbar{position:sticky;top:0;z-index:40;background:var(--surface);border-bottom:1px solid var(--border);}
.topbar-in{height:58px;display:flex;align-items:center;gap:var(--sp-9);}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.14em;font-size:15px;color:var(--text);text-transform:uppercase;}
.brand .mk{width:30px;height:30px;border-radius:9px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:14px;}
.nav{display:flex;gap:var(--sp-7);}
.nav a{color:var(--text-2);font-weight:600;font-size:13px;padding:4px 0;}
.nav a.active{color:var(--accent-deep);}
.spacer{margin-left:auto;}
.who{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-2);}
.avatar{width:30px;height:30px;border-radius:999px;background:var(--accent-soft);color:var(--accent-deep);display:grid;place-items:center;font-weight:700;font-family:var(--mono);font-size:12px;}
.role-chip{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:3px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent-deep);}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);}
.btn{height:42px;padding:0 18px;border:none;border-radius:var(--r-sm);background:var(--accent);color:#fff;font-weight:700;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;}
.btn:hover{background:var(--accent-deep);}
.input{width:100%;height:42px;border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:0 14px;font-size:14px;font-family:var(--font);color:var(--text);background:var(--surface);}
.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}
.label{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:700;}
.alert{padding:10px 14px;border-radius:var(--r-sm);font-size:13px;background:var(--danger-soft);color:var(--danger);border:1px solid rgba(204,91,87,.3);margin-bottom:var(--sp-6);}
.alert.ok{background:var(--success-soft);color:#2f7a52;border-color:rgba(63,154,106,.3);}
.hero h1{font-size:30px;font-weight:800;margin:0 0 6px;letter-spacing:-.01em;}
.hero p{color:var(--text-2);margin:0;}
.section{padding:var(--sp-9) 0;}

/* ---------- shared page bits ---------- */
.page-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-6);margin:0 0 var(--sp-7);}
.page-head h1{font-size:26px;font-weight:800;margin:0;letter-spacing:-.01em;}
.back{display:inline-block;color:var(--muted);font-weight:600;font-size:13px;margin-bottom:var(--sp-6);}
.muted{color:var(--text-2);}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5);}
@media(max-width:560px){.row2{grid-template-columns:1fr;}}
.empty{padding:var(--sp-9);text-align:center;color:var(--muted);font-size:13px;border:1px dashed var(--border-strong);border-radius:var(--r-md);}
.acc-badge{font-family:var(--mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:var(--r-pill);white-space:nowrap;}
.acc-all{background:var(--success-soft);color:#2f7a52;}
.acc-restricted{background:var(--accent-soft);color:var(--accent-deep);}
.acc-private{background:var(--warning-soft);color:#9a7320;}

/* ---------- bases grid ---------- */
.base-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-6);}
.base-card{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-7);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);color:inherit;transition:transform var(--dur,.18s) ease,box-shadow .18s ease;}
.base-card:hover{transform:translateY(-2px);box-shadow:var(--sh-md);text-decoration:none;}
.bc-top{display:flex;align-items:center;justify-content:space-between;}
.bc-type{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-deep);}
.base-card.t-secret .bc-type{color:var(--accent-deep);}
.base-card.t-knowledge .bc-type{color:#2f7a52;}
.base-card.t-custom .bc-type{color:#9a7320;}
.base-card h3{font-size:18px;font-weight:700;margin:2px 0 0;}
.bc-desc{color:var(--text-2);font-size:13px;flex:1;min-height:34px;}
.bc-foot{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--muted);}
.bc-open{color:var(--accent-deep);font-weight:700;}
.newbase-form{display:flex;flex-direction:column;gap:var(--sp-5);padding:var(--sp-7);margin-bottom:var(--sp-7);}

/* ---------- base detail / records ---------- */
.rec-list{display:flex;flex-direction:column;gap:var(--sp-5);margin:var(--sp-6) 0 var(--sp-8);}
.rec{display:flex;align-items:center;gap:var(--sp-6);padding:var(--sp-5) var(--sp-6);}
.rec-main{flex:1;min-width:0;}
.rec-name{font-weight:700;}
.rec-login{font-size:12px;color:var(--muted);margin-top:1px;}
.rec-note{font-size:12px;color:var(--text-2);margin-top:1px;}
.rec-secret{min-width:120px;text-align:right;}
.rec-secret [data-secret]{font-size:13px;letter-spacing:.06em;color:var(--accent-deep);background:var(--accent-soft);border-radius:var(--r-sm);padding:5px 10px;}
.reveal-btn{border:1px solid var(--border-strong);background:var(--surface);color:var(--accent-deep);font-size:13px;font-weight:600;padding:7px 13px;border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;}
.reveal-btn:hover{border-color:var(--accent);}
.rec-del{margin:0;}
.icon-x{border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:15px;line-height:1;padding:6px;border-radius:var(--r-sm);}
.icon-x:hover{color:var(--danger);background:var(--danger-soft);}
.add-secret{display:flex;flex-direction:column;gap:var(--sp-5);padding:var(--sp-7);}
.add-secret h3{font-size:16px;font-weight:700;margin:0 0 var(--sp-2);}
.denied{padding:var(--sp-10);text-align:center;}
.denied h2{font-size:20px;font-weight:800;margin:0 0 var(--sp-3);}

/* ---------- resources ---------- */
.sum-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--sp-5);margin-bottom:var(--sp-7);}
.sum-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--sh-sm);padding:var(--sp-6);}
.sum-card .sc-l{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:6px;}
.sum-card .sc-v{font-size:24px;font-weight:800;color:var(--text);line-height:1;}
.sum-card.warn .sc-v{color:#9a7320;}
.sum-card.danger .sc-v{color:var(--danger);}
.sum-card.money .sc-v{color:var(--accent-deep);}
.newres-form{display:flex;flex-direction:column;gap:var(--sp-5);padding:var(--sp-7);margin-bottom:var(--sp-7);}
.newres-form .label{display:flex;flex-direction:column;gap:4px;margin:0;}
.res-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-6);}
.res-card{padding:var(--sp-7);display:flex;flex-direction:column;gap:var(--sp-5);}
.rc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);}
.rc-name{font-weight:700;font-size:15px;}
.rc-prov{font-size:12px;color:var(--muted);margin-top:1px;}
.st-pill{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:var(--r-pill);white-space:nowrap;}
.st-active{background:var(--success-soft);color:#2f7a52;}
.st-suspended{background:var(--warning-soft);color:#9a7320;}
.st-closed{background:var(--inset);color:var(--muted);}
.rc-bar{height:6px;border-radius:var(--r-pill);background:var(--inset);overflow:hidden;}
.rc-fill{height:100%;border-radius:var(--r-pill);}
.rc-fill.u-ok{background:var(--success);}
.rc-fill.u-soon{background:var(--warning);}
.rc-fill.u-urgent{background:var(--danger);}
.rc-fill.u-expired{background:var(--disabled);}
.rc-foot{display:flex;align-items:center;justify-content:space-between;font-size:13px;}
.rc-foot .days{font-weight:700;}
.days.u-ok{color:var(--success);} .days.u-soon{color:#9a7320;} .days.u-urgent{color:var(--danger);} .days.u-expired{color:var(--muted);}
.rc-foot .enddate{color:var(--muted);font-size:12px;}
.rc-meta{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;border-top:1px solid var(--border);padding-top:var(--sp-5);}
.chip{font-size:11px;font-weight:600;color:var(--accent-deep);background:var(--accent-soft);padding:3px 9px;border-radius:var(--r-pill);}
.rc-price{margin-left:auto;color:var(--accent-deep);font-weight:600;font-size:13px;}
.rc-del{margin:0;}

/* ---------- home dashboard ---------- */
.dept-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-6);margin-bottom:var(--sp-8);}
.dept-card{padding:var(--sp-7);display:flex;flex-direction:column;gap:6px;color:inherit;transition:transform .18s ease,box-shadow .18s ease;border-top:3px solid var(--accent);}
.dept-card.t-econ{border-top-color:var(--warning);}
.dept-card.t-prod{border-top-color:var(--accent);}
.dept-card.t-inbox{border-top-color:var(--muted);}
.dept-card:hover{transform:translateY(-2px);box-shadow:var(--sh-md);text-decoration:none;}
.dc-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;}
.dept-card h3{font-size:19px;font-weight:800;margin:0;}
.dc-desc{color:var(--text-2);font-size:13px;flex:1;min-height:34px;}
.dc-stats{display:flex;align-items:center;gap:var(--sp-6);font-size:13px;color:var(--text-2);border-top:1px solid var(--border);padding-top:var(--sp-5);}
.dc-stats b{color:var(--text);font-size:15px;}
.dc-open{margin-left:auto;color:var(--accent-deep);font-weight:700;}
.grid-2{display:grid;grid-template-columns:380px 1fr;gap:var(--sp-7);align-items:start;}
@media(max-width:820px){.grid-2{grid-template-columns:1fr;}}
.quick-task,.recent{padding:var(--sp-7);}
.quick-task{display:flex;flex-direction:column;gap:var(--sp-5);}
.quick-task h3,.recent h3{font-size:16px;font-weight:700;margin:0 0 var(--sp-2);}
.task-feed{display:flex;flex-direction:column;}
.task-row{display:flex;align-items:center;gap:var(--sp-5);padding:var(--sp-5) 0;border-bottom:1px solid var(--border);}
.task-row:last-child{border-bottom:none;}
.task-row .dot{width:9px;height:9px;border-radius:999px;flex:none;}
.dot-econ{background:var(--warning);} .dot-prod{background:var(--accent);} .dot-inbox{background:var(--muted);}
.tr-main{flex:1;min-width:0;}
.tr-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tr-meta{font-size:12px;color:var(--muted);margin-top:1px;}
.status-pill{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:var(--r-pill);white-space:nowrap;}
.status-pill.s-todo{background:var(--inset);color:var(--text-2);}
.status-pill.s-in_progress{background:var(--accent-soft);color:var(--accent-deep);}
.status-pill.s-done{background:var(--success-soft);color:#2f7a52;}

/* ---------- department board ---------- */
.res-filters{display:flex;gap:var(--sp-4);margin:var(--sp-6) 0;flex-wrap:wrap;}
.filter-chip{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);font-size:13px;font-weight:600;padding:6px 13px;border-radius:var(--r-pill);}
.filter-chip.on{background:var(--accent);border-color:var(--accent);color:#fff;}
.filter-chip:hover{text-decoration:none;border-color:var(--accent);}
.task-list2{display:flex;flex-direction:column;gap:var(--sp-5);}
.task-card{display:flex;align-items:center;gap:var(--sp-6);padding:var(--sp-5) var(--sp-6);flex-wrap:wrap;}
.tc-main{flex:1;min-width:160px;}
.tc-title{font-weight:600;}
.tc-meta{font-size:12px;color:var(--muted);margin-top:1px;}
.tc-status{display:inline-flex;gap:2px;background:var(--inset);border-radius:var(--r-pill);padding:2px;margin:0;}
.tc-status .seg{border:none;background:transparent;font-size:12px;font-weight:600;padding:5px 11px;border-radius:var(--r-pill);color:var(--text-2);cursor:pointer;}
.tc-status .seg.on{background:var(--surface);color:var(--accent-deep);box-shadow:var(--sh-sm);}
.tc-del{margin:0;}

/* ---------- employees ---------- */
.emp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-6);}
.emp-card{padding:var(--sp-7);display:flex;flex-direction:column;gap:var(--sp-5);}
.emp-head{display:flex;align-items:center;gap:var(--sp-5);}
.emp-av{width:42px;height:42px;border-radius:999px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700;font-size:17px;flex:none;}
.emp-id{flex:1;min-width:0;}
.emp-name{font-weight:700;font-size:15px;}
.emp-role{font-size:12px;color:var(--muted);text-transform:capitalize;}
.emp-rate{font-size:18px;font-weight:800;color:var(--accent-deep);}
.emp-bar{height:6px;border-radius:var(--r-pill);background:var(--inset);overflow:hidden;}
.emp-bar .eb{height:100%;background:var(--success);border-radius:var(--r-pill);}
.emp-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4);border-top:1px solid var(--border);padding-top:var(--sp-5);}
.emp-stats > div{display:flex;flex-direction:column;align-items:center;gap:2px;}
.emp-stats b{font-size:17px;}
.emp-stats span{font-size:11px;color:var(--muted);}

/* ---------- admin users + profile ---------- */
.who-link{display:inline-flex;align-items:center;gap:8px;color:var(--text-2);font-weight:600;}
.who-link:hover{text-decoration:none;color:var(--accent-deep);}
.newuser-form{display:flex;flex-direction:column;gap:var(--sp-5);padding:var(--sp-7);margin-bottom:var(--sp-7);}
.user-list{display:flex;flex-direction:column;gap:var(--sp-5);}
.user-row{display:flex;align-items:center;gap:var(--sp-5);padding:var(--sp-5) var(--sp-6);flex-wrap:wrap;}
.user-row.inactive{opacity:.6;}
.ur-main{flex:1;min-width:160px;}
.ur-name{font-weight:700;}
.ur-email{font-size:12px;color:var(--muted);margin-top:1px;}
.ur-role{display:inline-flex;gap:var(--sp-4);align-items:center;margin:0;}
.ur-active{margin:0;}
.sel-sm{height:36px;width:auto;min-width:130px;padding:0 10px;font-size:13px;}
.profile-card{padding:var(--sp-7);margin-bottom:var(--sp-6);}
.change-pw{display:flex;flex-direction:column;gap:var(--sp-5);padding:var(--sp-7);max-width:420px;}
.change-pw h3{font-size:16px;font-weight:700;margin:0 0 var(--sp-2);}
