@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;700;800&display=swap";@import"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,500,0,0";:root{--bg: #eef3f8;--surface: #ffffff;--surface-2: #f8fafc;--primary: #0b7a75;--primary-deep: #095b63;--primary-soft: #d9f9f6;--accent: #ff8a1f;--text: #0f172a;--muted: #64748b;--border: #d8e1ec;--shadow: 0 14px 36px rgba(15, 23, 42, .08);--ring: 0 0 0 3px rgba(11, 122, 117, .18)}*{box-sizing:border-box}body{margin:0;font-family:Manrope,sans-serif;font-feature-settings:"ss01" 1;color:var(--text);background:radial-gradient(circle at 8% 12%,#dff7f4 0%,transparent 30%),radial-gradient(circle at 92% 82%,#fff1dd 0%,transparent 28%),linear-gradient(180deg,#f3f7fb,#edf3f8),var(--bg)}input,select,button{font:inherit;padding:.74rem .85rem;border-radius:12px;border:1px solid var(--border)}input,select,textarea{background:var(--surface);color:var(--text);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:var(--ring);outline:none}button{cursor:pointer;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-deep) 100%);color:#fff;border:none;font-weight:700;letter-spacing:.01em;transition:transform .12s ease,filter .18s ease}button:hover{filter:brightness(1.04)}button:active{transform:translateY(1px)}.login-wrapper{min-height:100vh;display:grid;place-items:center;padding:2rem}.login-card{width:min(460px,100%);background:var(--surface);border-radius:22px;padding:2rem;box-shadow:var(--shadow);display:grid;gap:.7rem;border:1px solid rgba(15,23,42,.06)}.app-shell{display:grid;grid-template-columns:272px 1fr;min-height:100vh;transition:grid-template-columns .22s ease}.app-shell.collapsed{grid-template-columns:108px 1fr}.sidebar{background:radial-gradient(circle at 95% 0%,rgba(71,200,189,.28) 0%,transparent 36%),radial-gradient(circle at 10% 100%,rgba(38,143,177,.22) 0%,transparent 40%),linear-gradient(180deg,#0a3f57,#0a2f46);color:#fff;padding:1.35rem .95rem 1rem;display:grid;grid-template-rows:auto 1fr;gap:1rem;border-right:1px solid rgba(255,255,255,.08);position:relative}.sidebar nav{display:flex;flex-direction:column;min-height:0;overflow:auto;padding-bottom:.25rem}.sidebar h1{margin:0;font-size:1.05rem;line-height:1.1;letter-spacing:-.01em;font-weight:800;color:#f5fcff}.sidebar h1 span{display:block}.brand-wrap{display:grid;gap:.38rem}.brand-row{display:flex;align-items:center;gap:.55rem}.brand-logo{width:42px;height:42px;border-radius:10px;flex:0 0 auto;box-shadow:0 10px 22px #041a2657}.sidebar-top{display:flex;justify-content:space-between;align-items:start;gap:.8rem}.nav-link{display:flex;align-items:center;gap:.6rem;color:#cae2f3;text-decoration:none;padding:.68rem .72rem;border-radius:12px;margin-bottom:.3rem;transition:background .14s ease,color .14s ease,transform .12s ease}.nav-link:hover{background:#ffffff17;color:#f3fbff}.nav-link.active{background:#74d3c733;color:#fff;box-shadow:inset 0 0 0 1px #91eddb33}.nav-icon{font-size:20px;line-height:1}.nav-label{font-weight:600}.menu-group{margin-top:.25rem}.menu-section{font-size:.74rem;letter-spacing:.16em;color:#c2dcebb8;margin:.95rem 0 .35rem .68rem;font-weight:700}.menu-badge{margin-left:auto;min-width:22px;height:22px;border-radius:999px;padding:0 .4rem;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1ea49b,#197e8d);color:#eaffff;font-size:.74rem;font-weight:800}.profile-head{display:flex;align-items:center;gap:.5rem}.profile-head .material-symbols-outlined{font-size:18px;color:#d7effc}.profile-head strong{flex:1}.role-tag{color:#9fc4d8;font-size:.84rem;margin-left:.15rem}.profile-box button{width:100%;margin-top:.15rem}.profile-box{background:linear-gradient(180deg,#ffffff1f,#ffffff0f);padding:.75rem;border-radius:14px;display:grid;gap:.5rem;border:1px solid rgba(255,255,255,.12);margin-top:.7rem;position:sticky;bottom:0;z-index:2;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.content-area{padding:1.6rem 1.55rem}.icon-btn{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#ffffff29;color:#e9f7ff}.collapse-btn{width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:#ffffff1f;border:1px solid rgba(189,225,243,.22);box-shadow:none;padding:0;opacity:1}.collapse-btn:hover{background:#ffffff2e;filter:none}.collapse-btn .material-symbols-outlined{font-size:20px;line-height:1}.icon-btn .material-symbols-outlined{font-size:20px}.app-shell.collapsed .sidebar h1,.app-shell.collapsed .sidebar .muted,.app-shell.collapsed .nav-label,.app-shell.collapsed .menu-section,.app-shell.collapsed .menu-badge,.app-shell.collapsed .profile-box{display:none}.app-shell.collapsed .sidebar-top{justify-content:center;align-items:center;gap:.45rem}.app-shell.collapsed .brand-wrap{justify-items:center}.app-shell.collapsed .sidebar{padding:1rem .55rem .9rem}.app-shell.collapsed .sidebar nav{overflow:hidden auto;padding-top:.2rem}.app-shell.collapsed .menu-group{margin-top:0}.app-shell.collapsed .nav-link{width:52px;height:52px;padding:0;margin:0 auto .42rem;justify-content:center;border-radius:14px}.app-shell.collapsed .nav-link.active{background:#74d3c738;box-shadow:inset 0 0 0 1px #91eddb3d,0 8px 18px #061d2c33}.app-shell.collapsed .nav-icon{font-size:23px}.app-shell.collapsed .brand-logo{width:46px;height:46px}.app-shell.collapsed .collapse-btn{position:static;width:34px;height:34px;border-radius:8px;padding:0;margin:0;background:transparent;border-color:#bde1f32e}.app-shell.collapsed .collapse-btn .material-symbols-outlined{font-size:18px}.app-shell.collapsed .nav-link{justify-content:center}.panel{background:var(--surface);border-radius:18px;border:1px solid var(--border);padding:1.08rem;box-shadow:0 8px 28px #0914250d}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.kpi-card{background:linear-gradient(180deg,#fff,#f8fbff);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:16px;padding:.95rem 1rem 1.05rem;box-shadow:0 6px 18px #0f172a0a}.kpi-card span{color:#74859a;font-size:.85rem;font-weight:600}.kpi-card strong{display:block;font-size:2rem;margin-top:.15rem;letter-spacing:-.02em}.two-col{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.form-grid{display:grid;gap:.65rem}.field-label{font-size:.86rem;color:#5f7389;font-weight:700;margin:0 0 .1rem .1rem}.field-help{color:#6f8196;font-size:.8rem;margin-top:-.3rem}.stack-gap{display:grid;gap:1rem}.muted{color:#afd2e6}.sidebar .muted{font-size:.74rem;letter-spacing:.04em;text-transform:uppercase;color:#94bed4}.ok-box{background:#ecfdf5;border:1px solid #86efac;padding:.6rem;border-radius:10px}.error-box{background:#fef2f2;border:1px solid #fca5a5;padding:.6rem;border-radius:10px;color:#7f1d1d}.center-screen{min-height:100vh;display:grid;place-items:center}.title-help{display:inline-flex;align-items:center;gap:.45rem}.help-tip{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;outline:none}.help-tip__icon{width:18px;height:18px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#d8e7f2;color:#294a63;font-size:11px;font-weight:800;border:1px solid #bfd4e3;line-height:1}.help-tip__bubble{position:absolute;left:50%;transform:translate(-50%);bottom:calc(100% + 8px);min-width:220px;max-width:320px;background:#08364a;color:#e8f8ff;border:1px solid #13506e;border-radius:10px;padding:.5rem .6rem;font-size:.76rem;line-height:1.35;box-shadow:0 14px 30px #03121f4d;opacity:0;visibility:hidden;transition:opacity .15s ease;pointer-events:none;z-index:20}.help-tip:hover .help-tip__bubble,.help-tip:focus .help-tip__bubble,.help-tip:focus-within .help-tip__bubble{opacity:1;visibility:visible}h2,h3{margin:0;letter-spacing:-.015em}h2{font-size:2.05rem;margin-bottom:.25rem}h3{font-size:1.1rem;margin-bottom:.15rem}.page-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.page-help-btn{display:inline-flex;align-items:center;gap:.35rem;text-decoration:none;border:1px solid var(--border);background:#f8fbff;color:#35506a;border-radius:10px;padding:.5rem .72rem;font-weight:700}.page-help-btn .material-symbols-outlined{font-size:18px}.page-help-btn:hover{background:#edf5ff}table{width:100%;border-collapse:collapse}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.7rem .55rem;font-size:.92rem}th{color:var(--muted);font-weight:800;font-size:.84rem;text-transform:uppercase;letter-spacing:.03em}.dashboard-page{gap:.9rem}.dashboard-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.dashboard-actions{display:flex;gap:.55rem}.dashboard-actions button{display:flex;align-items:center;gap:.35rem}button.ghost{background:var(--surface-2);color:#334155;border:1px solid var(--border)}.compact-filter-bar{display:grid;grid-template-columns:auto repeat(5,minmax(120px,1fr)) auto auto;gap:.5rem;align-items:center}.compact-filter-bar>.material-symbols-outlined{color:#23888f;margin-left:.3rem}.mock-kpi-grid .kpi-card{min-height:112px}.kpi-head{display:flex;align-items:center;gap:.4rem}.kpi-head .material-symbols-outlined{font-size:18px;color:#1e8f95}.kpi-card small{color:#1a9a80;font-weight:700}.dashboard-charts-top,.dashboard-charts-bottom{display:grid;gap:.9rem;grid-template-columns:1.1fr 1fr}.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;align-items:center}.status-list{display:grid;gap:.55rem}.status-row{display:flex;justify-content:space-between;align-items:center}.status-row span{display:inline-flex;align-items:center;gap:.4rem}.status-row i{width:10px;height:10px;border-radius:50%;display:inline-block}.chip{display:inline-flex;align-items:center;padding:.25rem .55rem;border-radius:999px;font-size:.78rem;font-weight:700;border:1px solid transparent}.chip.completata{background:#d8f4ed;color:#0d6b66}.chip.in-corso{background:#fff1d6;color:#93640d}.chip.in-attesa{background:#fff4d4;color:#8f6b12}.chip.spedito{background:#dff5f4;color:#1f7f8e}.chip.in-analisi{background:#e8f0f9;color:#3b5e84}.chip.mancante{background:#fff1d6;color:#9a6111}.chip.attivo{background:#0e9a93;color:#e9fffb}.chip.follow-up{background:#74b9cf;color:#f5fcff}.chip.concluso{background:#edf1f6;color:#4b5563}.patient-screen td .chip{min-width:102px;justify-content:center;padding:.32rem .82rem;border-radius:10px;font-size:.78rem;line-height:1.1;font-weight:700}.patient-screen td:last-child{text-align:right}.patient-screen th:last-child{text-align:right}.patient-screen{gap:.85rem}.patient-tabs{display:inline-flex;gap:0;padding:.2rem}.patient-tabs .tab{background:transparent;color:#5d6f84;border:none;border-radius:10px;padding:.52rem .9rem;font-weight:700}.patient-tabs .tab.active{background:#e4f1ef;color:#2f4858;box-shadow:inset 0 -2px #33556b}.patient-tabs .tab .material-symbols-outlined{font-size:17px;vertical-align:-3px;margin-right:.15rem}.patient-stats{display:grid;gap:.75rem;grid-template-columns:repeat(4,minmax(160px,1fr))}.patient-stats .kpi-card{min-height:116px}.patient-stats .kpi-card.split{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.8rem}.patient-stats .split-divider{width:1px;height:80%;background:#dce5ef}.patient-stats .split-col{display:grid;gap:.2rem}.patient-stats .split-col .kpi-head span:last-child{color:#de6f25}.kpi-card.mini strong{font-size:2.1rem}.patient-main-grid{display:grid;gap:.9rem;grid-template-columns:1fr 1fr}.panel-title-row{display:flex;justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.5rem}.table-search{max-width:220px}.table-filters-row{margin-bottom:.55rem;max-width:280px}.search-filter-row{max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.search-filter-row select{width:100%}.top-search{width:260px}.top-search input{background:#f8fbff;min-height:44px}.search-filter-row .input-icon-wrap input,.search-filter-row .input-icon-wrap select{min-height:48px;background:#f8fbff}.filter-select-wrap{position:relative}.filter-select-wrap select{padding-left:2.35rem;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.filter-select-wrap .left-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);font-size:20px;color:#5d7188;pointer-events:none}.dropzone{border:1px dashed #c6d6e7;border-radius:12px;padding:.9rem;display:flex;align-items:center;gap:.5rem;color:#6b7f95;background:#f6f9fd}.dropzone input{display:none}.dropzone .material-symbols-outlined{color:#2d8a95}.api-header{display:flex;align-items:center;justify-content:space-between;gap:.6rem;background:#f4f8fd;border:1px solid var(--border);border-radius:10px;padding:.5rem .65rem;font-weight:700;color:#42556b}.api-json{width:100%;background:#062b41;color:#d8f6ff;border:1px solid #1b5a79;border-radius:12px;padding:.75rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace}.csv-import-row{display:grid;grid-template-columns:1fr auto;gap:.55rem}.visits-page{gap:.85rem}.visits-tabs{display:inline-flex;padding:.2rem;gap:.2rem;width:fit-content}.visits-tabs .tab{background:transparent;color:#607289;border-radius:10px;padding:.48rem .95rem;border:none;font-weight:700}.visits-tabs .tab.active{background:#dff0ef;color:#243f53;box-shadow:inset 0 -2px #33556b}.visits-tabs .tab .material-symbols-outlined{font-size:18px;vertical-align:-4px}.visits-stats{display:grid;gap:.75rem;grid-template-columns:repeat(3,minmax(220px,1fr))}.visit-tab-content{width:100%;max-width:none}.active-panel{border-color:#b5d5dd;box-shadow:0 10px 24px #0b7a751a}.input-icon-wrap{position:relative}.input-icon-wrap input{width:100%;padding-right:2.3rem}.input-icon-wrap .material-symbols-outlined{position:absolute;right:.65rem;top:50%;transform:translateY(-50%);color:#60758d;font-size:20px}.visit-inline-row{grid-template-columns:1fr 1fr}.visits-table-tools{display:flex;gap:.55rem;align-items:center}.manage-btn{padding:.38rem .8rem;border-radius:9px;font-size:.86rem}.manage-visit-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0714226b;display:grid;place-items:center;z-index:90;padding:1rem}.manage-visit-modal{width:min(840px,100%);max-height:90vh;overflow:auto;display:grid;gap:.8rem}.manage-visit-head{display:flex;justify-content:space-between;gap:.8rem;align-items:start}.manage-visit-head p{margin:.2rem 0 0;color:#61768d}.manage-visit-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;color:#334155}.manage-visit-form{display:grid;grid-template-columns:1fr auto;gap:.55rem}.manage-visit-actions{display:flex;justify-content:flex-end;gap:.55rem}.manage-visit-table th,.manage-visit-table td{font-size:.84rem}.manage-visit-audit h4{margin:.25rem 0 .45rem;font-size:.98rem}.manage-visit-audit table th,.manage-visit-audit table td{font-size:.8rem}.collections-page{gap:.85rem}.collections-top{grid-template-columns:1fr 1fr}.collections-form h3{display:inline-flex;align-items:center;gap:.35rem;font-size:1.02rem}.collections-form h3 .material-symbols-outlined{font-size:18px;color:#2b8b94}.collections-filter-bar{display:grid;grid-template-columns:1.2fr .7fr auto;gap:.6rem;align-items:center}.collections-table-wrap{padding-top:.65rem}.collections-table th,.collections-table td{font-size:.82rem;padding:.53rem .45rem}.sample-status{min-width:122px;justify-content:center;padding:.26rem .55rem;font-size:.66rem;border-radius:8px}.sample-status.pending-shipment{background:#f0df9a;color:#5f4c0d}.sample-status.in-transit{background:#bfe9e6;color:#0a6262}.sample-status.received{background:#bde7da;color:#1d6c57}.sample-status.missing{background:#f4e6b3;color:#785b08}.mini-action-btn{padding:.3rem .55rem;border-radius:8px;font-size:.68rem}.shipments-page{gap:.85rem}.shipments-top{grid-template-columns:1fr 1fr}.shipment-form h3{font-size:1rem}.shipments-table-wrap{padding-top:.65rem}.shipments-table th,.shipments-table td{font-size:.78rem;padding:.5rem .4rem}.distinta-actions{display:inline-flex;gap:.3rem}.distinta-actions .mini-action-btn{min-width:52px}.admin-page{gap:.85rem}.admin-kpi-grid{display:grid;gap:.7rem;grid-template-columns:repeat(4,minmax(150px,1fr))}.admin-top-grid{display:grid;gap:.8rem;grid-template-columns:2fr .85fr}.admin-tabs{display:inline-flex;gap:.7rem;margin-bottom:.7rem}.admin-tabs .tab{border:none;background:transparent;color:#62748b;border-radius:10px;padding:.4rem .1rem;font-weight:700}.admin-tabs .tab.active{color:#20384d;box-shadow:inset 0 -2px #1e8a90}.admin-search-row{display:grid;grid-template-columns:1.2fr .6fr auto;gap:.55rem;margin-bottom:.65rem}.admin-new-user{align-self:start}.admin-user-filters{display:grid;grid-template-columns:1fr .7fr .7fr;gap:.55rem;margin-bottom:.65rem}.admin-actions{display:flex;gap:.35rem}.admin-audit-actions{display:flex;align-items:center;gap:.5rem}.smtp-config-form{margin-top:.5rem}.smtp-test-row{margin-top:.75rem}.chip.super-user{background:#5b5bc7;color:#f6f7ff}.checkbox-row{display:inline-flex;align-items:center;gap:.5rem;color:#42586f;font-weight:700}.checkbox-row input{width:18px;height:18px}.alerts-page,.help-page{gap:.85rem}.help-page p{margin:.25rem 0 0;color:#364c63;line-height:1.55}.help-links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.55rem}.help-tab-panel{display:grid;gap:.75rem}.help-tabs{display:flex;flex-wrap:wrap;gap:.45rem}.help-tabs .tab{border:1px solid #cddaea;background:#f7fbff;color:#4b627b;border-radius:10px;padding:.45rem .72rem;font-weight:700}.help-tabs .tab.active{background:#e3f1f6;color:#1b4058;border-color:#a8c5d7;box-shadow:inset 0 -2px #2c637f}.help-active-label{color:#48627b;font-weight:700;font-size:.92rem}.help-content-section{border:1px solid #d7e3ef;background:#fbfdff;border-radius:12px;padding:.85rem;display:grid;gap:.5rem}.help-link{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:1px solid #cbd9e8;background:#f8fbff;color:#1f4f72;border-radius:12px;padding:.62rem .75rem;text-decoration:none;font-weight:700}.help-link:hover{background:#ecf5ff;border-color:#a9c0d9}.help-steps{margin:.45rem 0 0;padding-left:1.1rem;display:grid;gap:.45rem}.help-list{margin:.45rem 0 0;padding-left:1.1rem;color:#364c63}.full-refresh-btn{width:100%}.alerts-kpi-grid{display:grid;gap:.75rem;grid-template-columns:1.1fr 1.1fr 1fr 1fr}.alerts-page .kpi-head .danger{color:#e4584d}.alerts-page .kpi-head .warning{color:#e39b3d}.danger-text{color:#da5e58!important}.alerts-filters{display:grid;grid-template-columns:1.1fr .8fr .8fr .8fr auto;gap:.55rem;align-items:center}.alerts-table td{vertical-align:top}.alert-chip{gap:.25rem;padding:.34rem .7rem;border-radius:9px;color:#fff;min-width:108px;justify-content:center}.alert-chip .material-symbols-outlined{font-size:15px}.alert-chip.critico{background:#e45757}.alert-chip.avviso{background:#df9a43}.alert-chip.notifica{background:#2ea8a0}.alert-chip.sistema{background:#2b98a5}.alerts-pagination{margin-top:.65rem;display:flex;justify-content:space-between;align-items:center;color:#5f7288}.page-controls{display:flex;gap:.4rem;align-items:center}.page-controls button{min-width:52px;padding:.35rem .6rem}.page-size-select{min-width:120px;background:#f8fbff}.page-controls .active-page{background:#dfeef3;color:#266876;border:1px solid #bfd7df}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{grid-template-rows:auto 1fr}.app-shell.collapsed{grid-template-columns:1fr}.app-shell.collapsed .sidebar h1,.app-shell.collapsed .sidebar .muted,.app-shell.collapsed .nav-label,.app-shell.collapsed .profile-box{display:initial}.app-shell.collapsed .nav-link{justify-content:flex-start}.content-area{padding:1rem}h2{font-size:1.55rem}.page-head,.dashboard-header{flex-direction:column;align-items:flex-start}.compact-filter-bar{grid-template-columns:1fr}.compact-filter-bar>.material-symbols-outlined{display:none}.dashboard-charts-top,.dashboard-charts-bottom,.status-grid,.patient-stats,.patient-main-grid,.visits-stats{grid-template-columns:1fr}.visits-table-tools{width:100%;flex-direction:column;align-items:stretch}.manage-visit-summary,.manage-visit-form{grid-template-columns:1fr}.manage-visit-actions{flex-direction:column}.visits-tabs{width:100%}.patient-tabs{display:grid;width:100%}.search-filter-row,.csv-import-row{grid-template-columns:1fr}.top-search{width:100%}.alerts-kpi-grid,.alerts-filters,.collections-filter-bar{grid-template-columns:1fr}.help-tabs{display:grid;grid-template-columns:1fr}.collections-top,.shipments-top,.admin-kpi-grid,.admin-top-grid,.admin-search-row,.admin-user-filters{grid-template-columns:1fr}.admin-audit-actions{width:100%;flex-direction:column;align-items:stretch}.alerts-pagination{flex-direction:column;align-items:flex-start;gap:.5rem}}
