/* ═══════════════════════════════════════════════════════
   DESIGN TOKENS
═══════════════════════════════════════════════════════ */
:root {
  --g0:#0d1f18; --g1:#153125; --g2:#1e5c3a; --g3:#2a7a52;
  --g4:#4aab7c; --g5:#6fc49a; --g6:#9edcb8; --g7:#c3edda;
  --g8:#e6f8ef; --g9:#f3fcf7;
  --sage:#8EBC9F; --sage-l:#d4edde; --sage-d:#4a8060;
  --mint:#A3E4D7; --mint-d:#2a7a6e;
  --gold:#c9a84c; --gold-l:#f5e9c8; --gold-d:#9a7830;
  --white:#fff; --off:#f7faf8;
  --gray1:#1c2926; --gray2:#374843; --gray3:#5a6e68;
  --gray4:#8fa8a0; --gray5:#c4d4cf; --gray6:#e8efed;
  --red:#e03131; --red-l:#fff0f0;
  --blue:#1971c2; --blue-l:#e7f5ff;
  --amber:#e67700; --amber-l:#fff9db;
  --teal:#0c8599; --teal-l:#e3fafc;
  --sidebar-w:252px; --topbar-h:62px;
  --radius:14px; --radius-sm:9px; --radius-xs:6px;
  --shadow:0 2px 12px rgba(0,0,0,.07);
  --shadow-md:0 6px 24px rgba(0,0,0,.10);
  --shadow-lg:0 16px 56px rgba(0,0,0,.16);
  --font-display:'Manrope',sans-serif;
  --font-body:'Manrope',sans-serif;
  --transition:.18s cubic-bezier(.4,0,.2,1);
  --bg-body:#f7faf8;
  --bg-card:#fff;
  --bg-sidebar:#fff;
  --bg-topbar:#0d1f18;
  --text-primary:#1c2926;
  --text-secondary:#5a6e68;
  --border-color:#e8efed;
  --heading-color:var(--g2);
}
body.dark-mode {
  --bg-body:#111b17; --bg-card:#1a2820; --bg-sidebar:#141f1a;
  --bg-topbar:#0b1510; --text-primary:#e4f5ec; --text-secondary:#8eb8a4;
  --border-color:#243328; --off:#141f1a; --gray1:#e4f5ec; --gray2:#c3ddd0;
  --gray3:#8eb8a4; --gray4:#5d8272; --gray5:#3a5a4a; --gray6:#243328;
  --white:#1a2820; --g8:#1e3028; --g9:#172218;
  --heading-color:#f5fbf8;
  --sage-d:#bfe6cf;
  --g3:#cfeede;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--bg-body);color:var(--text-primary);overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background .3s,color .3s}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--gray5);border-radius:99px}
input,select,textarea,button{font-family:inherit}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
ul,ol{list-style:none}

/* WELCOME SCREEN */
#login-screen{position:fixed;inset:0;z-index:2000;background:var(--g0);display:flex;align-items:center;justify-content:center;overflow:hidden}
.login-bg{position:absolute;inset:0;background-image:url('https://drive.google.com/thumbnail?id=1AGIcLtkhDlCN6Q9_IVFk_xI2ytP-LAhA&sz=w1920');background-size:cover;background-position:center}
.login-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(11,31,19,.84) 0%,rgba(19,51,32,.77) 50%,rgba(11,31,19,.90) 100%)}
.login-grid{display:none}
.login-card{position:relative;z-index:1;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:20px;padding:40px 44px;width:420px;max-width:95vw;box-shadow:0 20px 60px rgba(0,0,0,.25);animation:loginDrop .6s cubic-bezier(.34,1.56,.64,1) both}
@keyframes loginDrop{from{opacity:0;transform:translateY(-32px) scale(.96)}to{opacity:1;transform:none}}
.login-seals{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:14px}
.login-seal-slot{width:56px;height:56px;display:flex;align-items:center;justify-content:center;position:relative}
.login-seal-slot img{border-radius:10px;border:2px solid rgba(201,168,76,.35);box-shadow:0 4px 16px rgba(0,0,0,.4);width:56px;height:56px;object-fit:contain}
.seal-fallback{display:none;width:56px;height:56px;border-radius:10px;background:var(--g8);color:var(--g2);border:2px solid var(--g7);align-items:center;justify-content:center;font-weight:700;font-size:16px}
.seal-blank{width:56px;height:56px;border-radius:10px;background:#fff;border:2px solid rgba(201,168,76,.35);box-shadow:0 4px 16px rgba(0,0,0,.4)}
.login-seal-slot img[src=""]{display:none}
.login-seal-slot img[src=""] + .seal-fallback{display:flex}
.login-title{font-family:var(--font-display);font-size:20px;color:#133320;font-weight:700;text-align:center;line-height:1.15}
.login-name{font-size:13px;color:#5a6e68;margin-top:4px;font-weight:400;text-align:center}
.login-tagline{font-size:12px;color:#8fa8a0;margin-top:3px;font-style:italic;text-align:center}
.login-divider{height:1px;background:#e8efed;margin:18px 0}
.auth-mode-tabs{display:flex;gap:0;background:#f3fcf7;border-radius:10px;padding:4px;margin-bottom:18px;border:1px solid #e6f8ef}
.auth-tab{flex:1;padding:8px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:none;background:none;color:#5a6e68;transition:all .18s}
.auth-tab.active{background:#fff;color:#1e5c3a;box-shadow:0 1px 6px rgba(0,0,0,.08)}
.l-field{margin-bottom:13px}
.l-field label{display:block;font-size:11px;font-weight:700;color:#5a6e68;text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px}
.l-input-wrap{position:relative}
.l-input-wrap i{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#8fa8a0;font-size:13px;pointer-events:none}
.l-field input{width:100%;padding:10px 13px 10px 38px;background:#fff;border:1.5px solid #c4d4cf;border-radius:9px;color:#1c2926;font-size:14px;transition:border-color .18s,box-shadow .18s}
.l-field input::placeholder{color:#c4d4cf}
.l-field input:focus{outline:none;border-color:var(--g4);box-shadow:0 0 0 3px rgba(74,171,124,.12)}
.l-btn{width:100%;padding:13px;margin-top:6px;background:#1e5c3a;border:none;border-radius:10px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .18s;display:flex;align-items:center;justify-content:center;gap:8px}
.l-btn:hover:not(:disabled){background:#2a7a52;transform:translateY(-1px)}
.l-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.l-err{color:var(--red);font-size:13px;margin-bottom:12px;display:none;padding:10px;background:var(--red-l);border-radius:9px;border:1px solid rgba(224,49,49,.2);align-items:center;gap:8px}
.l-success{color:#1e5c3a;font-size:13px;margin-bottom:12px;display:none;padding:10px;background:#e6f8ef;border-radius:9px;border:1px solid #c3edda;align-items:center;gap:8px}
.auth-toggle{text-align:center;margin-top:14px;font-size:13px;color:#8fa8a0}
.auth-toggle a{color:#2a7a52;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.auth-toggle a:hover{color:#1e5c3a}
.l-footer{text-align:center;font-size:11px;color:#8fa8a0;margin-top:14px;line-height:1.7}
.forgot-link{text-align:right;margin-top:8px;font-size:12px}
.forgot-link a{color:#2a7a52;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* WELCOME SCREEN — new */
.welcome-card{position:relative;z-index:1;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:20px;padding:44px 44px 36px;width:440px;max-width:95vw;box-shadow:0 20px 60px rgba(0,0,0,.25);animation:loginDrop .6s cubic-bezier(.34,1.56,.64,1) both;text-align:center}
.welcome-enter-btn{width:100%;padding:14px;margin-top:18px;background:#1e5c3a;border:none;border-radius:10px;color:#fff;font-size:15px;font-weight:700;cursor:pointer;transition:all .18s;display:flex;align-items:center;justify-content:center;gap:8px}
.welcome-enter-btn:hover{background:#2a7a52;transform:translateY(-1px)}
.welcome-admin-link{margin-top:16px;font-size:12.5px;color:#8fa8a0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;display:inline-flex;align-items:center;gap:6px}
.welcome-admin-link:hover{color:#2a7a52}
.admin-login-box{display:none;text-align:left;margin-top:18px;padding-top:18px;border-top:1px solid #e8efed}
.admin-role-tabs{display:flex;gap:0;background:#f3fcf7;border-radius:10px;padding:4px;margin-bottom:16px;border:1px solid #e6f8ef}
.admin-role-tab{flex:1;padding:8px;border-radius:8px;font-size:12.5px;font-weight:600;cursor:pointer;border:none;background:none;color:#5a6e68;transition:all .18s}
.admin-role-tab.active{background:#fff;color:#1e5c3a;box-shadow:0 1px 6px rgba(0,0,0,.08)}

/* SPINNER */
.spinner{display:inline-block;width:15px;height:15px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* APP SHELL */
#app{display:none}

/* TOPBAR */
.topbar{position:fixed;top:0;left:0;right:0;height:var(--topbar-h);background:var(--bg-topbar);border-bottom:1px solid rgba(255,255,255,.06);display:flex;align-items:center;padding:0 20px 0 0;z-index:200;box-shadow:0 2px 24px rgba(0,0,0,.3)}
.hamburger-btn{display:none;width:40px;height:40px;border-radius:9px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);align-items:center;justify-content:center;color:#fff;font-size:17px;cursor:pointer;flex-shrink:0;margin-left:12px}
.hamburger-btn:hover{background:rgba(255,255,255,.12)}
.topbar-brand{display:flex;align-items:center;gap:16x;width:auto;padding:0 18px;border-right:1px solid rgba(255,255,255,.06);height:100%;flex-shrink:0}
.brand-seals{display:flex;align-items:center;gap:4px;flex-shrink:0}
.brand-seals img{width:28px;height:28px;object-fit:contain;border-radius:5px}
.brand-icon-fallback{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--sage),var(--sage-d));display:flex;align-items:center;justify-content:center;border:1px solid rgba(201,168,76,.3);flex-shrink:0}
.brand-icon-fallback i{color:var(--gold);font-size:13px}
.brand-icon-blank{width:28px;height:28px;border-radius:6px;background:#fff;border:1px solid rgba(201,168,76,.3);flex-shrink:0}
.brand-text{margin-left:20px;min-width:0}
.brand-text .b-name{font-family:var(--font-display);font-size:13px;color:#fff;font-weight:600;line-height:1.25;white-space:normal;overflow:visible}
.brand-text .b-sub{font-size:10px;color:rgba(255,255,255,.35);margin-top:2px;font-weight:300;white-space:normal}
.topbar-spacer{flex:1}
.tb-actions{display:flex;align-items:center;gap:10px}
/* NOTIFICATION BELL */
.tb-notif{position:relative;width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--transition);color:rgba(255,255,255,.6);font-size:15px}
.tb-notif i{transition:transform .2s}
.tb-notif:hover{background:rgba(255,255,255,.12);color:#fff}
.tb-notif:hover i{animation:bellRing .5s ease}
@keyframes bellRing{0%,100%{transform:rotate(0)}20%{transform:rotate(-14deg)}40%{transform:rotate(11deg)}60%{transform:rotate(-7deg)}80%{transform:rotate(4deg)}}
.notif-dot{position:absolute;top:6px;right:6px;width:9px;height:9px;border-radius:50%;background:#f03e3e;border:2px solid var(--bg-topbar);display:none;animation:notifPulse 2s infinite}
@keyframes notifPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.2)}}
/* Notification dropdown */
.notif-dropdown{position:absolute;top:calc(var(--topbar-h) + 8px);right:60px;width:340px;max-width:95vw;background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;box-shadow:var(--shadow-lg);z-index:500;display:none;overflow:hidden;transform-origin:top right}
.notif-dropdown.open{display:block;animation:dropIn .22s cubic-bezier(.34,1.56,.64,1) both}
@keyframes dropIn{from{opacity:0;transform:scale(.92) translateY(-6px)}to{opacity:1;transform:none}}
.notif-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid var(--border-color)}
.notif-header span{font-weight:700;font-size:14px;color:var(--heading-color)}
.notif-mark-all{font-size:12px;color:var(--sage-d);cursor:pointer;font-weight:600;background:none;border:none;padding:0}
.notif-mark-all:hover{text-decoration:underline}
.notif-list{max-height:360px;overflow-y:auto}
.notif-item{display:flex;align-items:flex-start;gap:12px;padding:13px 16px;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background var(--transition)}
.notif-item:last-child{border-bottom:none}
.notif-item:hover{background:var(--g9)}
.notif-item.unread{background:var(--g9)}
.notif-icon{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px}
.notif-icon.announce{background:var(--gold-l);color:var(--gold-d)}
.notif-icon.concern{background:var(--amber-l);color:var(--amber)}
.notif-icon.event{background:var(--g8);color:var(--g3)}
.notif-content .notif-title{font-size:13px;font-weight:700;color:var(--text-primary);line-height:1.3}
.notif-content .notif-desc{font-size:12px;color:var(--gray4);margin-top:2px;line-height:1.4}
.notif-content .notif-time{font-size:11px;color:var(--gray5);margin-top:4px}
.notif-unread-dot{width:8px;height:8px;border-radius:50%;background:var(--sage);flex-shrink:0;margin-top:4px}
.notif-empty{padding:32px;text-align:center;color:var(--gray4);font-size:13px}
.notif-empty i{display:block;font-size:28px;margin-bottom:8px;color:var(--gray5)}

.tb-user{display:flex;align-items:center;gap:10px;padding:5px 10px;border-radius:11px;cursor:pointer;transition:background var(--transition)}
.tb-user:hover{background:rgba(255,255,255,.06)}
.tb-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--sage),var(--sage-d));display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#fff;border:2px solid rgba(255,255,255,.15);flex-shrink:0;font-family:var(--font-display);overflow:hidden}
.tb-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.tb-uinfo .tb-uname{font-size:13px;font-weight:600;color:#fff}
.tb-uinfo .tb-urole{font-size:10px;color:rgba(255,255,255,.4);margin-top:1px}
.tb-logout{padding:7px 14px;border-radius:9px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.65);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition);display:flex;align-items:center;gap:6px;position:relative}
.tb-logout:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2);color:#fff}

/* MENU DROPDOWN */
.menu-dropdown{position:absolute;top:calc(var(--topbar-h) + 8px);right:20px;width:240px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;box-shadow:var(--shadow-lg);z-index:500;display:none;overflow:hidden;transform-origin:top right}
.menu-dropdown.open{display:block;animation:dropIn .22s cubic-bezier(.34,1.56,.64,1) both}
.menu-item{display:flex;align-items:center;gap:11px;padding:13px 16px;font-size:13.5px;font-weight:600;color:var(--gray2);cursor:pointer;transition:background .18s,padding-left .18s;border-bottom:1px solid var(--border-color)}
.menu-item:last-child{border-bottom:none}
.menu-item:hover{background:var(--g9);color:var(--heading-color);padding-left:20px}
.menu-item i{width:18px;color:var(--sage-d);transition:transform .2s cubic-bezier(.34,1.56,.64,1)}
.menu-item:hover i{transform:scale(1.15)}
.menu-item.danger{color:var(--red)}
.menu-item.danger i{color:var(--red)}
.menu-item.danger:hover{background:var(--red-l)}

/* SIDEBAR */
.sidebar{position:fixed;top:var(--topbar-h);left:0;bottom:0;width:var(--sidebar-w);background:var(--bg-sidebar);border-right:1px solid var(--border-color);display:flex;flex-direction:column;z-index:150;overflow-y:auto;overflow-x:hidden;transition:background .3s,border-color .3s,transform .3s ease}
.sidebar-overlay{position:fixed;inset:0;top:var(--topbar-h);background:rgba(0,0,0,.45);z-index:140;display:none}
.sidebar-overlay.open{display:block}
.sidebar-nav{padding:14px 10px;flex:1}
.nav-item{display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:11px;cursor:pointer;font-size:13.5px;font-weight:500;color:var(--gray2);transition:background .22s var(--transition),color .22s;margin-bottom:2px;border:none;background:none;width:100%;text-align:left;position:relative;overflow:hidden}
.nav-item::before{content:'';position:absolute;left:0;top:50%;width:3px;height:0;background:var(--sage-d);border-radius:0 4px 4px 0;transform:translateY(-50%);transition:height .22s cubic-bezier(.34,1.56,.64,1)}
.nav-item.active::before{height:60%}
.nav-item .nav-ic{width:30px;height:30px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px;transition:background .22s,transform .22s cubic-bezier(.34,1.56,.64,1);background:var(--g9)}
.nav-item .nav-ic i{transition:color .22s,transform .22s}
.nav-item:hover{color:var(--heading-color);background:var(--g9)}
.nav-item:hover .nav-ic{background:var(--g8);transform:scale(1.08) rotate(-3deg)}
.nav-item.active{color:var(--heading-color);background:var(--g8);font-weight:700}
.nav-item.active .nav-ic{background:var(--sage);transform:none}
.nav-item .nav-ic i{color:var(--g4)}
.nav-item.active .nav-ic i{color:#fff}
.nav-item:active{transform:scale(.98)}
.nav-badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;background:var(--red);border-radius:9px;font-size:10px;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center}
.sidebar-status{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border-top:1px solid var(--border-color);font-size:11px;color:var(--gray4)}
.dot-live{width:6px;height:6px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 3px rgba(74,222,128,.15);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 3px rgba(74,222,128,.15)}50%{box-shadow:0 0 0 5px rgba(74,222,128,.08)}}
.sidebar-footer{padding:16px;border-top:1px solid var(--border-color);font-size:11px;color:var(--gray4);text-align:center;line-height:1.7}
.sidebar-footer strong{color:var(--sage-d)}
.sidebar-footer a.sf-link{color:var(--sage-d);text-decoration:none;cursor:pointer}
.sidebar-footer a.sf-link:hover{text-decoration:underline}

/* MAIN */
.main{margin-left:var(--sidebar-w);margin-top:var(--topbar-h);padding:30px 34px;min-height:calc(100vh - var(--topbar-h));background:var(--bg-body);transition:background .3s}
.page{display:none}
.page.active{display:block;animation:fadeIn .38s cubic-bezier(.16,1,.3,1) both}
@keyframes fadeIn{from{opacity:0;transform:translateY(14px) scale(.99)}to{opacity:1;transform:none}}
.page.active .card,.page.active .post-card,.page.active .stat-card,.page.active .resource-item,.page.active .member-card,.page.active .adviser-card,.page.active .composer,.page.active .av-card{animation:cardRise .46s cubic-bezier(.16,1,.3,1) both}
@keyframes cardRise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.page.active .card:nth-of-type(1),.page.active .post-card:nth-of-type(1),.page.active .stat-card:nth-of-type(1),.page.active .resource-item:nth-of-type(1),.page.active .member-card:nth-of-type(1),.page.active .adviser-card:nth-of-type(1){animation-delay:.02s}
.page.active .card:nth-of-type(2),.page.active .post-card:nth-of-type(2),.page.active .stat-card:nth-of-type(2),.page.active .resource-item:nth-of-type(2),.page.active .member-card:nth-of-type(2),.page.active .adviser-card:nth-of-type(2){animation-delay:.07s}
.page.active .card:nth-of-type(3),.page.active .post-card:nth-of-type(3),.page.active .stat-card:nth-of-type(3),.page.active .resource-item:nth-of-type(3),.page.active .member-card:nth-of-type(3),.page.active .adviser-card:nth-of-type(3){animation-delay:.12s}
.page.active .card:nth-of-type(4),.page.active .post-card:nth-of-type(4),.page.active .stat-card:nth-of-type(4),.page.active .resource-item:nth-of-type(4),.page.active .member-card:nth-of-type(4),.page.active .adviser-card:nth-of-type(4){animation-delay:.17s}
.page.active .card:nth-of-type(5),.page.active .post-card:nth-of-type(5),.page.active .stat-card:nth-of-type(5),.page.active .resource-item:nth-of-type(5),.page.active .member-card:nth-of-type(5),.page.active .adviser-card:nth-of-type(5){animation-delay:.22s}
.page.active .card:nth-of-type(n+6),.page.active .post-card:nth-of-type(n+6),.page.active .stat-card:nth-of-type(n+6),.page.active .resource-item:nth-of-type(n+6),.page.active .member-card:nth-of-type(n+6),.page.active .adviser-card:nth-of-type(n+6){animation-delay:.26s}
.pg-header{margin-bottom:26px}
.pg-title{font-family:var(--font-display);font-size:26px;color:var(--heading-color);font-weight:700;line-height:1.1;letter-spacing:-.4px;display:flex;align-items:center;gap:10px}
.pg-title i{color:var(--sage);font-size:22px;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.pg-title:hover i{transform:scale(1.15) rotate(-6deg)}
.pg-sub{font-size:13.5px;color:var(--gray4);margin-top:5px;font-weight:300}

/* CARDS / BUTTONS */
.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border-color);padding:24px;margin-bottom:20px;transition:background .3s,border-color .3s,box-shadow .25s cubic-bezier(.16,1,.3,1),transform .25s cubic-bezier(.16,1,.3,1)}
.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.card-title{font-size:14px;font-weight:700;color:var(--heading-color);margin-bottom:16px;display:flex;align-items:center;gap:8px}
.card-title i{color:var(--sage);transition:transform .25s cubic-bezier(.34,1.56,.64,1)}
.card:hover .card-title i{transform:scale(1.12)}
.btn{padding:9px 18px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all var(--transition);display:inline-flex;align-items:center;gap:7px;line-height:1}
.btn i{transition:transform .25s cubic-bezier(.34,1.56,.64,1)}
.btn:hover:not(:disabled) i{transform:scale(1.15)}
.btn:active:not(:disabled){transform:scale(.96)}
.btn:hover:not(:disabled) i.fa-rotate{animation:spin .6s linear}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-primary{background:var(--g2);color:#fff;box-shadow:0 2px 8px rgba(30,92,58,.3)}
.btn-primary:hover:not(:disabled){background:var(--g3);transform:translateY(-2px);box-shadow:0 6px 16px rgba(30,92,58,.35)}
.btn-secondary{background:var(--off);color:var(--gray2);border:1.5px solid var(--border-color)}
.btn-secondary:hover:not(:disabled){background:var(--g9);border-color:var(--g6)}
.btn-danger{background:var(--red-l);color:var(--red)}
.btn-danger:hover{background:#ffd8d8}
.btn-sm{padding:6px 12px;font-size:12px;border-radius:7px}
.btn-xs{padding:4px 9px;font-size:11px;border-radius:6px}
.file-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;background:var(--g9);color:var(--heading-color);border-radius:var(--radius-sm);cursor:pointer;font-size:13px;font-weight:600;transition:background var(--transition);border:1.5px dashed var(--g7)}
.file-btn:hover{background:var(--g8)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-field{margin-bottom:16px}
.form-field label{display:block;font-size:11px;font-weight:700;color:var(--gray3);text-transform:uppercase;letter-spacing:.6px;margin-bottom:7px}
.form-field input,.form-field select,.form-field textarea{width:100%;padding:10px 13px;border:1.5px solid var(--border-color);border-radius:var(--radius-sm);font-size:14px;background:var(--bg-card);color:var(--text-primary);transition:border-color var(--transition),box-shadow var(--transition)}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 3px rgba(142,188,159,.15)}
.form-field textarea{resize:vertical;min-height:90px}
.full-w{grid-column:1/-1}

/* BADGES */
.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:99px;font-size:11px;font-weight:700}
.badge-green{background:var(--g8);color:var(--g3)}
.badge-yellow{background:var(--amber-l);color:var(--amber)}
.badge-red{background:var(--red-l);color:var(--red)}
.badge-blue{background:var(--blue-l);color:var(--blue)}

/* STAT CARDS */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:14px;margin-bottom:24px}
.stat-card{background:var(--bg-card);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);border:1px solid var(--border-color);position:relative;overflow:hidden;transition:background .3s,border-color .3s}
.stat-card::before{content:'';position:absolute;top:-20px;right:-20px;width:80px;height:80px;border-radius:50%;opacity:.08}
.stat-card.green::before{background:var(--sage)}
.stat-card.gold::before{background:var(--gold)}
.stat-card.blue::before{background:var(--blue)}
.stat-card.red::before{background:var(--red)}
.stat-card{transition:background .3s,border-color .3s,transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s cubic-bezier(.16,1,.3,1)}
.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.stat-card .s-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:12px;font-size:16px;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.stat-card:hover .s-icon{transform:scale(1.12) rotate(-4deg)}
.stat-card.green .s-icon{background:var(--g8);color:var(--sage-d)}
.stat-card.gold .s-icon{background:var(--gold-l);color:var(--gold-d)}
.stat-card.blue .s-icon{background:var(--blue-l);color:var(--blue)}
.stat-card.red .s-icon{background:var(--red-l);color:var(--red)}
.stat-card .s-num{font-family:var(--font-display);font-size:32px;font-weight:700;color:var(--text-primary);line-height:1}
.stat-card .s-lbl{font-size:12px;color:var(--gray4);margin-top:4px;font-weight:400}

/* TABLES */
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius);border:1px solid var(--border-color)}
.tbl{width:100%;border-collapse:collapse;min-width:600px}
.tbl thead tr{background:var(--g2)}
.tbl thead th{padding:11px 14px;font-size:12px;font-weight:700;color:#fff;text-align:left;letter-spacing:.3px;white-space:nowrap}
.tbl tbody tr{border-bottom:1px solid var(--border-color);transition:background var(--transition)}
.tbl tbody tr:last-child{border-bottom:none}
.tbl tbody tr:hover{background:var(--g9)}
.tbl td{padding:12px 14px;font-size:13px;color:var(--gray2)}

/* HERO CAROUSEL */
.hero-carousel{position:relative;width:100%;border-radius:var(--radius);overflow:hidden;background:var(--g9);margin-bottom:24px;border:1px solid var(--border-color);box-shadow:var(--shadow);aspect-ratio:16/5;min-height:200px}
.carousel-track{display:flex;height:100%;transition:transform .45s cubic-bezier(.4,0,.2,1);will-change:transform}
.carousel-slide{min-width:100%;height:100%;flex-shrink:0;position:relative;background:var(--g8)}
.carousel-slide img{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer}
.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:rgba(0,0,0,.42);border:none;color:#fff;font-size:17px;cursor:pointer;z-index:10;display:flex;align-items:center;justify-content:center;transition:background .18s,transform .18s;backdrop-filter:blur(2px)}
.carousel-btn:hover{background:rgba(0,0,0,.68);transform:translateY(-50%) scale(1.07)}
#carousel-prev{left:14px}
#carousel-next{right:14px}
.carousel-dots{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:7px;z-index:10}
.carousel-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.5);border:none;cursor:pointer;padding:0;transition:background .25s,width .25s cubic-bezier(.34,1.56,.64,1),border-radius .25s}
.carousel-dot:hover{background:rgba(255,255,255,.8)}
.carousel-dot.active{background:#fff;width:22px;border-radius:5px}
.carousel-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--gray4)}
.carousel-empty i{font-size:36px;color:var(--gray5)}
.carousel-empty p{font-size:13px}
.carousel-upload-ctrl{position:absolute;top:12px;right:12px;z-index:20;display:flex;align-items:center;gap:6px}
.carousel-upload-label{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;background:rgba(0,0,0,.52);color:#fff;border-radius:9px;font-size:12px;font-weight:700;cursor:pointer;backdrop-filter:blur(4px);transition:background .18s}
.carousel-upload-label:hover{background:rgba(0,0,0,.72)}
.carousel-clear-btn{padding:7px 11px;background:rgba(180,0,0,.58);color:#fff;border:none;border-radius:9px;font-size:12px;font-weight:700;cursor:pointer;backdrop-filter:blur(4px);transition:background .18s}
.carousel-clear-btn:hover{background:rgba(180,0,0,.82)}
.carousel-count-badge{position:absolute;top:12px;left:12px;z-index:20;padding:5px 10px;background:rgba(0,0,0,.52);color:#fff;border-radius:8px;font-size:11px;font-weight:700;backdrop-filter:blur(4px)}

/* ANNOUNCEMENTS FEED */
.feed-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}
.feed-title{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--heading-color);display:flex;align-items:center;gap:9px}
.feed-title i{color:var(--gold);font-size:18px}
.feed-subtitle{font-size:13px;color:var(--gray4);font-weight:300;margin-top:2px}
.feed-container{display:flex;flex-direction:column;gap:16px}
.feed-loading{text-align:center;padding:40px;color:var(--gray4);font-size:13px}
.post-card{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border-color);box-shadow:var(--shadow);overflow:hidden;transition:box-shadow .2s ease,transform .2s ease,background .3s,border-color .3s}
.post-card:hover{box-shadow:0 6px 28px rgba(0,0,0,.1);transform:translateY(-1px)}
.post-header{display:flex;align-items:flex-start;padding:18px 20px 0;gap:13px}
.post-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--sage),var(--sage-d));display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;color:#fff;font-family:var(--font-display);flex-shrink:0;border:2px solid var(--g8);overflow:hidden}
.post-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.post-meta{flex:1;min-width:0}
.post-author{font-size:14px;font-weight:700;color:var(--text-primary)}
.post-org{font-size:12px;color:var(--sage-d);font-weight:500;margin-top:1px}
.post-time{font-size:11px;color:var(--gray4);margin-top:3px;display:flex;align-items:center;gap:4px}
.post-time i{font-size:10px}
.post-badge{flex-shrink:0;padding:4px 10px;border-radius:99px;font-size:11px;font-weight:700;letter-spacing:.2px}
.post-badge.announcement{background:var(--gold-l);color:var(--gold-d)}
.post-badge.urgent{background:var(--red-l);color:var(--red)}
.post-badge.info{background:var(--blue-l);color:var(--blue)}
.post-badge.event{background:var(--g8);color:var(--g3)}
.post-body{padding:14px 20px 0}
.post-heading{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--heading-color);line-height:1.3;margin-bottom:6px;letter-spacing:-.2px}
.post-text{font-size:14px;color:var(--gray2);line-height:1.75;font-weight:300}
.post-text a{color:var(--sage-d);text-decoration:underline;text-underline-offset:2px}
.post-text a:hover{color:var(--heading-color)}
.post-media-grid{margin:14px 20px 0;display:grid;gap:6px;border-radius:10px;overflow:hidden}
.post-media-grid.g1{grid-template-columns:1fr}
.post-media-grid.g2{grid-template-columns:1fr 1fr}
.post-media-grid.g3{grid-template-columns:1fr 1fr 1fr}
.post-media-grid.g4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.post-media-grid.g5{grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto auto}
.post-media-grid.gN{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
.post-media-cell{position:relative;background:var(--g9);overflow:hidden;cursor:pointer;aspect-ratio:4/3}
.post-media-cell img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.16,1,.3,1);display:block}
.post-media-cell:hover img{transform:scale(1.06)}
.post-media-cell:hover img{transform:scale(1.04)}
.post-media-overflow{position:absolute;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:#fff;font-family:var(--font-display)}
.post-media-video{margin:14px 20px 0;border-radius:10px;overflow:hidden;aspect-ratio:16/7}
.post-media-video iframe{width:100%;height:100%;border:none}
.post-footer{display:flex;align-items:center;padding:12px 20px 16px;border-top:1px solid var(--border-color);margin-top:14px;gap:6px;flex-wrap:wrap}
.post-action-btn{padding:6px 13px;border-radius:8px;background:none;border:1.5px solid var(--border-color);font-size:12px;font-weight:600;color:var(--gray3);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all var(--transition)}
.post-action-btn i{transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.post-action-btn:hover{background:var(--g9);border-color:var(--sage);color:var(--sage-d)}
.post-action-btn:hover i{transform:scale(1.25)}
.post-action-btn:active i{transform:scale(.85)}
.post-action-btn.liked{background:var(--g9);border-color:var(--sage);color:var(--sage-d)}
.post-action-btn.liked i{animation:likePop .35s cubic-bezier(.34,1.56,.64,1)}
@keyframes likePop{0%{transform:scale(1)}40%{transform:scale(1.4)}100%{transform:scale(1)}}
.post-footer-spacer{flex:1}
.btn-edit-post{padding:5px 10px;border-radius:7px;background:var(--blue-l);color:var(--blue);border:none;font-size:11px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:background var(--transition)}
.btn-edit-post:hover{background:#c5d9f1}
.btn-delete-post{padding:5px 10px;border-radius:7px;background:var(--red-l);color:var(--red);border:none;font-size:11px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:background var(--transition)}
.btn-delete-post:hover{background:#ffd3d3}
.feed-empty{padding:56px 24px;text-align:center;background:var(--bg-card);border-radius:var(--radius);border:1px dashed var(--g7)}
.feed-empty i{font-size:40px;color:var(--g7);display:block;margin-bottom:12px}
.feed-empty p{font-size:14px;color:var(--gray4);line-height:1.6}

/* COMPOSER */
.composer{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border-color);box-shadow:var(--shadow);padding:20px;margin-bottom:20px;transition:background .3s,border-color .3s}
.composer-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.composer-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--sage),var(--sage-d));display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff;font-family:var(--font-display);flex-shrink:0;overflow:hidden}
.composer-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.composer-field{margin-bottom:10px}
.composer-field label{display:block;font-size:11px;font-weight:700;color:var(--gray3);text-transform:uppercase;letter-spacing:.6px;margin-bottom:5px}
.composer-field input,.composer-field textarea{width:100%;padding:10px 13px;border:1.5px solid var(--border-color);border-radius:var(--radius-sm);font-size:14px;background:var(--g9);color:var(--text-primary);transition:border-color var(--transition)}
.composer-field input:focus,.composer-field textarea:focus{outline:none;border-color:var(--sage);background:var(--bg-card)}
.composer-field textarea{resize:vertical;min-height:80px}
.post-imgs-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;margin-top:10px}
.pip-wrap{position:relative;width:100%;aspect-ratio:1;border-radius:9px;overflow:hidden;border:1px solid var(--border-color)}
.pip-wrap img{width:100%;height:100%;object-fit:cover}
.pip-rm{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;background:rgba(0,0,0,.7);border:none;color:#fff;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.img-size-row{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:13px;color:var(--gray3)}
.img-size-row label{font-weight:600;white-space:nowrap}
.img-size-row select{padding:5px 10px;border:1.5px solid var(--border-color);border-radius:7px;font-size:13px;background:var(--bg-card);color:var(--text-primary)}
.composer-actions{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.av-progress-wrap{display:none;margin-top:10px}
.av-progress-wrap.visible{display:block}
.av-progress-label{display:flex;justify-content:space-between;font-size:12px;color:var(--gray3);margin-bottom:6px}
.av-progress-track{height:6px;background:var(--gray6);border-radius:99px;overflow:hidden}
.av-progress-bar{height:100%;background:linear-gradient(90deg,var(--sage),var(--sage-d));border-radius:99px;transition:width .3s ease;width:0%}

/* ANIMO VOICE */
.av-card{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border-color);box-shadow:var(--shadow);padding:28px;margin-bottom:24px;transition:background .3s,border-color .3s}
.av-card-header{margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid var(--border-color)}
.av-card-title{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--heading-color);display:flex;align-items:center;gap:9px}
.av-card-title i{color:var(--gold)}
.av-card-sub{font-size:13px;color:var(--gray4);margin-top:4px;font-weight:300}
.av-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.av-field{display:flex;flex-direction:column;gap:6px}
.av-field.span-2{grid-column:1/-1}
.av-label{font-size:11px;font-weight:700;color:var(--gray3);text-transform:uppercase;letter-spacing:.6px}
.av-label .required{color:var(--red);margin-left:2px}
.av-input,.av-select,.av-textarea{width:100%;padding:11px 13px;border:1.5px solid var(--border-color);border-radius:var(--radius-sm);font-size:14px;color:var(--text-primary);background:var(--bg-card);font-family:inherit;transition:border-color var(--transition),box-shadow var(--transition)}
.av-input:focus,.av-select:focus,.av-textarea:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 3px rgba(142,188,159,.15)}
.av-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%238fa8a0' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}
.av-textarea{resize:vertical;min-height:110px;line-height:1.6}
.av-char-counter{text-align:right;font-size:11px;color:var(--gray5);margin-top:4px}
.av-char-counter.near-limit{color:var(--amber)}
.av-char-counter.at-limit{color:var(--red)}
.av-upload-zone{border:2px dashed var(--g7);border-radius:var(--radius-sm);padding:28px 20px;text-align:center;background:var(--g9);cursor:pointer;transition:all var(--transition);position:relative}
.av-upload-zone:hover,.av-upload-zone.dragover{border-color:var(--sage);background:var(--g8)}
.av-upload-zone.has-file{border-color:var(--sage-d);background:var(--g8)}
.av-upload-input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.av-upload-icon{font-size:28px;color:var(--g6);display:block;margin-bottom:8px}
.av-upload-title{font-size:14px;font-weight:600;color:var(--g3)}
.av-upload-sub{font-size:12px;color:var(--gray4);margin-top:4px}
.av-upload-sub strong{color:var(--sage-d)}
.av-file-preview{display:none;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-card);border:1.5px solid var(--g7);border-radius:8px;margin-top:10px}
.av-file-preview.visible{display:flex}
.av-file-thumb{width:38px;height:38px;border-radius:7px;object-fit:cover;border:1px solid var(--border-color);flex-shrink:0}
.av-file-thumb-icon{width:38px;height:38px;border-radius:7px;background:var(--g8);border:1px solid var(--g7);display:flex;align-items:center;justify-content:center;color:var(--sage-d);font-size:18px;flex-shrink:0}
.av-file-name{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.av-file-size{font-size:11px;color:var(--gray4);margin-top:2px}
.av-file-remove{width:24px;height:24px;border-radius:50%;background:var(--red-l);border:none;color:var(--red);cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:background var(--transition);flex-shrink:0}
.av-file-remove:hover{background:#ffc9c9}
.av-submit-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;flex-wrap:wrap}
.av-submit-note{font-size:12px;color:var(--gray4);display:flex;align-items:center;gap:7px}
.av-submit-note i{color:var(--sage)}
.av-submit-btn{padding:12px 22px;border-radius:11px;background:var(--g2);color:#fff;border:none;font-size:14px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all var(--transition);box-shadow:0 2px 10px rgba(30,92,58,.3)}
.av-submit-btn:hover:not(:disabled){background:var(--g3);transform:translateY(-1px)}
.av-submit-btn:disabled{opacity:.5;cursor:not-allowed}
.av-alert{display:none;padding:13px 16px;border-radius:10px;font-size:14px;font-weight:500;align-items:center;gap:9px;margin-top:16px}
.av-alert.show{display:flex}
.av-alert.success{background:var(--g8);color:var(--heading-color);border:1px solid var(--g7)}
.av-alert.error{background:var(--red-l);color:var(--red);border:1px solid #ffc9c9}

/* TRANSPARENCY BOARD */
.tb-section{margin-top:30px}
.tb-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.tb-icon{width:32px;height:32px;border-radius:8px;background:var(--g2);display:flex;align-items:center;justify-content:center}
.tb-icon i{color:#fff;font-size:14px}
.tb-title{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--heading-color)}
.tb-table-wrap{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border-color);box-shadow:var(--shadow);overflow-x:auto;-webkit-overflow-scrolling:touch}
.tb-table{width:100%;border-collapse:collapse;min-width:520px}
.tb-table thead tr{background:var(--g2)}
.tb-table thead th{padding:12px 16px;font-size:12px;font-weight:700;color:#fff;text-align:left;letter-spacing:.3px;white-space:nowrap}
.tb-table tbody tr{border-bottom:1px solid var(--border-color);transition:background var(--transition)}
.tb-table tbody tr:last-child{border-bottom:none}
.tb-table tbody tr:hover{background:var(--g9)}
.tb-table td{padding:13px 16px;font-size:13px;color:var(--gray2)}
.status-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:99px;font-size:11px;font-weight:700}
.status-pill.open{background:var(--amber-l);color:var(--amber)}
.status-pill.resolved{background:var(--g8);color:var(--g3)}
.status-pill.closed{background:var(--gray6);color:var(--gray3)}
.status-pill.pending{background:var(--amber-l);color:var(--amber)}
.status-pill.received{background:var(--amber-l);color:var(--amber)}
.status-pill.reviewed{background:var(--blue-l);color:var(--blue)}

/* ORDER-STYLE PROGRESS TRACKER */
.otrack{display:flex;align-items:flex-start;justify-content:space-between;margin:6px 0 22px;padding:0 4px}
.otrack-step{display:flex;flex-direction:column;align-items:center;flex:1;position:relative;text-align:center}
.otrack-line{position:absolute;top:16px;left:-50%;width:100%;height:3px;background:var(--gray6);z-index:0}
.otrack-step:first-child .otrack-line{display:none}
.otrack-line.filled{background:var(--sage)}
.otrack-dot{width:32px;height:32px;border-radius:50%;background:var(--gray6);color:var(--gray4);display:flex;align-items:center;justify-content:center;font-size:13px;z-index:1;border:3px solid var(--bg-card);transition:background .2s,color .2s}
.otrack-step.done .otrack-dot{background:var(--sage);color:#fff}
.otrack-step.current .otrack-dot{background:var(--amber);color:#fff;box-shadow:0 0 0 4px var(--amber-l)}
.otrack-label{font-size:11.5px;font-weight:700;color:var(--gray4);margin-top:8px}
.otrack-step.done .otrack-label,.otrack-step.current .otrack-label{color:var(--heading-color)}
.otrack-sub{font-size:10.5px;color:var(--gray4);margin-top:2px;max-width:90px}
.tb-row-clickable{cursor:pointer}

/* SW CARE DESK */
.swcare-layout{display:grid;grid-template-columns:220px 1fr;gap:0;background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border-color);overflow:hidden;min-height:500px;transition:background .3s,border-color .3s}
.swcare-sub-nav{background:linear-gradient(180deg,var(--g9),var(--off));border-right:1px solid var(--border-color);padding:20px 14px}
.swcare-sub-title{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--heading-color);margin-bottom:4px}
.swcare-sub-desc{font-size:11px;color:var(--gray4);line-height:1.5;margin-bottom:20px;font-weight:300}
.swcare-nav-btn{display:block;width:100%;text-align:left;padding:10px 14px;border-radius:9px;border:none;background:none;font-size:13px;font-weight:600;color:var(--gray3);cursor:pointer;transition:all var(--transition);margin-bottom:4px}
.swcare-nav-btn:hover{background:var(--g8);color:var(--heading-color)}
.swcare-nav-btn.active{background:var(--g2);color:#fff}
.swcare-panel{display:none;padding:28px}
.swcare-panel.active{display:block}
.swcare-panel-title{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--heading-color);margin-bottom:4px;display:flex;align-items:center;gap:9px}
.swcare-panel-title i{color:var(--gold)}
.swcare-panel-sub{font-size:13px;color:var(--gray4);margin-bottom:24px;font-weight:300}
.adviser-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:20px}
.adviser-card{text-align:center;background:var(--off);border-radius:var(--radius);padding:24px 16px;border:1px solid var(--border-color);transition:all var(--transition);cursor:pointer}
.adviser-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.adviser-photo{width:90px;height:90px;border-radius:50%;margin:0 auto 12px;background:linear-gradient(135deg,var(--g8),var(--g7));border:3px solid var(--g7);overflow:hidden;display:flex;align-items:center;justify-content:center}
.adviser-photo i{font-size:36px;color:var(--sage)}
.adviser-name{font-weight:700;font-size:14px;color:var(--heading-color)}
.adviser-role{font-size:12px;color:var(--gray4);margin-top:3px}

/* CALENDAR */
.calendar-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.cal-card{background:var(--off);border-radius:var(--radius);padding:20px;border:1px solid var(--border-color)}
.cal-month-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.cal-month-title{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--heading-color);background:var(--g7);padding:8px 18px;border-radius:9px}
.cal-nav-btn{width:32px;height:32px;border-radius:8px;border:1.5px solid var(--border-color);background:var(--bg-card);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--gray3);transition:all var(--transition)}
.cal-nav-btn:hover{background:var(--g2);color:#fff;border-color:var(--g2)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-weekday{font-size:11px;font-weight:700;color:var(--gray4);text-align:center;padding:4px 0;text-transform:uppercase;letter-spacing:.3px}
.cal-day{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;cursor:default;margin:0 auto;transition:all var(--transition);position:relative}
.cal-day.empty{cursor:default}
.cal-day.weekend{color:var(--gray5);cursor:not-allowed;opacity:.45}
.cal-day.available{background:var(--sage);color:#fff;cursor:pointer}
.cal-day.available:hover{background:var(--sage-d);transform:scale(1.1)}
.cal-day.fully-booked{background:var(--red);color:#fff;cursor:not-allowed}
.cal-day.selected{box-shadow:0 0 0 3px var(--g2),0 0 0 5px rgba(30,92,58,.2)}
.time-card{background:var(--off);border-radius:var(--radius);padding:20px;border:1px solid var(--border-color)}
.time-header{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--heading-color);background:var(--g7);padding:8px 18px;border-radius:9px;margin-bottom:18px}
.time-slots{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.time-slot{padding:10px;border-radius:9px;font-size:12px;font-weight:700;text-align:center;cursor:pointer;border:2px solid transparent;transition:all var(--transition)}
.time-slot.available{background:var(--sage);color:#fff}
.time-slot.available:hover{background:var(--sage-d)}
.time-slot.booked{background:var(--red);color:#fff;cursor:not-allowed;opacity:.7}
.time-slot.selected{border-color:var(--g2);box-shadow:0 0 0 3px rgba(30,92,58,.2)}
.cal-legend{display:flex;align-items:center;gap:16px;margin-top:16px;font-size:12px;color:var(--gray3);flex-wrap:wrap}
.cal-legend-dot{width:14px;height:14px;border-radius:50%;display:inline-block;margin-right:4px;vertical-align:middle}
.appointment-form{margin-top:16px;background:var(--bg-card);border-radius:var(--radius-sm);border:1px solid var(--border-color);padding:20px}

/* LASALLIAN INSIGHTS */
.insights-layout{display:grid;grid-template-columns:220px 1fr;gap:0;background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border-color);overflow:hidden;min-height:400px;transition:background .3s,border-color .3s}
.insights-sub-nav{background:linear-gradient(180deg,var(--g9),var(--off));border-right:1px solid var(--border-color);padding:20px 14px}
.insights-nav-btn{display:block;width:100%;text-align:left;padding:10px 14px;border-radius:9px;border:none;background:none;font-size:13px;font-weight:600;color:var(--gray3);cursor:pointer;transition:all var(--transition);margin-bottom:4px}
.insights-nav-btn:hover{background:var(--g8);color:var(--heading-color)}
.insights-nav-btn.active{background:var(--g2);color:#fff}
.insights-panel{display:none;padding:28px}
.insights-panel.active{display:block}
.event-eval-header{display:flex;align-items:flex-start;gap:24px;margin-bottom:24px}
.event-eval-info{flex:1}
.event-eval-title{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--heading-color);margin-bottom:6px}
.event-eval-desc{font-size:13px;color:var(--gray2);line-height:1.7}
.event-eval-actions{display:flex;align-items:center;gap:10px;margin-top:16px;flex-wrap:wrap}
.eval-link-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;border:1.5px solid var(--g7);background:var(--g9);color:var(--heading-color);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--transition)}
.eval-link-btn:hover{background:var(--g8);border-color:var(--sage)}
.eval-qr-slot{width:120px;height:120px;border-radius:12px;border:2px solid var(--g7);background:var(--bg-card);display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}
.eval-qr-slot img{width:100%;height:100%;object-fit:contain}
.eval-qr-slot .qr-placeholder{display:flex;flex-direction:column;align-items:center;gap:4px}
.eval-qr-slot .qr-placeholder i{font-size:32px;color:var(--g7)}
.eval-qr-slot .qr-placeholder span{font-size:10px;color:var(--gray4);text-align:center;cursor:pointer;text-decoration:underline}

/* HSSC MEMBERS */
.member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}
.member-card{background:var(--off);border-radius:var(--radius);padding:20px 14px;text-align:center;border:1px solid var(--border-color);transition:all var(--transition);cursor:pointer}
.member-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.member-av-wrap{position:relative;width:56px;height:56px;margin:0 auto 12px}
.member-av{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--g2),var(--sage));display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--gold);border:3px solid var(--g7);overflow:hidden}
.member-av img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.member-pic-upload{position:absolute;bottom:-2px;right:-2px;width:22px;height:22px;border-radius:50%;background:var(--sage-d);color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;cursor:pointer;border:2px solid var(--bg-card);transition:background var(--transition)}
.member-pic-upload:hover{background:var(--g2)}
.member-pic-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.member-name{font-weight:700;font-size:13px;color:var(--heading-color)}
.member-role{font-size:11px;color:var(--gray4);margin-top:3px}

/* RESOURCES */
.resource-item{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border-color);box-shadow:var(--shadow);padding:18px 20px;margin-bottom:12px;display:flex;align-items:center;gap:16px;transition:all var(--transition)}
.resource-item:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}
.res-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.res-icon.pdf{background:var(--red-l);color:var(--red)}
.res-icon.docx{background:var(--blue-l);color:var(--blue)}
.res-icon.xlsx{background:#e6f9ee;color:#1a7a3c}
.res-icon.cal{background:var(--gold-l);color:var(--gold-d)}
.res-icon.file{background:var(--g8);color:var(--sage-d)}
.res-info{flex:1;min-width:0}
.res-name{font-weight:700;font-size:14px;color:var(--heading-color)}
.res-desc{font-size:12px;color:var(--gray4);margin-top:2px}
.res-upload-card{background:var(--bg-card);border:2px dashed var(--g7);border-radius:var(--radius);padding:24px;margin-bottom:20px;text-align:center}
.res-upload-card .ruc-title{font-weight:700;color:var(--heading-color);margin-bottom:6px;font-size:15px}
.res-upload-card .ruc-sub{font-size:12px;color:var(--gray4);margin-bottom:14px}

/* ADMIN TABS */
.tab-row{display:flex;gap:6px;margin-bottom:18px;background:var(--off);border-radius:11px;padding:4px;width:fit-content;border:1px solid var(--border-color)}
.tab-btn{padding:8px 18px;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer;border:none;background:none;color:var(--gray3);transition:all var(--transition);display:flex;align-items:center;gap:6px}
.tab-btn.active{background:var(--bg-card);color:var(--heading-color);box-shadow:0 1px 6px rgba(0,0,0,.08)}
.tab-panel{display:none}
.tab-panel.active{display:block}

/* SETTINGS */
.settings-wrap{max-width:500px}
.settings-section{margin-bottom:24px}
.settings-section .ss-title{font-size:13px;font-weight:700;color:var(--gray3);text-transform:uppercase;letter-spacing:.7px;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}
.dm-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--g9);border-radius:var(--radius-sm);border:1px solid var(--border-color)}
.dm-toggle-label{font-size:14px;font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:9px}
.dm-toggle-label i{color:var(--gray4);font-size:16px}
.dm-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}
.dm-switch input{opacity:0;width:0;height:0;position:absolute}
.dm-slider{position:absolute;inset:0;background:var(--gray5);border-radius:12px;transition:background var(--transition);cursor:pointer}
.dm-slider::before{content:'';position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;left:3px;top:3px;transition:transform var(--transition)}
.dm-switch input:checked+.dm-slider{background:var(--sage-d)}
.dm-switch input:checked+.dm-slider::before{transform:translateX(20px)}

/* TIMELINE */
.tl-item{display:flex;gap:14px;margin-bottom:18px}
.tl-dot-wrap{display:flex;flex-direction:column;align-items:center}
.tl-dot{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px}
.tl-dot.open{background:var(--amber-l);color:var(--amber)}
.tl-dot.resolved{background:#d1fae5;color:#065f46}
.tl-line{width:2px;flex:1;background:var(--border-color);margin-top:2px;min-height:16px}
.tl-content .tl-title{font-weight:700;font-size:13px;color:var(--heading-color)}
.tl-content .tl-meta{font-size:12px;color:var(--gray4);margin-top:2px}
.tl-content .tl-body{font-size:13px;color:var(--gray2);margin-top:6px;line-height:1.6;background:var(--off);padding:10px 12px;border-radius:9px;border:1px solid var(--border-color)}
.tl-attachment{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:6px 12px;border-radius:8px;background:var(--g8);color:var(--heading-color);font-size:12px;font-weight:600;border:1px solid var(--g7)}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);z-index:1000;display:none;align-items:center;justify-content:center;padding:20px}
.modal-overlay.open{display:flex;animation:overlayIn .22s ease both}
@keyframes overlayIn{from{opacity:0}to{opacity:1}}
.modal-box{background:var(--bg-card);border-radius:18px;padding:32px;width:520px;max-width:100%;box-shadow:0 24px 80px rgba(0,0,0,.25);animation:modalIn .3s cubic-bezier(.34,1.56,.64,1) both;max-height:85vh;overflow-y:auto}
@keyframes modalIn{from{opacity:0;transform:scale(.92) translateY(8px)}to{opacity:1;transform:none}}
.modal-title{font-family:var(--font-display);font-size:22px;color:var(--heading-color);margin-bottom:4px;font-weight:700}
.modal-sub{font-size:13px;color:var(--gray4);margin-bottom:20px}
.modal-body p,.modal-body div{font-size:14px;line-height:1.7;color:var(--gray2)}
.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}

/* TOAST */
#toast{position:fixed;bottom:28px;right:28px;z-index:2000;background:#1e5c3a;color:#fff;padding:13px 22px;border-radius:12px;font-size:14px;font-weight:500;box-shadow:0 8px 28px rgba(0,0,0,.25);transform:translateY(80px);opacity:0;transition:all .3s cubic-bezier(.34,1.56,.64,1);display:flex;align-items:center;gap:8px;max-width:340px}
#toast.show{transform:translateY(0);opacity:1}
#toast i{font-size:16px}

/* LIGHTBOX */
#lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:3000;display:none;align-items:center;justify-content:center}
#lightbox.open{display:flex;animation:overlayIn .22s ease both}
#lightbox img{max-width:90vw;max-height:90vh;border-radius:10px;object-fit:contain;animation:modalIn .3s cubic-bezier(.34,1.56,.64,1) both}
#lightbox .lb-close{position:absolute;top:20px;right:24px;font-size:28px;color:#fff;cursor:pointer;opacity:.7;transition:opacity var(--transition),transform .25s cubic-bezier(.34,1.56,.64,1)}
#lightbox .lb-close:hover{opacity:1;transform:rotate(90deg) scale(1.1)}

/* PERSON MODAL (member/adviser) */
.person-modal-head{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.person-modal-av{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--g2),var(--sage));display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:24px;color:var(--gold);border:3px solid var(--g7);overflow:hidden;flex-shrink:0}
.person-modal-av img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.person-modal-name{font-family:var(--font-display);font-size:19px;font-weight:700;color:var(--heading-color)}
.person-modal-role{font-size:13px;color:var(--gray4);margin-top:2px}
.person-modal-desc{font-size:13.5px;color:var(--gray2);line-height:1.7;background:var(--off);padding:14px 16px;border-radius:10px;border:1px solid var(--border-color);min-height:60px}
.person-modal-edit textarea{width:100%;min-height:120px;padding:11px 13px;border:1.5px solid var(--border-color);border-radius:var(--radius-sm);font-size:14px;background:var(--bg-card);color:var(--text-primary);font-family:inherit;resize:vertical}

/* UTILS */
.hidden{display:none!important}
.spacer{flex:1}
.empty-state{text-align:center;padding:32px;color:var(--gray4);font-size:13px}
.empty-state i{display:block;font-size:32px;margin-bottom:8px;color:var(--gray5)}

/* RESPONSIVE */
@media(max-width:768px){
  .hamburger-btn{display:flex}
  .sidebar{transform:translateX(-100%);box-shadow:0 0 40px rgba(0,0,0,.3)}
  .sidebar.open{transform:translateX(0)}
  .main{margin-left:0;padding:20px 16px}
  .form-row,.av-form-grid,.calendar-layout,.swcare-layout,.insights-layout{grid-template-columns:1fr}
  /* Instead of hiding the sub-nav (which used to trap phone users on
     whichever panel loaded first, e.g. stuck on "Advisers" with no way
     to reach "Appointment"), turn it into a horizontally scrollable
     row of pill tabs docked above the panel content. */
  .swcare-sub-nav,.insights-sub-nav{
    display:flex;flex-direction:row;align-items:center;gap:8px;
    overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
    padding:12px 14px;border-right:none;border-bottom:1px solid var(--border-color);
  }
  .swcare-sub-nav::-webkit-scrollbar,.insights-sub-nav::-webkit-scrollbar{display:none}
  .swcare-sub-title,.swcare-sub-desc,.insights-sub-nav>div:first-child,.insights-sub-nav>div:nth-child(2){display:none}
  .swcare-nav-btn,.insights-nav-btn{
    flex:0 0 auto;width:auto;white-space:nowrap;margin-bottom:0;
    padding:9px 15px;border:1px solid var(--border-color);
  }
  #sw-dashboard-btn-wrap{flex:0 0 auto}
  #insights-nav-items{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0}
  #insights-nav-items::-webkit-scrollbar{display:none}
  .topbar-brand{width:auto;padding:0 10px;border-right:none}
  .brand-text .b-name{font-size:11.5px}
  .brand-text .b-sub{display:none}
  .brand-seals img{width:24px;height:24px}
  .hero-carousel{aspect-ratio:16/7}
  .notif-dropdown{right:8px;width:310px}
  .tb-uinfo{display:none}
  .tb-logout span{display:none}
  .stats-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
  .modal-box{width:100%;padding:24px 20px}
  .otrack-sub{display:none}
  .otrack-label{font-size:10.5px}
  .otrack-dot{width:28px;height:28px;font-size:11px}
  .login-card,.welcome-card{padding:30px 22px 26px}
  .login-seals{gap:10px}
  .login-seal-slot,.login-seal-slot img,.seal-fallback,.seal-blank{width:46px;height:46px}
}

/* Small phones */
@media(max-width:480px){
  .main{padding:16px 12px}
  .pg-title{font-size:18px}
  .pg-sub{font-size:12.5px}
  .stats-grid{grid-template-columns:1fr 1fr;gap:10px}
  .stat-card{padding:14px}
  .stat-card .s-num{font-size:24px}
  .tbl th,.tbl td,.tb-table th,.tb-table td{padding:9px 10px;font-size:12px}
  .card,.tb-section,.av-card{padding:16px}
  .modal-box{padding:20px 16px;border-radius:14px}
  .login-seals{gap:7px}
  .login-seal-slot,.login-seal-slot img,.seal-fallback,.seal-blank{width:40px;height:40px}
  .login-title{font-size:13px}
  .login-name{font-size:15px}
}

/* Landscape phones — constrained height, keep chrome compact and everything scrollable */
@media(max-width:900px) and (orientation:landscape) and (max-height:500px){
  .welcome-card{max-height:92vh;overflow-y:auto;padding:22px 28px 18px}
  .login-seals{margin-bottom:8px}
  .login-tagline{display:none}
  .sidebar{overflow-y:auto}
  .hero-carousel{aspect-ratio:21/7}
  .modal-box{max-height:90vh}
}

/* Ensure any wide table always gets a horizontal scrollbar on narrow viewports
   rather than squeezing columns unreadably. */
@media(max-width:640px){
  .tbl-wrap,.tb-table-wrap{overflow-x:scroll}
}

/* ── extra icon micro-interactions ── */
.file-btn i,.carousel-upload-label i,.av-upload-icon,.res-icon i{transition:transform .25s cubic-bezier(.34,1.56,.64,1)}
.file-btn:hover i,.carousel-upload-label:hover i{transform:translateY(-2px)}
.av-upload-zone:hover .av-upload-icon{transform:translateY(-3px) scale(1.08)}
.resource-item:hover .res-icon i{transform:scale(1.12) rotate(-4deg)}
.resource-item{transition:all var(--transition),box-shadow .25s,transform .25s}
.resource-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.member-card,.adviser-card{transition:all var(--transition),transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s cubic-bezier(.16,1,.3,1)}
.member-card:hover,.adviser-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.time-slot{transition:all var(--transition),transform .18s}
.time-slot:hover{transform:translateY(-2px)}
.cal-day{transition:all var(--transition),transform .18s}
.tab-btn i,.swcare-nav-btn,.insights-nav-btn{transition:all var(--transition)}
.hamburger-btn i{transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.hamburger-btn:hover i{transform:rotate(90deg)}
.lb-close,.av-file-remove,.carousel-clear-btn{transition:all var(--transition),transform .2s}
.av-file-remove:hover{transform:scale(1.15) rotate(90deg)}
.carousel-clear-btn:hover{transform:scale(1.05)}

/* respect reduced-motion preference */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}

/* ══════════════════════════════════════════════════════════
   EXTRAORDINARY LAYER — ambient motion for the welcome screen
   + a living sidebar + number/scroll choreography for the app
═══════════════════════════════════════════════════════════ */

/* drifting gradient blobs behind the welcome card */
.ambient-blobs{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none}
.ambient-blobs span{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;mix-blend-mode:screen}
.ambient-blobs span:nth-child(1){width:520px;height:520px;background:radial-gradient(circle,rgba(74,171,124,.55),transparent 70%);top:-160px;left:-120px;animation:blobDrift1 22s ease-in-out infinite}
.ambient-blobs span:nth-child(2){width:420px;height:420px;background:radial-gradient(circle,rgba(201,168,76,.4),transparent 70%);bottom:-140px;right:-100px;animation:blobDrift2 26s ease-in-out infinite}
.ambient-blobs span:nth-child(3){width:360px;height:360px;background:radial-gradient(circle,rgba(163,228,215,.4),transparent 70%);top:35%;left:55%;animation:blobDrift3 30s ease-in-out infinite}
@keyframes blobDrift1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(60px,50px) scale(1.12)}}
@keyframes blobDrift2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-50px,-40px) scale(1.08)}}
@keyframes blobDrift3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-40px,60px) scale(1.15)}}

/* soft particle field, canvas-driven */
#ambient-particles{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.8}

/* cursor spotlight glow on the welcome card */
.welcome-card{position:relative;overflow:hidden}
.cursor-glow{position:absolute;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(201,168,76,.16),transparent 70%);top:0;left:0;transform:translate(-50%,-50%);pointer-events:none;opacity:0;transition:opacity .3s;z-index:0}
.welcome-card:hover .cursor-glow{opacity:1}
.welcome-card > div,.welcome-card > .login-divider,.welcome-card > p,.welcome-card > button,.welcome-card > .admin-login-box,.welcome-card > .l-footer,.welcome-card > .l-err,.welcome-card > .l-success{position:relative;z-index:1}
.welcome-card{transition:transform .12s ease-out,box-shadow .3s}
.welcome-card.tilting{transition:transform .06s ease-out}

/* login seals: gentle float + glow-in on load */
.login-seal-slot{animation:sealRise .6s cubic-bezier(.16,1,.3,1) both}
.login-seal-slot:nth-child(1){animation-delay:.05s}
.login-seal-slot:nth-child(2){animation-delay:.14s}
.login-seal-slot:nth-child(3){animation-delay:.23s}
.login-seal-slot:nth-child(4){animation-delay:.32s}
@keyframes sealRise{from{opacity:0;transform:translateY(14px) scale(.85)}to{opacity:1;transform:none}}
.login-seal-slot img,.seal-blank,.seal-fallback{transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s}
.login-seal-slot:hover img,.login-seal-slot:hover .seal-blank,.login-seal-slot:hover .seal-fallback{transform:translateY(-4px) scale(1.06);box-shadow:0 8px 22px rgba(0,0,0,.5)}

/* sliding sidebar nav indicator (a living highlight, not a hard swap) */
.nav-indicator{position:absolute;left:6px;right:6px;top:0;height:0;background:linear-gradient(120deg,var(--g8),var(--g7));border-radius:11px;opacity:0;transition:transform .34s cubic-bezier(.65,0,.35,1),height .34s cubic-bezier(.65,0,.35,1),opacity .25s;z-index:0;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(30,92,58,.06)}
.nav-item{z-index:1}

/* subtle perpetual Ken Burns drift on hero + carousel photography */
.carousel-slide img,.hero-carousel img{animation:kenBurns 14s ease-in-out infinite alternate}
@keyframes kenBurns{from{transform:scale(1)}to{transform:scale(1.055)}}

@media (prefers-reduced-motion:reduce){
  .ambient-blobs span,.login-seal-slot,.carousel-slide img,.hero-carousel img{animation:none!important}
  #ambient-particles{display:none}
}
