@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Syne:wght@400;600;700;800&family=DM+Mono:wght@300;400;500&family=Instrument+Sans:wght@400;500;600&display=swap');

:root{
  --font-display:'Space Grotesk',sans-serif;
  --bg:#faf8f5; --surface:#ffffff; --surface2:#f3f1ee; --border:#e8e4de;
  --ink:#111111; --mint:#cdeee0; --peach:#fbe0cf; --lavender:#e3ddf4; --rose:#f6dbe3;
  --mint-d:#1f7a53; --peach-d:#b5591a; --lavender-d:#5b4a9e; --rose-d:#a13e5c;
}
*{box-sizing:border-box;}
body{font-family:'Instrument Sans',sans-serif;background:var(--bg);color:var(--ink);margin:0;font-size:14px;}
h1,h2,h3,.brand{font-family:var(--font-display);}
a{color:inherit;text-decoration:none;}
.staff-id,.mono{font-family:'DM Mono',monospace;font-size:11px;color:#666;}

.layout{display:flex;min-height:100vh;}
.sidebar{width:220px;background:var(--surface);border-right:1px solid var(--border);padding:20px 0;flex-shrink:0;}
.sidebar .brand{padding:0 20px 20px;font-weight:800;font-size:16px;border-bottom:1px solid var(--border);margin-bottom:12px;}
.sidebar a{display:block;padding:10px 20px;font-size:13px;color:#444;}
.sidebar a:hover,.sidebar a.active{background:var(--surface2);color:#000;font-weight:600;}
.sidebar .role-box{margin:16px 20px;padding:10px;background:var(--surface2);border-radius:8px;font-size:12px;}
.main{flex:1;padding:28px 32px;max-width:1200px;}

.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:18px;}
.card-header{padding:14px 18px;border-bottom:1px solid var(--border);font-weight:700;font-family:'Syne',sans-serif;}
.card-body{padding:18px;}

table{width:100%;border-collapse:collapse;font-size:13px;}
th{text-align:left;padding:8px;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:#666;border-bottom:2px solid var(--border);}
td{padding:9px 8px;border-bottom:1px solid var(--border);}

.btn{display:inline-block;padding:9px 16px;border-radius:8px;border:1px solid var(--border);background:var(--surface);cursor:pointer;font-size:13px;font-weight:600;color:var(--ink);}
.btn-primary{background:var(--ink);color:#fff;border-color:var(--ink);}
.btn-ghost{background:transparent;}
.btn-sm{padding:6px 12px;font-size:12px;}
.btn-danger{color:#a12a2a;}
.act-btn{background:none;border:none;cursor:pointer;font-size:14px;padding:4px 6px;}

.fg{margin-bottom:14px;}
.fl{font-size:12px;font-weight:600;display:block;margin-bottom:5px;}
.fi,.fs{width:100%;padding:9px 10px;border:1px solid var(--border);border-radius:8px;font-size:13px;font-family:inherit;background:#fff;}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:12px;}

.badge{display:inline-block;padding:3px 9px;border-radius:99px;font-size:11px;font-weight:600;background:#eee;}
.badge-ee{background:var(--mint);color:var(--mint-d);}
.badge-me{background:var(--lavender);color:var(--lavender-d);}
.badge-ae{background:var(--peach);color:var(--peach-d);}
.badge-be{background:var(--rose);color:var(--rose-d);}
.lvl-ee{background:var(--mint);color:var(--mint-d);}
.lvl-me{background:var(--lavender);color:var(--lavender-d);}
.lvl-ae{background:var(--peach);color:var(--peach-d);}
.lvl-be{background:var(--rose);color:var(--rose-d);}
.badge-pending{background:var(--peach);color:var(--peach-d);}
.badge-inactive{background:var(--surface2);color:#888;}
.badge-active{background:var(--mint);color:var(--mint-d);}
.hidden{display:none !important;}

.flash{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:13px;}
.flash-success{background:var(--mint);color:var(--mint-d);}
.flash-error{background:var(--rose);color:var(--rose-d);}
.flash-info{background:var(--lavender);color:var(--lavender-d);}

.empty-state{text-align:center;padding:40px 20px;color:#888;}
.empty-state .icon{font-size:32px;margin-bottom:8px;}

.btn-lg{padding:13px 26px;font-size:14px;border-radius:10px;}
.btn-block{width:100%;}
.btn-nav{padding:9px 20px;}

/* ============ LANDING PAGE ============ */
.landing{min-height:100vh;display:flex;flex-direction:column;background:var(--bg);}
.landing-nav{border-bottom:1px solid var(--border);position:sticky;top:0;background:rgba(250,248,245,.9);backdrop-filter:blur(8px);z-index:10;}
.landing-nav-inner{max-width:1150px;margin:0 auto;padding:16px 28px;display:flex;align-items:center;justify-content:space-between;}
.landing-brand{font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:.5px;text-transform:uppercase;}
.landing-hero{flex:1;display:flex;align-items:center;gap:48px;max-width:1150px;margin:0 auto;padding:72px 28px 56px;width:100%;}
.landing-hero-content{flex:1.2;min-width:0;}
.landing-badge{display:inline-block;padding:6px 14px;border-radius:99px;background:var(--lavender);color:var(--lavender-d);font-size:12px;font-weight:600;margin-bottom:22px;letter-spacing:.3px;}
.landing-title{font-size:56px;line-height:1.05;margin:0 0 20px;letter-spacing:-1px;font-weight:700;}
.landing-accent{background:linear-gradient(90deg,var(--mint-d),#2fa56e);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.landing-subtitle{font-size:17px;color:#555;line-height:1.6;max-width:520px;margin:0 0 30px;}
.landing-actions{display:flex;gap:14px;flex-wrap:wrap;}

.landing-hero-visual{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;position:relative;}
.landing-card-stack{position:relative;width:100%;max-width:380px;height:340px;}
.landing-float-card{position:absolute;display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px 20px;box-shadow:0 18px 40px rgba(0,0,0,.08);}
.lfc-1{top:0;left:0;right:60px;animation:floaty 6s ease-in-out infinite;}
.lfc-2{top:110px;right:0;left:60px;animation:floaty 6s ease-in-out 2s infinite;}
.lfc-3{top:220px;left:10px;right:30px;animation:floaty 6s ease-in-out 4s infinite;}
.lfc-icon{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.lfc-label{font-size:12px;color:#888;margin-bottom:2px;}
.lfc-value{font-size:22px;font-weight:800;font-family:'Syne',sans-serif;}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

.landing-features{background:var(--surface);border-top:1px solid var(--border);}
.landing-features-grid{max-width:1150px;margin:0 auto;padding:64px 28px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.landing-feature{background:var(--bg);border:1px solid var(--border);border-radius:16px;padding:26px 22px;}
.lf-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:16px;}
.landing-feature h3{font-size:16px;margin:0 0 8px;}
.landing-feature p{font-size:13px;color:#666;line-height:1.55;margin:0;}
.landing-footer{border-top:1px solid var(--border);}
.landing-footer-inner{max-width:1150px;margin:0 auto;padding:24px 28px;display:flex;align-items:center;justify-content:space-between;}

/* ============ LOGIN PAGE ============ */
.login-page{min-height:100vh;background:var(--bg);position:relative;}
.login-back{position:absolute;top:22px;left:26px;z-index:5;font-size:13px;color:#555;font-weight:600;background:var(--surface);border:1px solid var(--border);padding:8px 16px;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.04);}
.login-back:hover{color:#000;border-color:#ccc;}
.login-split{min-height:100vh;display:flex;}
.login-welcome{flex:1;background:linear-gradient(135deg,#1f7a53 0%,#0e3d2a 45%,#0a2b1e 100%);color:#fff;display:flex;align-items:center;justify-content:center;padding:60px 48px;}
.login-welcome-inner{max-width:440px;width:100%;}
.login-welcome-logo{font-family:var(--font-display);font-weight:700;font-size:21px;letter-spacing:.5px;text-transform:uppercase;margin-bottom:40px;color:#cdeee0;}
.login-welcome-title{font-size:40px;line-height:1.12;margin:0 0 18px;letter-spacing:-.5px;font-weight:700;}
.login-welcome-title span{color:#8fd9b6;}
.login-welcome-text{font-size:15px;line-height:1.65;color:rgba(255,255,255,.82);margin:0 0 28px;}
.login-welcome-list{list-style:none;margin:0 0 36px;padding:0;display:flex;flex-direction:column;gap:12px;}
.login-welcome-list li{display:flex;align-items:center;gap:10px;font-size:14px;color:rgba(255,255,255,.92);}
.lwl-check{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:rgba(205,238,224,.18);color:#cdeee0;font-size:12px;flex-shrink:0;}
.login-welcome-stats{display:flex;gap:36px;border-top:1px solid rgba(255,255,255,.18);padding-top:24px;}
.lws-value{font-size:30px;font-weight:700;font-family:var(--font-display);color:#cdeee0;}
.lws-label{font-size:12px;color:rgba(255,255,255,.66);text-transform:uppercase;letter-spacing:.5px;margin-top:2px;}

.login-welcome-admin{background:linear-gradient(135deg,#5b4a9e 0%,#2f2554 45%,#1c1533 100%);}
.lwl-admin{color:#e3ddf4;}
.lwt-admin span{color:#b3a7e8;}

.login-form-side{flex:1;display:flex;align-items:center;justify-content:center;padding:80px 24px;}
.login-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:40px 36px;width:400px;max-width:100%;box-shadow:0 24px 60px rgba(0,0,0,.08);}
.login-card-head{margin-bottom:24px;}
.login-card-brand{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--mint-d);margin-bottom:14px;}
.login-card-head h2{font-size:26px;margin:0 0 6px;letter-spacing:-.5px;}
.login-card-head p{font-size:13px;color:#888;margin:0;}
.login-hint{font-size:12px;color:#888;margin-top:16px;text-align:center;line-height:1.5;}
.login-admin-link{color:var(--mint-d);font-weight:600;}
.login-db-stat{font-size:11px;color:#aaa;margin-top:20px;border-top:1px solid var(--border);padding-top:14px;line-height:1.5;}

@media (max-width:880px){
  .landing-hero{flex-direction:column;padding:48px 24px;}
  .landing-features-grid{grid-template-columns:repeat(2,1fr);padding:48px 24px;}
  .landing-title{font-size:38px;}
  .login-split{flex-direction:column;}
  .login-welcome{padding:70px 28px 50px;}
}
@media (max-width:520px){
  .landing-features-grid{grid-template-columns:1fr;}
  .landing-hero-visual{display:none;}
}

.ps-header{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:22px;padding-bottom:14px;border-bottom:2px solid #111;}
.ps-co{font-size:22px;font-weight:800;font-family:'Syne',sans-serif;}
.ps-table td{padding:7px 4px;font-size:13px;}
.ps-net{background:#111;color:#fff;padding:12px 16px;border-radius:8px;display:flex;justify-content:space-between;align-items:center;}

@media print{ .sidebar,.no-print{display:none !important;} .main{padding:0;max-width:none;} }
.tree-node{border-left:2px solid var(--border,#e3e3e8);padding-left:14px;margin-top:10px}
.tree-box{background:var(--surface2,#f0f0f5);border-radius:8px;padding:10px}
