/* SIMANIS design system — visual reference: SIKETAPANG/styles.css */
:root {
  --primary:#145c39; --primary-2:#1c7a4a; --accent:#25b96b; --lime:#a9d95f;
  --bg:#f4f7f5; --surface:#ffffff; --surface-soft:#f8faf9; --surface-green:#edf7f1;
  --text:#18221d; --muted:#718078; --line:#e4ebe7;
  --danger:#dc4a47; --warning:#e4a92b; --orange:#ef792f; --info:#338fd2;
  --shadow:0 12px 36px rgba(30,66,46,.08); --shadow-soft:0 7px 22px rgba(29,59,41,.04);
  --radius:18px; --radius-md:14px; --radius-sm:10px; --sidebar:252px;
  --green-dark:var(--primary); --green-dark-2:var(--primary-2); --green-main:var(--primary);
  --green-main-hover:var(--primary-2); --green-mid:#7eb393;
  --green-light:var(--surface-green); --green-light-2:#d9edde;
  --cream:var(--bg); --cream-2:#e9efeb; --white:var(--surface);
  --ink:var(--text); --ink-soft:#637369; --yellow:#a66e00; --yellow-bg:#fff3d5;
  --red:#c7413f; --red-bg:#fdebea; --green-ok:#20804b; --green-ok-bg:#e8f7ee;
}
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    font-family:'DM Sans',sans-serif;
    background:var(--cream);
    color:var(--ink);
    min-height:100vh;
  }
  h1,h2,h3,.brand{font-family:'Manrope',sans-serif;}
  .hidden{display:none !important;}
  button{font-family:inherit;cursor:pointer;}
  input,select,textarea{font-family:inherit;}

  /* ===== Leaf motif (signature element) ===== */
  .leaf-rule{
    display:flex;align-items:center;gap:8px;
  }
  .leaf-rule svg{flex:none;}
  .leaf-rule .line{flex:1;height:1px;background:linear-gradient(90deg, var(--green-mid), transparent);}

  /* ===== LOGIN PAGE ===== */
  #loginPage{
    min-height:100vh;
    display:flex;
    background:var(--white);
  }
  .login-left{
    flex:1.1;
    background-color:var(--green-dark);
    background:
      linear-gradient(180deg, rgba(0,0,0,0.58) 0%, rgba(0,0,0,0.16) 40%, rgba(0,0,0,0.76) 100%),
      url("../images/WhatsApp Image 2026-09-07 at 08.23.30.jpeg") center 60% / cover no-repeat;
    color:var(--white);
    position:relative;
    padding:56px 56px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    overflow:hidden;
  }
  .login-left .brandmark{display:flex;align-items:center;gap:12px;}
  .login-left .brandmark .logo-badge{
    width:60px;height:60px;border-radius:12px;background:var(--green-light);
    display:flex;align-items:center;justify-content:center;font-size:22px;flex:0 0 60px;
  }
  .login-left .brandmark .logo-badge img{width:48px;height:48px;max-width:none;object-fit:contain;}
  .login-left .brand{display:flex;flex-direction:column;align-items:flex-start;min-width:0;}
  .login-left .brand-title{font-family:'Manrope',sans-serif;font-size:27px;line-height:1.1;font-weight:700;letter-spacing:0.3px;}
  .login-left .brand-subtitle{display:block;margin-top:5px;max-width:540px;font-family:'DM Sans',sans-serif;font-size:12px;line-height:1.4;font-weight:500;color:var(--green-light-2);letter-spacing:0;}
  .login-left .tagline{font-size:13px;color:var(--green-light-2);letter-spacing:0.4px;text-transform:uppercase;margin-top:2px;}
  .login-hero{margin-top:auto;position:relative;z-index:2;}
  .login-hero h1{font-size:38px;line-height:1.15;margin:0 0 14px;font-weight:600;}
  .login-hero p{font-size:15px;line-height:1.6;color:var(--green-light-2);max-width:380px;margin:0;}
  .login-stats{display:flex;gap:28px;margin-top:34px;position:relative;z-index:2;}
  .login-stats div{border-left:2px solid rgba(255,255,255,0.25);padding-left:12px;}
  .login-stats .num{font-family:'Manrope',sans-serif;font-size:22px;font-weight:600;}
  .login-stats .lbl{font-size:11.5px;color:var(--green-light-2);text-transform:uppercase;letter-spacing:0.4px;}

  .login-right{
    flex:0.9;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:40px;
    background:var(--white);
  }
  .login-card{width:100%;max-width:380px;}
  .login-card .eyebrow{color:var(--green-main);font-size:12.5px;font-weight:600;letter-spacing:0.6px;text-transform:uppercase;margin-bottom:6px;}
  .login-card h2{font-size:26px;margin:0 0 6px;color:var(--ink);}
  .login-card .sub{color:var(--ink-soft);font-size:14px;margin-bottom:30px;}
  .field{margin-bottom:18px;}
  .field label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:6px;}
  .field input, .field select, .field textarea{
    width:100%;padding:12px 14px;border-radius:10px;border:1.5px solid var(--line);
    background:var(--green-light);font-size:14.5px;color:var(--ink);outline:none;
    transition:border-color .15s;
  }
  .field input:focus, .field select:focus, .field textarea:focus{border-color:var(--green-main);}
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    padding:12px 20px;border-radius:10px;border:none;font-size:14.5px;font-weight:600;
    transition:background .15s, transform .1s;
  }
  .btn:active{transform:scale(0.98);}
  .btn-primary{background:var(--green-main);color:var(--white);width:100%;}
  .btn-primary:hover{background:var(--green-main-hover);}
  .btn-outline{background:transparent;color:var(--green-main);border:1.5px solid var(--green-main);}
  .btn-outline:hover{background:var(--green-light);}
  .btn-danger-outline{background:transparent;color:var(--red);border:1.5px solid var(--red);}
  .btn-danger-outline:hover{background:var(--red-bg);}
  .btn-ghost{background:transparent;color:var(--ink-soft);}
  .btn-sm{padding:7px 12px;font-size:13px;border-radius:8px;}
  .login-demo{margin-top:22px;padding:14px 16px;background:var(--cream);border-radius:10px;font-size:12.5px;color:var(--ink-soft);line-height:1.7;}
  .login-demo b{color:var(--ink);}
  .login-error{background:var(--red-bg);color:var(--red);border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:16px;display:none;}

  /* ===== APP SHELL ===== */
  #appPage{display:flex;min-height:100vh;}
  .sidebar{
    width:236px;flex:none;background:var(--green-dark);color:var(--white);
    display:flex;flex-direction:column;padding:24px 16px;position:sticky;top:0;height:100vh;
    overflow:hidden;
  }
  .sidebar .brandmark{display:flex;align-items:center;gap:10px;padding:0 8px 22px;border-bottom:1px solid rgba(255,255,255,0.12);margin-bottom:18px;flex:none;}
  #navContainer{
    flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;
    scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.25) transparent;
  }
  #navContainer::-webkit-scrollbar{width:6px;}
  #navContainer::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.22);border-radius:100px;}
  #navContainer::-webkit-scrollbar-track{background:transparent;}
  .sidebar .logo-badge{width:36px;height:36px;border-radius:10px;background:var(--green-light);display:flex;align-items:center;justify-content:center;font-size:18px;flex:none;}
  .sidebar .brand{font-size:16.5px;font-weight:700;line-height:1.2;}
  .sidebar .brand small{display:block;font-size:10px;font-weight:400;color:var(--green-light-2);text-transform:uppercase;letter-spacing:0.5px;}
  .nav-item{
    display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:10px;color:var(--green-light-2);
    font-size:14px;font-weight:500;cursor:pointer;margin-bottom:2px;transition:background .12s,color .12s;
    border:none;background:none;width:100%;text-align:left;
  }
  .nav-item .ic{font-size:16px;width:20px;text-align:center;}
  .nav-item:hover{background:rgba(255,255,255,0.06);color:var(--white);}
  .nav-item.active{background:var(--green-main);color:var(--white);}
  .sidebar-footer{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,0.12);flex:none;}
  .sidebar-user{display:flex;align-items:center;gap:10px;padding:8px 6px 14px;}
  .sidebar-user>div:last-child{min-width:0;}
  .sidebar-user .av{box-sizing:border-box;width:34px!important;height:34px!important;min-width:34px!important;max-width:34px!important;min-height:34px!important;max-height:34px!important;flex:0 0 34px!important;flex-shrink:0!important;aspect-ratio:1/1;border-radius:999px;background:var(--green-light);display:flex;align-items:center;justify-content:center;padding:0;overflow:hidden;line-height:1;font-size:17px;}
  .sidebar-user .nm{font-size:13px;font-weight:600;color:var(--white);line-height:1.2;}
  .sidebar-user .rl{font-size:11px;color:var(--green-light-2);}

  .main{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--cream);}
  .topbar{
    display:flex;align-items:center;justify-content:space-between;
    padding:18px 32px;background:var(--white);border-bottom:1px solid var(--line);
  }
  .topbar h1{font-size:19px;margin:0;color:var(--ink);font-weight:600;}
  .topbar .crumb{font-size:12.5px;color:var(--ink-soft);margin-top:2px;}
  .content{padding:28px 32px 60px;flex:1;}

  .stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-bottom:26px;}
  .stat-card{
    background:var(--white);border-radius:var(--radius);padding:20px 20px;box-shadow:var(--shadow);
    border-left:4px solid var(--green-main);position:relative;overflow:hidden;
  }
  .stat-card .stat-num{font-family:'Manrope',sans-serif;font-size:30px;font-weight:600;color:var(--ink);}
  .stat-card .stat-lbl{font-size:13px;color:var(--ink-soft);margin-top:4px;}
  .stat-card.yellow{border-left-color:var(--yellow);}
  .stat-card.red{border-left-color:var(--red);}
  .stat-card .stat-ic{position:absolute;right:16px;top:16px;font-size:22px;opacity:0.35;}

  .panel{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 24px;margin-bottom:22px;}
  .panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px;}
  .panel-head h3{margin:0;font-size:16.5px;color:var(--ink);font-weight:600;}

  .cta-big{
    display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
    background:var(--green-main);color:var(--white);border:none;border-radius:14px;
    padding:18px;font-size:16px;font-weight:600;margin-bottom:26px;box-shadow:var(--shadow);
  }
  .cta-big:hover{background:var(--green-main-hover);}

  table{width:100%;border-collapse:collapse;font-size:13.5px;}
  thead th{
    text-align:left;font-size:11.5px;letter-spacing:0.4px;text-transform:uppercase;color:var(--ink-soft);
    padding:10px 12px;border-bottom:1.5px solid var(--line);font-weight:600;
  }
  tbody td{padding:13px 12px;border-bottom:1px solid var(--line);color:var(--ink);vertical-align:middle;}
  tbody tr:hover{background:var(--green-light);}
  tbody tr:last-child td{border-bottom:none;}

  .badge{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:100px;font-size:12px;font-weight:600;white-space:nowrap;}
  .badge-yellow{background:var(--yellow-bg);color:var(--yellow);}
  .badge-green{background:var(--green-ok-bg);color:var(--green-ok);}
  .badge-red{background:var(--red-bg);color:var(--red);}

  .empty-state{text-align:center;padding:40px 20px;color:var(--ink-soft);}
  .empty-state .ic{font-size:32px;margin-bottom:8px;}

  .filters-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px;}
  .filters-row input, .filters-row select{
    padding:9px 12px;border-radius:8px;border:1.5px solid var(--line);background:var(--white);font-size:13.5px;color:var(--ink);
  }
  .filters-row input:focus, .filters-row select:focus{outline:none;border-color:var(--green-main);}

  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;}
  .form-grid .full{grid-column:1/-1;}
  .section-label{
    display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--green-main);
    text-transform:uppercase;letter-spacing:0.4px;margin:26px 0 14px;
  }
  .section-label:first-child{margin-top:4px;}
  .upload-box{
    border:1.5px dashed var(--green-mid);border-radius:12px;padding:26px;text-align:center;background:var(--green-light);color:var(--ink-soft);font-size:13.5px;
  }
  .upload-box .ic{font-size:26px;display:block;margin-bottom:8px;}
  .form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line);}

  .modal-overlay{
    position:fixed;inset:0;background:rgba(18,53,36,0.45);display:flex;align-items:flex-start;justify-content:center;
    padding:40px 20px;overflow-y:auto;z-index:100;
  }
  .modal{background:var(--white);border-radius:16px;max-width:640px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,0.25);}
  .modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--line);}
  .modal-head h3{margin:0;font-size:17px;}
  .modal-body{padding:22px 24px;max-height:60vh;overflow-y:auto;}
  .modal-foot{padding:16px 24px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px;}
  .modal-close{background:none;border:none;font-size:20px;color:var(--ink-soft);}

  .detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;margin-bottom:18px;}
  .detail-item .lbl{font-size:11.5px;text-transform:uppercase;color:var(--ink-soft);letter-spacing:0.3px;margin-bottom:3px;}
  .detail-item .val{font-size:14px;color:var(--ink);font-weight:500;}
  .detail-block{margin-bottom:16px;}
  .detail-block .lbl{font-size:11.5px;text-transform:uppercase;color:var(--ink-soft);letter-spacing:0.3px;margin-bottom:5px;}
  .detail-block .val{font-size:14px;color:var(--ink);line-height:1.6;}
  .divider{height:1px;background:var(--line);margin:18px 0;}
  .note-box{background:var(--red-bg);border-radius:10px;padding:12px 14px;font-size:13.5px;color:var(--red);margin-top:6px;}
  .note-box-green{background:var(--green-light);border-radius:10px;padding:12px 14px;font-size:13.5px;color:var(--ink);}

  .profile-card{display:flex;gap:24px;align-items:center;}
  .profile-card .av-lg{width:90px;height:90px;border-radius:50%;background:var(--green-light);display:flex;align-items:center;justify-content:center;font-size:42px;flex:none;}
  .profile-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px;}

  .toast{
    position:fixed;bottom:26px;right:26px;background:var(--green-dark);color:var(--white);
    padding:14px 20px;border-radius:10px;font-size:13.5px;box-shadow:var(--shadow);z-index:200;
    display:flex;align-items:center;gap:10px;opacity:0;transform:translateY(10px);transition:all .25s;
  }
  .toast.show{opacity:1;transform:translateY(0);}

  @media (max-width: 900px){
    .login-left{display:none;}
    .sidebar{position:fixed;left:-260px;transition:left .2s;z-index:50;}
    .sidebar.open{left:0;}
    .form-grid{grid-template-columns:1fr;}
    .detail-grid{grid-template-columns:1fr;}
    .content{padding:20px 16px 50px;}
    .topbar{padding:14px 16px;}
  }
.logo-badge {
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: white;
    border-radius: 10px;
}

.logo-badge img {
    width: 60px;
    height: 60px;
    object-fit: contain;
}
.login-demo {
    font-size: 8px;
    font-weight: normal;
    text-align: center;
    margin-top: 200px;
    opacity: 0.2;
}
.lapor-login {
    text-align: center;
    margin-top: 15px;
}

.lapor-login a {
    color: #bec7bd;
    font-size: 12px;
    text-decoration: none;
    transition: 0.3s;
}

.lapor-login a:hover {
    color: #2e7d32;
    text-decoration: underline;
}

/* ===== Sidebar: grup menu admin ===== */
.nav-group-label{
  font-size:10.5px;font-weight:700;letter-spacing:0.6px;text-transform:uppercase;
  color:rgba(231,244,234,0.5);padding:14px 14px 6px;
}
.nav-badge{
  margin-left:auto;background:var(--yellow);color:#fff;border-radius:100px;
  font-size:10.5px;font-weight:700;padding:1px 7px;line-height:1.5;
}
.nav-item{justify-content:flex-start;}
.nav-item .nav-badge{margin-left:auto;}

/* ===== Notifikasi bell di topbar ===== */
.notif-bell{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:auto;min-width:38px;height:38px;padding:0 12px;border-radius:10px;background:var(--green-light);
  font-size:12px;font-weight:700;color:var(--green-dark);text-decoration:none;flex:none;
}
.notif-bell:hover{background:var(--green-light-2);}
.notif-dot{
  position:absolute;top:-4px;right:-4px;background:var(--red);color:#fff;
  font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:100px;
  display:flex;align-items:center;justify-content:center;padding:0 3px;line-height:1;
}

/* ===== Tabs (users.html / analitik.html) reuse filters-row + btn ===== */

/* ===== Undangan cards ===== */
.undangan-card{
  border:1.5px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:12px;
  display:flex;gap:14px;align-items:flex-start;position:relative;
}
.undangan-card.unread{border-color:var(--green-main);background:var(--green-light);}
.undangan-ic{font-size:24px;flex:none;}
.undangan-title{font-weight:700;font-size:14.5px;margin-bottom:3px;}
.undangan-meta{font-size:12.5px;color:var(--ink-soft);margin-bottom:6px;}
.undangan-desc{font-size:13.5px;color:var(--ink);line-height:1.5;}
.undangan-new{position:absolute;top:14px;right:16px;background:var(--yellow);color:#fff;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:100px;}

/* ===== Kalender ===== */
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.cal-head h3{margin:0;font-size:17px;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.cal-dow{font-size:11px;text-transform:uppercase;color:var(--ink-soft);text-align:center;padding:4px 0;font-weight:700;}
.cal-cell{
  min-height:74px;border:1px solid var(--line);border-radius:8px;padding:6px;font-size:12px;
  background:var(--white);cursor:default;
}
.cal-cell.empty{background:transparent;border:none;}
.cal-cell.today{border-color:var(--green-main);}
.cal-cell .d{font-weight:600;margin-bottom:4px;}
.cal-cell .cnt{
  display:inline-block;background:var(--green-main);color:#fff;border-radius:100px;
  font-size:10.5px;padding:1px 7px;cursor:pointer;
}
.cal-cell.has-event{background:var(--green-light);}

/* ===== Analitik bar ===== */
.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:13px;}
.bar-lbl{width:170px;flex:none;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bar-track{flex:1;background:var(--cream-2);border-radius:100px;height:14px;overflow:hidden;}
.bar-fill{height:100%;background:var(--green-main);border-radius:100px;}
.bar-val{width:34px;flex:none;text-align:right;font-weight:600;}

/* ===== Log aktivitas ===== */
.log-row{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13.5px;}
.log-row:last-child{border-bottom:none;}
.log-ic{font-size:18px;flex:none;}
.log-time{color:var(--ink-soft);font-size:11.5px;margin-top:2px;}

/* ===== Responsive application shell ===== */
img{max-width:100%;height:auto;}
.sidebar .logo-badge img{width:28px;height:28px;object-fit:contain;}
.sidebar-user .av{font-size:13px;font-weight:700;color:var(--green-dark);}
.mobile-menu-toggle,.sidebar-overlay{display:none;}
.mobile-menu-toggle{
  flex:none;padding:8px 12px;border:1px solid var(--line);border-radius:8px;
  background:var(--white);color:var(--green-dark);font-size:13px;font-weight:700;
}
.table-wrap{
  width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;
  border-radius:8px;
}
.table-wrap table{min-width:720px;}
.content,.panel,.main{min-width:0;max-width:100%;}
.action-row{max-width:100%;}
input,select,textarea,button{max-width:100%;}

@media (max-width: 900px){
  #appPage{width:100%;overflow-x:hidden;}
  .main{width:100%;min-height:100vh;}
  .mobile-menu-toggle{display:inline-flex;align-items:center;justify-content:center;}
  .topbar{position:sticky;top:0;z-index:30;justify-content:flex-start;gap:12px;}
  .sidebar{
    display:flex;left:0;transform:translateX(-105%);width:min(286px,86vw);
    transition:transform .22s ease;z-index:80;box-shadow:12px 0 32px rgba(0,0,0,.18);
  }
  .sidebar.open{left:0;transform:translateX(0);}
  .sidebar-overlay{
    position:fixed;inset:0;border:0;background:rgba(10,30,20,.48);z-index:70;
    width:100%;height:100%;padding:0;
  }
  .sidebar-overlay.show{display:block;}
  body.menu-open{overflow:hidden;}
  .content{width:100%;}
  .panel{width:100%;}
  .calendar-panel{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .calendar-grid{min-width:650px;}
}

@media (max-width: 640px){
  #loginPage{width:100%;max-width:100%;overflow-x:hidden;}
  .login-right{flex:1 1 100%;width:100%;max-width:100vw;min-width:0;padding:28px 20px;min-height:100vh;align-items:center;overflow:hidden;}
  .login-card{width:100%;max-width:calc(100vw - 40px);min-width:0;overflow-wrap:anywhere;}
  .login-card h2{font-size:23px;}
  .login-card .sub{margin-bottom:22px;}
  .login-demo{margin-top:40px;}
  .topbar{padding:12px 14px;}
  .topbar h1{font-size:16px;line-height:1.25;}
  .topbar .crumb{font-size:11px;}
  .content{padding:16px 12px 36px;}
  .panel{padding:17px 15px;margin-bottom:16px;border-radius:12px;}
  .panel-head{align-items:flex-start;}
  .panel-head h3{font-size:15.5px;}
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px;}
  .stat-card{padding:16px 14px;}
  .stat-card .stat-num{font-size:25px;}
  .stat-card .stat-lbl{font-size:12px;}
  .filters-row{flex-direction:column;align-items:stretch !important;}
  .filters-row input,.filters-row select,.filters-row .btn{width:100% !important;min-width:0 !important;}
  .form-grid,.profile-fields{grid-template-columns:1fr;}
  .form-actions,.modal-foot{flex-direction:column-reverse;align-items:stretch;}
  .form-actions .btn,.modal-foot .btn,.invitation-form-actions .btn,.decision-actions .btn{
    width:100% !important;max-width:none !important;flex:1 1 auto !important;
  }
  .decision-actions{align-items:stretch !important;}
  .action-row{width:100%;}
  .action-row .btn{flex:1 1 auto;}
  .detail-grid{grid-template-columns:1fr !important;gap:6px 0;}
  .detail-grid .label{margin-top:9px;}
  .modal-overlay{padding:14px 10px;align-items:center;}
  .modal-head,.modal-body,.modal-foot{padding-left:16px;padding-right:16px;}
  .toast{left:12px;right:12px;bottom:12px;justify-content:center;text-align:center;}
  .profile-card{align-items:flex-start;gap:14px;}
  .profile-card .av-lg{width:64px;height:64px;font-size:24px;}
  .calendar-head{align-items:flex-start;flex-direction:column;}
  .calendar-modal{padding:10px;}
  .calendar-modal-card{padding:16px;max-height:90vh;}
  .permission-list{min-width:180px;}
  .access-check{align-items:flex-start;}
  input[type="file"]{font-size:12px;}
}

@media (max-width: 390px){
  .stat-grid{grid-template-columns:1fr;}
  .mobile-menu-toggle{padding:7px 9px;}
  .topbar{gap:9px;}
  .content{padding-left:10px;padding-right:10px;}
}

/* Shared shell and components. Legacy selectors remain supported. */
body{font-size:14px;background:var(--bg);color:var(--text);overflow-x:hidden}
h1,h2,h3,h4,.brand,.stat-num{font-family:'Manrope',sans-serif}
a{color:var(--primary)}
:focus-visible{outline:3px solid #7eb393;outline-offset:3px}
[hidden]{display:none!important}
.ambient{position:fixed;border-radius:50%;filter:blur(18px);pointer-events:none;z-index:0}
.ambient-one{width:420px;height:420px;background:rgba(54,191,116,.06);right:-160px;top:-140px}
.ambient-two{width:380px;height:380px;background:rgba(176,220,96,.06);left:35%;bottom:-260px}
#appPage{position:relative;isolation:isolate}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);height:100vh;height:100dvh;background:#fbfdfc;color:var(--text);border-right:1px solid var(--line);padding:22px 14px 18px;z-index:80;box-shadow:none}
.sidebar .brandmark{padding:0 8px 20px;gap:10px;border-color:var(--line);margin-bottom:14px;align-items:flex-start}
.sidebar .logo-badge{width:52px;height:64px;flex:0 0 52px;border-radius:0;background:transparent;overflow:visible}
.sidebar .logo-badge img{width:52px;height:64px}
.sidebar .brand{font-size:16px;letter-spacing:-.4px;min-width:0;font-weight:800}
.sidebar .brand small{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-family:'DM Sans',sans-serif;font-size:9px;line-height:1.45;letter-spacing:0;text-transform:none;color:var(--muted);margin-top:5px}
.nav-section{display:flex;flex-direction:column;gap:2px;flex:1;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#d5e2d9 transparent;padding:0 2px 12px}
.nav-group-label{color:var(--muted);font-size:9px;letter-spacing:1.4px;padding:10px 12px 7px}
.nav-item{position:relative;min-height:42px;flex-shrink:0;padding:10px 12px;gap:10px;border-radius:11px;font-size:12px;color:#536159;text-decoration:none;line-height:1.4;margin:0}
.nav-item:hover,.sidebar-profile:hover{background:#f0f6f2;color:var(--primary)}
.nav-item.active,.sidebar-profile.active{background:linear-gradient(100deg,#e9f6ee,#eef8f1);color:var(--primary);font-weight:700}
.nav-item.active:before{content:'';position:absolute;left:-2px;top:10px;width:3px;height:22px;background:var(--primary-2);border-radius:3px}
.nav-icon{width:18px;height:18px;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-count{min-width:18px;height:18px;font-size:9px;background:var(--danger)}
.sidebar-footer{border-top:1px solid var(--line);padding-top:7px;background:transparent}
.sidebar-user{padding:10px 6px;gap:9px}
.sidebar-user .nm{font-size:11px;color:var(--text);overflow-wrap:anywhere}
.sidebar-user .rl,.sidebar-profile .profile-label,.sidebar-profile.active .profile-label{font-size:9px;color:var(--muted)}
.sidebar-profile{margin-bottom:8px;color:var(--text)}
.sidebar-user .av{background:linear-gradient(135deg,#e5f3ea,#c9e8d5);color:var(--primary)}
.sidebar-footer button[type=submit]{color:#bd3f3c}
.agency{text-align:center;margin-top:12px;flex:none}
.agency span{font-size:10px;font-weight:800;letter-spacing:1px;color:#7a887f}
.agency small{display:block;font-size:9px;color:var(--muted);margin-top:2px}
.main{margin-left:var(--sidebar);background:transparent;width:calc(100% - var(--sidebar));min-height:100vh}
.topbar{position:sticky;top:0;z-index:60;min-height:72px;flex-shrink:0;padding:12px 28px;gap:14px;background:rgba(255,255,255,.9);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--line);justify-content:flex-start}
.topbar>div:first-of-type{min-width:0}
.topbar h1{font:800 16px/1.35 'Manrope',sans-serif}
.topbar .crumb{font-size:10px;color:var(--muted);margin-top:4px}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:12px;flex:none}
.date-pill{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid var(--line);background:white;border-radius:9px;font-size:10px;white-space:nowrap}
.date-pill:before{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent)}
.profile-dropdown{position:relative}
.profile-btn{display:flex;align-items:center;gap:9px;border:0;background:transparent;padding:0;text-align:left;color:var(--text)}
.profile-avatar{display:grid;place-items:center;width:36px;height:36px;flex:none;background:linear-gradient(135deg,#145c39,#39a569);border-radius:11px;color:#fff;font-weight:700;overflow:hidden}
.profile-avatar img{width:100%;height:100%;object-fit:cover}
.profile-copy{max-width:150px;min-width:0}
.profile-copy strong,.profile-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.profile-copy small{font-size:9px;color:var(--muted);margin-top:3px}
.profile-menu{position:absolute;top:calc(100% + 14px);right:0;width:220px;max-width:calc(100vw - 28px);padding:7px;background:white;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.profile-menu .nav-item{font-size:12px}
.profile-menu .profile-logout{color:#bd3f3c}
.profile-menu .profile-logout:hover,.profile-menu .profile-logout:focus-visible{color:#a52d2a;background:#fff0ef}
.content,.page-content{padding:27px 30px 38px;width:100%;max-width:1720px;margin:0 auto}
.app-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:18px 30px;color:var(--muted);font-size:9px;border-top:1px solid var(--line)}
.dashboard-hero{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 30px;margin-bottom:22px;border-radius:20px;background:linear-gradient(115deg,#135d39,#247d4d 65%,#52986a);color:white}
.dashboard-hero:after{content:'';position:absolute;right:-65px;top:-100px;width:310px;height:310px;border:45px solid #ffffff0c;border-radius:50%;pointer-events:none}
.dashboard-hero h2{font-size:27px;margin:8px 0 10px;letter-spacing:-.7px;color:white}
.dashboard-hero p{font-size:12px;line-height:1.7;margin:0;max-width:560px;color:#e0f0e6}
.dashboard-hero .eyebrow{font-size:9px;letter-spacing:1.4px;font-weight:700;color:#c8e7d3}
.hero-emblem{display:grid;place-items:center;width:96px;height:110px;background:transparent;border:0;border-radius:0;flex:none}
.hero-emblem img{height:104px;width:88px;object-fit:contain}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}
.eyebrow{font-size:9px;letter-spacing:1.4px;text-transform:uppercase;font-weight:700;color:var(--primary)}
.head-actions{display:flex;gap:8px;flex-wrap:wrap}
.stat-grid,.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}
.stat-card,.kpi-card,.stats .panel{background:white;border:1px solid var(--line);border-radius:16px;padding:15px 16px;box-shadow:var(--shadow-soft);min-height:112px;min-width:0}
.stat-card.yellow,.stat-card.red{border-left-color:var(--line)}
.stat-card.yellow:after,.stat-card.red:after{content:'';position:absolute;right:0;top:22px;bottom:22px;width:3px;border-radius:3px;background:var(--warning)}
.stat-card.red:after{background:var(--danger)}
.stat-card .stat-num,.stat strong{font:800 26px/1.25 'Manrope',sans-serif;margin-top:8px}
.stat-card .stat-lbl{font-size:11px;margin-top:8px;color:var(--muted)}
.stat-card .stat-ic{display:grid;place-items:center;background:var(--surface-green);color:var(--primary);width:34px;height:34px;border-radius:10px;font-size:17px;opacity:1;right:14px;top:15px}
.panel,.chat-card,.chat-list{border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow-soft);min-width:0}
.panel{padding:16px 17px;margin-bottom:20px}
.panel-head h3{font:800 14px/1.5 'Manrope',sans-serif}
.btn{min-height:38px;padding:8px 15px;gap:7px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--primary);font-size:12px;font-weight:600;width:auto;text-decoration:none;transition:background .18s,box-shadow .18s,transform .18s;white-space:normal}
.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-soft);background:var(--surface-green)}
.btn-primary,.btn-danger{background:var(--primary);border-color:var(--primary);color:white}
.btn-primary:hover{background:var(--primary-2);color:white}
.btn-soft{background:var(--surface-green);color:var(--primary);border-color:#deede3}
.btn-outline,.btn.alt{background:white;color:var(--primary);border:1px solid var(--line)}
.btn-danger{background:var(--danger);border-color:var(--danger)}
.btn-danger:hover{background:#c7413f;color:#fff}
.btn-danger-outline,.btn.danger{border:1px solid #f1cfcd;color:var(--red);background:white}
.btn-ghost{border-color:transparent;background:transparent;color:var(--muted)}
.btn-sm,td .btn{min-height:32px;padding:6px 10px;font-size:11px}
.btn:disabled{cursor:wait;opacity:.6;transform:none}
.filters-row,.filter-bar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;padding:12px;background:rgba(255,255,255,.76);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow-soft);margin-bottom:18px}
.filters-row>*{min-width:0}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 16px}
.field,.form-group,.form-field{min-width:0}
.field label,.form-group label,.form-field label{font-size:11px;font-weight:700;color:var(--ink-soft)}
.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea,.form-group input:not([type=checkbox]):not([type=radio]),.form-group select,.form-group textarea,.form-field input,.form-field select,.form-field textarea,.filters-row input,.filters-row select{width:100%;padding:10px 12px;border:1px solid var(--line);background:#fbfdfc;border-radius:9px;color:var(--text);font-size:13px;min-height:40px}
input[type=checkbox],input[type=radio]{accent-color:var(--primary)}
input:focus,select:focus,textarea:focus{border-color:#7eb393!important;box-shadow:0 0 0 3px rgba(31,123,72,.07);background:#fff;outline:none}
textarea{resize:vertical;line-height:1.6}
.form-actions,.action-row,.actions{flex-wrap:wrap;gap:8px}
.upload-box{padding:24px;border:1px dashed #9ac6ab;background:var(--surface-soft);border-radius:12px}
.selected-recipients,.multi-selected{flex-wrap:wrap;min-width:0}
.recipient-chip,.multi-chip{max-width:100%;white-space:normal;overflow-wrap:anywhere;border-radius:8px;background:var(--surface-green);border-color:#dcece2;font-size:11px}
.recipient-chip button,.multi-chip button{flex:none}
table{font-size:12px}
thead th{background:#f8faf9;text-align:left;font-size:9px;letter-spacing:.65px;font-weight:700;padding:10px 15px;border-block:1px solid var(--line)}
tbody td{padding:11px 15px;border-bottom:1px solid #edf1ee;font-size:11px;vertical-align:top;white-space:normal;overflow-wrap:break-word}
tbody tr:hover{background:#fbfdfc}
.table-wrap,.data-table-wrap,[data-table-wrap]{width:100%;max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:12px}
.badge,.status-badge{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:max-content;padding:4px 7px;border-radius:6px;font-size:9px;line-height:1.4;font-weight:700;max-width:none;white-space:nowrap;word-break:normal;overflow-wrap:normal;vertical-align:middle;background:#eef3ef;color:#536159}
.badge-green,.badge-success,.badge.success{background:var(--green-ok-bg);color:var(--green-ok)}
.badge-yellow,.badge-warning,.badge.warning{background:var(--yellow-bg);color:var(--yellow)}
.badge-red,.badge-danger,.danger-badge{background:var(--red-bg);color:var(--red)}
.badge-info{background:#e9f3fb;color:#227bb9}
.detail-item .lbl,.detail-block .lbl,.detail-grid .label{font-size:10px;letter-spacing:.4px;color:var(--muted)}
.detail-item .val,.detail-block .val{font-size:13px;overflow-wrap:anywhere}
.detail-grid{gap:14px 20px}
.modal-overlay,.calendar-modal{background:rgba(18,35,26,.38);backdrop-filter:blur(3px)}
.modal,.calendar-modal-card{border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 70px #153d2d26}
.modal-close,.calendar-modal-close{width:30px;height:30px;border-radius:8px;background:var(--surface-soft)}
.alert{padding:12px 14px;font-size:12px;border:1px solid var(--line);border-radius:11px}
.alert-success{background:#e8f7ee;color:#20804b;border-color:#ceeada}
.alert-error{background:#fdebea;color:#c7413f;border-color:#f5d3d1}
.alert-warning{background:#fff3d5;color:#a66e00;border-color:#f2e1b6}
.chat-head{background:white}.chat-messages{background:var(--bg)}
.chat-bubble{box-shadow:var(--shadow-soft);border:1px solid var(--line)}
.chat-message.mine .chat-bubble{background:var(--surface-green)}
.security-shell{max-width:1100px;margin:38px auto}
.security-head h1{font:800 27px 'Manrope',sans-serif}
/* Login */
.login-body{display:flex;align-items:center;justify-content:center;padding:36px 24px;min-height:100vh;background:var(--bg);isolation:isolate;position:relative}
.login-body::before{content:"";position:fixed;inset:0;background:linear-gradient(#e8f0e6a6,#e8f0e6a6),url("../images/WhatsApp Image 2026-09-07 at 08.23.30.jpeg") center / cover no-repeat;filter:blur(6px);transform:scale(1.05);z-index:-1;pointer-events:none}
#loginPage{width:min(1100px,100%);min-height:650px;border:1px solid var(--line);border-radius:26px;overflow:hidden;box-shadow:0 24px 70px #163b2520}
.login-left{display:flex;flex:1;background:linear-gradient(180deg,rgba(8,25,17,.42),rgba(8,25,17,.18) 38%,rgba(8,25,17,.72)),url("../images/WhatsApp Image 2026-09-07 at 08.23.30.jpeg") center 60% / cover no-repeat;padding:40px;gap:40px}
.login-left .brand-title{font:800 23px 'Manrope',sans-serif}
.login-left .brand-subtitle{font-size:10px;line-height:1.6;max-width:290px}
.login-left .brandmark .logo-badge{width:76px;height:94px;flex-basis:76px;background:transparent;border-radius:0;overflow:visible}
.login-left .brandmark .logo-badge img{width:76px;height:94px}
.login-hero{margin-top:auto}
.login-hero h1{font:800 35px/1.25 'Manrope',sans-serif;letter-spacing:-1px;max-width:390px}
.login-hero p{font-size:13px;line-height:1.8;max-width:340px}
.login-security-note{font-size:10px;color:#c8e7d3;position:relative;z-index:1;margin:0}
.login-right{flex:1;padding:42px;min-width:0}
.login-card{max-width:375px}
.login-card .eyebrow{font-size:10px;letter-spacing:1.6px;margin-bottom:12px}
.login-card h2{font:800 25px/1.4 'Manrope',sans-serif;letter-spacing:-.7px}
.login-card .sub{font-size:12px;line-height:1.7;margin-bottom:26px}
.login-card .field{margin-bottom:18px}
.login-card .btn{width:100%;min-height:43px}
.login-demo{opacity:1;background:transparent;color:var(--muted);font-size:10px;margin-top:24px;padding:0}
.lapor-login{color:var(--muted);font-size:11px;line-height:1.6;margin-top:20px}
/* Responsive */
@media(max-width:1150px){.stat-grid,.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-copy{display:none}.date-pill{font-size:9px}.topbar{padding-inline:22px}.content{padding-inline:22px}}
@media(max-width:900px){
 .sidebar{transform:translateX(-105%);width:min(286px,86vw);transition:transform .22s;box-shadow:12px 0 32px #12352420}
 .sidebar.open{transform:translateX(0)}.main{margin-left:0;width:100%}.topbar{gap:12px}
 .sidebar-close{display:grid;place-items:center;align-self:flex-end;width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--primary);margin-bottom:8px}
 .sidebar-overlay{z-index:70;backdrop-filter:blur(3px)}.top-actions{gap:10px}
 .form-grid,.detail-grid{grid-template-columns:1fr}.login-left{padding:30px}.login-hero h1{font-size:29px}.login-right{padding:30px}
}
@media(min-width:901px){.sidebar-close{display:none}}
@media(max-width:700px){
 .login-body{padding:18px 14px;align-items:flex-start}#loginPage{flex-direction:column;min-height:0;border-radius:20px}
 .login-left{display:flex;flex:auto;padding:24px;gap:18px}.login-left .brand-subtitle{display:none}.login-left .brand-title{font-size:19px}
 .login-hero h1{font-size:23px;max-width:100%;margin-bottom:0}.login-hero p,.login-security-note{display:none}
 .login-right{padding:28px 24px;min-height:0;max-width:100%;width:100%}.login-card{max-width:100%;overflow-wrap:normal}
 .login-card h2{font-size:23px}.login-demo{margin-top:22px}.date-pill{display:none}
}
@media(max-width:640px){
 .content{padding:20px 16px 30px}.topbar{padding:12px 16px;min-height:70px;gap:9px}.topbar h1{font-size:14px}.topbar .crumb{font-size:9px}
 .top-actions{gap:8px}.profile-btn{gap:0}.profile-caret{display:none}.profile-avatar{width:32px;height:32px;border-radius:9px}
 .dashboard-hero{padding:22px;margin-bottom:18px;gap:10px}.dashboard-hero h2{font-size:23px}.dashboard-hero .eyebrow{font-size:8px}.hero-emblem{display:none}
 .stat-grid,.stats{grid-template-columns:1fr;gap:11px}.stat-card{min-height:104px}.panel{padding:16px;border-radius:16px}
 .form-grid,.profile-fields{grid-template-columns:1fr}.page-head{flex-direction:column}.filters-row{padding:10px}.filters-row>*{max-width:100%}
 .chat-bubble{max-width:88%}.app-footer{padding:18px 16px 90px;font-size:9px}.modal{max-width:100%}
 .recipient-chip,.multi-chip{font-size:11px}.form-actions{margin-top:18px}.security-shell{width:calc(100% - 32px)}
 input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.sidebar,.topbar,.ambient,.app-footer,.contact-widget,.sidebar-overlay{display:none!important}.main{margin:0;width:100%}.content{padding:0}.panel,.stat-card{box-shadow:none;break-inside:avoid}body{background:#fff}}

/* Card links keep their labels and numbers free of underlines in every state. */
body a:is(.card,.stat-card,.stat-card-link,.kpi-card,.staff-card,.reminder-card,.secretary-card,.planning-card,.statistics-card,.chat-file-card),
body a:is(.card,.stat-card,.stat-card-link,.kpi-card,.staff-card,.reminder-card,.secretary-card,.planning-card,.statistics-card,.chat-file-card):is(:hover,:focus,:focus-visible,:active,:visited){text-decoration:none}
