/* ── DeptTools Shared Base ─────────────────────────────────────────
   Import this in every plugin, then override --accent/--accent-dim
   in the plugin's own CSS :root block.
   ───────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#0f1117;--bg2:#161922;--bg3:#1d2230;
  --border:#252d40;--border2:#2f3a52;
  --accent:#f59e0b;--accent-dim:rgba(245,158,11,0.12);
  --amber:#f59e0b;--cyan:#06b6d4;--green:#10b981;--red:#ef4444;--purple:#8b5cf6;--blue:#3b82f6;--orange:#f97316;
  --text:#e2e8f0;--text2:#94a3b8;--text3:#64748b;
  --mono:'IBM Plex Mono',monospace;--sans:'DM Sans',sans-serif;
  --r:6px;
}
body.light{
  --bg:#f0f2f7;--bg2:#ffffff;--bg3:#e8eaf0;
  --border:#d1d5e0;--border2:#b8bdd0;
  --accent:#d97706;--accent-dim:rgba(217,119,6,0.1);
  --amber:#d97706;--cyan:#0891b2;--green:#059669;--red:#dc2626;--purple:#7c3aed;--blue:#2563eb;--orange:#ea580c;
  --text:#0f172a;--text2:#334155;--text3:#64748b;
}
html{font-size:14px}
body{font-family:var(--sans);background:var(--bg);color:var(--text);min-height:100vh;display:flex;flex-direction:column}
body:not(.light)::after{content:'';position:fixed;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,0.025) 2px,rgba(0,0,0,0.025) 4px);pointer-events:none;z-index:9999}
body.light::after{display:none}

/* ── TOPBAR ────────────────────────────────────────────────────── */
.topbar{background:var(--bg2);border-bottom:1px solid var(--border);padding:0 24px;height:52px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;position:sticky;top:0;z-index:100}
.topbar-left{display:flex;align-items:center;gap:12px}
.topbar-right{display:flex;align-items:center;gap:12px}
.brand-logo{height:34px;width:auto;flex-shrink:0;object-fit:contain}
body:not(.light) .brand-logo{filter:invert(1);mix-blend-mode:screen}
.brand-name{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.08em;color:var(--accent)}

/* ── USER BADGE / LOGOUT ───────────────────────────────────────── */
.user-badge{font-family:var(--mono);font-size:11px;color:var(--text2);display:flex;align-items:center;gap:6px}
.user-badge::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--green);animation:dt-pulse 2s infinite}
@keyframes dt-pulse{0%,100%{opacity:1}50%{opacity:.4}}
.logout-btn{font-family:var(--mono);font-size:10px;color:var(--text3);text-decoration:none;padding:3px 8px;border:1px solid var(--border);border-radius:3px}
.logout-btn:hover{color:var(--text);border-color:var(--border2)}

/* ── THEME TOGGLE ──────────────────────────────────────────────── */
.theme-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none}
.toggle-track{width:32px;height:18px;background:var(--bg3);border:1px solid var(--border);border-radius:9px;position:relative;transition:.2s}
.toggle-thumb{width:12px;height:12px;background:var(--accent);border-radius:50%;position:absolute;top:2px;left:2px;transition:.2s}
body.light .toggle-thumb{left:16px}
#theme-lbl{font-family:var(--mono);font-size:9px;color:var(--text3);letter-spacing:.1em}

/* ── MODE SWITCHER ─────────────────────────────────────────────── */
.mode-switcher{display:flex;background:var(--bg3);border:1px solid var(--border);border-radius:20px;overflow:hidden;margin-left:8px}
.mode-btn{background:none;border:none;color:var(--text3);font-family:var(--mono);font-size:11px;padding:5px 14px;cursor:pointer;letter-spacing:.06em;transition:all .2s}
.mode-btn.active{background:var(--accent);color:#fff}

/* ── NAV TABS ──────────────────────────────────────────────────── */
.nav-tabs{display:flex;gap:2px;margin-left:8px}
.nav-tab{background:none;border:none;color:var(--text3);font-family:var(--mono);font-size:11.5px;padding:6px 12px;cursor:pointer;border-radius:4px;letter-spacing:.04em;transition:all .15s}
.nav-tab:hover{color:var(--text);background:var(--bg3)}
.nav-tab.active{color:var(--accent);background:var(--accent-dim)}

/* ── FORM FIELDS ───────────────────────────────────────────────── */
.field label{display:block;font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:.08em;margin-bottom:4px}
.field input,.field select,.field textarea{width:100%;font-family:var(--sans);font-size:13px;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--r);padding:8px 10px;transition:border-color .15s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent)}
.flbl{font-family:var(--mono);font-size:10px;color:var(--text3);margin-bottom:4px;letter-spacing:.04em}
.txt-inp,.num-inp{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:7px 10px;border-radius:4px;font-family:var(--mono);font-size:12px;outline:none;transition:border-color .15s}
.txt-inp{font-family:var(--sans);font-size:13px}
.txt-inp:focus,.num-inp:focus{border-color:var(--accent)}
.txt-area{resize:vertical;min-height:52px;line-height:1.5}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}

/* ── BUTTONS ───────────────────────────────────────────────────── */
.btn{font-family:var(--mono);font-size:11px;font-weight:600;border:none;border-radius:var(--r);padding:7px 14px;cursor:pointer;transition:all .15s;letter-spacing:.04em}
.btn-accent,.btn-primary{background:var(--accent);color:#000}
.btn-accent:hover,.btn-primary:hover{opacity:.88}
.btn-secondary{background:var(--bg3);color:var(--text2);border:1px solid var(--border)}
.btn-secondary:hover{border-color:var(--border2);color:var(--text)}
.btn-success{background:var(--green);color:#000}
.btn-success:hover{opacity:.88}
.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text3)}
.btn-ghost:hover{color:var(--text);border-color:var(--text3)}
.btn-danger{background:transparent;border:1px solid var(--red);color:var(--red)}
.btn-danger:hover{background:rgba(239,68,68,.08)}
.back-btn{font-family:var(--mono);font-size:12px;background:none;border:1px solid var(--border);color:var(--text3);padding:5px 12px;border-radius:4px;cursor:pointer;transition:all .15s}
.back-btn:hover{color:var(--text);border-color:var(--text2)}

/* ── MODAL ─────────────────────────────────────────────────────── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;z-index:200;padding:24px}
.modal-overlay.show,.modal-overlay.open,.modal-overlay.active{display:flex}
.modal{background:var(--bg2);border:1px solid var(--border);border-radius:8px;width:100%;overflow:hidden;display:flex;flex-direction:column;max-height:90vh}
.modal-hdr{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}
.modal-hdr span{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--accent);letter-spacing:.06em}
.modal-close{background:none;border:none;color:var(--text3);font-size:18px;cursor:pointer;line-height:1}
.modal-close:hover{color:var(--text)}
.modal-body{padding:16px 18px;overflow-y:auto;flex:1}
.modal-footer{padding:12px 18px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}

/* ── TOAST ─────────────────────────────────────────────────────── */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--bg2);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:12px;padding:10px 20px;border-radius:var(--r);z-index:9000;opacity:0;transition:all .25s;pointer-events:none}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1}
.toast.success{border-color:var(--green);color:var(--green)}
.toast.error{border-color:var(--red);color:var(--red)}

/* ── SECTION LABELS ────────────────────────────────────────────── */
.section-lbl{font-family:var(--mono);font-size:10px;font-weight:600;color:var(--accent);letter-spacing:.1em;text-transform:uppercase}

/* ── LOADING SPINNER ───────────────────────────────────────────── */
.loading-spinner{display:flex;justify-content:center;align-items:center;padding:60px}
.loading-spinner::after{content:'';width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:dt-spin .7s linear infinite}
@keyframes dt-spin{to{transform:rotate(360deg)}}

/* ── MEMBERS MODAL ─────────────────────────────────────────────── */
.member-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}
.member-row:last-child{border-bottom:none}
.member-email{font-family:var(--mono);font-size:12px;color:var(--text);flex:1}
.member-role{font-family:var(--mono);font-size:10px;color:var(--text3);text-transform:uppercase}
.member-remove{background:none;border:none;color:var(--red);cursor:pointer;font-size:14px;opacity:.6}
.member-remove:hover{opacity:1}

/* ── HAMBURGER + MOBILE NAV ────────────────────────────────────── */
.hamburger{display:none;flex-direction:column;justify-content:center;gap:4px;background:none;border:none;cursor:pointer;padding:8px;min-width:44px;min-height:44px}
.hamburger span{display:block;width:20px;height:2px;background:var(--text2);border-radius:1px;transition:all .25s ease}
.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(4px,4px)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(4px,-4px)}

.mobile-nav-backdrop{display:none;position:fixed;inset:0;top:52px;background:rgba(0,0,0,.45);z-index:150;opacity:0;transition:opacity .25s}
.mobile-nav-backdrop.open{display:block;opacity:1}
.mobile-nav{position:fixed;top:52px;left:0;width:280px;height:calc(100vh - 52px);background:var(--bg2);border-right:1px solid var(--border);z-index:160;transform:translateX(-100%);transition:transform .25s ease;overflow-y:auto;display:none}
.mobile-nav.open{transform:translateX(0)}
.mobile-nav-section{padding:16px 20px;border-bottom:1px solid var(--border)}
.mobile-nav-label{font-family:var(--mono);font-size:9px;color:var(--text3);letter-spacing:.12em;margin-bottom:10px}
.mobile-nav-item{display:flex;align-items:center;width:100%;text-align:left;background:none;border:none;font-family:var(--mono);font-size:12px;color:var(--text2);padding:10px 12px;border-radius:var(--r);cursor:pointer;transition:all .15s;min-height:44px}
.mobile-nav-item:hover,.mobile-nav-item.active{color:var(--accent);background:var(--accent-dim)}

/* ── RESPONSIVE ────────────────────────────────────────────────── */
@media(max-width:768px){
  .hamburger{display:flex}
  .mobile-nav{display:block}
  .mode-switcher,.nav-tabs{display:none}
  .topbar-right .user-badge,.topbar-right .logout-btn{display:none}
  .topbar{padding:0 12px;gap:8px}
  .brand-name{font-size:11px}
  .modal{max-width:calc(100vw - 32px);max-height:90vh}
  .modal-overlay{padding:16px}
  .btn,.back-btn,.mode-btn,.nav-tab{min-height:44px}
}
@media(max-width:600px){
  .topbar{padding:0 10px;gap:4px}
  .form-row,.form-row-3{grid-template-columns:1fr}
}
@media(max-width:400px){
  .brand-name{display:none}
}

/* ── ANIMATION ─────────────────────────────────────────────────── */
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.anim{animation:fadeUp .22s ease forwards}
