:root{--cream:#fbf7ec;--paper:#fffdf8;--teal-deep:#073b36;--teal:#0d5c53;--teal-soft:#e7f1ee;--gold:#c9a227;--gold-soft:#f1e4b8;--ink:#16231f;--muted:#596b65;--line:#e2d9c4;--maroon:#8c3b2e;--good:#2f7a52;--shadow:0 20px 55px -32px rgba(7,59,54,.55)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(900px 520px at 90% -20%,rgba(201,162,39,.16),transparent 60%),radial-gradient(900px 520px at -10% 5%,rgba(13,92,83,.13),transparent 60%),var(--cream);font-family:Inter,system-ui,sans-serif;color:var(--ink)}a{text-decoration:none;color:inherit}.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--teal-deep),#052622);color:#eaf3f0;padding:22px 16px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;gap:12px;align-items:center}.brand.big{margin-bottom:32px}.brand-mark{width:42px;height:42px;border-radius:15px;background:linear-gradient(145deg,var(--gold),#f5ddb0);display:grid;place-items:center;color:#06312d;font-family:Amiri,serif;font-weight:700;font-size:26px}.brand b{font-family:Amiri,serif;font-size:20px;display:block}.brand span{font-size:11px;text-transform:uppercase;letter-spacing:1.2px;color:#eadcae}.masjid-mini{margin:18px 0;padding:13px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(255,255,255,.06)}.masjid-mini strong{display:block;font-family:Amiri,serif}.masjid-mini small{color:#b7d1ca}.nav{display:flex;flex-direction:column;gap:3px}.nav a{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;color:#cfe3de;font-size:13px}.nav a:hover,.nav a.active{background:rgba(201,162,39,.16);color:#fbeec8}.nav a.locked{opacity:.36;cursor:not-allowed}.nav-sep{margin:14px 8px 6px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1);font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:#8db1a8;font-weight:800}.main{padding:28px 34px 60px;max-width:1500px}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:22px}.topbar h1{font-family:Amiri,serif;font-size:34px;margin:0;color:var(--teal-deep)}.topbar p{margin:4px 0 0;color:var(--muted)}.top-actions{display:flex;gap:10px;align-items:center}.user-chip{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:9px 13px;box-shadow:var(--shadow)}.user-chip span,.user-chip b{display:block;font-size:12px}.user-chip b{color:var(--teal)}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:11px;background:var(--paper);padding:10px 14px;font-weight:800;font-size:13px;cursor:pointer;color:var(--teal-deep)}.btn.primary{background:var(--teal-deep);border-color:var(--teal-deep);color:#f7eac5}.btn.ghost{background:transparent}.btn.small{padding:7px 10px;font-size:12px}.btn.full{width:100%;margin-top:14px}.alert{padding:12px 14px;border-radius:12px;margin-bottom:14px;background:var(--teal-soft);border:1px solid var(--teal);color:var(--teal-deep)}.alert.danger{background:#f9e8e4;border-color:#e2afa4;color:var(--maroon)}.alert.success{background:#e5f2e9;border-color:#aad2b9;color:#1f6544}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.kpi{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:var(--shadow);position:relative;overflow:hidden}.kpi:before{content:"";position:absolute;inset:auto -30px -45px auto;width:120px;height:120px;border-radius:50%;background:rgba(201,162,39,.13)}.kpi span{font-size:11px;text-transform:uppercase;font-weight:900;color:var(--muted);letter-spacing:.7px}.kpi b{display:block;font-family:JetBrains Mono,monospace;font-size:24px;color:var(--teal-deep);margin:10px 0 4px}.kpi small{color:var(--muted)}.grid{display:grid;gap:18px;margin-bottom:18px}.grid.two{grid-template-columns:1fr 1fr}.grid.form-grid{grid-template-columns:420px minmax(0,1fr)}.card{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:var(--shadow)}.card-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:15px}.card-head h3{font-family:Amiri,serif;font-size:22px;margin:0;color:var(--teal-deep)}.tag,.pill{font-size:11px;font-weight:900;border-radius:999px;padding:5px 10px;background:var(--teal-soft);color:var(--teal)}.module-hero{display:flex;justify-content:space-between;gap:20px;align-items:center;background:linear-gradient(135deg,var(--teal-deep),#0b4b44);color:#fff;border-radius:28px;padding:28px;margin-bottom:18px;box-shadow:var(--shadow);overflow:hidden;position:relative}.module-hero:after{content:"";position:absolute;right:-70px;top:-70px;width:220px;height:220px;border:32px solid rgba(201,162,39,.18);border-radius:50%}.module-hero span{text-transform:uppercase;letter-spacing:1.2px;font-size:11px;color:#efdca6;font-weight:900}.module-hero h2{font-family:Amiri,serif;font-size:32px;margin:5px 0}.module-hero p{max-width:760px;color:#d8e8e4}.hero-stats{display:grid;grid-template-columns:1fr;gap:4px;text-align:right;z-index:1}.hero-stats b{font-family:JetBrains Mono,monospace;font-size:22px;color:#f5df9f}.hero-stats small{color:#b9d4ce}.data-form{display:grid;gap:12px}.data-form.settings{grid-template-columns:1fr 1fr}.field span,form label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;font-weight:900;color:var(--muted);display:block;margin-bottom:6px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:#fffdf9;font-family:Inter,sans-serif;color:var(--ink)}textarea{resize:vertical}.inline-form{display:flex;gap:10px;align-items:end}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);border-bottom:1px solid var(--line);padding:0 10px 10px}td{border-bottom:1px solid var(--line);padding:11px 10px;vertical-align:top}tr:hover td{background:#f7f0df}.money{font-family:JetBrains Mono,monospace;font-weight:800;color:var(--teal-deep);white-space:nowrap}.checklist{display:grid;gap:10px}.checklist>div{padding:12px;border:1px solid var(--line);border-radius:14px;background:#f7f0df}.checklist b{display:block;color:var(--teal-deep)}.checklist span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.checklist .ok{border-left:4px solid var(--good)}.checklist .warn{border-left:4px solid var(--maroon)}.action-list{display:grid;gap:8px}.action-list a{padding:12px;border-radius:13px;background:var(--teal-soft);color:var(--teal-deep);font-weight:800}.module-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.module-card{background:#f7f0df;border:1px solid var(--line);border-radius:16px;padding:14px;display:grid;gap:5px}.module-card:hover{border-color:var(--gold);transform:translateY(-1px)}.module-card span{font-size:23px}.module-card b{color:var(--teal-deep)}.module-card small{color:var(--muted)}.ladder p{display:flex;justify-content:space-between;background:#f7f0df;border-radius:13px;padding:11px 13px}.muted{color:var(--muted);line-height:1.7}.footer-note{margin-top:24px;color:var(--muted);font-size:12px}.login-body{min-height:100vh;background:linear-gradient(135deg,var(--teal-deep),#041f1c);display:grid;place-items:center;padding:22px}.login-wrap{display:grid;grid-template-columns:1.2fr 420px;max-width:1120px;width:100%;gap:24px;align-items:center}.login-hero{color:#fff}.login-hero h1{font-family:Amiri,serif;font-size:54px;line-height:1;margin:0 0 15px}.login-hero p{color:#d0e5e0;font-size:17px;line-height:1.8}.login-card{background:var(--paper);border:1px solid rgba(255,255,255,.4);border-radius:28px;padding:28px;box-shadow:0 35px 80px -40px #000}.login-card h2{font-family:Amiri,serif;font-size:30px;margin:0 0 18px;color:var(--teal-deep)}.demo-logins{display:grid;gap:6px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);border-radius:18px;padding:16px;max-width:420px}.demo-logins span,.demo-logins small{color:#f5df9f}.install-link{display:block;margin-top:12px;text-align:center;color:var(--teal);font-size:13px;font-weight:800}.installer{max-width:620px;width:100%}.installer h1{font-family:Amiri,serif;color:#fff;font-size:42px}.install-note{margin-top:13px;color:#d8e8e4}.login-card.install{max-width:520px}@media(max-width:1100px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.nav{display:grid;grid-template-columns:repeat(2,1fr)}.kpi-grid,.grid.two,.grid.form-grid,.login-wrap{grid-template-columns:1fr}.module-grid{grid-template-columns:repeat(2,1fr)}.data-form.settings{grid-template-columns:1fr}}@media(max-width:680px){.main{padding:18px}.topbar{display:block}.top-actions{margin-top:13px}.kpi-grid,.module-grid{grid-template-columns:1fr}.nav{grid-template-columns:1fr}.login-hero h1{font-size:38px}}@media print{.sidebar,.topbar,.module-hero,.data-form,.footer-note,.btn{display:none!important}.app-shell{display:block}.main{padding:0}.card{box-shadow:none;border:0}body{background:#fff}}

/* ===== NexusMasjidPro v2.1 period filter + minute template ===== */
.dashboard-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;background:rgba(255,253,248,.72);border:1px solid var(--line);border-radius:22px;padding:18px 20px;box-shadow:var(--shadow);backdrop-filter:blur(8px)}
.dashboard-toolbar h2{font-family:Amiri,serif;font-size:26px;color:var(--teal-deep);margin:0}.dashboard-toolbar p{margin:3px 0 0;color:var(--muted);font-size:13px}.period-form{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.period-select{width:auto;min-width:132px;border:1px solid var(--line);background:var(--paper);box-shadow:0 10px 26px -22px rgba(7,59,54,.55);font-weight:800;color:var(--ink);height:43px}.month-select{min-width:150px}.year-select{min-width:134px}.statement-btn{height:43px;gap:8px;white-space:nowrap;border-radius:11px}.download-icon{font-size:16px;line-height:1;color:#f7eac5}.period-help{margin:12px 0 0}.kpi-grid.secondary .kpi{padding:17px 18px}.kpi-grid.secondary .kpi b{font-size:21px}.template-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.minute-template-cta{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.minute-template-cta h3{font-family:Amiri,serif;color:var(--teal-deep);margin:0 0 3px;font-size:22px}.minute-template-cta p{margin:0;color:var(--muted)}.inline-field{min-width:360px;flex:1}.settings-divider{grid-column:1/-1;margin-top:8px;padding-top:18px;border-top:1px solid var(--line)}.settings-divider h3{font-family:Amiri,serif;color:var(--teal-deep);font-size:22px;margin:0 0 4px}.settings-divider p{margin:0;color:var(--muted)}.letterhead-field{grid-column:1/-1}.letterhead-guideline{grid-column:1/-1;border:1px dashed var(--gold);background:var(--gold-soft);border-radius:14px;padding:13px 15px;color:#71560d;display:grid;gap:4px;font-size:12.5px}.letterhead-guideline b{font-size:13px}.letterhead-preview{grid-column:1/-1;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;gap:10px}.letterhead-preview>span{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:900}.letterhead-preview img{width:100%;max-height:170px;object-fit:contain;border:1px solid var(--line);border-radius:10px;background:#fff}.letterhead-preview.empty{background:var(--teal-soft);color:var(--teal-deep)}.remove-check{display:flex!important;gap:8px;align-items:center;margin:0!important;text-transform:none!important;letter-spacing:0!important;color:var(--muted)!important;font-size:13px!important}.remove-check input{width:auto}.settings-actions{grid-column:1/-1;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.minute-paper{background:#fff;color:#111;width:min(100%,210mm);min-height:297mm;margin:0 auto 24px;padding:14mm 16mm;border:1px solid #ddd;box-shadow:0 20px 60px -35px rgba(0,0,0,.35);font-family:Inter,Arial,sans-serif}.letterhead-box{width:100%;min-height:38mm;margin-bottom:10mm;display:flex;align-items:flex-start;justify-content:center;border-bottom:1px solid #d8d8d8;padding-bottom:6mm}.letterhead-box img{width:100%;height:auto;max-height:45mm;object-fit:contain}.letterhead-placeholder{text-align:center;line-height:1.5;width:100%;padding:8mm 0}.letterhead-placeholder strong{display:block;font-size:20px;text-transform:uppercase;color:#073b36}.letterhead-placeholder span{display:block;font-size:12px;color:#333}.minute-title{text-align:center;font-size:18px;letter-spacing:.3px;text-transform:uppercase;margin:0 0 3px;color:#111}.minute-subtitle{text-align:center;font-size:14px;letter-spacing:.2px;text-transform:uppercase;margin:0 0 9mm;color:#333}.minute-meta{width:100%;border-collapse:collapse;margin-bottom:8mm}.minute-meta th,.minute-meta td{border:1px solid #333;padding:7px 9px;font-size:12px}.minute-meta th{width:18%;background:#f2f2f2;color:#111}.minute-section{margin:0 0 7mm}.minute-section h4{font-size:13px;text-transform:uppercase;margin:0 0 8px;border-bottom:1px solid #333;padding-bottom:4px}.minute-section p,.preline{font-size:12.5px;line-height:1.75;color:#111;white-space:pre-line}.minute-actions-table{width:100%;border-collapse:collapse}.minute-actions-table th,.minute-actions-table td{border:1px solid #333;padding:8px;font-size:12px}.minute-actions-table th{background:#f2f2f2;color:#111}.minute-signatures{display:grid;grid-template-columns:1fr 1fr;gap:28mm;margin-top:18mm}.minute-signatures>div{text-align:center;font-size:12px}.sign-line{height:22mm;border-bottom:1px solid #111;margin-bottom:5px}.minute-signatures strong,.minute-signatures span{display:block}.no-print{ }@media print{body{background:#fff}.sidebar,.topbar,.no-print,.alert{display:none!important}.app-shell{display:block}.main{padding:0;max-width:none}.card:not(.minute-paper){box-shadow:none}.minute-paper{width:210mm;min-height:297mm;margin:0;padding:13mm 15mm;border:0;box-shadow:none}.letterhead-box{min-height:35mm}.letterhead-box img{max-height:45mm}a[href]:after{content:""}}@media(max-width:980px){.dashboard-toolbar{align-items:flex-start;flex-direction:column}.period-form{width:100%}.period-select,.statement-btn{flex:1;min-width:150px}.minute-template-cta{align-items:flex-start;flex-direction:column}.grid.form-grid{grid-template-columns:1fr}.data-form.settings{grid-template-columns:1fr}.inline-field{min-width:100%}}@media(max-width:640px){.period-form{display:grid;grid-template-columns:1fr}.period-select,.statement-btn{width:100%;min-width:0}.minute-paper{padding:18px;min-height:auto}.minute-meta th,.minute-meta td{font-size:11px;padding:6px}.minute-signatures{gap:18px}}

/* ===== NexusMasjidPro v2.2 Setiausaha Pro ===== */
.su-hero{background:linear-gradient(135deg,var(--teal-deep),#062723);color:#fff;border-radius:26px;padding:28px;margin-bottom:18px;display:flex;justify-content:space-between;gap:20px;align-items:center;position:relative;overflow:hidden;box-shadow:var(--shadow)}
.su-hero:after{content:"";position:absolute;right:-70px;bottom:-80px;width:260px;height:260px;border:38px solid rgba(201,162,39,.16);border-radius:50%}.su-hero span{font-size:11px;text-transform:uppercase;letter-spacing:1.3px;color:#ecd99b;font-weight:900}.su-hero h2{font-family:Amiri,serif;font-size:36px;line-height:1;margin:5px 0 8px}.su-hero p{max-width:720px;color:#d6e8e3;margin:0;line-height:1.7}.su-actions{display:flex;gap:10px;flex-wrap:wrap;z-index:1}.secretary-quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.secretary-quick{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow);display:grid;gap:7px}.secretary-quick:hover{border-color:var(--gold);transform:translateY(-2px)}.secretary-quick span{width:34px;height:34px;border-radius:12px;background:var(--teal-deep);color:#f4e6bd;display:grid;place-items:center;font-weight:900}.secretary-quick b{font-size:15px;color:var(--teal-deep)}.secretary-quick small{color:var(--muted);line-height:1.5}.task-list{display:grid;gap:10px}.task-item{border:1px solid var(--line);border-left:4px solid var(--gold);background:#fffdf8;border-radius:14px;padding:12px}.task-item b{display:block;color:var(--teal-deep)}.task-item span{display:block;color:var(--muted);font-size:12px;margin:3px 0}.task-item em{font-style:normal;font-size:11px;font-weight:900;border-radius:999px;padding:4px 9px;background:var(--teal-soft);color:var(--teal-deep)}.su-warning{border-left:5px solid var(--maroon)}.secretary-form{grid-template-columns:1fr 1fr}.secretary-form .full,.field.full,.letter-helper.full{grid-column:1/-1}.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;border:1px solid var(--line);border-radius:14px;padding:13px;background:#fffdf8}.check-grid label{font-size:12.5px;text-transform:none;letter-spacing:0;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:8px;margin:0}.check-grid input{width:auto}.form-section-title{grid-column:1/-1;font-family:Amiri,serif;color:var(--teal-deep);font-size:23px;margin:16px 0 0;border-top:1px solid var(--line);padding-top:16px}.attendance-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.att-card{background:#fffdf8;border:1px solid var(--line);border-radius:14px;padding:13px;display:grid;gap:7px}.att-card b{color:var(--teal-deep)}.att-card small{color:var(--muted)}.agenda-minute-box{grid-column:1/-1;background:#fffdf8;border:1px solid var(--line);border-radius:18px;padding:16px;display:grid;gap:10px}.agenda-minute-box h4{margin:0;color:var(--teal-deep);font-size:16px}.task-row{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.35fr 1fr .8fr .85fr 1fr;gap:8px;margin-bottom:8px;background:#f7f0df;border:1px solid var(--line);border-radius:14px;padding:10px}.inline-mini{display:grid;grid-template-columns:130px 1fr auto;gap:8px;align-items:center}.letter-paper{background:#fff;color:#111;width:min(100%,210mm);min-height:297mm;margin:0 auto 24px;padding:14mm 16mm;border:1px solid #ddd;box-shadow:0 20px 60px -35px rgba(0,0,0,.35);font-family:Inter,Arial,sans-serif}.official-letter h3,.letter-paper h3{font-size:15px;margin:8mm 0 5mm;text-transform:uppercase;color:#111}.letter-date{text-align:right;margin:0 0 8mm;font-size:12px}.letter-meta-line{display:flex;justify-content:space-between;font-size:12px;margin:0 0 8mm}.recipient-block{font-size:12.5px;line-height:1.7}.letter-sign{margin-top:14mm;font-size:12.5px}.letter-sign div{height:20mm}.letter-sign b,.letter-sign small,.letter-sign span{display:block}.letter-helper{background:var(--teal-soft);border:1px dashed var(--teal);color:var(--teal-deep);border-radius:14px;padding:12px;font-size:13px}.template-chip-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.chip{display:inline-flex;background:#f7f0df;border:1px solid var(--line);border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;color:var(--teal-deep)}.letter-template-switch{margin-bottom:18px}@media(max-width:1150px){.secretary-quick-grid{grid-template-columns:repeat(2,1fr)}.attendance-grid{grid-template-columns:1fr 1fr}.task-row{grid-template-columns:1fr 1fr}.su-hero{align-items:flex-start;flex-direction:column}}@media(max-width:720px){.secretary-quick-grid,.secretary-form,.attendance-grid,.check-grid{grid-template-columns:1fr}.task-row{grid-template-columns:1fr}.inline-mini{grid-template-columns:1fr}.letter-paper{min-height:auto;padding:18px}.letter-meta-line{display:block}.su-hero h2{font-size:30px}}@media print{.letter-paper{width:210mm;min-height:297mm;margin:0;padding:13mm 15mm;border:0;box-shadow:none}.letter-paper.official-letter{width:210mm;min-height:297mm}.su-hero,.secretary-quick-grid{display:none!important}}
