:root{--navy:#122b45;--navy2:#1b3a5c;--green:#1a7a4a;--green2:#24a267;--gold:#f5a623;--bg:#f2f5f8;--white:#fff;--text:#1f2937;--muted:#6b7280;--line:#dfe6ed;--red:#b42318}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;padding:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{grid-template-columns:250px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--navy);color:#fff;height:100vh;padding:28px 20px;position:sticky;top:0}.brand{align-items:center;gap:12px;margin-bottom:35px;font-size:20px;font-weight:800;display:flex}.brand-mark{background:var(--green);border-radius:50%;place-items:center;width:42px;height:42px;font-size:24px;display:grid}.nav{gap:8px;display:grid}.nav a{color:#dbe5ef;border-radius:9px;padding:12px 14px}.nav a:hover{color:#fff;background:#ffffff12}.sidebar-foot{color:#91a4b6;font-size:12px;position:absolute;bottom:24px;left:20px;right:20px}.main{width:100%;max-width:1500px;padding:32px}.topbar{justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;display:flex}.title{color:var(--navy);margin:0;font-size:28px;font-weight:800}.subtitle{color:var(--muted);margin:5px 0 0}.button{background:var(--green);color:#fff;border:0;border-radius:9px;justify-content:center;align-items:center;padding:11px 16px;font-weight:700;display:inline-flex}.button.secondary{color:var(--navy);border:1px solid var(--line);background:#fff}.button.danger{background:var(--red)}.grid{gap:18px;display:grid}.grid.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:20px;box-shadow:0 3px 12px #183b5a0a}.stat-label{color:var(--muted);font-size:13px;font-weight:650}.stat-value{color:var(--navy);margin-top:9px;font-size:28px;font-weight:800}.stat-hint{color:var(--green);margin-top:7px;font-size:12px}.section{margin-top:24px}.section-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section h2{color:var(--navy);margin:0;font-size:18px}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:auto}.table{border-collapse:collapse;width:100%;min-width:800px}.table th,.table td{text-align:left;border-bottom:1px solid #edf1f4;padding:13px 15px;font-size:14px}.table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#fafbfc;font-size:12px}.code{color:var(--green);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:750}.badge{color:var(--green);background:#e8f5ee;border-radius:20px;padding:4px 8px;font-size:11px;font-weight:750;display:inline-block}.badge.pending{color:#8a5700;background:#fff4dd}.badge.failed{color:var(--red);background:#feeceb}.form-card{border:1px solid var(--line);background:#fff;border-radius:14px;max-width:920px;padding:24px}.form-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.field{gap:7px;display:grid}.field.full{grid-column:1/-1}.field label{color:#3c4c5d;font-size:13px;font-weight:700}.field input,.field select,.field textarea{background:#fff;border:1px solid #cfd8e2;border-radius:9px;width:100%;padding:11px 12px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green);outline:3px solid #1a7a4a18}.actions{gap:10px;margin-top:22px;display:flex}.login-page{background:#fff;grid-template-columns:1.2fr 1fr;min-height:100vh;display:grid}.login-hero{background:linear-gradient(145deg,var(--navy),#0e2135);color:#fff;flex-direction:column;justify-content:center;padding:70px;display:flex}.login-hero h1{margin:20px 0;font-size:55px;line-height:1}.login-hero p{color:#c8d4df;max-width:560px;font-size:18px;line-height:1.7}.login-panel{place-items:center;padding:35px;display:grid}.login-box{width:100%;max-width:400px}.login-box h2{color:var(--navy);margin:0 0 8px;font-size:30px}.login-box form{gap:16px;margin-top:28px;display:grid}.error{color:var(--red);background:#feeceb;border-radius:8px;padding:10px 12px;font-size:13px}.detail-grid{grid-template-columns:2fr 1fr;gap:20px;display:grid}.info-list{grid-template-columns:1fr 1fr;gap:15px;display:grid}.info-label{color:var(--muted);font-size:12px}.info-value{margin-top:4px;font-weight:650}.empty{text-align:center;color:var(--muted);padding:35px}.badge-sheet{background:#fff;border-radius:12px;grid-template-columns:1fr 31mm;width:86mm;height:54mm;margin:25px auto;display:grid;overflow:hidden;box-shadow:0 8px 35px #0002}.badge-left{background:linear-gradient(140deg,var(--navy),#1b3a5c);color:#fff;padding:8mm 5mm}.badge-left h1{margin:0;font-size:8mm}.badge-left .municipality{color:#b9c7d3;margin-top:2mm;font-size:3.2mm}.badge-left .person{margin-top:7mm;font-size:4.6mm;font-weight:800}.badge-left .business{color:#d8e1e9;margin-top:1mm;font-size:3mm}.badge-code{color:#ffd27d;margin-top:5mm;font-family:monospace;font-size:2.8mm}.badge-right{text-align:center;border-left:1px solid #dde5ec;padding:5mm 4mm}.badge-right img{width:24mm;height:24mm}.badge-right p{color:#4b5563;margin:2mm 0;font-size:2.5mm}.print-tools{text-align:center;margin:20px}.verify{background:linear-gradient(145deg,var(--navy),#0d1f32);place-items:center;min-height:100vh;padding:25px;display:grid}.verify-card{background:#fff;border-radius:18px;width:100%;max-width:520px;padding:30px}.verify-ok{width:60px;height:60px;color:var(--green);background:#e8f5ee;border-radius:50%;place-items:center;font-size:30px;display:grid}@media (max-width:900px){.shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.sidebar-foot{display:none}.nav{grid-template-columns:repeat(3,1fr)}.main{padding:20px}.grid.stats{grid-template-columns:1fr 1fr}.login-page{grid-template-columns:1fr}.login-hero{display:none}.detail-grid{grid-template-columns:1fr}}@media (max-width:600px){.grid.stats,.form-grid,.info-list{grid-template-columns:1fr}.nav{grid-template-columns:1fr 1fr}.topbar{flex-direction:column;align-items:flex-start}}@media print{body{background:#fff}.print-tools{display:none}.badge-sheet{box-shadow:none;margin:0}.sidebar,.topbar{display:none}.main{padding:0}}
