*{box-sizing:border-box}
body{margin:0;font-family:Tahoma,Arial,sans-serif;background:#f1f5f9;color:#1e293b;font-size:15px}
a{color:#0e7490;text-decoration:none}
.side{position:fixed;top:0;right:0;bottom:0;width:230px;background:#0f3d4a;color:#fff;display:flex;flex-direction:column;overflow:auto;z-index:20}
.brand{padding:18px 16px;font-size:18px;font-weight:bold;border-bottom:1px solid #ffffff22}
.side nav{flex:1;padding:8px 0}
.side nav a{display:block;color:#cfe8ee;padding:10px 18px}
.side nav a:hover,.side nav a.on{background:#0e7490;color:#fff}
.me{padding:14px 16px;border-top:1px solid #ffffff22;font-size:13px}.me a{color:#9be0ee}
.main{margin-right:230px;padding:22px;max-width:1300px}
.burger{display:none;background:#0f3d4a;color:#fff;border:0;padding:8px 12px;border-radius:6px;font-size:18px}
h1{font-size:22px;margin:0 0 16px}h2{font-size:17px;margin:0 0 10px}
.card{background:#fff;border-radius:10px;padding:16px;margin-bottom:16px;box-shadow:0 1px 3px #0001}
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:16px}
.stat{background:#fff;border-radius:10px;padding:16px;box-shadow:0 1px 3px #0001;border-right:5px solid #0e7490}
.stat b{display:block;font-size:22px;margin-top:6px}.stat.red{border-color:#dc2626}.stat.green{border-color:#16a34a}.stat.orange{border-color:#ea580c}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{padding:9px 10px;border-bottom:1px solid #e2e8f0;text-align:right;vertical-align:top}
th{background:#f8fafc;font-size:13px;color:#475569}
.tw{overflow-x:auto}
input,select,textarea{width:100%;padding:8px 10px;border:1px solid #cbd5e1;border-radius:6px;font:inherit;background:#fff}
textarea{min-height:70px}
label{display:block;font-size:13px;color:#475569;margin-bottom:4px}
.form{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.form .full{grid-column:1/-1}
.btn,button{background:#0e7490;color:#fff;border:0;border-radius:6px;padding:9px 16px;cursor:pointer;font:inherit;display:inline-block}
.btn:hover,button:hover{background:#0b5f75}
.btn.sm,button.sm{padding:4px 10px;font-size:13px}
.btn.danger,button.danger{background:#dc2626}.btn.gray{background:#64748b}.btn.green{background:#16a34a}
form.inline{display:inline}
.alert{padding:10px 14px;border-radius:8px;margin-bottom:14px}
.alert.ok{background:#dcfce7;color:#166534}.alert.err{background:#fee2e2;color:#991b1b}
.badge{display:inline-block;padding:2px 9px;border-radius:12px;font-size:12px;color:#fff;background:#64748b}
.badge.green{background:#16a34a}.badge.red{background:#dc2626}.badge.orange{background:#ea580c}.badge.blue{background:#0e7490}
.bar{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:14px}.bar>div{min-width:160px}
.pager{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}.pager a,.pager span{padding:5px 11px;background:#fff;border-radius:6px}.pager span{background:#0e7490;color:#fff}
.teeth{display:grid;grid-template-columns:repeat(16,1fr);gap:4px;direction:ltr;margin:8px 0}
.tooth{border:1px solid #94a3b8;border-radius:6px;text-align:center;padding:8px 0;font-size:12px;background:#fff}
.tooth.has{background:#fde68a;border-color:#d97706;font-weight:bold}
.muted{color:#64748b;font-size:13px}
.login{max-width:380px;margin:9vh auto}
.print-only{display:none}
@media(max-width:800px){.side{transform:translateX(100%);transition:.2s}.side.open{transform:none}.main{margin-right:0;padding:14px}.burger{display:block;margin-bottom:10px}.teeth{grid-template-columns:repeat(8,1fr)}}
@media print{.side,.burger,.noprint{display:none!important}.main{margin:0;padding:0}.card{box-shadow:none}.print-only{display:block}body{background:#fff}}
