:root {
  /* Variabili storiche di Prenota collegate al design system condiviso (design/recupera.css). */
  color-scheme: light;
  --ink: var(--rc-ink);
  --muted: var(--rc-muted);
  --line: var(--rc-line);
  --paper: var(--rc-paper);
  --white: var(--rc-card);
  --green: var(--rc-mint);
  --green-deep: var(--rc-green);
  --coral: var(--rc-coral);
  --yellow: var(--rc-yellow);
  --mono: var(--rc-mono);
  --sans: var(--rc-font);
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 14px; }
button, input, select { font: inherit; }
button:focus-visible, input:focus-visible, select:focus-visible, a:focus-visible { outline: 3px solid var(--coral); outline-offset: 2px; }
.app-shell { min-height: 100vh; background-color: var(--rc-surface); }
.env-label, .eyebrow, .sidebar-label, .metric > span, .kicker { font: 700 10px var(--mono); letter-spacing: .8px; text-transform: uppercase; }
.env-label { padding: 7px 9px; color: #a24e3d; border: 1px solid #ecc2b7; background: #fff8f5; }
.user-card > i { width: 8px; height: 8px; border-radius: 50%; background: #d7a34a; box-shadow: 0 0 0 3px rgba(215,163,74,.14); }
.hidden { display: none !important; }
.auth-layout { min-height: calc(100vh - var(--rc-sitebar-h)); max-width: 1220px; margin: auto; padding: 7vh 5vw; display: grid; grid-template-columns: minmax(0,1.1fr) minmax(340px,.8fr); align-items: center; gap: clamp(48px,9vw,130px); }
.auth-intro { min-height: 440px; position: relative; display: flex; flex-direction: column; justify-content: center; }
.kicker { color: var(--green-deep); }.kicker::before { content: ''; display: inline-block; width: 12px; height: 2px; margin: 0 8px 3px 0; background: var(--coral); }
.auth-intro h1 { margin: 24px 0 16px; font-size: clamp(44px,5.5vw,68px); line-height: 1.02; font-weight: 800; letter-spacing: -1.5px; }.auth-intro h1 em { color: var(--green-deep); font-style: normal; }
.auth-intro > p:last-of-type { color: var(--muted); font-size: 14px; }
.intro-stamp { position: absolute; right: 6%; bottom: 7px; display: flex; align-items: center; gap: 9px; transform: rotate(-8deg); color: var(--green-deep); }.intro-stamp strong { width: 55px; height: 55px; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; font: 18px var(--mono); }.intro-stamp span { font: 9px/1.5 var(--mono); }
.auth-panel { padding: clamp(24px,4vw,42px); border: 1px solid var(--rc-line-strong); border-radius: var(--rc-radius); background: white; box-shadow: var(--rc-shadow-offset); animation: rise .4s ease both; }
.section-heading, .surface-heading, .page-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }.eyebrow { margin: 0 0 8px; color: var(--muted); }.eyebrow::before { content: ''; display: inline-block; width: 12px; height: 2px; margin: 0 8px 3px 0; background: var(--coral); }h2 { margin: 0; font-size: 19px; font-weight: 700; letter-spacing: -.3px; }.pale-index { color: #9aa8a1; font: 11px var(--mono); }
.form-stack { display: grid; gap: 14px; margin-top: 25px; }.name-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }label { display: grid; gap: 7px; color: #42534e; font-size: 12px; font-weight: 700; }label small,.label-note { color: #89968f; font-size: 10px; font-weight: 400; }
input, select { width: 100%; min-width: 0; padding: 10px 11px; border: 1px solid var(--rc-line-strong); border-radius: var(--rc-radius); background: #fcfdfb; color: var(--ink); font-size: 13px; }input::placeholder { color: #a8b1ab; }input:focus, select:focus { border-color: var(--green-deep); outline: 0; box-shadow: 0 0 0 3px rgba(20,107,81,.1); }
.divider { display: flex; align-items: center; gap: 12px; color: #93a098; font: 10px var(--mono); }.divider::after { content: ''; height: 1px; flex: 1; background: var(--line); }
.button { min-height: 40px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: 1px solid transparent; border-radius: var(--rc-radius); cursor: pointer; font-size: 13px; font-weight: 600; transition: transform .16s ease, background .16s ease; }.button:hover { transform: translateY(-1px); }.button:disabled { opacity: .55; cursor: wait; transform: none; }.button-primary { color: white; background: var(--green-deep); }.button-primary:hover { background: var(--rc-green-dark); }.button-wide { width: 100%; margin-top: 4px; }.button-outline { border-color: var(--rc-line-strong); background: var(--rc-card); }.button-outline:hover { background: white; }.button-quiet { min-height: 31px; padding: 0 11px; border-color: var(--line); background: transparent; }.button-danger { min-height: 30px; padding: 0 9px; color: #a34334; border-color: #f0d0c8; background: #fff8f5; font-size: 10px; }
.text-link { justify-self: end; padding: 0; border: 0; background: transparent; color: var(--green-deep); font-size: 11px; font-weight: 700; cursor: pointer; }.text-link:hover { text-decoration: underline; }
.config-status { margin: 16px 0 0; padding: 10px 11px; border-left: 2px solid var(--green-deep); background: #f0f7f1; color: #476b5a; font-size: 11px; line-height: 1.5; }.config-status.error { border-left-color: var(--coral); background: #fff5f1; color: #a24e3d; }
.auth-switch { margin-top: 20px; display: flex; justify-content: center; gap: 6px; color: var(--muted); font-size: 11px; }.auth-switch button { padding: 0; border: 0; background: none; color: var(--green-deep); font-weight: 800; cursor: pointer; }.security-note { margin: 16px 0 0; color: #84918a; font-size: 10px; line-height: 1.55; text-align: center; }
.workspace { min-height: calc(100vh - var(--rc-sitebar-h)); display: grid; grid-template-columns: 220px minmax(0,1fr); }.sidebar { min-height: calc(100vh - var(--rc-sitebar-h)); display: flex; flex-direction: column; padding: 30px 14px 17px; border-right: 1px solid var(--line); background: rgba(248,249,245,.83); }.sidebar-label { margin: 0 10px; color: #96a29b; }.main-nav { display: grid; gap: 5px; margin-top: 18px; }.nav-item { min-height: 41px; padding: 0 10px; display: flex; align-items: center; gap: 11px; border: 1px solid transparent; background: transparent; color: #65746e; text-align: left; cursor: pointer; font-size: 12px; }.nav-item:hover { background: rgba(255,255,255,.7); }.nav-item { border-radius: var(--rc-radius); font-weight: 600; }.nav-item.active { border-color: var(--green-deep); background: var(--green-deep); color: white; font-weight: 700; }.nav-item > span { color: #7d8b85; font: 10px var(--mono); }.nav-item.active > span { color: var(--rc-mint); }
.user-card { margin-top: auto; padding: 13px 6px 0; display: flex; align-items: center; gap: 9px; border-top: 1px solid var(--line); }.avatar { flex: 0 0 33px; height: 33px; display: grid; place-items: center; border-radius: 50%; background: var(--green); color: var(--green-deep); font-weight: 800; }.user-lines { min-width: 0; display: grid; gap: 3px; }.user-lines strong { max-width: 132px; overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.user-lines small { color: var(--muted); font-size: 9px; text-transform: capitalize; }.user-card > i { width: 7px; height: 7px; margin-left: auto; background: #29976f; box-shadow: none; }
.main-content { width: 100%; max-width: 1450px; margin: auto; padding: 36px clamp(20px,4vw,58px) 18px; }.page-heading { align-items: end; margin-bottom: 23px; }.page-heading h1 { margin: 0; font-size: clamp(28px,3vw,36px); line-height: 1.15; font-weight: 800; letter-spacing: -1px; }.page-actions { display: flex; align-items: center; gap: 15px; }.page-actions time { color: var(--muted); font: 10px var(--mono); }
.metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; margin-bottom: 16px; }.metric { min-height: 121px; position: relative; display: flex; flex-direction: column; overflow: hidden; padding: 16px 18px; border: 1px solid var(--rc-line-strong); border-radius: var(--rc-radius); animation: rise .4s ease both; }.metric:nth-child(2) { animation-delay: .06s; }.metric:nth-child(3) { animation-delay: .12s; }.metric-dark { color: white; border-color: var(--ink); background: var(--ink); }.metric-green { border-color: #a4d8bd; background: var(--green); }.metric-white { background: white; }.metric > span { color: #aebcb5; }.metric-green > span { color: #397660; }.metric-white > span { color: #7b8b83; }.metric strong { margin-top: 11px; font-size: 32px; line-height: 1; font-weight: 800; letter-spacing: -1px; }.metric small { margin-top: 7px; color: #aebcb5; font-size: 10px; }.metric-green small,.metric-white small { color: #61776c; }
.overview-grid { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(240px,.8fr); gap: 14px; align-items: start; }.surface { padding: 20px; border: 1px solid var(--rc-line-strong); border-radius: var(--rc-radius); background: var(--rc-card); }.surface-heading { align-items: center; margin-bottom: 14px; }.surface-heading h2 { font-size: 17px; }.count-badge { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: #e5f4e9; color: var(--green-deep); font: 10px var(--mono); }.muted-copy { margin: 0 0 15px; color: var(--muted); font-size: 11px; line-height: 1.6; }.compact-form { gap: 11px; margin-top: 0; }.compact-form .button { margin-top: 4px; }.notification-panel,.request-panel,.secondary-surface { margin-top: 14px; }.slot-search { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }.slot-search .button { grid-column: 1/-1; }.search-summary { margin: 12px 0 6px; color: var(--muted); font-size: 10px; line-height: 1.5; }.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }.form-grid .button { align-self: end; }
.list-content { display: grid; }.list-row { min-width: 0; display: grid; grid-template-columns: minmax(0,1.1fr) minmax(120px,.9fr) auto; align-items: center; gap: 11px; padding: 12px 0; border-top: 1px solid #e9eee9; }.list-row:first-child { border-top: 0; }.row-main { min-width: 0; }.row-main strong { display: block; overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }.row-main span,.row-detail { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; }.row-detail { line-height: 1.5; }.row-actions { display: flex; align-items: center; justify-content: end; gap: 7px; }.row-id { color: #9ba8a1; font: 9px var(--mono); }.patient-id-input { width: 125px; padding: 7px; font-size: 10px; }.empty-state { padding: 22px 8px; color: #89968f; text-align: center; font-size: 11px; }
.page-footer { margin-top: 22px; padding-top: 11px; display: flex; justify-content: space-between; border-top: 1px solid var(--line); color: #8a9890; font: 9px var(--mono); }.page-footer b { color: var(--coral); font-weight: 500; }.toast { border-radius: var(--rc-radius); position: fixed; right: 20px; bottom: 20px; z-index: 5; max-width: min(430px,calc(100vw - 32px)); padding: 12px 15px; transform: translateY(14px); opacity: 0; pointer-events: none; border: 1px solid var(--line); border-left: 3px solid var(--green-deep); background: white; box-shadow: 0 12px 35px rgba(23,42,41,.12); font-size: 11px; transition: .2s ease; }.toast.show { transform: translateY(0); opacity: 1; }.toast.error { border-left-color: var(--coral); }
/* Proposte di anticipo (accetta / rifiuta) */
.offer-panel { margin-bottom: 14px; border-color: var(--green-deep); box-shadow: var(--rc-shadow-offset); }
.offer-list { display: grid; gap: 12px; }
.offer-card { display: grid; grid-template-columns: minmax(0,1fr) 220px; gap: 18px; padding: 16px; border: 1px solid var(--rc-line-strong); border-radius: var(--rc-radius); background: var(--rc-surface-low); }
.offer-kicker { margin: 0 0 4px; color: var(--muted); font: 700 10px var(--mono); letter-spacing: .8px; text-transform: uppercase; }
.offer-title { display: block; font-size: 17px; }
.offer-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 18px; margin: 14px 0 0; }
.offer-facts div { min-width: 0; }
.offer-facts dt { color: var(--muted); font: 600 10px var(--mono); letter-spacing: .6px; text-transform: uppercase; }
.offer-facts dd { margin: 3px 0 0; font-size: 13px; font-weight: 600; overflow-wrap: anywhere; }
.offer-side { display: flex; flex-direction: column; justify-content: center; gap: 8px; padding-left: 18px; border-left: 1px solid var(--rc-line-strong); }
.offer-days { margin: 0; color: var(--green-deep); font-size: 13px; font-weight: 700; }
.offer-days strong { font-size: 30px; letter-spacing: -1px; }
.offer-side small { margin-bottom: 4px; color: var(--muted); font-size: 11px; }
.offer-side .button-wide { margin-top: 0; }
select { min-height: 40px; }select:not([multiple]) { -webkit-appearance: none; appearance: none; padding-right: 32px; background: #fcfdfb url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23146b51' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center; }.form-grid > label, .slot-search > label, .form-stack > label { align-content: start; }select[multiple] { min-height: 0; padding: 4px; }select[multiple] option { padding: 4px 6px; }
@keyframes rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width:900px) { .workspace { grid-template-columns: 185px minmax(0,1fr); }.main-content { padding: 28px 19px 17px; }.overview-grid { grid-template-columns: minmax(0,1.2fr) minmax(215px,.8fr); }.list-row { grid-template-columns: minmax(0,1fr) auto; }.list-row .row-detail { grid-column: 1/-1; margin-top: -4px; } }
@media (max-width:680px) { .offer-card { grid-template-columns: 1fr; }.offer-side { padding: 14px 0 0; border-left: 0; border-top: 1px solid var(--rc-line-strong); }.offer-facts { grid-template-columns: 1fr; } .env-label { display: none; }.auth-layout { min-height: unset; grid-template-columns: 1fr; gap: 25px; padding: 30px 16px 35px; }.auth-intro { min-height: unset; }.auth-intro h1 { margin: 15px 0 9px; font-size: 46px; }.auth-intro > p:last-of-type { font-size: 12px; }.intro-stamp { right: 4px; bottom: -15px; transform: scale(.72) rotate(-8deg); transform-origin: right bottom; }.auth-panel { padding: 22px 17px; }.name-fields { grid-template-columns: 1fr; gap: 14px; }.workspace { min-height: unset; display: flex; flex-direction: column; }.sidebar { min-height: unset; padding: 8px 10px; border-right: 0; border-bottom: 1px solid var(--line); }.sidebar-label,.user-card { display: none; }.main-nav { display: flex; overflow-x: auto; gap: 4px; margin: 0; scrollbar-width: none; }.main-nav::-webkit-scrollbar { display: none; }.nav-item { flex: 0 0 auto; min-height: 36px; padding: 0 9px; gap: 6px; white-space: nowrap; font-size: 10px; }.main-content { padding: 23px 13px 16px; }.page-heading { align-items: start; }.page-heading h1 { font-size: 24px; }.page-actions { flex-direction: column-reverse; align-items: end; gap: 7px; }.page-actions time { font-size: 8px; }.button-outline { min-height: 32px; padding: 0 9px; font-size: 10px; }.metrics { gap: 6px; }.metric { min-height: 99px; padding: 11px 9px; }.metric > span { min-height: 23px; font-size: 8px; line-height: 1.4; }.metric strong { margin-top: 5px; font-size: 26px; }.metric small { margin-top: 6px; font-size: 8px; }.overview-grid,.form-grid,.slot-search { grid-template-columns: 1fr; }.slot-search .button { grid-column: auto; }.surface { padding: 15px 12px; }.notification-panel,.request-panel,.secondary-surface { margin-top: 10px; }.list-row { gap: 7px; }.row-main strong { font-size: 11px; }.patient-id-input { width: 100px; }.page-footer { font-size: 8px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }
