:root{--gpi-navy:#143a68;--gpi-navy-dark:#0d2b4e;--gpi-navy-light:#28578a;--gpi-gold:#b88918;--gpi-gold-dark:#956c0e;--gpi-gold-light:#d8b65c;--gpi-gold-soft:#f2e8cf;--bg-main:#f7f8fa;--bg-card:#fff;--bg-soft-blue:#f2f6fa;--bg-soft-gray:#eef1f5;--text-primary:#142c4c;--text-secondary:#667085;--text-muted:#8b95a5;--border-light:#e3e7ec;--border-input:#dde3ea;--success:#19744a;--success-soft:#e8f5ee;--info:#2879c9;--info-soft:#eaf3fb;--warning:#c47b16;--warning-soft:#fff3e0;--danger:#c93a3a;--danger-dark:#a32e2e;--danger-soft:#fdecec;--side-bg:#0d2b4e;--side-text:#eaf0f6;--side-muted:#9fb1c5;--side-active:#173f70;--shadow-card:0 1px 3px rgba(15,42,75,.05);--shadow-hover:0 8px 24px rgba(15,42,75,.1);--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s7:32px;--navy:var(--gpi-navy);--navy-deep:var(--gpi-navy-dark);--navy-soft:var(--gpi-navy-light);--navy-light:var(--gpi-navy-light);--gold:var(--gpi-gold);--gold-deep:var(--gpi-gold-dark);--gold-light:var(--gpi-gold-light);--gold-soft:var(--gpi-gold-soft);--red:var(--danger);--red-deep:var(--danger-dark);--ink:var(--text-primary);--muted:var(--text-secondary);--faint:var(--text-muted);--line:var(--border-light);--ground:var(--bg-main);--bg:var(--bg-main);--section:var(--bg-soft-gray);--blue-soft:var(--bg-soft-blue);--paper:var(--bg-card);--ok:var(--success);--ok-bg:var(--success-soft);--warn:#8a5a0b;--warn-fill:var(--warning);--warn-bg:var(--warning-soft);--danger-bg:var(--danger-soft);--radius:var(--radius-md);--shadow:var(--shadow-card);--font:"Inter","Kantumruy Pro","Khmer OS","Khmer OS System",Arial,system-ui,sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*,:after,:before{box-sizing:border-box}#__nuxt,body,html{height:100%}body{background:var(--bg-main);color:var(--text-primary);font-family:var(--font);font-size:14px;line-height:1.5;margin:0;-webkit-font-smoothing:antialiased;overflow-wrap:anywhere}:lang(km) body,body:lang(km){line-height:1.7}a{color:var(--gpi-navy);text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:16px}h1,h2,h3{color:var(--text-primary);line-height:1.25;margin:0}h1{font-size:clamp(24px,2.4vw + 12px,32px);font-weight:700;letter-spacing:-.01em}h2{font-size:19px}h2,h3{font-weight:600}h3{font-size:16px}.muted{color:var(--text-secondary)}.small{font-size:13px}.page-head{align-items:flex-end;display:flex;flex-wrap:wrap;gap:var(--s4);justify-content:space-between;margin-bottom:var(--s5)}.page-head .sub{color:var(--text-secondary);font-size:14px;margin:var(--s1) 0 0}.btn{align-items:center;border:1px solid transparent;border-radius:8px;display:inline-flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;min-height:44px;padding:0 18px;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;white-space:nowrap}.btn-primary{background:var(--gpi-navy);color:#fff}.btn-primary:hover{background:var(--gpi-navy-dark)}.btn-gold{background:var(--gpi-gold-dark);color:#fff}.btn-gold:hover{background:#7f5b08}.btn-secondary{background:var(--bg-card);border-color:var(--border-light);color:var(--text-primary)}.btn-secondary:hover{border-color:var(--gpi-navy);color:var(--gpi-navy)}.btn-ghost{background:transparent;color:var(--gpi-navy)}.btn-ghost:hover{background:var(--bg-soft-blue)}.btn-danger{background:var(--bg-card);border-color:var(--danger);color:var(--danger-dark)}.btn-danger:hover{background:var(--danger-soft)}.btn-sm,.btn.small{font-size:13px;min-height:36px;padding:0 12px}.btn:disabled{cursor:not-allowed;opacity:.5}.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(40,87,138,.45);outline-offset:2px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field label,.field>span{color:var(--text-secondary);font-size:13px;font-weight:600}.field .req:after,label.req:after{color:var(--text-muted);content:" *";font-weight:500}.field input,.field select,.field textarea,.in{background:var(--bg-card);border:1px solid var(--border-input);border-radius:8px;color:var(--text-primary);min-height:46px;padding:0 14px;transition:border-color .15s,box-shadow .15s}.field input,.field select,.field textarea{width:100%}.field textarea,textarea.in{line-height:1.5;min-height:88px;padding:10px 14px}.field input::-moz-placeholder,.in::-moz-placeholder{color:var(--text-muted)}.field input::placeholder,.in::placeholder{color:var(--text-muted)}.field input:focus,.field select:focus,.field textarea:focus,.in:focus{border-color:var(--gpi-navy);box-shadow:0 0 0 3px #143a681a;outline:none}.card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:12px;box-shadow:var(--shadow-card);padding:16px 18px}.card.lift{transition:box-shadow .18s,transform .18s}.card.lift:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.badge{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;gap:6px;padding:3px 10px;white-space:nowrap}.badge:before{background:currentColor;border-radius:50%;content:"";height:6px;opacity:.85;width:6px}.badge-success{background:var(--success-soft);color:var(--success)}.badge-info{background:var(--info-soft);color:#1f5f9e}.badge-neutral{background:var(--bg-soft-gray);color:var(--text-secondary)}.badge-warning{background:var(--warning-soft);color:#8a5a0b}.badge-danger{background:var(--danger-soft);color:var(--danger-dark)}.badge-gold{background:var(--gpi-gold-soft);color:var(--gpi-gold-dark)}.table{background:var(--bg-card);border-collapse:collapse;font-size:14px;width:100%}.table th{background:var(--bg-main);color:var(--text-secondary);font-size:12px;font-weight:600;padding:10px 12px;position:sticky;text-align:left;top:0}.table td,.table th{border-bottom:1px solid var(--border-light)}.table td{padding:12px;vertical-align:middle}.table tbody tr:hover{background:var(--bg-soft-blue)}.error{background:var(--danger-soft);border-radius:8px;color:var(--danger-dark);font-size:14px;padding:10px 12px}@media(prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}.env-banner{background:#b45309;color:#fff;font-size:12px;letter-spacing:.02em;padding:4px 8px;position:sticky;text-align:center;top:0;z-index:1000}
