:root{--red:#ed3237;--red-dark:#c92832;--blue:#1da6c4;--green:#63a846;--ink:#17373c;--muted:#718186;--bg:#f5f9f8;--line:#dfeae7;--white:#fff;--shadow:0 12px 38px rgba(25,75,72,.08)}
*{box-sizing:border-box}body{margin:0;font-family:"DM Sans",ui-sans-serif,system-ui,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.shell{display:grid;grid-template-columns:270px 1fr;min-height:100vh}
aside{background:#fff;padding:28px 20px 22px;border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:block;padding:0 12px 26px;border-bottom:1px solid var(--line)}.brand img{display:block;width:174px;height:82px;object-fit:contain;object-position:left center}.brand small,.user small{display:block;color:var(--muted);margin-top:3px}
nav{display:grid;gap:8px;margin-top:28px}nav a{padding:12px 14px;border-radius:12px;color:#63777a;font-weight:600;display:flex;align-items:center;gap:12px;transition:.2s ease}nav a:hover{background:#fff4f4;color:var(--red)}nav a.active{background:linear-gradient(100deg,#fff0f0,#fff8f7);color:var(--red);box-shadow:inset 3px 0 var(--red)}.nav-icon{width:28px;height:28px;border-radius:8px;background:#f0f6f5;display:grid;place-items:center;font-size:17px}nav a.active .nav-icon{background:var(--red);color:white}
.support-card{margin-top:auto;background:linear-gradient(145deg,#eaf8f4,#f5fbf8);border:1px solid #d8eee8;border-radius:16px;padding:17px;position:relative;overflow:hidden}.support-card:after{content:"♡";position:absolute;right:-8px;bottom:-22px;font-size:75px;color:#78bda71c}.support-card span,.support-card small{display:block;color:var(--muted);font-size:12px}.support-card b{display:block;margin:5px 0;font-family:Nunito,sans-serif}.user{margin-top:18px;border-top:1px solid var(--line);padding:18px 2px 0;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px}.user b{font-size:13px}.user small{text-transform:capitalize;font-size:11px}.avatar{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#e8f7f4;color:#25806d;font-weight:800}.link{border:0;background:none;color:#9aa9aa;padding:8px;cursor:pointer;font-size:19px}
main{padding:34px 40px;min-width:0;display:flex;flex-direction:column}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}h1,h2,p{margin-top:0}h1,h2{font-family:Nunito,"DM Sans",sans-serif}header h1{margin:3px 0 4px;font-size:30px;letter-spacing:-.6px}header p,.panel-head p{color:var(--muted);margin-bottom:0}.eyebrow{color:var(--red);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1.3px}.date-chip{background:white;border:1px solid var(--line);border-radius:13px;padding:10px 14px;display:flex;align-items:center;gap:10px;box-shadow:0 5px 20px #1c514808}.date-chip small,.date-chip b{display:block}.date-chip small{font-size:10px;color:var(--muted);text-transform:uppercase}.date-chip b{font-size:13px}.calendar-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#e9f8fb;color:var(--blue);font-weight:800}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px}.stat,.panel,.toolbar{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.stat{padding:21px;position:relative;overflow:hidden;border-top:0}.stat:after{content:"";position:absolute;width:70px;height:70px;border-radius:50%;right:-26px;top:-27px;background:currentColor;opacity:.08}.stat span,.stat small{display:block;color:var(--muted)}.stat span{font-size:13px}.stat b{display:block;font-family:Nunito,sans-serif;font-size:35px;margin:10px 0 3px;color:var(--ink)}.stat.blue{color:var(--blue);border-left:4px solid var(--blue)}.stat.amber{color:#f0a11b;border-left:4px solid #f0a11b}.stat.green{color:var(--green);border-left:4px solid var(--green)}.stat.purple{color:#aa68a7;border-left:4px solid #aa68a7}
.panel{padding:23px;margin-bottom:22px}.panel-head,.toolbar,.actions{display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-head h2{margin-bottom:4px}.toolbar{padding:14px 18px;margin-bottom:18px}.toolbar form,.inline{display:flex;align-items:end;gap:9px}.table-wrap{overflow:auto;margin:18px -23px -23px}table{border-collapse:collapse;width:100%;min-width:780px}th,td{text-align:left;padding:14px 20px;border-top:1px solid var(--line);font-size:14px}th{color:#7c8c8e;font-size:11px;text-transform:uppercase;letter-spacing:.6px;background:#f9fbfa}.block{display:block;color:var(--muted);margin-top:4px}.badge{display:inline-block;padding:6px 10px;border-radius:999px;background:#edf4f2;color:#45615f;font-size:11px;font-weight:700;text-transform:capitalize}.check_in,.in_progress{background:#fff4d9;color:#976410}.check_out,.completed{background:#e5f7ed;color:#267450}.registered,.info{background:#e6f7fb;color:#157791}.cancelled,.rejected{background:#ffe8e8;color:#ac3035}
.account-list{display:grid;gap:12px;margin-top:18px}.account-row{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:14px;padding:14px;border:1px solid var(--line);border-radius:12px}.account-row small{display:block;color:var(--muted);margin-top:3px}.edit-box{position:relative}.edit-box summary{list-style:none;white-space:nowrap}.edit-box summary::-webkit-details-marker{display:none}.edit-box[open]>form{margin-top:12px}.account-row .edit-box[open]{grid-column:1/-1}.inline-edit{display:flex;gap:8px;min-width:300px}
.registration-card{border-top:4px solid var(--blue)}.registration-rows{display:grid;gap:12px;margin-top:20px}.registration-row{display:grid;grid-template-columns:auto 1fr 1fr 1.35fr 1fr 1.15fr auto;gap:10px;align-items:start;padding:14px;background:#f9fbfa;border:1px solid var(--line);border-radius:14px}.registration-row.has-errors{border-color:#e06a70;background:#fff8f8}.registration-row label{display:grid;gap:6px;font-size:12px;font-weight:700}.patient-row-number{align-self:center;color:var(--red);font-weight:800;white-space:nowrap}.field-error{color:#b52c38;font-size:11px;font-weight:600}.registration-actions{display:flex;justify-content:space-between;gap:12px;margin-top:16px}.registration-filters{display:flex;align-items:end;gap:10px}.registration-filters label{display:grid;gap:6px;font-size:12px;font-weight:700}
.button,button{font:inherit}.primary,.secondary,.danger-btn{border:0;border-radius:10px;padding:10px 15px;cursor:pointer;font-weight:700;transition:.2s ease}.primary{background:linear-gradient(135deg,var(--red),#dc2634);color:#fff;box-shadow:0 7px 16px #ed32372b}.primary:hover{transform:translateY(-1px);box-shadow:0 10px 20px #ed32373b}.secondary{background:#eaf7f5;color:#247566}.danger-btn{background:#ffe8e8;color:#a52a38}.small{padding:8px 11px}.flash{padding:13px 16px;border-radius:11px;margin-bottom:18px}.success{background:#e4f7ed;color:#116845}.danger{background:#ffe7e8;color:#a02635}.stack{display:grid;gap:16px}.stack label,.form-grid label,.toolbar label{display:grid;gap:7px;font-size:13px;font-weight:700}input,select{border:1px solid #cfddda;border-radius:10px;padding:11px 12px;background:#fff;min-width:0;color:var(--ink);outline:none}input:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1da6c419}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.form-grid h2,.form-grid .actions{grid-column:1/-1}.split{display:grid;grid-template-columns:1fr 1fr;gap:22px}.scan-hero{text-align:center;background:radial-gradient(circle at 50% 0,#e3f8f8,#fff 60%);border:1px solid #d6ece8;border-radius:20px;padding:45px;margin-bottom:22px}.reader-icon{margin:auto auto 14px;width:74px;height:74px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),#168aa5);color:#fff;font-weight:800;box-shadow:0 12px 25px #1da6c438}.live-dot{color:var(--green);font-weight:700}.event-list article{display:grid;grid-template-columns:1fr auto auto;gap:20px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.event-list small{display:block;color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:32px}.pagination{margin-top:32px}footer{margin-top:auto;padding-top:24px;color:#92a09f;font-size:11px;display:flex;justify-content:space-between}
.login-page{display:grid;grid-template-columns:minmax(420px,44%) 1fr;min-height:100vh;background:#fff}.login-panel{display:grid;place-items:center;padding:45px}.login-content{max-width:410px;width:100%}.login-logo{width:195px;height:112px;object-fit:contain;object-position:left center;margin-bottom:25px}.welcome-tag{display:inline-block;color:var(--red);background:#fff1f1;border-radius:999px;padding:6px 11px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.7px}.login-content h1{font-size:38px;margin:15px 0 5px}.login-content>p{color:var(--muted);margin-bottom:28px}.login-button{width:100%;display:flex;justify-content:space-between;padding:13px 17px}.check{display:flex!important;grid-template-columns:auto 1fr;align-items:center;font-weight:500!important;color:var(--muted)}.check input{width:16px;height:16px}.hint{display:block;text-align:center;color:var(--muted);margin-top:18px}.login-art{background:linear-gradient(145deg,#eb393e,#cd2533);color:#fff;display:flex;flex-direction:column;justify-content:flex-end;padding:8vw;position:relative;overflow:hidden}.heart-outline{position:absolute;right:4vw;top:-7vw;font-family:Arial;font-size:37vw;line-height:1;color:#fff;opacity:.09;transform:rotate(-8deg)}.art-orb{position:absolute;border-radius:50%;border:1px solid #ffffff33}.orb-one{width:380px;height:380px;top:-170px;left:-120px}.orb-two{width:210px;height:210px;right:-80px;bottom:12%}.login-message{max-width:590px;position:relative;z-index:1}.login-message>span{font-size:12px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:#ffd3d5}.login-message h2{font-size:52px;line-height:1.05;margin:15px 0 18px;letter-spacing:-1.5px}.login-message p{font-size:17px;line-height:1.6;color:#ffe7e8;max-width:520px}.locations{position:relative;z-index:1;margin-top:48px;display:flex;gap:14px;align-items:center;color:#ffd9da;font-size:12px;text-transform:uppercase;letter-spacing:1px}.locations i{width:4px;height:4px;background:white;border-radius:50%;opacity:.7}
@media(max-width:1050px){.cards{grid-template-columns:repeat(2,1fr)}.shell{grid-template-columns:220px 1fr}.split{grid-template-columns:1fr}.registration-row{grid-template-columns:repeat(2,1fr)}.patient-row-number,.remove-patient{justify-self:start}main{padding:28px}.brand img{width:150px}.support-card{display:none}.login-message h2{font-size:42px}}
@media(max-width:720px){.shell{display:block}aside{height:auto;position:static;padding:16px}.brand{padding-bottom:14px}.brand img{width:130px;height:65px}nav{margin:14px 0;grid-template-columns:repeat(2,1fr)}.user{margin-top:12px}.support-card{display:none}main{padding:20px}header{align-items:flex-start}.date-chip{display:none}.cards,.form-grid,.registration-row{grid-template-columns:1fr}.registration-actions{flex-direction:column}.login-page{display:block}.login-panel{padding:30px 22px}.login-art{display:none}.toolbar{align-items:stretch;flex-direction:column}.toolbar form{align-items:stretch;flex-direction:column}.panel-head{align-items:flex-start;flex-direction:column}footer{flex-direction:column;gap:5px}}
