:root{
  --teal:#04989a; --teal-dark:#05696b; --teal-soft:#e7f7f7;
  --ink:#101828; --muted:#667085; --line:#d9e4e5; --bg:#f5f8f9; --white:#fff;
  --green:#027a48; --red:#b42318; --amber:#b54708; --blue:#175cd3;
  --shadow:0 18px 40px rgba(16,24,40,.08);
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink)}
.hidden{display:none!important}.compact{font-size:13px}.full-btn{width:100%}
button{border:0;border-radius:10px;padding:10px 14px;font-weight:800;cursor:pointer;background:var(--teal);color:#fff}
button:hover{filter:brightness(.96)}button.secondary{background:#fff;color:var(--teal-dark);border:1px solid var(--line)}button.ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}button.danger-light{background:#fff1f3;color:#c01048;border:1px solid #ffc9d6}button.icon{background:#fff;color:var(--ink);font-size:22px;padding:4px 10px;border:1px solid var(--line)}button.small{padding:7px 10px;font-size:12px}.primary{background:var(--teal)}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;color:var(--ink);font-size:14px}textarea{min-height:82px;resize:vertical}label{display:block;margin:11px 0 6px;font-size:12px;font-weight:800;color:#344054;text-transform:uppercase;letter-spacing:.02em}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top right,#d9fbfb,transparent 38%),linear-gradient(135deg,#f7fbfc,#eef7f7)}.login-card{width:min(480px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:28px}.logo-row,.brand{display:flex;gap:12px;align-items:center}.logo-mark{width:48px;height:48px;border-radius:16px;background:var(--teal);display:grid;place-items:center;color:#fff;font-weight:900;font-size:25px}.login-card h1{margin:0;font-size:24px;color:var(--teal-dark)}.login-card p,.brand p{margin:5px 0 0;color:var(--muted)}.notice{background:var(--teal-soft);border:1px solid #b8e5e6;border-radius:14px;padding:12px;margin:20px 0}
.app{display:grid;grid-template-columns:300px 1fr;min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);padding:20px;display:flex;flex-direction:column;gap:18px}.brand h2{margin:0;color:var(--teal-dark)}.nav{display:flex;flex-direction:column;gap:8px}.nav button{background:#fff;color:#344054;border:1px solid var(--line);text-align:left}.nav button.active{background:var(--teal-soft);border-color:var(--teal);color:var(--teal-dark)}.side-footer{margin-top:auto;display:grid;gap:8px}.main{padding:22px;overflow:auto}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}.topbar h1{margin:0;font-size:28px}.topbar p{margin:6px 0 0;color:var(--muted)}
.grid{display:grid;gap:14px}.grid.two{grid-template-columns:1fr 1fr}.grid.three{grid-template-columns:repeat(3,1fr)}.grid.four{grid-template-columns:repeat(4,1fr)}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 1px 2px rgba(16,24,40,.03)}.card h2,.card h3{margin:0 0 10px}.card p{color:var(--muted)}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:18px 0 10px}.section-title h2{margin:0}.kpi{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px}.kpi span{display:block;color:var(--muted);font-size:13px}.kpi strong{display:block;font-size:28px;margin-top:7px}.pass strong,.status-pass{color:var(--green)}.fail strong,.status-fail{color:var(--red)}.warn strong,.status-warn{color:var(--amber)}
table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}th,td{padding:11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:14px}th{background:#f8fbfb;color:#344054;font-size:12px;text-transform:uppercase;letter-spacing:.03em}tr:last-child td{border-bottom:0}.actions{display:flex;flex-wrap:wrap;gap:8px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:900;background:#eef4ff;color:#3538cd}.badge.core{background:#fff1f3;color:#c01048}.badge.commitment{background:#fef7c3;color:#a15c07}.badge.achievement{background:#ecfdf3;color:#027a48}.badge.gray{background:#f2f4f7;color:#475467}.badge.green{background:#ecfdf3;color:#027a48}.badge.red{background:#fef3f2;color:#b42318}.badge.amber{background:#fff7ed;color:#b54708}
.tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.tabs button{background:#fff;color:#344054;border:1px solid var(--line)}.tabs button.active{background:var(--teal);color:#fff}.split{display:grid;grid-template-columns:360px 1fr;gap:14px}.check-list{max-height:520px;overflow:auto;border:1px solid var(--line);border-radius:14px}.check-row{padding:10px;border-bottom:1px solid var(--line);cursor:pointer;background:#fff}.check-row:hover,.check-row.active{background:var(--teal-soft)}.check-row:last-child{border-bottom:0}.score-buttons{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.score-btn{background:#fff;color:var(--ink);border:1px solid var(--line);font-size:18px;padding:14px 6px}.score-btn.active{background:var(--teal);color:#fff;border-color:var(--teal)}.alert{padding:12px;border-radius:12px;border:1px solid #fed7aa;background:#fff7ed;color:#9a3412;margin:10px 0}.alert.danger{background:#fef3f2;color:#b42318;border-color:#fecdca}.alert.success{background:#ecfdf3;color:#027a48;border-color:#abefc6}.map-box{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;align-items:end;border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:8px;background:#fbfdfd}.muted{color:var(--muted)}
.toast{position:fixed;right:18px;bottom:18px;background:#101828;color:#fff;border-radius:12px;padding:12px 14px;z-index:20;box-shadow:var(--shadow)}.modal-backdrop{position:fixed;inset:0;background:rgba(16,24,40,.45);display:grid;place-items:center;z-index:30;padding:20px}.modal{width:min(900px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:20px;box-shadow:var(--shadow);border:1px solid var(--line)}.modal-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:14px 18px}.modal-head h3{margin:0}.modal-body{padding:18px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-row.three{grid-template-columns:1fr 1fr 1fr}.form-row .full{grid-column:1/-1}.template-help{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:12px;overflow:auto}.progress{height:7px;background:#eef2f4;border-radius:999px;overflow:hidden}.progress div{height:100%;background:var(--teal)}
@media(max-width:1100px){.app{grid-template-columns:1fr}.sidebar{position:relative}.grid.two,.grid.three,.grid.four,.split{grid-template-columns:1fr}.topbar{display:block}.form-row,.form-row.three,.map-box{grid-template-columns:1fr}}
@media print{.sidebar,.top-actions,.nav,.side-footer,button{display:none!important}.app{display:block}.main{padding:0}.card,.kpi,table{box-shadow:none}.topbar{margin-bottom:8px}}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin:10px 0}.photo-grid img{width:100%;height:110px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}.modal{width:min(1100px,96vw)}.check-row .badge{margin-top:5px}.login-card{width:min(760px,100%)}.login-card h1{font-size:34px}.login-card p{font-size:18px}.top-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:700px){.login-card h1{font-size:26px}.login-card p{font-size:15px}.logo-mark{width:44px;height:44px}.login-card{padding:22px}}
