*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f4fbff;color:#071827}a{text-decoration:none;color:inherit}
.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#e8f8ff,#e9fff9)}
.login-card,.card{background:#fff;border-radius:18px;box-shadow:0 10px 30px #0f355522;padding:22px}.login-card{width:390px;max-width:94vw}
.logo{font-size:23px;font-weight:900;margin-bottom:20px}.logo span{color:#21c7b7}
input,select,textarea{width:100%;padding:11px;border:1px solid #cbd5e1;border-radius:10px;margin:5px 0 12px;background:#fff}textarea{min-height:75px}
button,.btn{display:inline-block;border:0;border-radius:10px;padding:10px 14px;cursor:pointer;background:#1e88e5;color:#fff;font-weight:700}.btn-secondary{background:#e6f4ff;color:#1e88e5}.btn-danger{background:#ef4444;color:#fff}.btn-ok{background:#16a34a;color:#fff}
.app{display:flex;min-height:100vh}.sidebar{width:270px;background:linear-gradient(180deg,#14324a,#0c2234);color:#fff;padding:18px;position:fixed;height:100vh;overflow:auto}.sidebar nav a{display:block;padding:11px;border-radius:10px;margin:7px 0;color:#dff6ff}.sidebar nav a:hover{background:#ffffff22}.userbox{background:#ffffff18;border-radius:12px;padding:10px;margin-bottom:12px}
.main{margin-left:270px;padding:24px;width:calc(100% - 270px)}h1,h2,h3{margin-top:0}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat{padding:18px;border-radius:16px;background:#fff;box-shadow:0 6px 20px #0f355511}.stat b{font-size:26px;color:#1e88e5}
.toolbar{display:flex;gap:10px;align-items:center;margin:15px 0;flex-wrap:wrap}.table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 6px 20px #0f355511}.table th,.table td{padding:12px;border-bottom:1px solid #edf2f7;text-align:left;vertical-align:top}.table th{background:#e9f8ff}
.formgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.tabs{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap}.tabs a{background:#e6f4ff;color:#1e88e5;padding:10px 13px;border-radius:10px;font-weight:bold}.tabs a.active{background:#1e88e5;color:#fff}
.alert{background:#fee2e2;color:#991b1b;padding:10px;border-radius:10px;margin-bottom:12px}.success{background:#dcfce7;color:#166534;padding:10px;border-radius:10px;margin-bottom:12px}.badge{padding:5px 9px;border-radius:999px;background:#e6f4ff;color:#0369a1;font-weight:700;font-size:12px}
.filegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.filebox{border:1px solid #d0d5dd;border-radius:12px;padding:10px;background:#fff}.filebox img{width:100%;height:140px;object-fit:cover;border-radius:8px}
.odontogram-card{overflow-x:auto}.odontogram{display:grid;grid-template-columns:150px 1fr;gap:10px 14px;align-items:center;max-width:980px}.arch-label{font-weight:800;color:#14324a;text-align:right}.arch-row{display:flex;gap:8px;flex-wrap:nowrap}.mouth-separator{grid-column:1 / -1;height:2px;background:#dbeafe;margin:8px 0}.tooth{min-width:58px;background:#e6f4ff;color:#1e88e5;border-radius:14px;padding:8px;text-align:center;border:2px solid transparent;display:block}.tooth span{display:block;font-size:24px;line-height:1}.tooth.active{border-color:#1e88e5;background:#dff3ff;transform:scale(1.04)}.tooth.filled{background:#dcfce7;color:#166534}
.birthday{background:#fff7ed;border-left:6px solid #fb923c}.low-stock{background:#fee2e2!important}.print-area{background:#fff;padding:30px;border-radius:12px}.signature{margin-top:30px;border-top:1px solid #333;width:280px;text-align:center;padding-top:8px}.written-signature{margin-top:45px;text-align:center;width:320px}.signature-name{font-family:"Brush Script MT","Segoe Script",cursive;font-size:30px;line-height:1.2}.signature-img{max-width:260px;max-height:110px;object-fit:contain;display:block;margin:0 auto 8px}.signature-canvas{width:100%;max-width:620px;height:220px;border:2px dashed #1e88e5;border-radius:12px;background:#fff;touch-action:none}
@media(max-width:850px){.sidebar{position:relative;width:100%;height:auto}.app{display:block}.main{margin-left:0;width:100%;padding:14px}.grid,.formgrid{grid-template-columns:1fr}.table{font-size:13px;display:block;overflow:auto}.odontogram{grid-template-columns:1fr}.arch-label{text-align:left}.arch-row{overflow-x:auto;padding-bottom:8px}.tooth{min-width:54px}}
@media print{.sidebar,.toolbar,.tabs,.no-print{display:none!important}.main{margin:0;width:100%;padding:0}.card{box-shadow:none}.print-area{padding:0}}
