:root{--bg:#f4f7f6;--card:#fff;--text:#17302d;--muted:#6d7d7a;--line:#dbe5e3;--brand:#0f766e;--brand2:#115e59;--brand-soft:#dff4f0;--ok:#16845b;--warn:#b97813;--danger:#b43d3d;--shadow:0 16px 40px rgba(24,56,51,.08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.app-shell{display:grid;grid-template-columns:270px 1fr;min-height:100vh}.sidebar{background:#0b2926;color:#fff;padding:24px 18px;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.brand-mark{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#fff;color:var(--brand2);font-weight:900}.brand-mark.large{width:54px;height:54px;border-radius:16px;background:var(--brand);color:#fff;font-size:20px}.brand strong{display:block;font-size:18px}.brand small{display:block;color:#b4cbc7;margin-top:2px}.nav{display:grid;gap:7px;margin-top:24px}.nav button{border:0;background:transparent;color:#c9d8d6;text-align:left;border-radius:12px;padding:12px 13px;cursor:pointer;display:flex;gap:11px;align-items:center}.nav button:hover,.nav button.active{background:rgba(255,255,255,.1);color:#fff}.nav .icon{width:20px;text-align:center}.side-note{position:absolute;left:18px;right:18px;bottom:22px;background:rgba(255,255,255,.08);padding:13px;border-radius:14px;font-size:12px}.side-note strong,.side-note span{display:block}.side-note span{color:#afc5c1;margin-top:4px;line-height:1.4}.main{min-width:0}.topbar{height:92px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:sticky;top:0;z-index:5}.topbar h1{font-size:24px;margin:2px 0 0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;color:var(--brand)}.top-actions{display:flex;align-items:center;gap:9px}.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#163f3b;color:#fff;font-size:12px;font-weight:800;flex:none}.user-chip{border:0;background:transparent;display:flex;align-items:center;gap:8px;padding:3px 6px;cursor:pointer;border-radius:11px}.user-chip:hover{background:#eef5f3}.user-chip-copy{text-align:left;line-height:1.15}.user-chip-copy b,.user-chip-copy small{display:block}.user-chip-copy b{font-size:12px}.user-chip-copy small{font-size:10px;color:var(--muted);margin-top:3px}.content{padding:28px 32px 42px;max-width:1500px;margin:0 auto}.btn{border:0;border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:750}.btn.primary{background:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand2)}.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--text)}.btn.danger{background:#fff0f0;color:var(--danger);border:1px solid #f3cccc}.btn.sm{padding:7px 10px;font-size:12px}.icon-btn{border:0;background:transparent;font-size:23px;cursor:pointer;color:inherit;padding:5px 8px}.mobile-only{display:none}.hero{border-radius:22px;padding:28px;background:linear-gradient(130deg,#0d645d,#123f3b);color:#fff;display:grid;grid-template-columns:1.6fr .7fr;gap:24px;box-shadow:var(--shadow)}.hero h2{font-size:30px;line-height:1.16;margin:8px 0}.hero p{max-width:720px;color:#d2e6e2;line-height:1.6;margin:0}.hero-badge{align-self:center;justify-self:end;text-align:right}.hero-badge .score{font-size:50px;font-weight:900}.hero-badge small{color:#b8d5d1}.grid{display:grid;gap:16px}.grid.kpis{grid-template-columns:repeat(4,1fr);margin:18px 0}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 8px 22px rgba(30,62,58,.04)}.kpi{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.kpi .value{font-size:26px;font-weight:900;margin-top:5px}.kpi .label{color:var(--muted);font-size:13px}.pill{font-size:11px;font-weight:800;border-radius:999px;padding:5px 9px;background:var(--brand-soft);color:var(--brand2);white-space:nowrap}.pill.warn{background:#fff3dd;color:#94600c}.pill.ok{background:#e7f7ef;color:#106745}.pill.danger{background:#ffeaea;color:#9a3030}.section-head{display:flex;align-items:end;justify-content:space-between;margin:28px 0 12px;gap:14px}.section-head h2{margin:0;font-size:20px}.section-head p{color:var(--muted);margin:4px 0 0;font-size:13px}.areas-grid{grid-template-columns:repeat(3,1fr)}.area-card{cursor:pointer;transition:.18s ease}.area-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.area-top{display:flex;justify-content:space-between;gap:10px}.area-num{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--brand-soft);font-weight:900;color:var(--brand2)}.area-card h3{font-size:15px;margin:13px 0 5px}.area-card p{font-size:12px;color:var(--muted);line-height:1.45;min-height:35px}.progress{height:8px;background:#e8efed;border-radius:20px;overflow:hidden;margin-top:13px}.progress>span{display:block;height:100%;background:var(--brand);border-radius:20px}.progress-row{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-top:7px}.two-col{grid-template-columns:1.4fr .9fr}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line);padding:10px 9px}.table td{border-bottom:1px solid #edf2f1;padding:12px 9px;vertical-align:top}.table tr:last-child td{border-bottom:0}.link-btn{color:var(--brand);font-weight:800;border:0;background:none;padding:0;cursor:pointer}.empty{text-align:center;padding:38px 20px;color:var(--muted)}.status-select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 8px;font-size:12px}.score-input{width:68px;border:1px solid var(--line);border-radius:8px;padding:6px 8px}.notice{padding:14px 16px;border-radius:13px;background:#eff8f6;border:1px solid #cce8e2;color:#2f5752;font-size:13px;line-height:1.5}.notice.warn{background:#fff8ea;border-color:#f5dfae;color:#745417}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters input,.filters select{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 11px}.area-header{display:grid;grid-template-columns:auto 1fr auto;gap:15px;align-items:center;margin-bottom:16px}.area-header .area-num{width:48px;height:48px;font-size:18px}.area-header h2{margin:0}.area-header p{margin:4px 0 0;color:var(--muted);font-size:13px}.subtle{color:var(--muted);font-size:12px}.bar-list{display:grid;gap:11px}.bar-item{display:grid;grid-template-columns:180px 1fr 45px;gap:10px;align-items:center;font-size:12px}.metric-big{font-size:34px;font-weight:900}.survey-grid{grid-template-columns:repeat(2,1fr)}.survey-card{padding:24px}.survey-card h3{margin:0 0 4px}.survey-score{font-size:42px;font-weight:900;margin:10px 0 0}.ref-list{padding-left:18px;color:var(--muted);font-size:13px;line-height:1.7}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{display:grid;gap:6px;font-size:12px;font-weight:750}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 11px;background:#fff}.form-grid small{font-weight:400;color:var(--muted)}.span-2{grid-column:span 2}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.modal{position:fixed;inset:0;background:rgba(3,24,22,.48);display:none;place-items:center;padding:18px;z-index:20}.modal.open{display:grid}.modal-card{width:min(720px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;padding:22px;box-shadow:0 30px 80px rgba(0,0,0,.25)}.modal-card.small{width:min(580px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:18px}.modal-head h2{margin:3px 0 0}.toast{position:fixed;right:22px;bottom:22px;background:#102f2c;color:#fff;padding:12px 15px;border-radius:10px;opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s;z-index:40;font-size:13px}.toast.show{opacity:1;transform:none}.profile-grid{grid-template-columns:1fr 1fr}.profile-grid .card h3{margin-top:0}.settings-grid{display:grid;gap:14px}.settings-grid label{display:grid;gap:6px;font-size:12px;font-weight:800}.settings-grid input{border:1px solid var(--line);border-radius:10px;padding:10px}.stat-line{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #eef2f1}.stat-line:last-child{border-bottom:0}.report-cover{text-align:center;padding:32px 0}.report-cover h2{font-size:28px}.action-row{display:flex;gap:6px;flex-wrap:wrap}.role-note{font-size:11px;color:var(--muted);margin-top:4px}.password-wrap{position:relative}.password-wrap input{padding-right:60px!important}.show-pass{position:absolute;right:5px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--brand);font-size:11px;font-weight:800;cursor:pointer}.access-card{display:flex;gap:12px;align-items:center}.access-card .avatar{width:48px;height:48px}.no-print{}
.login-screen{min-height:100vh;display:grid;grid-template-columns:minmax(420px,620px) 1fr;background:#fff}.login-card{padding:8vh clamp(28px,7vw,88px);display:flex;flex-direction:column;justify-content:center}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:45px}.login-brand strong{display:block;font-size:21px}.login-brand small{display:block;color:var(--muted);margin-top:4px}.login-copy h1{font-size:34px;margin:7px 0 10px}.login-copy p{color:var(--muted);line-height:1.6;max-width:520px}.login-form{display:grid;gap:16px;margin-top:28px}.login-form label{display:grid;gap:7px;font-size:12px;font-weight:800}.login-form input{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:11px}.login-btn{padding:13px;margin-top:4px}.login-demo{margin-top:24px;padding:15px;border-radius:13px;background:#f2f8f6;border:1px solid #d7e8e4;display:grid;gap:4px;font-size:12px}.login-demo strong{margin-bottom:4px}.login-demo small{color:var(--muted);margin-top:5px}.login-demo code{font-weight:800;color:var(--brand2)}.login-side{padding:60px;background:linear-gradient(145deg,#0a625b,#092d29);color:#fff;display:flex;align-items:flex-end;position:relative;overflow:hidden}.login-side:before{content:"";position:absolute;width:540px;height:540px;border-radius:50%;border:90px solid rgba(255,255,255,.05);right:-220px;top:-190px}.login-side>div{max-width:650px;position:relative;z-index:1}.login-side h2{font-size:40px;line-height:1.12;margin:14px 0}.login-side p{color:#cbe1dd;line-height:1.7}.badge-soft{display:inline-block;background:rgba(255,255,255,.12);padding:7px 10px;border-radius:999px;font-size:11px;font-weight:800}.locked-note{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:11px}
@media(max-width:1100px){.areas-grid{grid-template-columns:repeat(2,1fr)}.grid.kpis{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.login-screen{grid-template-columns:1fr}.login-side{display:none}.login-card{max-width:650px;margin:auto;width:100%}.user-chip-copy{display:none}}
@media(max-width:780px){.app-shell{display:block}.sidebar{position:fixed;left:-290px;z-index:30;width:270px;transition:.2s}.sidebar.open{left:0}.main{width:100%}.mobile-only{display:inline-block}.topbar{height:78px;padding:0 16px}.topbar h1{font-size:20px}.content{padding:18px 16px 32px}.hero{grid-template-columns:1fr}.hero-badge{justify-self:start;text-align:left}.areas-grid,.grid.kpis,.survey-grid,.profile-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.top-actions #printBtn,.top-actions .user-chip{display:none}.top-actions{gap:5px}.bar-item{grid-template-columns:120px 1fr 40px}.login-card{padding:32px 22px}.login-brand{margin-bottom:28px}.login-copy h1{font-size:28px}}
@media print{.sidebar,.topbar,.no-print,.btn,.filters{display:none!important}.app-shell{display:block}.content{padding:0}.card,.hero{box-shadow:none;break-inside:avoid}.hero{color:#000;background:#fff;border:1px solid #bbb}.hero p,.hero-badge small{color:#555}.main{width:100%}body{background:#fff}}
.connection-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:#e7f7ef;color:#106745;font-size:11px;font-weight:850;white-space:nowrap}.connection-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.connection-pill.offline{background:#fff3dd;color:#94600c}.btn,.user-chip,.icon-btn,.area-card,.link-btn,.show-pass{transition:transform .15s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease}.btn:active,.user-chip:active,.area-card:active{transform:translateY(1px)}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid rgba(15,118,110,.2);outline-offset:2px}.login-form input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.settings-grid input:focus,.filters input:focus,.filters select:focus{border-color:#0f766e;box-shadow:0 0 0 4px rgba(15,118,110,.08)}@media(max-width:780px){.connection-pill{display:none}.topbar{position:sticky;top:0;z-index:15;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}}

/* Latest verification & pembinaan UI */
.grid.kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.table td .action-row{min-width:105px}.table .pill{display:inline-block}.btn:disabled{opacity:.5;cursor:not-allowed}.notice+.card{margin-top:14px}@media(max-width:780px){.table{min-width:760px}}
