@import url('https://fonts.googleapis.com/css2?family=Kanit:wght@300;400;500;600;700&display=swap');
:root{--navy:#083b73;--blue:#0b65d8;--cyan:#14a7d9;--green:#16a34a;--red:#e52635;--bg:#f3f7fb;--ink:#14243a;--muted:#64748b}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Kanit,system-ui,sans-serif}
.container{width:min(1280px,calc(100% - 32px));margin:auto}.topbar{position:sticky;top:0;z-index:50;background:linear-gradient(100deg,#063a73,#0876d1 60%,#078f68);box-shadow:0 8px 24px #063a7330}
.nav-wrap{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none}.brand img{width:54px;height:54px;object-fit:contain}.brand b{display:block;font-size:22px}.brand small{display:block;font-size:11px;opacity:.9}.nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.nav a{color:#fff;text-decoration:none;padding:11px 14px;border-radius:14px;font-weight:500;transition:.2s}.nav a:hover,.nav a.active{background:#ffffff20}.nav .alert-link{background:var(--red);box-shadow:0 8px 18px #e5263540}.banner-wrap{background:#dff4ff;overflow:hidden}.banner{display:block;width:100%;height:auto;max-height:430px;object-fit:contain;object-position:center}
main.page{padding:34px 0 46px}.hero{text-align:center;padding:22px 10px 26px}.hero h1{font-size:clamp(30px,4vw,52px);margin:0;color:#0759a6}.hero p{font-size:19px;margin:8px 0 18px}.emergency{display:inline-flex;background:linear-gradient(135deg,#ef233c,#c1122a);color:#fff;text-decoration:none;padding:15px 32px;border-radius:18px;font-size:20px;font-weight:600;box-shadow:0 12px 28px #e5263540}.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:8px 0 30px}.quick a{padding:18px;text-align:center;text-decoration:none;color:#fff;border-radius:18px;font-size:19px;font-weight:600;box-shadow:0 10px 22px #00000014;transition:.2s}.quick a:hover{transform:translateY(-3px)}.q1{background:#e52635}.q2{background:#13a6d5}.q3{background:#1769e8}.q4{background:#16a34a}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 14px}.section-title h2{margin:0;font-size:27px}.card{background:#fff;border:1px solid #dce5ef;border-radius:22px;box-shadow:0 12px 30px #0f3d6b0d}.pad{padding:24px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.stat{padding:22px;border-radius:20px;color:#fff;min-height:130px;position:relative;overflow:hidden}.stat:after{content:'';position:absolute;width:100px;height:100px;border-radius:50%;right:-25px;top:-25px;background:#fff2}.stat .label{opacity:.9}.stat .num{font-size:40px;font-weight:700;margin-top:8px}.blue{background:linear-gradient(135deg,#0b65d8,#08438b)}.green{background:linear-gradient(135deg,#16a34a,#087443)}.orange{background:linear-gradient(135deg,#f97316,#c2410c)}.red{background:linear-gradient(135deg,#ef233c,#b91c1c)}
.form-card{max-width:900px;margin:auto}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.full{grid-column:1/-1}.field label{display:block;font-weight:500;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:12px 14px;border:1px solid #d7e0ea;border-radius:12px;background:#fff;font:inherit}.field textarea{min-height:130px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:7px;border:0;border-radius:13px;padding:12px 20px;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.btn-primary{background:#0b65d8;color:#fff}.btn-danger{background:#e52635;color:#fff}.btn-light{background:#fff;color:#123;border:1px solid #d8e1eb}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:13px 12px;border-bottom:1px solid #e8edf3;text-align:left;white-space:nowrap}.badge{display:inline-block;padding:5px 10px;border-radius:999px;font-size:12px}.badge-danger{background:#fee2e2;color:#b91c1c}.badge-primary{background:#dbeafe;color:#1d4ed8}.badge-warning{background:#fef3c7;color:#92400e}.badge-success{background:#dcfce7;color:#166534}.badge-info{background:#cffafe;color:#155e75}
.footer{margin-top:42px;background:linear-gradient(115deg,#062f5b,#0758a5 60%,#067b68);color:#fff;padding:28px 0 18px}.footer-head{text-align:center;font-size:21px;font-weight:600}.footer-metrics{display:flex;justify-content:center;gap:16px;margin:15px auto;flex-wrap:wrap}.footer-metrics>div{min-width:170px;background:#ffffff16;border:1px solid #ffffff25;border-radius:16px;padding:10px 18px;text-align:center}.footer-metrics span,.footer-metrics small{display:block;opacity:.9}.footer-metrics strong{font-size:28px}.mini-chart{height:125px;display:flex;align-items:end;justify-content:center;gap:18px;max-width:600px;margin:12px auto}.mini-col{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:4px;min-width:42px}.mini-col i{display:block;width:24px;max-height:82px;border-radius:8px 8px 2px 2px;background:linear-gradient(#52d6ff,#0bd18b);box-shadow:0 4px 12px #0002}.mini-col b{font-size:11px}.mini-col small{font-size:10px;opacity:.8}.footer-copy{text-align:center;border-top:1px solid #ffffff20;padding-top:13px;font-size:12px;opacity:.9}.footer-copy span{margin-left:10px}
@media(max-width:900px){.quick,.grid{grid-template-columns:repeat(2,1fr)}.nav{display:none}.nav-wrap{justify-content:center}.banner{max-height:none}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}}
@media(max-width:560px){.container{width:min(100% - 20px,1280px)}.quick,.grid{grid-template-columns:1fr}.brand small{display:none}.brand b{font-size:19px}.hero h1{font-size:30px}.footer-metrics>div{min-width:145px}.mini-chart{gap:7px}.mini-col{min-width:32px}}

/* Latest incidents on homepage */
.latest-section{margin-top:38px}
.latest-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:0 0 14px}
.latest-heading h2{margin:0;font-size:28px;color:var(--ink)}
.latest-heading p{margin:5px 0 0;color:var(--muted)}
.latest-card{overflow:hidden}
.latest-table th{background:#f7fafc;color:#29415d;font-weight:600}
.latest-table td{vertical-align:middle}
.latest-table td:nth-child(1){font-weight:600;color:#0b65d8}
.latest-table td:nth-child(2) small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.incident-code{font-size:12px;background:#eef6ff;color:#0759a6;padding:5px 8px;border-radius:8px}
.type-pill{display:inline-flex;align-items:center;gap:4px;background:#f5f8fc;padding:6px 9px;border-radius:999px;font-size:12px;white-space:nowrap}
.empty-state{text-align:center!important;padding:46px 20px!important;color:var(--muted)}
.pagination-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px;border-top:1px solid #e8edf3;color:var(--muted);font-size:13px}
.pagination{display:flex;align-items:center;gap:6px}
.pagination a,.pagination span{min-width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;text-decoration:none;color:#29415d}
.pagination a{border:1px solid #dce5ef;background:#fff}
.pagination a:hover{border-color:#0b65d8;color:#0b65d8;transform:translateY(-1px)}
.pagination a.active{background:linear-gradient(135deg,#0b65d8,#08438b);color:#fff;border-color:transparent;box-shadow:0 5px 14px #0b65d833}
@media(max-width:900px){.latest-heading{align-items:flex-start}.latest-table{min-width:850px}}
@media(max-width:560px){.latest-heading{flex-direction:column}.pagination-bar{align-items:flex-start;flex-direction:column}.latest-section{margin-top:28px}}

/* PWA install button */
.pwa-install{border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.14);color:#fff;padding:10px 14px;border-radius:14px;font:inherit;font-weight:600;cursor:pointer;backdrop-filter:blur(8px);transition:.2s;box-shadow:0 6px 18px rgba(0,0,0,.08)}
.pwa-install:hover{background:rgba(255,255,255,.24);transform:translateY(-1px)}
.pwa-install[hidden]{display:none}
@media(max-width:900px){.pwa-install{display:inline-flex}.nav{display:flex;justify-content:center}.nav-wrap{flex-wrap:wrap;padding:10px 0}.brand{flex:1}.nav{width:100%;overflow-x:auto;justify-content:flex-start;flex-wrap:nowrap;padding-bottom:2px}.nav a{white-space:nowrap}}

/* Searchable school selector */
.school-search-field{position:relative;z-index:20}
.school-picker{position:relative}
.school-search-input{width:100%;box-sizing:border-box;padding:12px 14px;border:1px solid #d7e1ee;border-radius:12px;background:#fff;font:inherit;color:#172033;outline:none;transition:border-color .15s,box-shadow .15s}
.school-search-input:focus{border-color:#0b76d1;box-shadow:0 0 0 3px rgba(11,118,209,.12)}
.school-options{position:absolute;left:0;right:0;top:calc(100% + 5px);max-height:300px;overflow-y:auto;background:#fff;border:1px solid #d7e1ee;border-radius:12px;box-shadow:0 12px 30px rgba(15,23,42,.16);z-index:1000;padding:6px}
.school-option{padding:11px 12px;border-radius:8px;cursor:pointer;line-height:1.35}
.school-option:hover,.school-option.selected{background:#eaf4ff;color:#07579b}
.school-option[hidden],.school-empty[hidden]{display:none!important}
.school-code{color:#64748b;font-size:.9em}
.school-empty{padding:12px;color:#64748b;text-align:center}
.school-search-help{display:block;margin-top:5px;color:#64748b;font-size:12px}


/* Incident detail / clickable latest incidents */
.latest-table tbody tr.incident-row{cursor:pointer;transition:background .15s,transform .15s}
.latest-table tbody tr.incident-row:hover{background:#f7fbff}
.latest-table tbody tr.incident-row:focus{outline:3px solid rgba(11,118,209,.18);outline-offset:-3px}
.incident-link{display:block;color:inherit;text-decoration:none}
.incident-link:hover strong{color:#0759a6}
.incident-code{display:inline-flex;text-decoration:none}
.detail-topbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 16px}
.incident-code-large{font-size:13px;font-weight:700;color:#0759a6;background:#eef6ff;padding:9px 12px;border-radius:10px}
.detail-hero-card{padding:24px;margin-bottom:18px}
.detail-hero-title{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.detail-kicker{color:#c1122a;font-weight:700;margin-bottom:5px}
.detail-hero-title h1{margin:0;font-size:clamp(25px,3vw,38px);color:#123}
.detail-date{color:#64748b;margin:8px 0 0}
.detail-badges{display:flex;gap:7px;flex-wrap:wrap;white-space:nowrap}
.detail-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.9fr);gap:18px}
.detail-grid h2,.detail-updates h2{margin-top:0;color:#123}
.detail-text{line-height:1.85;background:#f8fafc;border:1px solid #e6edf5;border-radius:14px;padding:18px;white-space:normal}
.detail-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:16px}
.detail-info-grid>div{background:#f8fafc;border:1px solid #e6edf5;border-radius:13px;padding:13px}
.detail-info-grid span,.detail-info-grid strong{display:block}
.detail-info-grid span{font-size:12px;color:#64748b;margin-bottom:4px}
.location-box{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:16px;padding:14px;background:#eff8ff;border:1px solid #cfe7fb;border-radius:14px}
.location-box small{display:block;color:#64748b;margin-top:4px}
.attachment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.attachment-card{border:1px solid #e0e8f1;border-radius:14px;overflow:hidden;background:#fff}
.attachment-card img{display:block;width:100%;height:170px;object-fit:cover;background:#f1f5f9}
.pdf-preview{height:170px;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#f8fafc;font-size:45px;color:#b91c1c}
.pdf-preview span{font-size:13px;font-weight:700}
.attachment-name{padding:9px 10px 4px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.attachment-open{margin:5px 10px 10px;width:calc(100% - 20px);padding:8px 10px;font-size:12px}
.empty-attachments{padding:30px 10px;text-align:center;color:#64748b;background:#f8fafc;border-radius:12px}
.detail-updates{margin-top:18px}
.update-item{display:flex;gap:12px;padding:13px 0;border-top:1px solid #e8edf3}
.update-dot{width:10px;height:10px;border-radius:50%;background:#0b65d8;margin-top:7px;flex:0 0 10px}
.update-item span{display:block;color:#64748b;font-size:12px;margin-top:2px}
.update-item p{margin:7px 0 0;line-height:1.6}
.detail-back{display:flex;justify-content:center;gap:10px;margin-top:18px;flex-wrap:wrap}
@media(max-width:900px){.detail-grid{grid-template-columns:1fr}.detail-hero-title{flex-direction:column}.detail-badges{white-space:normal}}
@media(max-width:560px){.detail-topbar{align-items:flex-start;flex-direction:column}.detail-info-grid{grid-template-columns:1fr}.attachment-grid{grid-template-columns:1fr}.location-box{align-items:flex-start;flex-direction:column}.location-box .btn{width:100%}}
