:root{--bg:#f6f7f9;--surface:#fff;--text:#16202c;--muted:#5f6b7a;--border:#e3e7ec;--accent:#0f766e;--accent-hover:#0b5f58;--accent-soft:#e6f4f2;--good:#15803d;--good-soft:#e8f6ec;--warn:#a16207;--warn-soft:#fdf6e3;--bad:#b42318;--bad-soft:#fdecea;--info:#1d4ed8;--info-soft:#eaf0fd;--radius:10px;color:var(--text);background:var(--bg);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1{letter-spacing:-.01em;margin:0;font-size:24px}h2{margin:0 0 12px;font-size:16px}h3{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:18px 0 8px;font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--muted)}.small{font-size:13px}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:8px 14px}button:hover:not(:disabled){background:#f0f2f5}button:disabled{opacity:.55;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover:not(:disabled){background:var(--accent-hover)}button.danger{color:var(--bad)}button.link{color:var(--accent);background:0 0;border:none;padding:0}label{flex-direction:column;gap:6px;margin-bottom:14px;font-size:13px;font-weight:600;display:flex}input,textarea,select{font:inherit;border:1px solid var(--border);color:var(--text);background:#fff;border-radius:8px;width:100%;padding:9px 11px;font-weight:400}input:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}textarea{resize:vertical}.hint{color:var(--muted);font-weight:400}.center-page{place-items:center;min-height:100vh;padding:16px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:20px}.card.flush{padding:0;overflow:hidden}.card-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.login{width:100%;max-width:380px}.login button{width:100%;margin-top:4px}.logo{color:var(--accent);letter-spacing:-.02em;font-size:18px;font-weight:800}.logo.big{font-size:26px}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:5;align-items:center;gap:28px;height:58px;padding:0 24px;display:flex;position:sticky;top:0}.brand{align-items:baseline;gap:10px;display:flex}.clinic-name{color:var(--muted);font-size:14px}.topbar nav{flex:1;gap:4px;display:flex}.topbar nav a{color:var(--muted);border-radius:8px;padding:8px 12px;font-weight:500}.topbar nav a.active{color:var(--text);background:#f0f2f5;text-decoration:none}.user{color:var(--muted);gap:12px;font-size:14px;display:flex}.content{max-width:1180px;margin:0 auto;padding:24px}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.head-actions{flex-wrap:wrap;gap:8px;display:flex}.meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:8px;font-size:14px;display:flex}.back{margin-bottom:10px;font-size:14px;display:inline-block}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:12px;display:flex}.tabs button{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:10px 14px;font-weight:500}.tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.tabs button:hover{color:var(--text);background:0 0}.count{background:var(--accent);color:#fff;border-radius:99px;margin-left:8px;padding:1px 8px;font-size:12px;font-weight:600}.table{border-collapse:collapse;width:100%}.table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--border);background:#fafbfc;padding:10px 16px;font-size:12px}.table td{border-bottom:1px solid var(--border);padding:12px 16px}.table tr:last-child td{border-bottom:none}.table tr.clickable{cursor:pointer}.table tr.clickable:hover{background:#fafbfc}.empty{text-align:center;color:var(--muted);padding:40px}.badge{white-space:nowrap;border-radius:99px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.badge.small{margin-left:8px;font-size:11px}.badge-neutral{color:#3b4654;background:#eef1f4}.badge-accent{background:var(--accent-soft);color:var(--accent)}.badge-good{background:var(--good-soft);color:var(--good)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-bad{background:var(--bad-soft);color:var(--bad)}.badge-muted{color:#8a94a1;background:#f2f3f5}.alert{border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:14px}.alert-warn{background:var(--warn-soft);color:#6b4505}.alert-bad{background:var(--bad-soft);color:#8a1c12}.alert-info{background:var(--info-soft);color:#1e3a8a}.alert-good{background:var(--good-soft);color:#14532d}.detail-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.photo{border:1px solid var(--border);aspect-ratio:1;background:#f0f2f5;padding:0;overflow:hidden}.photo img{object-fit:cover;width:100%;height:100%;display:block}.facts{gap:10px;margin:0;display:grid}.facts>div{grid-template-columns:170px 1fr;gap:12px;display:grid}.facts dt{color:var(--muted);font-size:13px}.facts dd{white-space:pre-wrap;margin:0}.segmented{border:none;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 14px;padding:0;display:grid}.segmented legend{margin-bottom:6px;font-size:13px;font-weight:600}.segmented label{border:1px solid var(--border);cursor:pointer;border-radius:8px;flex-direction:row;align-items:center;margin:0;padding:10px 12px;font-weight:500}.segmented label.selected{border-color:var(--accent);background:var(--accent-soft)}.segmented input{width:auto}.review button.primary{width:100%;padding:11px}.timeline{gap:8px;margin:0;padding:0;font-size:14px;list-style:none;display:grid}.timeline li{justify-content:space-between;gap:12px;padding-left:14px;display:flex;position:relative}.timeline li:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:8px;left:0}.timeline time{color:var(--muted);white-space:nowrap;font-size:13px}.modal-backdrop{z-index:20;background:#0f172073;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:14px;width:100%;max-width:480px;padding:24px;position:relative;box-shadow:0 20px 50px #0003}.modal .close{border:none;padding:4px 8px;font-size:22px;line-height:1;position:absolute;top:12px;right:14px}.actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.choices{gap:8px;margin:12px 0;display:grid}.choice{border:1px solid var(--border);cursor:pointer;text-align:left;background:#fff;border-radius:8px;flex-direction:row;align-items:center;gap:10px;margin:0;padding:12px;font-weight:400;display:flex}.choice.selected{border-color:var(--accent);background:var(--accent-soft)}.choice input{width:auto}.link-patient .row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.lightbox{z-index:30;background:#080c12eb;flex-direction:column;display:flex;position:fixed;inset:0}.lightbox-frame{flex:1;place-items:center;padding:16px;display:grid;overflow:auto}.lightbox-frame img{cursor:zoom-in;max-width:100%;max-height:calc(100vh - 90px)}.lightbox-frame.zoomed{place-items:start}.lightbox-frame.zoomed img{cursor:zoom-out;max-width:none;max-height:none}.lightbox-bar{color:#cfd6de;justify-content:center;align-items:center;gap:12px;padding:12px;font-size:14px;display:flex}.lightbox-bar button{color:#fff;background:#1e2733;border-color:#2d3a4a}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:start;gap:16px;display:grid}.spinner{border:2px solid var(--border);border-top-color:var(--accent);vertical-align:middle;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=860px){.detail-grid{grid-template-columns:1fr}.topbar{gap:12px;padding:0 16px}.clinic-name,.user span{display:none}.content{padding:16px}.facts>div{grid-template-columns:1fr;gap:2px}.page-head{flex-direction:column}}.actions.start{justify-content:flex-start}
