:root{--brand:#087660;--brand-dark:#075246;--accent:#18b99b;--bg:#f3f7f6;--ink:#14322b;--muted:#6a7d77;--line:#dbe8e3;--danger:#b42318;--warn:#b54708;--white:#fff;--shadow:0 14px 38px rgba(9,77,61,.09);--shadow-lg:0 24px 70px rgba(6,63,49,.15)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px}
a{color:inherit}.app{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:#082b25;color:#d6ebe5;padding:20px 14px;overflow-y:auto;z-index:20}.brand{display:flex;gap:11px;align-items:center;padding:4px 8px 20px}.brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,var(--accent),#0a8d74);color:#fff;font-weight:900;font-size:18px}.brand strong{display:block;color:#fff;font-size:17px}.brand small{color:#91b9ae}
.nav-section{padding:12px 10px 6px;text-transform:uppercase;font-size:10px;letter-spacing:.12em;color:#6ea394}.nav a{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:10px;text-decoration:none;margin:2px 0}.nav a:hover,.nav a.active{background:#ffffff14;color:#fff}.nav .icon{width:19px;text-align:center}
.main{margin-left:250px;min-height:100vh}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:10}.topbar h1{font-size:20px;margin:0}.user-chip{display:flex;align-items:center;gap:10px}.avatar{width:36px;height:36px;border-radius:50%;background:#dff5ee;display:grid;place-items:center;color:var(--brand);font-weight:900}.content{padding:26px;max-width:1500px;margin:auto}
.notice-bell{position:relative;width:38px;height:38px;border-radius:11px;background:#eff7f4;display:grid;place-items:center;text-decoration:none;color:var(--brand);font-size:16px}.notice-bell span{position:absolute;right:-5px;top:-6px;background:#d92d20;color:#fff;font-size:9px;font-weight:900;min-width:18px;height:18px;border-radius:999px;display:grid;place-items:center;padding:0 4px;border:2px solid #fff}
.grid{display:grid;gap:18px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.card{background:#fff;border:1px solid #e5efeb;border-radius:18px;padding:20px;box-shadow:var(--shadow)}.metric{display:flex;align-items:flex-start;justify-content:space-between;position:relative;overflow:hidden}.metric:after{content:"";position:absolute;width:80px;height:80px;border-radius:50%;background:#eaf8f4;right:-34px;bottom:-42px}.metric .value{font-size:27px;font-weight:900;margin-top:7px;letter-spacing:-.03em}.metric .label{color:var(--muted);font-weight:650}.metric-icon{width:45px;height:45px;border-radius:13px;background:#e8f7f3;color:var(--brand);display:grid;place-items:center;font-size:21px;z-index:1}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px}.section-head h2{font-size:17px;margin:0}.button,button{border:0;border-radius:10px;padding:10px 15px;font:inherit;font-weight:750;cursor:pointer;background:var(--brand);color:#fff;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}.button:hover,button:hover{background:var(--brand-dark)}.button.secondary{background:#eef5f2;color:var(--ink)}.button.danger{background:#feecec;color:var(--danger)}.button.small{padding:7px 10px;font-size:12px}
label{display:block;font-weight:750;font-size:12px;color:#35554c;margin:10px 0 6px}input,select,textarea{width:100%;border:1px solid #cfded9;background:#fff;color:var(--ink);border-radius:10px;padding:10px 12px;font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #16b49518}textarea{min-height:90px;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.form-grid .wide{grid-column:1/-1}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:15px}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:13px}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:12px 13px;text-align:left;border-bottom:1px solid #e8efed;vertical-align:top}th{background:#f7faf9;color:#50665f;font-size:11px;text-transform:uppercase;letter-spacing:.04em}tr:last-child td{border-bottom:0}.badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;background:#e8f6f1;color:#08705d}.badge.warn{background:#fff3dd;color:#a15b00}.badge.danger{background:#feeceb;color:#b42318}.badge.info{background:#eaf1ff;color:#2859a9}
.flash{padding:12px 15px;border-radius:11px;margin-bottom:13px;border:1px solid}.flash.success{background:#e9fff5;border-color:#b8ead7;color:#126e52}.flash.error{background:#fff0ef;border-color:#f4c7c2;color:#9d2018}.flash.warning{background:#fff9e7;border-color:#f2df9d;color:#825800}
.empty{padding:32px;text-align:center;color:var(--muted)}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top right,#c9f4e7,transparent 40%),var(--bg)}.login-card{width:min(430px,100%);background:#fff;border-radius:23px;padding:32px;box-shadow:0 28px 80px #063f321f}.login-card h1{margin:16px 0 5px}.login-card .brand-mark{width:56px;height:56px;font-size:22px}.help{color:var(--muted);font-size:12px}.kpi-up{color:#13825f;font-weight:800}.status-line{display:flex;gap:8px;align-items:center}.dot{width:8px;height:8px;border-radius:50%;background:#1ea97e}.mobile-toggle{display:none;background:#edf5f2;color:var(--ink);padding:8px 11px}
.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:900;color:#a9e7d6}.welcome-banner,.provider-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;background:radial-gradient(circle at 88% 30%,#2dd4ac55,transparent 28%),linear-gradient(135deg,#075246,#087a64);color:#fff;padding:26px 30px;border-radius:22px;margin-bottom:18px;box-shadow:var(--shadow-lg);overflow:hidden}.welcome-banner h2,.provider-hero h2{font-size:26px;margin:5px 0 6px;letter-spacing:-.025em}.welcome-banner p,.provider-hero p{margin:0;color:#d4ede6;max-width:650px}.quick-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.quick-action{display:flex;align-items:center;gap:8px;background:#ffffff16;border:1px solid #ffffff2e;color:#fff;padding:10px 13px;border-radius:12px;text-decoration:none;font-weight:800;white-space:nowrap}.quick-action:hover{background:#ffffff26}.quick-action span{font-size:18px}
.provider-statuses{display:flex;flex-direction:column;gap:9px;min-width:180px}.provider-pill{display:flex;align-items:center;gap:8px;padding:9px 12px;background:#ffffff13;border:1px solid #ffffff26;border-radius:999px;font-weight:800;font-size:12px}.provider-pill i{display:block;width:9px;height:9px;border-radius:50%}.provider-pill.online i{background:#59efba;box-shadow:0 0 0 4px #59efba25}.provider-pill.offline i{background:#ffc46b}.secure-label{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;background:#eaf8f4;color:var(--brand);padding:6px 9px;border-radius:999px}
.provider-config{border:1px solid var(--line);border-radius:15px;padding:15px;margin-top:15px;background:#fbfdfc}.provider-heading{display:flex;gap:11px;align-items:center}.provider-heading>div:nth-child(2){flex:1}.provider-heading strong,.provider-heading small{display:block}.provider-heading small{color:var(--muted);margin-top:2px}.provider-logo{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-weight:900}.provider-logo.email{background:#e9f2ff;color:#2563a9}.provider-logo.sms{background:#e6fbf3;color:#087660;font-size:10px}
.switch{position:relative;width:46px;height:26px;margin:0}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;inset:0;background:#c7d5d1;border-radius:999px;cursor:pointer;transition:.2s}.switch span:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #0002;transition:.2s}.switch input:checked+span{background:var(--brand)}.switch input:checked+span:before{transform:translateX(20px)}
.automation-list{margin-top:22px;border-top:1px solid var(--line);padding-top:15px}.automation-list h3{font-size:14px}.automation-list div{display:flex;gap:9px;align-items:center;padding:7px 0;color:#446058}.automation-list span{width:20px;height:20px;display:grid;place-items:center;background:#e5f8f1;color:var(--brand);border-radius:50%;font-weight:900}
.template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.template-card{border:1px solid var(--line);border-radius:14px;background:#fbfdfc;overflow:hidden}.template-card summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;cursor:pointer;list-style:none}.template-card summary::-webkit-details-marker{display:none}.template-card summary>div{display:grid;grid-template-columns:auto 1fr;column-gap:9px;align-items:center}.template-card summary strong,.template-card summary small{grid-column:2}.template-card summary small{color:var(--muted);margin-top:2px}.template-card form{padding:0 14px 14px;border-top:1px solid var(--line)}.channel-icon{display:inline-grid;place-items:center;min-width:34px;height:28px;border-radius:8px;font-weight:900;font-size:10px}.channel-icon.email{background:#e9f2ff;color:#255ca1}.channel-icon.sms{background:#e5f8f1;color:#087660}
.card-hub-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;background:radial-gradient(circle at 86% 30%,#4be4bd55,transparent 31%),linear-gradient(135deg,#073f36,#087b65);color:#fff;border-radius:22px;padding:25px 28px;margin-bottom:18px;box-shadow:var(--shadow-lg)}.card-hub-hero h2{font-size:26px;margin:5px 0}.card-hub-hero p{margin:0;color:#d7eee8}.card-size-chip{flex:0 0 auto;border:1px solid #ffffff38;background:#ffffff14;padding:13px 17px;border-radius:14px;font-size:17px;font-weight:900;text-align:center}.card-size-chip small{font-size:10px;color:#d7eee8}.mini-card-list{display:flex;flex-direction:column;gap:6px;max-height:460px;overflow:auto}.mini-card-list>a{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:9px;border-radius:11px;text-decoration:none}.mini-card-list>a:hover{background:#f0f8f5}.mini-card-list strong,.mini-card-list small{display:block}.mini-card-list small{margin-top:2px;color:var(--muted);font-size:10px}.mini-card-list>a>span{color:var(--brand);font-size:20px}.mini-avatar{width:38px;height:38px;border-radius:11px;background:#dff5ee;color:#087660;display:grid;place-items:center;font-weight:900}.mini-avatar.staff{background:#e8efff;color:#315dad}.mini-avatar.doctor{background:#fff0df;color:#a85f0c}
.card-toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.card-toolbar form{margin:0}.id-card-sheet{display:flex;gap:18px;align-items:flex-start;overflow-x:auto;padding:6px 4px 18px}.pvc-card{position:relative;flex:0 0 auto;width:85.6mm;height:54mm;border-radius:3.4mm;overflow:hidden;background:#fff;color:#102d26;box-shadow:0 18px 45px #083e3226;border:.25mm solid #d5e3df;font-family:Inter,Arial,sans-serif}.pvc-card header{position:relative;height:13mm;padding:2.7mm 3.4mm;display:flex;align-items:center;gap:2.2mm;color:#fff;z-index:2;background:linear-gradient(110deg,#075246,#079175)}.pvc-card header strong,.pvc-card header small,.back-top strong,.back-top small{display:block}.pvc-card header strong{max-width:44mm;font-size:3.1mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pvc-card header small{margin-top:.5mm;font-size:1.8mm;letter-spacing:.12em}.card-brand-mark{width:8mm;height:8mm;border-radius:2.2mm;display:grid;place-items:center;background:#fff;color:#087660;font-size:3mm;font-weight:950;box-shadow:0 1mm 3mm #002b2138}.card-validity{margin-left:auto;padding:1.1mm 1.7mm;border-radius:99mm;font-size:1.65mm;font-weight:950;letter-spacing:.08em}.card-validity.valid{background:#d9fff1;color:#056448}.card-validity.expired,.card-validity.inactive{background:#fff0e8;color:#9b321d}.card-wave{position:absolute;width:52mm;height:32mm;border-radius:50%;background:#13b79418;right:-20mm;top:4mm;transform:rotate(-16deg)}.card-person{position:relative;display:grid;grid-template-columns:19mm 1fr;gap:3mm;padding:3mm 3.4mm 1.5mm;z-index:1}.card-photo{width:19mm;height:21.5mm;border-radius:2.5mm;background:linear-gradient(145deg,#e6f7f2,#ccece3);border:.6mm solid #fff;box-shadow:0 1mm 3mm #073f3626;overflow:hidden;display:grid;place-items:center;color:#087660;font-weight:950;font-size:7mm}.card-photo img{width:100%;height:100%;object-fit:cover}.card-person-info{min-width:0;padding-top:.4mm}.card-person-info h2{font-size:4.2mm;line-height:1.05;margin:0 0 .7mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.02em}.card-person-info>strong{font-size:2.45mm;color:#087660}.card-person-info>p{font-size:1.95mm;color:#61766f;margin:.6mm 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-person-info dl{display:flex;gap:5mm;margin:2mm 0 0}.card-person-info dl div{min-width:0}.card-person-info dt{font-size:1.45mm;text-transform:uppercase;color:#71837e;font-weight:850;letter-spacing:.08em}.card-person-info dd{font-size:2.25mm;font-weight:900;margin:.3mm 0 0}.card-details{display:flex;gap:2mm;padding:0 3.4mm;color:#48635b;font-size:1.75mm;white-space:nowrap;overflow:hidden}.card-details span{max-width:50%;overflow:hidden;text-overflow:ellipsis}.barcode-wrap{position:absolute;right:3.4mm;bottom:2mm;width:31mm;text-align:center}.card-barcode{display:block;width:100%;height:6.4mm}.barcode-wrap small{font-size:1.55mm;letter-spacing:.14em}.card-back{background:linear-gradient(155deg,#fff 0,#f4fbf8 70%)}.back-top{height:13mm;padding:2.5mm 3.4mm;display:flex;align-items:center;gap:2.2mm;color:#fff;background:linear-gradient(110deg,#075246,#079175)}.back-top strong{font-size:3.1mm}.back-top small{font-size:1.75mm;color:#d8eee8}.card-back-body{padding:3mm 4mm}.card-back-body h3{font-size:3.5mm;margin:0 0 1.2mm}.card-back-body>p{font-size:1.85mm;line-height:1.4;color:#4c635d;margin:0 0 2mm}.emergency-strip{display:flex;justify-content:space-between;gap:2mm;border-radius:1.8mm;padding:1.4mm 2mm;background:#fff1e8;color:#853614;font-size:1.85mm}.verification-box{margin-top:1.7mm;border:.25mm dashed #84b9aa;border-radius:1.8mm;padding:1.4mm 2mm;background:#fff}.verification-box strong,.verification-box span{display:block}.verification-box strong{font-size:1.75mm;color:#087660;text-transform:uppercase;letter-spacing:.08em}.verification-box span{font-size:1.35mm;line-height:1.25;color:#415d55;word-break:break-all;margin-top:.5mm}.card-contact{font-size:1.7mm!important;margin-top:1.7mm!important}.card-back footer{position:absolute;left:0;right:0;bottom:0;padding:1.7mm 3mm;background:#0a4f43;color:#d8eee8;font-size:1.55mm;text-align:center}.card-editor{max-width:900px;margin-top:18px}
.verification-page{min-height:100vh;background:radial-gradient(circle at 85% 10%,#c6f4e8,transparent 35%),#f3f7f6}.verification-shell{min-height:100vh;display:grid;place-items:center;padding:22px}.verification-card{width:min(520px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:var(--shadow-lg)}.verification-brand{display:flex;gap:11px;align-items:center;margin-bottom:22px}.verification-brand strong,.verification-brand small{display:block}.verification-brand strong{font-size:18px}.verification-brand small{color:var(--muted);margin-top:2px}.verification-result{display:flex;align-items:center;gap:13px;border-radius:15px;padding:15px;margin-bottom:18px}.verification-result strong,.verification-result small{display:block}.verification-result strong{font-size:17px}.verification-result small{margin-top:3px;line-height:1.35}.verification-result.is-valid{background:#e8fff5;color:#12684e}.verification-result.is-warning{background:#fff7e7;color:#805400}.verification-result.is-invalid{background:#fff0ef;color:#98251d}.verification-icon{width:38px;height:38px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:#fff;font-size:22px;font-weight:950}.verification-details{margin:0}.verification-details div{display:grid;grid-template-columns:130px 1fr;gap:15px;padding:10px 0;border-bottom:1px solid #e8efed}.verification-details dt{color:var(--muted);font-size:12px}.verification-details dd{margin:0;font-weight:800;text-align:right}.verification-note{font-size:11px;line-height:1.5;color:var(--muted);margin:18px 0 0}
.report-paper{max-width:850px;margin:auto;background:#fff;padding:38px;border:1px solid var(--line);box-shadow:var(--shadow)}.report-head{text-align:center;border-bottom:2px solid var(--brand);padding-bottom:15px}.report-meta{display:grid;grid-template-columns:1fr 1fr;gap:7px 20px;margin:18px 0}.report-sign{display:flex;justify-content:flex-end;margin-top:65px}.report-sign>div{text-align:center;border-top:1px solid #555;padding-top:7px;min-width:220px}
@media(max-width:1100px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.sidebar{transform:translateX(-102%);transition:.2s}.sidebar.open{transform:none}.main{margin-left:0}.mobile-toggle{display:inline-flex}.topbar{padding:0 14px}.content{padding:15px}.grid-4,.grid-3,.grid-2,.form-grid,.template-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.user-chip .details{display:none}.report-paper{padding:20px}.report-meta{grid-template-columns:1fr}.welcome-banner,.provider-hero,.card-hub-hero{padding:22px;align-items:flex-start;flex-direction:column}.quick-actions{justify-content:flex-start}.provider-statuses{width:100%}.card-size-chip{align-self:stretch}.verification-details div{grid-template-columns:1fr;gap:3px}.verification-details dd{text-align:left}}
@media print{@page{size:A4;margin:10mm}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.sidebar,.topbar,.no-print,.flash{display:none!important}.main{margin:0}.content{padding:0;max-width:none}.report-paper{box-shadow:none;border:0;max-width:none;padding:0}.id-card-sheet{display:block;overflow:visible;padding:0}.pvc-card{width:85.6mm;height:54mm;box-shadow:none;break-inside:avoid;page-break-inside:avoid;margin:0 0 8mm}}
