:root{--brand:#0f7a5a;--brand-50:#eff8f4;--brand-100:#ddf0e5;--brand-300:#6fba9a;--brand-500:#1b926e;--brand-600:#0e6b4f;--ink-1:#0f211d;--ink-2:#2d3936;--ink-3:#5e6b65;--ink-4:#8a948f;--ink-5:#b5bab7;--bg:#f6f8f7;--surface:#fff;--surface-2:#f1f3f2;--surface-hover:#f4f6f5;--line:#0f211d1a;--line-strong:#0f211d2e;--ok:#0b5c3f;--ok-bg:#e5f3ec;--warn:#b4731a;--warn-bg:#fbefd8;--danger:#b5432e;--danger-bg:#fbe5de;--info:#2f6fa8;--info-bg:#e3eef8;--sidebar-w:232px;--topbar-h:56px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--ink-1);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:14px;line-height:1.5}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:13px}button:disabled{opacity:.5;cursor:not-allowed}input,textarea{font-family:inherit;font-size:inherit;color:var(--ink-1)}.shell{height:100vh;display:flex;overflow:hidden}.shell-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:auto}.shell-main{flex:1;padding:28px 32px 48px}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;height:100vh;display:flex;overflow:hidden}.sidebar-logo{flex-shrink:0;align-items:center;gap:10px;padding:20px 20px 16px;display:flex}.sidebar-logo-icon{background:linear-gradient(135deg, var(--brand) 0%, var(--brand-500) 100%);color:#fff;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;display:flex;box-shadow:0 2px 8px #0f7a5a40}.sidebar-logo-text{color:var(--ink-1);letter-spacing:-.3px;font-size:15px;font-weight:800;line-height:1.1}.sidebar-logo-text span{font-weight:400}.sidebar-logo-text .dot{color:var(--brand);font-size:11px;font-weight:600}.sidebar-logo-tag{color:var(--ink-4);letter-spacing:.06em;text-transform:uppercase;margin-top:2px;font-size:10.5px;font-weight:600}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:4px 10px;display:flex;overflow:auto}.nav-section{color:var(--ink-4);letter-spacing:.12em;text-transform:uppercase;padding:10px 12px 4px;font-size:10px;font-weight:700}.nav-section.mt{margin-top:16px}.nav-item{color:var(--ink-2);border-radius:6px;align-items:center;gap:10px;padding:8px 12px;font-size:13.5px;font-weight:500;transition:all .15s;display:flex;position:relative}.nav-item:hover{background:var(--surface-hover)}.nav-item.active{background:var(--brand-50);color:var(--brand);font-weight:700}.nav-item.active:before{content:"";background:var(--brand);border-radius:2px;width:3px;position:absolute;top:8px;bottom:8px;left:-10px}.nav-item.disabled{color:var(--ink-5);opacity:.5;cursor:not-allowed;pointer-events:none}.nav-item.disabled .nav-item-tag{color:var(--ink-5);text-transform:uppercase;letter-spacing:.08em;margin-left:auto;font-size:9px;font-weight:700}.sidebar-bottom{border-top:1px solid var(--line);flex-shrink:0;padding:12px}.sidebar-session-info{color:var(--ink-4);font-size:10.5px;line-height:1.4}.sidebar-session-info strong{color:var(--ink-2);margin-bottom:2px;display:block}.topbar{height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--line);z-index:10;flex-shrink:0;align-items:center;gap:16px;padding:0 28px;display:flex;position:sticky;top:0}.topbar-search{flex:1;max-width:440px;position:relative}.topbar-search input{background:var(--surface);border:1px solid var(--line);border-radius:6px;outline:none;width:100%;padding:10px 12px 10px 36px;font-size:13px;transition:all .15s}.topbar-search input:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-50)}.topbar-search-icon{color:var(--ink-4);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.topbar-spacer{flex:1}.topbar-divider{background:var(--line);width:1px;height:22px}.user-pill{border:1px solid var(--line);background:0 0;border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 4px;display:flex}.user-pill .avatar{background:linear-gradient(135deg, var(--brand) 0%, var(--brand-500) 100%);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:11px;font-weight:700;display:flex}.user-pill .name{color:var(--ink-1);font-size:12.5px;font-weight:600}.user-pill .email{color:var(--ink-4);margin-left:4px;font-size:11px}.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 1px 2px #00000005}.title{letter-spacing:-.3px;margin:0 0 8px;font-size:22px;font-weight:700}.subtitle{color:var(--ink-3);margin:0 0 16px;font-size:14px}.label{color:var(--ink-4);text-transform:uppercase;letter-spacing:.6px;font-size:11px;font-weight:600}.alert{border-radius:8px;margin:12px 0;padding:12px 16px;font-size:13px}.alert-info{background:var(--brand-50);color:var(--brand);border-left:4px solid var(--brand)}.alert-warn{background:var(--warn-bg);color:#7a4f0e;border-left:4px solid var(--warn)}.alert-danger{background:var(--danger-bg);color:#7a2d1f;border-left:4px solid var(--danger)}.muted{color:var(--ink-4);font-size:12px}.btn{background:var(--brand);color:#fff;border-radius:6px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;transition:background .15s;display:inline-flex}.btn:hover{background:var(--brand-600)}.btn-secondary{background:var(--surface);color:var(--ink-2);border:1px solid var(--line)}.btn-secondary:hover{background:var(--surface-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:6px 10px;font-size:12px}.patient-header{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:20px;overflow:hidden;box-shadow:0 1px 2px #00000005}.patient-header-strip{background:linear-gradient(90deg, var(--brand) 0%, var(--brand-500) 50%, var(--brand-300) 100%);height:5px}.patient-header-body{flex-wrap:wrap;align-items:center;gap:20px;padding:22px 24px;display:flex}.patient-avatar{background:linear-gradient(135deg, var(--brand) 0%, var(--brand-500) 100%);color:#fff;letter-spacing:-.02em;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:22px;font-weight:700;display:flex;box-shadow:0 4px 14px -4px #0f7a5a66}.patient-name{color:var(--ink-1);letter-spacing:-.3px;margin:0;font-size:22px;font-weight:700}.patient-meta{color:var(--ink-3);flex-wrap:wrap;gap:14px;margin-top:8px;font-size:12.5px;display:flex}.patient-stats{flex-wrap:wrap;gap:10px;margin-left:auto;display:flex}.mini-stat{background:var(--surface-2);border:1px solid var(--line);text-align:center;border-radius:8px;min-width:70px;padding:8px 14px}.mini-stat-value{font-size:18px;font-weight:700}.mini-stat-label{color:var(--ink-4);text-transform:uppercase;letter-spacing:.06em;margin-top:2px;font-size:10.5px}.patient-action-row{border-top:1px solid var(--line);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 24px;display:flex}.section-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:18px;overflow:hidden;box-shadow:0 1px 2px #00000005}.section-card-header{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 20px;display:flex}.section-card-header.with-bg{background:linear-gradient(90deg, var(--brand-50) 0%, transparent 100%)}.section-card-title{color:var(--ink-1);font-size:14px;font-weight:700}.section-card-subtitle{color:var(--ink-4);margin-top:2px;font-size:11px}.section-card-body{padding:18px 22px}.referto-row{border-bottom:1px solid var(--line);cursor:pointer;align-items:flex-start;gap:12px;padding:14px 20px;transition:background .15s;display:flex}.referto-row:last-child{border-bottom:none}.referto-row:hover{background:var(--surface-hover)}.referto-row-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.referto-row-icon.analisi{background:var(--info-bg);color:var(--info)}.referto-row-icon.visita{background:var(--ok-bg);color:var(--ok)}.referto-row-icon.strumentale{background:var(--warn-bg);color:var(--warn)}.referto-row-icon.altro{background:var(--surface-2);color:var(--ink-4)}.referto-row-body{flex:1;min-width:0}.referto-row-title{color:var(--ink-1);font-size:14px;font-weight:600}.referto-row-meta{color:var(--ink-4);margin-top:2px;font-size:11.5px}.referto-row-summary{color:var(--ink-2);margin-top:8px;font-size:13px;line-height:1.55}.esami-table{border-collapse:collapse;width:100%;margin-top:10px;font-size:13px}.esami-table td{border-bottom:1px solid var(--line);padding:6px 0}.esami-table td:nth-child(2){text-align:right;font-family:ui-monospace,monospace;font-weight:600}.esami-table tr.fuori td{color:var(--danger)}.chips{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}.chip{border:1px solid var(--line);color:var(--ink-3);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:11.5px;font-weight:700;transition:all .15s;display:inline-flex}.chip:hover{border-color:var(--ink-5)}.chip.active{background:var(--brand-50);border-color:var(--brand-100);color:var(--brand)}.chip-count{color:var(--ink-4);font-size:10px}.chip.active .chip-count{color:var(--brand)}.otp-grid{grid-template-columns:repeat(6,1fr);gap:8px;max-width:360px;margin:24px auto;display:grid}.otp-cell{aspect-ratio:1;text-align:center;border:2px solid var(--line);background:var(--surface);width:100%;color:var(--ink-1);border-radius:10px;outline:none;font-size:28px;font-weight:700;transition:border-color .15s}.otp-cell:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-50)}.otp-cell.error{border-color:var(--danger);background:var(--danger-bg)}.spinner{border:3px solid var(--line);border-top-color:var(--brand);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.container{max-width:640px;margin:0 auto;padding:24px 20px}.watermark{background:var(--warn-bg);color:#7a4f0e;text-align:center;border-bottom:1px solid var(--warn);padding:6px 12px;font-size:11px}.editor-input{background:var(--surface);border:1px solid var(--line);border-radius:6px;outline:none;width:100%;padding:10px 12px;font-size:14px}.editor-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-50)}.editor-textarea{resize:vertical;min-height:320px;font-family:inherit;line-height:1.6}
