:root{--wine:#742440;--deep:#351021;--rose:#bf5d82;--gold:#d5a557;--text:#302631;--muted:#756a73;--line:#eadde2;--bg:#faf7f8;--panel:#fff;--shadow:0 7px 24px rgba(74,25,49,.07)}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:radial-gradient(circle at 100% 0,#f9edf1,transparent 32%),var(--bg);color:var(--text);font:14px Inter,Arial,sans-serif}aside{background:linear-gradient(165deg,#501a35,#2e0d1e);box-shadow:5px 0 22px rgba(36,8,22,.13);color:#fff;display:flex;flex-direction:column;height:100vh;inset:0 auto 0 0;padding:26px 16px;position:fixed;width:268px;z-index:5}.brand{font:27px Georgia,serif;letter-spacing:.2px;padding:7px 12px 28px}.brand i{color:var(--gold)}.brand small{color:#e6bfce;display:block;font:10px Arial,sans-serif;letter-spacing:2.4px;margin-top:6px}nav{display:flex;flex-direction:column;gap:4px}nav a{border-radius:8px;color:#faeef3;font-weight:600;padding:11px 13px;text-decoration:none;transition:.15s}nav a:hover{background:#ffffff16}nav a.on{background:linear-gradient(90deg,#a3436c,#7b294d);box-shadow:inset 3px 0 var(--gold)}aside footer{border-top:1px solid #ffffff2a;margin-top:auto;padding:17px 12px 5px}aside footer strong{display:block}aside footer span{color:var(--gold);display:block;font-size:12px;margin:4px 0 10px}aside footer a{color:#faeaf0;line-height:1.8;text-decoration:none}aside footer a:hover{text-decoration:underline}main{margin-left:268px;min-height:100vh;padding:34px 38px}main>header{align-items:center;display:flex;justify-content:space-between;margin-bottom:29px}.page-title{align-items:center;display:flex;gap:12px}h1{color:#4a1932;font:600 29px Georgia,serif;letter-spacing:-.5px;margin:0}header p{color:var(--muted);font-size:13px;margin:5px 0 0}.menu{display:none}.button,button{align-items:center;background:linear-gradient(135deg,#893253,#67203d);border:0;border-radius:8px;box-shadow:0 3px 9px #6c25412e;color:white;cursor:pointer;display:inline-flex;font:600 14px inherit;justify-content:center;line-height:1.2;min-height:40px;padding:10px 15px;text-decoration:none;transition:.15s}.button:hover,button:hover{box-shadow:0 5px 14px #6c25413d;transform:translateY(-1px)}.button.secondary,button.secondary{background:#f4e9ed;box-shadow:none;color:var(--wine)}.grid{display:grid;gap:18px}.cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:24px}.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.card{background:linear-gradient(145deg,#fff,#fffbfc);padding:19px}.card small,.muted{color:var(--muted)}.card .num{color:var(--wine);font-size:30px;font-weight:750;margin-top:8px}.panel{padding:21px}.panel h2{color:#4a1932;font:600 19px Georgia,serif;margin:0 0 16px}.toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:15px}.toolbar form{display:flex;flex-wrap:wrap;gap:8px}input,select,textarea{background:#fff;border:1px solid #decfd6;border-radius:7px;color:var(--text);font:inherit;padding:10px 11px;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--rose);box-shadow:0 0 0 3px #f5dce6;outline:0}label{color:#493842;display:block;font-size:13px;font-weight:650;margin-bottom:13px}label input,label select,label textarea{font-weight:400;margin-top:5px}textarea{min-height:90px}.form-grid{display:grid;gap:0 16px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid .full{grid-column:1/-1}.tablewrap{border:1px solid #f0e7eb;border-radius:10px;overflow:auto}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--line);padding:13px 11px;text-align:left;vertical-align:top}th{background:#fcf8f9;color:var(--muted);font-size:11px;letter-spacing:.7px;text-transform:uppercase}tr:last-child td{border:0}tr:hover td{background:#fffbfc}td a{color:var(--wine);font-weight:650;text-decoration:none}.status,.role-chip{background:#f7e8ee;border-radius:20px;color:var(--wine);display:inline-block;font-size:12px;font-weight:650;padding:4px 9px}.status-active,.role-accountant{background:#e7f3ea;color:#287044}.role-doctor{background:#e5f2f5;color:#176373}.role-receptionist{background:#f9edf2;color:#96375e}.role-therapist{background:#fdf1dc;color:#8d5c13}.flash{border:1px solid transparent;border-radius:9px;box-shadow:var(--shadow);margin-bottom:18px;padding:12px 15px}.success{background:#e6f5ed;color:#17633c}.error{background:#fbe8e8;color:#932b2b}.login{display:grid;min-height:100vh;place-items:center}.loginbox,.install{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 45px #46122b24;padding:34px;width:min(430px,92vw)}.loginbox .brand{padding:0 0 20px}.loginbox h1{font:600 24px Georgia,serif;margin:0 0 22px}.loginbox button{margin-top:6px;width:100%}.loginbox p{text-align:center}.install{margin:80px auto}.split>.panel:last-child{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.split>.panel:last-child>h2{grid-column:1/-1;margin-bottom:2px}.split>.panel:last-child>p{margin:0}.split>.panel:last-child>p .button{justify-content:flex-start;width:100%}@media(max-width:900px){aside{transform:translateX(-100%);transition:transform .2s}.open aside{transform:translateX(0)}.open:after{background:#310a1b70;content:"";inset:0;position:fixed;z-index:4}main{margin-left:0;padding:24px}.menu{align-items:center;display:inline-flex;justify-content:center;padding:8px 10px}.toolbar input,.toolbar select{min-width:145px;width:auto}}@media(max-width:560px){main{padding:18px}main>header{align-items:flex-start;margin-bottom:22px}.page-title h1{font-size:24px}.page-title p{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}main>header>.button{font-size:0;padding:11px}main>header>.button:after{content:"+";font-size:19px}.cards{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.card{padding:14px}.card .num{font-size:24px}.split,.form-grid{grid-template-columns:1fr}.split>.panel:last-child{grid-template-columns:1fr}.toolbar>*{flex:1 1 100%}.toolbar .button,.toolbar button{width:100%}.tablewrap{margin-inline:-2px}th,td{white-space:nowrap}.panel{padding:15px}}
dialog#invoice-modal{border:0;border-radius:15px;box-shadow:0 18px 60px #30101f66;height:min(88vh,900px);max-width:min(1120px,94vw);padding:0;width:94vw}dialog#invoice-modal::backdrop{background:#260b1b88}.modal-bar{align-items:center;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:12px 16px}.modal-bar button{min-height:34px;padding:7px 12px}#invoice-frame{border:0;height:calc(100% - 59px);width:100%}
