/* assets/css/style.css — SPSMS v2 */
:root{--navy:#0a1628;--navy2:#112244;--gold:#c9922a;--gold2:#e8b84b;--gold3:#f5d98c;--cream:#faf6ed;--cream2:#f0e8d5;--text:#1a1a2e;--muted:#6b6b7b;--white:#fff;--shadow:0 4px 24px rgba(10,22,40,.12);--radius:12px;}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Noto Sans Thai',sans-serif;background:var(--cream);color:var(--text);font-size:15px;line-height:1.7;overflow-x:hidden;}
.container{max-width:1200px;margin:0 auto;padding:0 24px;}
a{color:inherit;text-decoration:none;}img{max-width:100%;}

/* TOPBAR */
.topbar{background:var(--navy);color:rgba(255,255,255,.7);font-size:12px;padding:6px 0;border-bottom:1px solid rgba(201,146,42,.3);}
.topbar-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;}
.topbar a{color:var(--gold3);}.topbar a:hover{color:var(--gold2);}

/* HEADER */
.site-header{background:linear-gradient(135deg,var(--navy) 0%,var(--navy2) 100%);position:sticky;top:0;z-index:100;box-shadow:0 2px 20px rgba(10,22,40,.4);}
.header-inner{display:flex;align-items:center;gap:16px;padding:6px 0;}
.logo-area{display:flex;align-items:center;gap:14px;}
.logo-emblem{width:52px;height:52px;background:radial-gradient(circle,var(--gold2) 0%,var(--gold) 60%,#a0721a 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0;box-shadow:0 0 0 3px rgba(232,184,75,.3);}
.logo-text .main{font-family:'Noto Serif Thai',serif;font-weight:700;font-size:17px;color:#fff;display:block;line-height:1.2;}
.logo-text .sub{font-size:11px;color:var(--gold3);display:block;}
.main-nav{margin-left:auto;display:flex;align-items:center;gap:2px;}
.nav-link{color:rgba(255,255,255,.82);padding:8px 13px;font-size:13.5px;border-radius:6px;transition:all .2s;white-space:nowrap;}
.nav-link:hover,.nav-link.active{background:rgba(201,146,42,.18);color:var(--gold2);}
.nav-btn{background:linear-gradient(135deg,var(--gold),var(--gold2));color:var(--navy)!important;font-weight:700;padding:8px 18px!important;border-radius:20px;margin-left:8px;}
.hamburger{display:none;background:none;border:none;cursor:pointer;padding:8px;margin-left:auto;}
.hamburger span{display:block;width:24px;height:2px;background:var(--gold2);margin:5px 0;border-radius:2px;}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 22px;border-radius:30px;font-size:14px;font-weight:700;font-family:'Noto Sans Thai',sans-serif;transition:all .25s;cursor:pointer;border:none;white-space:nowrap;}
.btn-primary{background:linear-gradient(135deg,var(--gold),var(--gold2));color:var(--navy);box-shadow:0 4px 16px rgba(201,146,42,.35);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(201,146,42,.5);}
.btn-outline{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.3);}
.btn-outline:hover{border-color:var(--gold2);color:var(--gold2);}
.btn-sm{padding:6px 14px;font-size:12.5px;}
.btn-xs{padding:4px 10px;font-size:11.5px;}
.btn-danger{background:#dc3545;color:#fff;}
.btn-danger:hover{background:#bb2d3b;}
.btn-success{background:#198754;color:#fff;}
.btn-secondary{background:var(--cream2);color:var(--text);border:1px solid #ddd;}
.btn-info{background:#0dcaf0;color:#000;}

/* SECTIONS */
section{padding:60px 0;}
.section-header{text-align:center;margin-bottom:44px;}
.section-eyebrow{display:inline-block;font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--gold);margin-bottom:10px;}
.section-title{font-family:'Noto Serif Thai',serif;font-size:clamp(22px,3vw,34px);font-weight:800;color:var(--navy);margin-bottom:14px;}
.section-desc{color:var(--muted);max-width:520px;margin:0 auto;font-size:14.5px;}

/* PAGE HERO */
.page-hero{background:linear-gradient(135deg,var(--navy),#1a3060);padding:44px 0;color:#fff;}
.page-hero h1{font-family:'Noto Serif Thai',serif;font-size:clamp(20px,3vw,34px);font-weight:900;margin-bottom:8px;}
.page-hero p{color:rgba(255,255,255,.65);font-size:14px;}
.breadcrumb{font-size:12px;color:rgba(255,255,255,.5);margin-bottom:12px;}
.breadcrumb a{color:var(--gold3);}.breadcrumb a:hover{color:var(--gold2);}

/* HERO */
.hero{background:linear-gradient(160deg,var(--navy) 0%,#16305a 50%,var(--navy2) 100%);min-height:78vh;display:flex;align-items:center;position:relative;overflow:hidden;}
.hero-bg{position:absolute;inset:0;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 3L57 18V42L30 57L3 42V18Z' fill='none' stroke='%23c9922a' stroke-width='1'/%3E%3C/svg%3E");background-size:60px;}
.hero-content{position:relative;z-index:2;padding:60px 0;}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(201,146,42,.15);border:1px solid rgba(201,146,42,.35);color:var(--gold2);padding:6px 16px;border-radius:20px;font-size:12px;font-weight:600;margin-bottom:20px;}
.hero-title{font-family:'Noto Serif Thai',serif;font-size:clamp(28px,4vw,48px);font-weight:900;color:#fff;line-height:1.25;margin-bottom:12px;}
.hero-title span{color:var(--gold2);}
.hero-subtitle{color:rgba(255,255,255,.65);font-size:15px;margin-bottom:32px;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;}
.hero-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.stat-card{background:rgba(255,255,255,.06);border:1px solid rgba(201,146,42,.2);border-radius:var(--radius);padding:22px 20px;transition:all .3s;cursor:default;}
.stat-card:hover{background:rgba(201,146,42,.1);border-color:rgba(201,146,42,.4);transform:translateY(-3px);}
.stat-num{font-family:'Noto Serif Thai',serif;font-size:36px;font-weight:900;color:var(--gold2);line-height:1;margin-bottom:4px;}
.stat-label{font-size:12.5px;color:rgba(255,255,255,.6);}
.stat-icon{font-size:22px;margin-bottom:10px;}

/* QUICK LINKS */
.quick-links{background:var(--navy);padding:28px 0;}
.ql-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;}
.ql-card{background:rgba(255,255,255,.05);border:1px solid rgba(201,146,42,.2);border-radius:var(--radius);padding:18px 16px;transition:all .25s;display:flex;align-items:center;gap:12px;}
.ql-card:hover{background:rgba(201,146,42,.12);border-color:var(--gold2);transform:translateY(-2px);}
.ql-icon{font-size:22px;flex-shrink:0;}
.ql-text .t1{font-size:13px;font-weight:600;color:#fff;display:block;}
.ql-text .t2{font-size:11px;color:rgba(255,255,255,.45);}

/* FORMS */
.form-card{background:#fff;border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);}
.form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:16px;}
.form-group label{font-size:13px;font-weight:600;color:var(--text);}
.form-group label .req{color:#dc3545;}
.form-group input,.form-group select,.form-group textarea{border:1.5px solid var(--cream2);border-radius:8px;padding:9px 13px;font-family:'Noto Sans Thai',sans-serif;font-size:14px;color:var(--text);background:var(--cream);outline:none;transition:border .2s;width:100%;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--gold);background:#fff;}
.form-group textarea{height:100px;resize:vertical;}
.form-group input[type=file]{background:#fff;padding:7px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;}
.form-section{border:1px solid var(--cream2);border-radius:var(--radius);padding:20px;margin-bottom:20px;background:#fdfaf4;}
.form-section-title{font-family:'Noto Serif Thai',serif;font-weight:800;font-size:15px;color:var(--navy);margin-bottom:16px;padding-bottom:10px;border-bottom:2px solid var(--gold2);}

/* ALERTS */
.alert{padding:13px 18px;border-radius:8px;margin-bottom:16px;font-size:14px;}
.alert-success{background:#d1e7dd;color:#0a3622;border:1px solid #a3cfbb;}
.alert-danger{background:#f8d7da;color:#842029;border:1px solid #f1aeb5;}
.alert-warning{background:#fff3cd;color:#664d03;border:1px solid #ffda6a;}
.alert-info{background:#cff4fc;color:#055160;border:1px solid #9eeaf9;}

/* BADGES */
.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:10px;font-size:11px;font-weight:700;}
.badge-pending{background:#fff3cd;color:#856404;}
.badge-approved{background:#d1e7dd;color:#0a3622;}
.badge-rejected{background:#f8d7da;color:#842029;}
.badge-draft{background:#e2e3e5;color:#41464b;}
.badge-review{background:#cff4fc;color:#055160;}
.badge-gold{background:var(--gold);color:var(--navy);}
.badge-navy{background:var(--navy);color:#fff;}
.badge-active{background:#d1e7dd;color:#0a3622;}
.badge-inactive{background:#e2e3e5;color:#41464b;}
.badge-passed{background:#d1e7dd;color:#0a3622;}
.badge-failed{background:#f8d7da;color:#842029;}
.badge-absent{background:#e2e3e5;color:#41464b;}

/* TABLES */
.table-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:14px;}
table th{background:var(--navy);color:#fff;padding:11px 14px;text-align:left;font-size:12.5px;white-space:nowrap;}
table td{padding:10px 14px;border-bottom:1px solid var(--cream2);vertical-align:middle;}
table tr:hover td{background:#fdf8ee;}
table tr:last-child td{border-bottom:none;}

/* CARDS */
.card{background:#fff;border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);}
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--cream2);}
.card-title{font-family:'Noto Serif Thai',serif;font-size:16px;font-weight:800;color:var(--navy);}

/* GRID LAYOUTS */
.temple-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;}
.temple-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:all .3s;border:2px solid transparent;}
.temple-card:hover{transform:translateY(-4px);box-shadow:0 8px 28px rgba(10,22,40,.13);border-color:var(--gold2);}
.temple-logo{width:100%;height:160px;object-fit:cover;background:linear-gradient(135deg,var(--navy2),#2a4a8a);display:flex;align-items:center;justify-content:center;font-size:56px;overflow:hidden;}
.temple-logo img{width:100%;height:100%;object-fit:cover;}
.temple-body{padding:18px;}
.temple-type-badge{font-size:10.5px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);margin-bottom:5px;}
.temple-name{font-family:'Noto Serif Thai',serif;font-weight:800;font-size:15px;color:var(--navy);margin-bottom:6px;}
.temple-info{font-size:12.5px;color:var(--muted);line-height:1.65;}
.temple-abbot{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--cream2);font-size:12px;color:var(--muted);}

/* MONK CARD */
.monk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;}
.monk-card{background:#fff;border-radius:var(--radius);padding:20px;box-shadow:0 2px 12px rgba(10,22,40,.08);transition:all .3s;text-align:center;border:2px solid transparent;}
.monk-card:hover{transform:translateY(-3px);border-color:var(--gold2);}
.monk-photo{width:80px;height:80px;border-radius:50%;object-fit:cover;margin:0 auto 12px;border:3px solid var(--gold2);background:var(--cream2);display:flex;align-items:center;justify-content:center;font-size:32px;overflow:hidden;}
.monk-photo img{width:100%;height:100%;object-fit:cover;}
.monk-name{font-family:'Noto Serif Thai',serif;font-weight:700;font-size:14px;color:var(--navy);margin-bottom:4px;}
.monk-dhamma{font-size:12px;color:var(--gold);margin-bottom:6px;}
.monk-pos{font-size:11.5px;color:var(--muted);}

/* SEARCH BAR */
.search-bar{display:flex;gap:10px;max-width:680px;margin:0 auto 28px;background:#fff;border-radius:40px;padding:6px 6px 6px 20px;box-shadow:var(--shadow);}
.search-bar input,.search-bar select{flex:1;border:none;outline:none;font-family:'Noto Sans Thai',sans-serif;font-size:14px;color:var(--text);background:transparent;}
.search-bar button{background:linear-gradient(135deg,var(--gold),var(--gold2));border:none;border-radius:30px;padding:9px 20px;color:var(--navy);font-weight:700;font-size:13px;cursor:pointer;font-family:'Noto Sans Thai',sans-serif;white-space:nowrap;}

/* TABS */
.tabs{display:flex;gap:6px;margin-bottom:22px;flex-wrap:wrap;}
.tab-btn{padding:8px 18px;border-radius:20px;border:1.5px solid var(--cream2);background:#fff;font-size:13px;font-family:'Noto Sans Thai',sans-serif;cursor:pointer;transition:all .2s;color:var(--muted);}
.tab-btn.active,.tab-btn:hover{background:var(--gold);border-color:var(--gold);color:var(--navy);font-weight:700;}

/* PAGINATION */
.pagination{display:flex;gap:6px;justify-content:center;margin-top:28px;flex-wrap:wrap;}
.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;border-radius:8px;border:1px solid var(--cream2);font-size:13px;background:#fff;color:var(--text);transition:all .2s;}
.pagination a:hover{background:var(--gold);border-color:var(--gold);color:var(--navy);}
.pagination .current{background:var(--gold);border-color:var(--gold);color:var(--navy);font-weight:700;}

/* DASHBOARD */
.dash-grid{display:grid;grid-template-columns:240px 1fr;gap:24px;align-items:start;}
.dash-sidebar{background:var(--navy);border-radius:var(--radius);overflow:hidden;position:sticky;top:80px;}
.dash-user{padding:22px;background:rgba(255,255,255,.04);text-align:center;border-bottom:1px solid rgba(255,255,255,.08);}
.dash-avatar{width:60px;height:60px;background:linear-gradient(135deg,var(--gold),var(--gold2));border-radius:50%;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;font-size:26px;overflow:hidden;}
.dash-avatar img{width:100%;height:100%;object-fit:cover;}
.dash-user .name{color:#fff;font-weight:700;font-size:14px;}
.dash-user .role{color:var(--gold3);font-size:12px;}
.dash-menu{list-style:none;}
.dash-menu li a{display:flex;align-items:center;gap:10px;padding:11px 20px;color:rgba(255,255,255,.65);font-size:13.5px;border-left:3px solid transparent;transition:all .2s;}
.dash-menu li a:hover,.dash-menu li a.active{color:var(--gold2);background:rgba(201,146,42,.1);border-left-color:var(--gold2);}
.dash-menu .group-label{padding:12px 20px 4px;font-size:10px;font-weight:700;letter-spacing:2px;color:rgba(255,255,255,.3);text-transform:uppercase;}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px;}
.kpi-card{background:#fff;border-radius:var(--radius);padding:18px;border-top:3px solid var(--gold);box-shadow:var(--shadow);}
.kpi-num{font-family:'Noto Serif Thai',serif;font-size:30px;font-weight:900;color:var(--navy);}
.kpi-label{font-size:12px;color:var(--muted);margin-top:4px;}

/* ADMIN LAYOUT */
.admin-layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh;}
.admin-sidebar{background:var(--navy);color:#fff;}
.admin-brand{padding:20px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:10px;}
.admin-brand .title{font-family:'Noto Serif Thai',serif;font-size:14px;font-weight:700;color:#fff;}
.admin-nav{list-style:none;padding:10px 0;}
.admin-nav li a{display:flex;align-items:center;gap:10px;padding:10px 20px;color:rgba(255,255,255,.65);font-size:13px;border-left:3px solid transparent;transition:all .2s;}
.admin-nav li a:hover,.admin-nav li a.active{color:var(--gold2);background:rgba(201,146,42,.1);border-left-color:var(--gold2);}
.admin-nav .group-label{padding:12px 20px 4px;font-size:10px;font-weight:700;letter-spacing:2px;color:rgba(255,255,255,.3);text-transform:uppercase;}
.admin-main{background:#f4f0e8;overflow-y:auto;}
.admin-topbar{background:#fff;padding:13px 26px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eee;box-shadow:0 1px 4px rgba(0,0,0,.06);position:sticky;top:0;z-index:50;}
.admin-content{padding:24px;}
.admin-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px;}
.admin-kpi{background:#fff;border-radius:var(--radius);padding:18px;border-top:3px solid var(--gold);box-shadow:var(--shadow);}
.admin-kpi .num{font-family:'Noto Serif Thai',serif;font-size:30px;font-weight:900;color:var(--navy);}
.admin-kpi .label{font-size:12px;color:var(--muted);margin-top:4px;}

/* EXAM */
.exam-card{background:#fff;border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);border-left:4px solid var(--gold);transition:all .3s;}
.exam-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(10,22,40,.13);}
.exam-title{font-family:'Noto Serif Thai',serif;font-weight:800;font-size:15px;color:var(--navy);margin-bottom:8px;}
.exam-meta{font-size:12.5px;color:var(--muted);line-height:1.8;}

/* FOOTER */
.site-footer{background:var(--navy);border-top:3px solid var(--gold);}
.footer-inner{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:36px;padding:44px 0 24px;}
.footer-desc{color:rgba(255,255,255,.5);font-size:13px;margin-top:14px;line-height:1.7;}
.footer-col h4{color:var(--gold2);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:14px;}
.footer-col a{display:block;color:rgba(255,255,255,.55);font-size:13px;padding:3px 0;}
.footer-col a:hover{color:var(--gold2);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:16px 0;}
.footer-bottom p{color:rgba(255,255,255,.35);font-size:12px;}

/* BACK TOP */
.back-top{position:fixed;bottom:26px;right:26px;background:linear-gradient(135deg,var(--gold),var(--gold2));color:var(--navy);width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;box-shadow:0 4px 16px rgba(201,146,42,.4);border:none;transition:all .25s;z-index:80;opacity:0;pointer-events:none;}
.back-top.visible{opacity:1;pointer-events:all;}

/* POSITION BADGE */
.pos-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:700;margin:2px;border:1px solid;}
.pos-temple{background:#fef9e7;color:#8b6914;border-color:#f0c419;}
.pos-subdistrict{background:#eaf4fb;color:#1a5276;border-color:#2e86c1;}
.pos-district{background:#eafaf1;color:#1a5c2a;border-color:#27ae60;}
.pos-province{background:#fdedec;color:#7b241c;border-color:#e74c3c;}
.pos-other{background:#f4f6f7;color:#555;border-color:#aaa;}

/* RESPONSIVE */
@media(max-width:1024px){.admin-kpis{grid-template-columns:1fr 1fr;}.kpi-grid{grid-template-columns:1fr 1fr;}.footer-inner{grid-template-columns:1fr 1fr;}}
@media(max-width:900px){.hero-grid,.dash-grid{grid-template-columns:1fr;}.admin-layout{grid-template-columns:1fr;}.admin-sidebar{display:none;}.main-nav{display:none;position:fixed;top:0;right:-280px;width:280px;height:100vh;background:var(--navy);flex-direction:column;padding:56px 0 20px;z-index:200;transition:right .3s;}.main-nav.open{display:flex;right:0;}.main-nav .nav-link{padding:13px 22px;border-radius:0;border-bottom:1px solid rgba(255,255,255,.08);}.hamburger{display:block;}}
@media(max-width:600px){section{padding:44px 0;}.container{padding:0 14px;}.form-row,.form-row-3{grid-template-columns:1fr;}.kpi-grid{grid-template-columns:1fr 1fr;}.footer-inner{grid-template-columns:1fr;}}
