@import url('data:text/css,');
:root{color-scheme:dark;--bg:#071422;--panel:#0c2034;--panel2:#102942;--line:#244054;--text:#e9f4ff;--muted:#8faabd;--mint:#58e6cc;--cyan:#5bbdf4;--danger:#ff7f92;--amber:#e6b36b;--shadow:0 18px 55px #01081270;--rad:18px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}body{background:radial-gradient(ellipse 55% 44% at 82% 4%,#073b483b,transparent),linear-gradient(150deg,#091625,#081627 45%,#061322);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:var(--mint)}:focus-visible{outline:2px solid var(--mint);outline-offset:3px}::selection{background:#44dccb77}
#root{min-height:100vh}.loading{min-height:90vh;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--muted)}.loading h1{color:white}.logo-mark{width:60px;height:60px;border-radius:19px;display:grid;place-items:center;background:linear-gradient(135deg,var(--mint),var(--cyan));font-size:30px;box-shadow:0 0 28px #58e6cc55}
.auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(350px,465px);padding:28px;gap:18px}.auth-hero{position:relative;display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,8vw,120px);border-radius:30px;overflow:hidden;background:radial-gradient(circle at 85% 15%,#39e4b950,transparent 30%),linear-gradient(140deg,#0e2a44,#061627)}.auth-hero:after{content:'';position:absolute;width:350px;height:350px;right:-100px;bottom:-160px;border:55px solid #35d4c315;border-radius:50%}.auth-hero h1{font-size:clamp(36px,5vw,70px);line-height:1.08;letter-spacing:-2.5px;max-width:700px;margin:26px 0}.auth-hero h1 em{font-style:normal;color:var(--mint)}.auth-hero p{max-width:550px;line-height:1.65;color:#c4d9e5;font-size:17px}.auth-hero .auth-chip{display:inline-flex;align-items:center;padding:7px 14px;border-radius:99px;border:1px solid #68e2cf55;background:#58e6cc1b;width:max-content;color:#adfff1;font-size:12px;letter-spacing:1px}.auth-box{border:1px solid #2b4b5b;background:#0c1d2e;display:flex;justify-content:center;flex-direction:column;padding:clamp(28px,5vw,65px);border-radius:30px}.auth-box h2{font-size:30px;margin:30px 0 6px}.auth-box p{color:var(--muted);margin:0 0 26px;line-height:1.5}.auth-foot{margin-top:24px;font-size:12px;color:#93b2be;line-height:1.6}
.layout{display:flex;min-height:100vh}.sidebar{width:258px;min-width:258px;border-right:1px solid #233e54;background:#091a2c;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:24px 14px;z-index:20}.brand{display:flex;align-items:center;gap:11px;padding:4px 12px 22px;text-align:left}.brand .brand-icon{width:47px;height:47px;border-radius:15px;background:#58e6cc18;border:1px solid #58e6cc5c;display:grid;place-items:center}.brand-icon img{width:42px;height:42px;object-fit:contain}.brand strong{display:block;font-size:17px;letter-spacing:.2px}.brand small{display:block;margin-top:3px;font-size:10px;color:var(--mint);letter-spacing:2px}.side-label{color:#688ba2;text-transform:uppercase;letter-spacing:2px;font-size:10px;margin:10px 13px 8px;font-weight:800}.nav{overflow-y:auto;flex:1}.nav-btn{background:transparent;color:#a7bfce;display:flex;gap:13px;border:1px solid transparent;border-radius:12px;padding:13px 14px;width:100%;text-align:left;align-items:center;font-size:14px;margin:2px 0}.nav-btn .emoji{font-size:19px;width:23px;text-align:center}.nav-btn:hover{background:#153149;color:white}.nav-btn.active{background:linear-gradient(90deg,#143b45,#14324a);border-color:#267a7f;color:#d3fff9;box-shadow:inset 3px 0 var(--mint)}.side-user{padding:16px 10px;border-top:1px solid #26445c;display:flex;align-items:center;gap:12px}.avatar{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:#275573;color:#bafef0;font-weight:900}.side-user strong{display:block;font-size:13px;white-space:nowrap}.side-user small{display:block;font-size:11px;color:#8faabb;margin-top:3px}.logout{width:100%;border:1px solid #2d4a61;background:#11263c;color:#b7cbda;border-radius:11px;padding:10px}
.main{flex:1;min-width:0}.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #223a4c;padding:0 clamp(18px,3vw,42px)}.topbar .eyebrow{font-size:11px;color:var(--mint);letter-spacing:1.5px;text-transform:uppercase}.topbar h1{font-size:24px;letter-spacing:-.6px;margin:5px 0 0}.top-actions{display:flex;align-items:center;gap:13px}.today-pill{border:1px solid #2d4c62;background:#12263c;border-radius:999px;color:#c2d5e1;padding:9px 15px;font-size:12px}.mobile-menu{display:none}.content{max-width:1590px;margin:0 auto;padding:28px clamp(17px,3vw,42px) 60px}.section-intro{margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.section-intro h2{font-size:22px;margin:0 0 5px}.section-intro p{color:var(--muted);font-size:13px;margin:0}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn{border:1px solid #2b5061;border-radius:11px;padding:10px 15px;background:#193148;color:#d9eff8;font-size:13px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.btn.primary{background:linear-gradient(115deg,#55e6c5,#55b9e5);border-color:transparent;color:#073244;box-shadow:0 8px 28px #3cdbbe2c}.btn.ghost{background:transparent}.btn.danger{color:#ffadb8;border-color:#844153;background:#5928384a}.btn:hover{filter:brightness(1.1)}.btn.sm{padding:6px 10px;font-size:12px}.btn.block{width:100%}.icon-btn{border:0;background:transparent;color:#a7bbc6;font-size:20px;padding:5px}.icon-btn:hover{color:white}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.stat{border:1px solid #274658;border-radius:var(--rad);padding:20px;background:linear-gradient(140deg,#132b43,#0c1d30);position:relative;overflow:hidden}.stat:after{content:'';position:absolute;right:-27px;top:-27px;border-radius:50%;width:115px;height:115px;background:#65e4d10c}.stat small{display:block;font-size:12px;color:#a8c2d2;margin-bottom:18px}.stat strong{display:block;font-size:clamp(20px,2.3vw,29px);letter-spacing:-.7px}.stat .sub{display:block;color:#83a1b3;font-size:11px;margin-top:9px}.stat .stat-icon{position:absolute;right:17px;top:17px;font-size:21px}.stat .accent{color:var(--mint)}.stat .warn{color:var(--amber)}.panel{background:linear-gradient(165deg,#112840,#0b1d30);border:1px solid #25445a;border-radius:var(--rad);box-shadow:0 10px 30px #00000015;min-width:0;overflow:hidden}.panel-header{padding:20px 23px;border-bottom:1px solid #244358;display:flex;align-items:center;justify-content:space-between;gap:15px}.panel-header h3{font-size:16px;margin:0}.panel-header small{font-size:12px;color:#90a9bd}.panel-body{padding:22px}.split{display:grid;grid-template-columns:1.7fr 1fr;gap:18px}.quickgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quick{padding:19px 15px;border-radius:15px;border:1px solid #2a5263;background:#0c2437;color:#dcf7ff;text-align:left}.quick:hover{border-color:var(--mint);background:#123a43}.quick .emoji{font-size:23px;display:block;margin-bottom:8px}.quick strong{font-size:13px}.feature{padding:15px 17px;border:1px solid #274658;background:#0d2337;border-radius:13px;margin:8px 0;display:flex;align-items:center;gap:12px}.feature .dot{width:9px;height:9px;background:#53deb7;border-radius:50%}.feature span{font-size:13px;color:#d8e8ef}.subtle{color:var(--muted)}.empty{text-align:center;padding:50px 20px;color:#a1bbcc}.empty .big{font-size:42px;margin-bottom:10px}.empty strong{color:#dbeff7;display:block;margin-bottom:6px}.hint{font-size:12px;color:#88aabd;line-height:1.55}
.toolbar{display:flex;align-items:center;gap:11px;margin:0 0 17px;flex-wrap:wrap}.search{max-width:380px;flex:1 1 250px}.input,.select,.textarea{width:100%;background:#0a1b2d;border:1px solid #31516a;color:#e8f6ff;outline:none;border-radius:11px;padding:11px 12px;font-size:13px;min-height:43px}.input:focus,.select:focus,.textarea:focus{border-color:var(--mint);box-shadow:0 0 0 3px #58e6cc15}.input::placeholder,.textarea::placeholder{color:#7997ab}.textarea{min-height:95px;resize:vertical}.filter-date{width:170px}.table-scroll{width:100%;overflow-x:auto}.data-table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}.data-table th{color:#819eae;font-size:11px;text-transform:uppercase;letter-spacing:1px;padding:15px 17px;border-bottom:1px solid #2a465b}.data-table td{padding:15px 17px;font-size:13px;color:#d6e9f4;border-bottom:1px solid #213e52}.data-table tbody tr:hover{background:#15364b74}.data-table tbody tr:last-child td{border:0}.data-table td b{font-weight:700}.muted{color:#89a7b9}.td-actions{display:flex;gap:7px;align-items:center}.badge{display:inline-block;border-radius:8px;background:#32627a55;border:1px solid #49788f5a;color:#c2eaf9;padding:5px 9px;font-size:11px;font-weight:700}.badge.success{border-color:#32a88b66;background:#1c967d23;color:#84f5d8}.badge.warning{border-color:#dcad6e77;background:#dba25322;color:#ffdc9a}.badge.danger{border-color:#e2768e66;background:#d2587026;color:#ffb5c0}.badge.gray{border-color:#47607166;color:#9fb8c8}
.modal-backdrop{position:fixed;inset:0;z-index:80;background:#010a12d9;backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;padding:18px}.modal{width:min(620px,100%);max-height:calc(100vh - 36px);display:flex;flex-direction:column;border:1px solid #37617a;background:#10263c;border-radius:22px;box-shadow:var(--shadow)}.modal.wide{width:min(780px,100%)}.modal-header{padding:20px 24px;border-bottom:1px solid #2b4d60;display:flex;justify-content:space-between;align-items:center;gap:14px}.modal-header h2{font-size:18px;margin:0}.modal-content{padding:22px 24px;overflow:auto}.modal-footer{border-top:1px solid #2b4d60;padding:16px 24px;display:flex;justify-content:flex-end;gap:10px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.field{min-width:0}.field.full{grid-column:1/-1}.field label{font-size:12px;color:#a8bdcb;font-weight:700;display:block;margin-bottom:7px}.required:after{content:' *';color:var(--mint)}
.profile-head{display:flex;gap:18px;align-items:center;flex-wrap:wrap;border:1px solid #284e60;background:#0e293e;border-radius:18px;padding:23px;margin-bottom:20px}.profile-avatar{width:65px;height:65px;border-radius:18px;background:linear-gradient(120deg,#57e5c9,#4bafe7);color:#062438;display:grid;place-items:center;font-size:26px;font-weight:900}.profile-head h2{font-size:23px;margin:0 0 5px}.profile-head p{margin:0;color:#a6becf;font-size:13px}.profile-actions{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}.tabs{display:flex;gap:8px;overflow-x:auto;margin-bottom:20px;padding-bottom:3px}.tab{border:1px solid #29485f;background:#132b40;color:#b4c9d6;padding:10px 14px;border-radius:10px;white-space:nowrap;font-size:12px}.tab.active{background:#23575e;border-color:#4bd7c2;color:white}.record{border:1px solid #305168;border-radius:13px;padding:19px;margin-bottom:11px;background:#0d2034}.record small{color:#8eabbc}.record p{font-size:13px;line-height:1.65;margin:9px 0;white-space:pre-line}.record h4{font-size:14px;margin:0}.record .record-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.details-grid .info{background:#0a2033;border:1px solid #244359;border-radius:12px;padding:16px}.info small{color:#8eabbc;display:block;margin-bottom:8px}.info strong{font-size:14px;white-space:pre-line;word-break:break-word}
.odonto-legend{display:flex;gap:13px;flex-wrap:wrap;margin:17px 0;color:#9db7c7;font-size:11px}.odonto-legend span:before{content:'';display:inline-block;width:10px;height:10px;border-radius:4px;margin-right:5px;background:var(--color)}.tooth-arch{display:flex;justify-content:center;gap:5px;flex-wrap:wrap;margin:12px 0}.tooth{min-width:43px;height:56px;border:1px solid #4d7485;border-radius:12px;background:#18374b;color:#e5f6ff;display:grid;place-items:center;position:relative;align-content:center;gap:1px}.tooth:before{content:'◆';font-size:18px;color:#88acba;line-height:1}.tooth small{font-size:10px;color:#e4edf6}.tooth.s-caries{background:#67402c;border-color:#eeaf77}.tooth.s-caries:before{color:#ffac6b}.tooth.s-restoration{background:#144f61;border-color:#70d2fb}.tooth.s-restoration:before{color:#75d2fd}.tooth.s-missing{background:#492638;border-color:#f68a9c}.tooth.s-missing:before{color:#fd8da3;content:'×'}.tooth.s-implant,.tooth.s-endodontics{background:#4a3f6b;border-color:#c6a3ff}.tooth.s-crown,.tooth.s-observation,.tooth.s-extraction{background:#574b2b;border-color:#eacb6a}.tooth:hover{transform:translateY(-2px);box-shadow:0 0 18px #53d4d333}.tooth-label{font-size:12px;color:#84a3b4;text-align:center;margin:16px 0 3px}.odontogram{padding:18px;background:#0a2033;border:1px solid #254657;border-radius:18px}.tooth-divider{border-top:1px dashed #385e71;margin:18px 0}.toast{position:fixed;z-index:130;bottom:24px;right:24px;max-width:min(460px,calc(100% - 48px));border:1px solid #357768;background:#123f3b;color:#d8fff3;padding:16px 19px;border-radius:14px;box-shadow:var(--shadow);font-size:13px}.toast.error{background:#5b2633;border-color:#cc6a81;color:#fff0f0}
.chart-row{display:flex;align-items:center;gap:12px;margin:12px 0}.chart-row label{font-size:12px;width:130px;flex-shrink:0;color:#c5d9e5}.bar-track{height:10px;flex:1;background:#0a1b2b;border-radius:99px;overflow:hidden}.bar-track .fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--mint),var(--cyan));min-width:2px}.chart-row b{font-size:12px;width:40px;text-align:right}.helper-box{padding:15px 18px;border-radius:12px;border:1px solid #37576b;background:#1e3547;color:#b7d6e3;font-size:12px;line-height:1.6;margin:15px 0}.strong{color:var(--mint)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:17px}.text-danger{color:var(--danger)}.ml-auto{margin-left:auto}.mt-2{margin-top:15px}.mb-2{margin-bottom:15px}.center{text-align:center}
@media(max-width:1150px){.sidebar{width:220px;min-width:220px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}}
@media(max-width:800px){.sidebar{position:fixed;left:0;top:0;transform:translateX(-100%);transition:transform .22s;width:265px;min-width:265px;box-shadow:10px 0 25px #0007}.layout.mobile-open .sidebar{transform:translateX(0)}.mobile-menu{display:inline-flex}.topbar{height:76px}.topbar h1{font-size:19px}.content{padding-top:22px}.today-pill{display:none}.auth{grid-template-columns:1fr;padding:0}.auth-hero{display:none}.auth-box{min-height:100vh;border-radius:0}.profile-actions{margin-left:0}.two-col{grid-template-columns:1fr}}
@media(max-width:520px){.cards{grid-template-columns:1fr 1fr;gap:9px}.stat{padding:16px 13px}.stat small{font-size:11px;margin-bottom:11px}.stat strong{font-size:19px}.stat .stat-icon{right:10px;top:12px}.stat .sub{font-size:10px}.panel-body{padding:15px}.panel-header{padding:17px}.content{padding:18px 13px 60px}.topbar{padding:0 15px}.form-grid{grid-template-columns:1fr}.modal-content{padding:17px}.modal-header{padding:18px}.modal-footer{padding:14px}.tooth{min-width:35px;width:35px;height:48px}.tooth-arch{gap:3px}.details-grid{grid-template-columns:1fr}.profile-head{padding:16px}.section-intro h2{font-size:20px}.toolbar .filter-date{flex:1;width:140px}}
@media print{.sidebar,.topbar,.actions,.btn,.tabs,.modal-backdrop{display:none!important}.content{padding:0}.panel{border:0;box-shadow:none}}
