:root{
  --bg:#f5f7f6;--surface:#fff;--ink:#19323c;--muted:#6e7f85;--line:#dfe7e5;
  --primary:#264653;--primary2:#2a9d8f;--father:#457b9d;--mother:#b56576;--pending:#e9c46a;
  --danger:#c94c4c;--shadow:0 8px 28px rgba(27,55,64,.08);--radius:20px;
}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{max-width:980px;margin:0 auto;min-height:100vh;padding-bottom:92px}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px 20px 14px}.topbar h1{margin:0;font-size:28px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--primary2);margin-bottom:4px}.role-switch{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}.role-switch select{border:1px solid var(--line);background:var(--surface);padding:9px 12px;border-radius:12px;color:var(--ink);font-weight:700}
main{padding:0 20px}.view{display:none}.view.active{display:block}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:12px 0 16px}.section-head h2{margin:0 0 4px;font-size:25px}.section-head p{margin:0;color:var(--muted);font-size:14px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:16px}.card.compact{padding:12px 16px}.calendar-toolbar{display:grid;grid-template-columns:42px 1fr auto 42px;align-items:center;gap:8px}.calendar-toolbar strong{text-align:center}.icon-btn,.text-btn,.segmented button{border:0;background:transparent;color:var(--ink)}.icon-btn{font-size:28px}.text-btn{color:var(--primary2);font-weight:800}.segmented{background:#e9efed;padding:3px;border-radius:12px;display:flex}.segmented button{padding:8px 12px;border-radius:9px;font-weight:700;font-size:13px}.segmented button.active{background:white;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:6px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot.father{background:var(--father)}.dot.mother{background:var(--mother)}.dot.pending{background:var(--pending)}
.calendar-grid{padding:10px;overflow:hidden;min-width:0}.weekday-row,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));width:100%;min-width:0}.weekday-row div{text-align:center;font-size:11px;font-weight:800;color:var(--muted);padding:8px 0}.day-cell{min-height:118px;min-width:0;width:100%;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:8px;position:relative;background:#fff;overflow:hidden;text-align:left}.day-cell:nth-child(7n){border-right:0}.day-cell.outside{background:#fafbfb;color:#a9b4b5}.day-cell.today .date-num{background:var(--primary);color:white}.date-num{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;margin-bottom:6px}.assignments{display:flex;flex-direction:column;gap:4px;min-width:0}.assignment{min-width:0;max-width:100%;border-left:4px solid;padding:4px 6px;border-radius:7px;background:#f5f7f7;font-size:10px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assignment-full{display:block;overflow:hidden;text-overflow:ellipsis}.assignment-compact{display:none;font-weight:800}.assignment.father{border-color:var(--father)}.assignment.mother{border-color:var(--mother)}.assignment.pending{border-color:var(--pending);background:#fff9e9}.mini-event{font-size:10px;margin-top:5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-grid{display:grid;gap:10px}.week-day{border:1px solid var(--line);border-radius:16px;padding:14px;background:#fff}.week-day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.week-day.today{outline:2px solid var(--primary2)}
.primary,.secondary,.danger{border:0;border-radius:12px;padding:11px 14px;font-weight:800}.primary{background:var(--primary);color:#fff}.secondary{background:#edf3f1;color:var(--primary)}.danger{background:#fff0f0;color:var(--danger)}.full{width:100%}.button-row{display:flex;gap:10px;flex-wrap:wrap}.action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.action-card{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:22px;text-align:left;box-shadow:var(--shadow);min-height:190px}.action-card strong,.action-card small{display:block}.action-card strong{font-size:17px;margin:14px 0 6px}.action-card small{color:var(--muted);line-height:1.4}.action-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:#eaf3f1;color:var(--primary);font-size:22px;font-weight:900}
.stack{display:flex;flex-direction:column;gap:12px}.stack.inner{margin-top:12px}.item-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:15px}.item-top{display:flex;justify-content:space-between;gap:12px}.item-card h4{margin:0 0 5px}.meta{font-size:12px;color:var(--muted);line-height:1.5}.pill{font-size:11px;font-weight:800;border-radius:999px;padding:5px 9px;background:#eef3f2;white-space:nowrap}.pill.pending{background:#fff5d8;color:#8b6b11}.pill.approved{background:#e8f6ef;color:#237a57}.pill.rejected{background:#fdecec;color:#a43838}.balance-card{text-align:center;background:linear-gradient(135deg,#264653,#315c68);color:#fff}.balance-card .amount{font-size:32px;font-weight:900;margin:8px 0}.balance-card p{margin:0;color:#d7e6e3}.expense-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.expense-amount{font-weight:900;font-size:18px}.link-btn{border:0;background:transparent;color:var(--primary2);font-weight:800;padding:0}.card-title-row{display:flex;justify-content:space-between;align-items:center}.card h3{margin:0 0 10px}.badge,.nav-badge{background:var(--danger);color:#fff;border-radius:999px;min-width:24px;height:24px;display:grid;place-items:center;font-weight:900;font-size:11px}.nav-badge{position:absolute;right:11px;top:7px;min-width:18px;height:18px}.hidden{display:none!important}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.settings-grid label{margin:0}.history-list{display:flex;flex-direction:column;gap:10px;max-height:360px;overflow:auto}.history-entry{border-left:3px solid var(--line);padding-left:10px}.history-entry small{color:var(--muted)}.danger-zone p{color:var(--muted);font-size:13px}
.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(980px,100%);height:76px;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding:6px 8px calc(6px + env(safe-area-inset-bottom));z-index:30}.nav-item{border:0;background:transparent;color:#7a8c91;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;position:relative}.nav-item span{font-size:21px}.nav-item small{font-size:10px;font-weight:700}.nav-item.active{color:var(--primary)}.add-nav span{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--primary);color:#fff;margin-top:-18px;box-shadow:0 6px 16px rgba(38,70,83,.25)}
.modal{display:none;position:fixed;inset:0;z-index:1000;width:100%;height:100%;padding:0;background:rgba(15,29,34,.45);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);overflow:hidden}.modal.is-open{display:block}.modal-card{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:min(620px,100%);max-height:92%;overflow:auto;-webkit-overflow-scrolling:touch;background:#fff;border-radius:26px 26px 0 0;padding:28px 22px calc(28px + env(safe-area-inset-bottom));box-shadow:0 -14px 50px rgba(0,0,0,.15)}body.modal-open{overflow:hidden;touch-action:none}.modal-card h2{margin:0 0 8px}.modal-close{position:absolute;right:18px;top:15px;border:0;background:#eef2f1;width:34px;height:34px;border-radius:50%;font-size:21px}.modal-card label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800;margin:14px 0}.modal-card input,.modal-card select,.modal-card textarea,.settings-grid input{width:100%;border:1px solid #ccd9d6;border-radius:12px;padding:11px 12px;background:#fff;color:var(--ink)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hint{font-size:11px;color:var(--muted);line-height:1.45}.request-compare{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;margin:12px 0}.compare-box{padding:10px;border-radius:12px;background:#f4f7f6;font-size:12px}.compare-box strong{display:block;margin-top:3px}.request-actions{display:flex;gap:8px}.request-actions button{flex:1}.toast{position:fixed;left:50%;bottom:94px;transform:translate(-50%,20px);background:#1f353d;color:white;padding:11px 16px;border-radius:999px;opacity:0;pointer-events:none;transition:.2s;z-index:60;font-size:13px;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:720px){.topbar{align-items:flex-start}.topbar h1{font-size:23px}.action-grid{grid-template-columns:1fr}.action-card{min-height:0}.day-cell{min-height:88px;padding:4px 3px}.assignment{font-size:9px;padding:3px 3px;border-left-width:3px}.mini-event{display:none}.calendar-grid{padding:4px;border-radius:14px}.weekday-row div{font-size:10px;padding:6px 0}.section-head{align-items:center}.section-head p{font-size:12px}.primary{padding:10px}.settings-grid{grid-template-columns:1fr}.modal-card{padding-left:18px;padding-right:18px}.two-col{grid-template-columns:1fr 1fr}}
@media(max-width:420px){main{padding:0 8px}.topbar{padding-left:10px;padding-right:10px}.calendar-toolbar{grid-template-columns:30px minmax(0,1fr) auto 30px;padding:9px 8px;gap:4px;border-radius:14px}.calendar-toolbar strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-toolbar .text-btn{font-size:11px;padding:6px}.icon-btn{font-size:23px}.calendar-grid{padding:2px;margin-left:0;margin-right:0;border-radius:12px}.weekday-row div{font-size:9px;padding:5px 0}.day-cell{min-height:76px;padding:3px 2px}.date-num{width:20px;height:20px;font-size:9px;margin-bottom:3px}.assignments{gap:2px}.assignment{max-width:100%;font-size:9px;padding:2px 2px;border-left-width:3px;border-radius:5px}.assignment-full{display:none}.assignment-compact{display:block;overflow:hidden;text-overflow:ellipsis;text-align:center}.role-switch span{display:none}.section-head h2{font-size:22px}.legend{gap:10px;font-size:10px}}

/* Programmazione massiva e ricorrenze */
.field-group{margin:14px 0}.field-label{display:block;font-size:12px;font-weight:800;margin-bottom:8px}.weekday-picker{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.weekday-picker label{margin:0!important;display:flex!important;align-items:center;justify-content:center;gap:5px;border:1px solid var(--line);border-radius:10px;padding:8px 4px;font-size:11px!important;background:#fff}.weekday-picker input{width:auto!important;margin:0}.schedule-preview{margin:14px 0;padding:13px;border:1px solid var(--line);border-radius:14px;background:#f6f9f8;font-size:12px;line-height:1.5}.schedule-preview strong{color:var(--ink)}.schedule-preview .preview-title{font-weight:900;margin-bottom:6px}.schedule-preview .preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.schedule-preview .preview-box{background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px}.schedule-preview .father-text{color:var(--father);font-weight:900}.schedule-preview .mother-text{color:var(--mother);font-weight:900}.recurrence-tag{display:inline-block;margin-top:6px;font-size:10px;font-weight:800;color:var(--primary2);background:#eaf3f1;border-radius:999px;padding:4px 7px}
@media(max-width:520px){.weekday-picker{grid-template-columns:repeat(4,1fr)}.schedule-preview .preview-grid{grid-template-columns:1fr}}
.batch-detail{margin:12px 0;padding:10px;border-radius:12px;background:#f6f9f8;max-height:220px;overflow:auto;font-size:11px;color:var(--muted);line-height:1.7}.batch-detail strong{color:var(--ink)}

/* Schemi automatici, informazioni condivise e approvazioni */
.pattern-help{margin:10px 0 14px;padding:11px 12px;border-radius:12px;background:#eef5f3;color:var(--muted);font-size:12px;line-height:1.5}.pattern-help strong{color:var(--ink)}
.child-info-settings{display:flex;flex-direction:column;gap:14px;margin:12px 0}.child-info-card{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fafcfc}.child-info-card h4{margin:0 0 10px}.child-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.child-info-grid label{font-size:12px;font-weight:800;display:flex;flex-direction:column;gap:6px}.child-info-grid input,.child-info-grid textarea{width:100%;border:1px solid #ccd9d6;border-radius:12px;padding:10px 11px;background:#fff;color:var(--ink)}.child-info-grid .wide{grid-column:1/-1}.check-row{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:9px!important;background:#f6f9f8;border:1px solid var(--line);padding:11px;border-radius:12px}.check-row input{width:auto!important;margin-top:2px}.check-row span{font-size:12px;line-height:1.45}.pill.countered{background:#edf0ff;color:#5057a4}.pill.approval{background:#fff5d8;color:#8b6b11}.request-actions.three{grid-template-columns:repeat(3,1fr);display:grid}.approval-box{margin-top:12px;padding:11px;border-radius:12px;background:#fff9e9;border:1px solid #f0df9c}.schedule-preview .pattern-split{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.schedule-preview .pattern-split span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 8px;font-weight:800}
@media(max-width:560px){.child-info-grid{grid-template-columns:1fr}.child-info-grid .wide{grid-column:auto}.request-actions.three{grid-template-columns:1fr}.request-actions.three button{width:100%}}

/* Regole fisse settimanali */
.fixed-rule-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.fixed-rule-row strong{display:block;margin-bottom:4px}

/* Accesso, sincronizzazione e collegamento famiglia */
.auth-gate{position:fixed;inset:0;z-index:100;background:rgba(245,247,246,.98);display:grid;place-items:center;padding:24px;overflow:auto}
.auth-gate.hidden{display:none!important}.auth-card{width:min(720px,100%);background:var(--surface);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);padding:28px}.auth-card h1{margin:0 0 8px}.auth-card>p{color:var(--muted);line-height:1.55;margin-top:0}.auth-tabs{margin:20px 0 14px;width:max-content}.auth-form,.setup-pane{display:flex;flex-direction:column;gap:12px}.auth-form label,.setup-pane label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800}.auth-form input,.setup-pane input,.setup-pane select{width:100%;border:1px solid #ccd9d6;border-radius:12px;padding:11px 12px;background:#fff;color:var(--ink);font-size:16px}.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.setup-pane{border:1px solid var(--line);border-radius:16px;padding:16px;background:#fafcfc}.setup-pane h3{margin:0 0 4px}.setup-warning{padding:14px;border:1px solid #f0df9c;background:#fff9e9;border-radius:14px;margin:16px 0}.setup-warning p{font-size:12px;line-height:1.5;color:var(--muted)}.setup-warning code{font-size:11px}.form-error{padding:10px 12px;background:#fdecec;color:#9d3131;border-radius:12px;font-size:12px}.session-panel{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.sync-status{font-size:10px;font-weight:900;border-radius:999px;padding:6px 9px;background:#edf3f1;color:var(--primary)}.sync-status.live{background:#e8f6ef;color:#237a57}.sync-status.saving{background:#fff5d8;color:#8b6b11}.sync-status.offline{background:#fdecec;color:#a43838}.family-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:900;letter-spacing:.08em;background:#eef3f2;padding:7px 9px;border-radius:10px}.members-list{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.member-chip{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;padding:7px 10px;font-size:12px}.member-dot{width:8px;height:8px;border-radius:50%}.member-dot.father{background:var(--father)}.member-dot.mother{background:var(--mother)}
@media(max-width:640px){.auth-gate{padding:12px}.auth-card{padding:22px 16px;border-radius:22px}.setup-grid{grid-template-columns:1fr}.session-panel{gap:6px}.sync-status{display:none}.role-switch select{padding:8px 9px}}

.auth-link{align-self:center;margin-top:2px}.event-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.danger-text{color:var(--danger)}

@media(max-width:360px){main{padding:0 5px}.calendar-grid{padding:1px}.weekday-row div{font-size:8px}.day-cell{min-height:70px;padding:2px 1px}.assignment{font-size:8px;padding:2px 1px}.date-num{width:18px;height:18px;font-size:8px}.legend{font-size:9px;gap:8px}}

@media(max-width:520px){.modal-card{width:100%;max-height:94%;padding:24px 16px calc(22px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0}.modal-card input,.modal-card select,.modal-card textarea{font-size:16px;min-height:44px}.modal-card textarea{min-height:88px}.modal-card .primary.full{min-height:48px;position:sticky;bottom:0;z-index:2}.modal-close{width:40px;height:40px;z-index:3}}

/* Resoconto dettagliato spese */
.expense-tabs{width:max-content;margin:0 0 16px}.report-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}.report-filter-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800;min-width:0}.report-filter-grid input,.report-filter-grid select{width:100%;min-width:0;border:1px solid #ccd9d6;border-radius:12px;padding:10px 11px;background:#fff;color:var(--ink);font-size:14px}.report-actions{margin-top:14px}.report-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.report-summary-grid .card{margin:0}.report-stat{display:flex;flex-direction:column;gap:5px;min-width:0}.report-stat span{font-size:11px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.report-stat strong{font-size:22px;line-height:1.15;overflow-wrap:anywhere}.report-stat small{font-size:11px;color:var(--muted);line-height:1.4}.report-stat.report-balance{background:#eef5f3}.report-stat.report-balance strong{font-size:18px;color:var(--primary)}
.category-report{display:flex;flex-direction:column;gap:14px;margin-top:14px}.category-report-row{border-bottom:1px solid var(--line);padding-bottom:13px}.category-report-row:last-child{border-bottom:0;padding-bottom:0}.category-report-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.category-report-main>div{min-width:0}.category-report-main strong{font-size:14px}.category-report-main small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.report-bar{height:8px;border-radius:999px;background:#edf2f1;overflow:hidden;margin:8px 0 6px}.report-bar span{display:block;height:100%;background:var(--primary2);border-radius:999px}.category-report-split{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px}.monthly-report{display:flex;flex-direction:column;gap:11px;margin-top:14px}.monthly-report-row{display:grid;grid-template-columns:90px minmax(0,1fr) 92px;align-items:center;gap:10px;font-size:11px}.monthly-report-row>span{text-transform:capitalize;color:var(--muted)}.monthly-report-row>strong{text-align:right;font-size:12px}.monthly-bar{height:9px;border-radius:999px;background:#edf2f1;overflow:hidden}.monthly-bar i{display:block;height:100%;border-radius:999px;background:var(--primary);font-style:normal}.report-details{display:flex;flex-direction:column;gap:10px;margin-top:14px}.report-category-detail{border:1px solid var(--line);border-radius:14px;background:#fafcfc;overflow:hidden}.report-category-detail summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 14px;cursor:pointer}.report-category-detail summary::-webkit-details-marker{display:none}.report-category-detail summary span{min-width:0}.report-category-detail summary small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.report-detail-list{border-top:1px solid var(--line);background:#fff}.report-detail-expense{width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;padding:11px 14px;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;color:var(--ink)}.report-detail-expense:last-child{border-bottom:0}.report-detail-expense span{min-width:0}.report-detail-expense span strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-detail-expense small{display:block;color:var(--muted);font-size:10px;margin-top:2px;line-height:1.4}.report-detail-expense>strong{white-space:nowrap;font-size:12px}
@media(max-width:760px){.report-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:440px){.expense-tabs{width:100%}.expense-tabs button{flex:1}.report-filter-grid{grid-template-columns:1fr 1fr;gap:9px}.report-filter-grid label:first-child,.report-filter-grid label:nth-child(6){grid-column:1/-1}.report-summary-grid{grid-template-columns:1fr 1fr;gap:8px}.report-stat{padding:13px}.report-stat strong{font-size:18px}.report-stat.report-balance{grid-column:1/-1}.monthly-report-row{grid-template-columns:72px minmax(0,1fr) 78px;gap:7px}.category-report-split{font-size:10px}.report-detail-expense{padding:10px}.report-detail-expense span strong{max-width:190px}}

@media print{
  body.expense-report-print{background:#fff!important}
  body.expense-report-print *{visibility:hidden!important}
  body.expense-report-print #expenseReportPane,body.expense-report-print #expenseReportPane *{visibility:visible!important}
  body.expense-report-print #expenseReportPane{display:block!important;position:absolute;left:0;top:0;width:100%;padding:0 14px;background:#fff}
  body.expense-report-print .report-filters,body.expense-report-print .report-actions{display:none!important}
  body.expense-report-print .report-summary-grid{grid-template-columns:repeat(3,1fr)}
  body.expense-report-print .card{box-shadow:none;break-inside:avoid}
  body.expense-report-print .report-category-detail{break-inside:avoid}
}

/* =========================================================
   Bimbi Insieme · visual redesign 2026-09 · v11
   Solo presentazione: nessuna modifica alla logica Firebase.
   ========================================================= */
:root{
  --bg:#f7f9fb;
  --surface:#ffffff;
  --ink:#102f42;
  --muted:#71818d;
  --line:#e6ebef;
  --primary:#075a78;
  --primary-strong:#064b65;
  --primary-soft:#e9f4f7;
  --primary2:#2f8f89;
  --father:#3d7fbd;
  --father-soft:#eaf3fb;
  --mother:#95578e;
  --mother-soft:#f4eaf3;
  --pending:#d9a72e;
  --danger:#b9294a;
  --shadow:0 8px 24px rgba(17,48,66,.07);
  --shadow-soft:0 4px 16px rgba(17,48,66,.055);
  --radius:18px;
}
html{background:var(--bg)}
body{background:linear-gradient(180deg,#fbfcfd 0,#f6f8fa 360px,#f7f9fb 100%);color:var(--ink);-webkit-font-smoothing:antialiased}
.app-shell{max-width:900px;padding-bottom:96px}
main{padding:0 18px}

/* Header / brand */
.topbar{padding:18px 20px 12px;align-items:center;position:relative;z-index:10}
.brand-block{display:flex;align-items:center;gap:11px;min-width:0}
.brand-mark{width:42px;height:42px;display:grid;place-items:center;color:var(--primary);flex:0 0 auto}
.brand-mark svg{width:38px;height:38px;display:block}
.brand-copy{min-width:0}.brand-copy h1{font-family:Georgia,"Times New Roman",serif;font-size:27px;line-height:1;color:#0e4967;letter-spacing:-.025em;white-space:nowrap}
.brand-subtitle{font-size:10px;color:var(--muted);margin-top:5px;font-weight:650;letter-spacing:.01em}
.session-panel{display:flex;align-items:center;gap:9px}.role-switch{gap:2px}.role-switch>span{display:none}.role-switch select{min-height:40px;border-color:var(--line);border-radius:999px;padding:8px 30px 8px 12px;background:#fff;font-size:12px;box-shadow:0 2px 8px rgba(17,48,66,.04)}
.header-icon-btn{width:42px;height:42px;border:0;background:transparent;color:var(--primary);display:grid;place-items:center;border-radius:50%;position:relative}.header-icon-btn:hover{background:var(--primary-soft)}.header-icon-btn svg{width:23px;height:23px}.header-badge{position:absolute;right:2px;top:1px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;display:grid;place-items:center;border:2px solid #fff}.sync-status{border-radius:999px;padding:6px 9px;font-size:10px}.topbar .link-btn{font-size:11px}

/* General cards and controls */
.card,.item-card,.action-card{border-color:var(--line);box-shadow:var(--shadow-soft)}
.card{border-radius:18px}.item-card{border-radius:17px}.primary,.secondary,.danger{min-height:42px;border-radius:12px;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.primary{background:linear-gradient(180deg,var(--primary),var(--primary-strong));box-shadow:0 5px 14px rgba(7,90,120,.16)}.primary:active,.secondary:active{transform:scale(.985)}.secondary{background:#fff;border:1px solid #b9d0d9;color:var(--primary)}
.segmented{background:#f3f5f6;border:1px solid var(--line);padding:2px;border-radius:999px}.segmented button{padding:8px 17px;border-radius:999px;color:#3b4d58}.segmented button.active{background:var(--primary);color:#fff;box-shadow:0 3px 8px rgba(7,90,120,.18)}
.section-head{margin:8px 0 14px}.section-head h2{font-size:24px;letter-spacing:-.025em}.section-head p{font-size:12px}

/* Oggi */
.today-overview{width:100%;border:1px solid #eadfeb;background:linear-gradient(135deg,#fbf5fb,#fff 62%);box-shadow:var(--shadow);border-radius:19px;padding:14px 15px;display:grid;grid-template-columns:48px minmax(0,1fr) 24px;align-items:center;gap:12px;text-align:left;color:var(--ink);margin:3px 0 15px}.today-overview.father{background:linear-gradient(135deg,var(--father-soft),#fff 68%);border-color:#d9e8f5}.today-overview.mother{background:linear-gradient(135deg,var(--mother-soft),#fff 68%);border-color:#eaddea}.today-overview.mixed{background:linear-gradient(135deg,#eef4fa,#fbf0f8 70%)}
.today-avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--mother);color:#fff;font-size:23px;font-weight:800;box-shadow:0 5px 14px rgba(149,87,142,.18)}.today-overview.father .today-avatar{background:var(--father);box-shadow:0 5px 14px rgba(61,127,189,.18)}.today-overview.mixed .today-avatar{background:linear-gradient(135deg,var(--father),var(--mother))}.today-copy{min-width:0;display:flex;flex-direction:column}.today-copy small{font-size:11px;color:var(--muted);margin-bottom:2px}.today-copy strong{font-size:17px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-event{font-size:11px;color:#3d4d57;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.today-chevron{font-size:28px;color:#667780;font-weight:300}

/* Calendar */
.calendar-panel{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:17px 15px 13px;margin-bottom:18px}.calendar-section-head{margin:0 0 7px;align-items:center}.calendar-section-head p{display:none}.calendar-section-head h2{font-size:18px}.calendar-toolbar{display:grid;grid-template-columns:38px minmax(0,1fr) auto 38px;align-items:center;gap:5px;padding:6px 0 10px;margin:0;border:0;box-shadow:none;background:transparent}.calendar-toolbar strong{text-transform:capitalize;font-size:19px;letter-spacing:-.02em}.calendar-toolbar .icon-btn{width:36px;height:36px;border-radius:50%;font-size:27px;display:grid;place-items:center;color:#0f3345}.calendar-toolbar .icon-btn:hover{background:#f2f5f6}.calendar-toolbar .text-btn{font-size:11px;padding:8px;color:var(--primary)}
.calendar-grid{border:0;box-shadow:none;border-radius:0;padding:0;margin:0;overflow:visible;background:transparent}.weekday-row{border-bottom:1px solid var(--line)}.weekday-row div{font-size:9px;color:#687884;padding:9px 2px;text-transform:uppercase;letter-spacing:.06em}.month-grid{border-left:1px solid #edf0f2;border-bottom:1px solid #edf0f2;border-radius:0 0 13px 13px;overflow:hidden}.day-cell{min-height:96px;border-top:0;border-right:1px solid #edf0f2;border-bottom:1px solid #edf0f2;padding:6px 5px;background:#fff}.day-cell:nth-child(7n){border-right:1px solid #edf0f2}.day-cell.outside{background:#fcfcfd;color:#b7c0c5}.day-cell:hover{background:#fafcfd}.date-num{width:23px;height:23px;font-size:11px;margin:0 0 5px;color:#263b47}.day-cell.today .date-num{background:var(--primary);box-shadow:0 3px 7px rgba(7,90,120,.2)}
.assignments{gap:3px}.assignment{border:0!important;background:transparent;padding:0;min-height:20px;display:flex;align-items:center}.assignment-full{font-size:9px;padding:3px 5px;border-radius:999px;background:#f2f4f5;color:#41515b;max-width:100%}.assignment.father .assignment-full,.assignment.father .assignment-compact{background:var(--father);color:#fff}.assignment.mother .assignment-full,.assignment.mother .assignment-compact{background:var(--mother);color:#fff}.assignment.pending .assignment-full,.assignment.pending .assignment-compact{background:#fff4cf;color:#73570f;border:1px solid #f0d475}.assignment.unassigned .assignment-full,.assignment.unassigned .assignment-compact{background:#f1f3f4;color:#8a969d}.assignment-compact{border-radius:999px;padding:3px 5px;line-height:1.1;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-event{margin-top:4px;font-size:11px;line-height:1.25;color:#43545e}.mini-event .event-mini-icon{margin-right:2px}.legend{border:0;box-shadow:none;background:transparent;margin:10px 0 0;padding:8px 1px 0!important;gap:12px;font-size:9px}.legend-event{display:inline-flex;align-items:center;gap:3px}.dot{width:9px;height:9px}
.week-grid{gap:9px}.week-day{border-radius:16px;border-color:var(--line);box-shadow:0 2px 8px rgba(17,48,66,.035);text-align:left}.week-day.today{outline:2px solid rgba(7,90,120,.35)}

/* Agenda */
#view-agenda .section-head{align-items:center}#view-agenda .section-head p{max-width:450px}.event-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:start;gap:12px;padding:15px 14px}.event-symbol{width:45px;height:45px;border-radius:50%;display:grid;place-items:center;font-size:21px;background:#eef4f6}.event-symbol.sport{background:#e5f5ec}.event-symbol.visita,.event-symbol.medico{background:#f2e7f3}.event-symbol.scuola{background:#fff0df}.event-symbol.festa,.event-symbol.compleanno{background:#f7e7ef}.event-card-main{min-width:0}.event-card h4{font-size:16px;margin:1px 0 3px}.event-card .meta{font-size:11px;line-height:1.65}.event-card .event-actions{grid-column:2/4;margin-top:4px;padding-top:9px}.event-category-pill{align-self:start}.recurrence-tag{display:inline-flex;margin-top:8px;border-radius:999px;background:#edf4f8;color:#376981;padding:4px 8px;font-size:10px;font-weight:750}

/* Add screen */
.action-grid{gap:12px}.action-card{background:#fff;min-height:160px;padding:20px}.action-card:hover{border-color:#cadde4;transform:translateY(-1px)}.action-icon{background:var(--primary-soft);color:var(--primary);border-radius:50%;width:46px;height:46px}

/* Expenses */
#view-expenses .section-head{align-items:center}.expense-tabs{border-radius:999px;margin-bottom:14px}.balance-card{background:linear-gradient(135deg,#075a78,#0b718e);border:0;box-shadow:0 8px 22px rgba(7,90,120,.2);padding:18px}.balance-card .amount{font-size:30px}.expense-row{border:1px solid var(--line);box-shadow:var(--shadow-soft);padding:14px;background:#fff;grid-template-columns:42px minmax(0,1fr) auto}.expense-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:#eef4f6;font-size:18px}.expense-copy{min-width:0;text-align:left}.expense-copy h4{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.expense-amount{font-size:16px;color:#12384b}.report-summary-grid{gap:10px}.report-stat{border-radius:16px!important;box-shadow:var(--shadow-soft)!important}.report-stat span{font-size:9px}.report-stat strong{font-size:20px}.report-stat.report-balance{background:linear-gradient(135deg,#fbf2fa,#fff)}.category-report-row{padding:10px 0 12px}.category-report-main{align-items:center}.category-label-wrap{display:flex;gap:9px;align-items:center}.category-icon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#f1f4f5;font-size:15px;flex:0 0 auto}.category-report-row.cat-medico .category-icon,.category-report-row.cat-mediche .category-icon,.category-report-row.cat-visita .category-icon{background:#f1e6f1}.category-report-row.cat-scuola .category-icon{background:#fff0df}.category-report-row.cat-sport .category-icon{background:#e8f2fc}.category-report-row.cat-abbigliamento .category-icon{background:#e7f7f3}.category-report-row.cat-trasporti .category-icon{background:#eef2f3}.category-report-row.cat-medico .report-bar span,.category-report-row.cat-mediche .report-bar span,.category-report-row.cat-visita .report-bar span{background:var(--mother)}.category-report-row.cat-scuola .report-bar span{background:#ef8b2c}.category-report-row.cat-sport .report-bar span{background:var(--father)}.category-report-row.cat-abbigliamento .report-bar span{background:#69b889}.category-report-row.cat-trasporti .report-bar span{background:#458e93}.monthly-bar{height:8px}.monthly-bar i{background:linear-gradient(90deg,#b9d4e6,var(--primary))}

/* Requests / family */
#requestsList>.item-card{padding:16px;border-radius:18px;box-shadow:var(--shadow-soft)}#requestsList>.item-card h4{font-size:16px}.request-compare{background:#f8fafb;border:1px solid #edf0f2;border-radius:14px;padding:9px;margin:12px 0}.compare-box{background:transparent;padding:4px 7px}.compare-box strong{font-size:14px}.request-actions{gap:8px}.request-actions.three{display:grid;grid-template-columns:1fr 1fr 1fr}.request-actions.three .primary{order:1}.request-actions.three .secondary[data-counter]{order:2}.request-actions.three .secondary[data-reject]{order:3;color:var(--danger);border-color:#e3a2b1}.pill.pending{background:#fff5d7;color:#8a6710}.pill.countered{background:#eef3fb;color:#486c9a}.family-code{color:var(--primary);background:var(--primary-soft)}

/* Bottom navigation */
.bottom-nav{height:82px;width:min(900px,100%);border-top:1px solid #e8edef;background:rgba(255,255,255,.97);padding:7px 8px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -8px 26px rgba(17,48,66,.055)}.nav-item{color:#697a83;gap:3px}.nav-item small{font-size:9px;font-weight:700}.nav-icon{width:25px;height:25px!important;display:grid!important;place-items:center}.nav-icon svg{width:23px;height:23px;display:block}.nav-item.active{color:var(--primary)}.nav-plus{width:54px!important;height:54px!important;display:grid!important;place-items:center;border-radius:50%;background:linear-gradient(180deg,var(--primary),var(--primary-strong));color:#fff;font-size:31px!important;font-weight:300;margin-top:-24px!important;box-shadow:0 8px 20px rgba(7,90,120,.28);border:4px solid #fff}.add-nav small{margin-top:-1px}.nav-badge{right:14px;top:4px;border:2px solid #fff}

/* Modals */
.modal{background:rgba(12,32,43,.38)}.modal-card{border-radius:28px 28px 0 0;box-shadow:0 -18px 48px rgba(8,34,48,.17)}.modal-card h2{font-size:23px;letter-spacing:-.02em}.modal-card label{color:#344c59}.modal-card input,.modal-card select,.modal-card textarea,.settings-grid input{border-color:#d9e2e6;background:#fbfcfd}.modal-close{background:#f1f4f5;color:#40535d}

/* Login */
.auth-gate{background:radial-gradient(circle at 50% 10%,#eff8fa 0,#f7f9fb 44%,#f4f6f8 100%)}.auth-card{border-color:#e3eaee;box-shadow:0 18px 50px rgba(17,48,66,.10)}.auth-card .eyebrow{color:var(--primary)}.auth-card h1{letter-spacing:-.025em}.auth-tabs{width:100%}.auth-tabs button{flex:1}.auth-form input,.setup-pane input,.setup-pane select{border:1px solid #d9e2e6;background:#fbfcfd}

@media(max-width:720px){
  .app-shell{padding-bottom:94px}.topbar{padding:14px 13px 9px}.brand-mark{width:36px;height:36px}.brand-mark svg{width:33px;height:33px}.brand-copy h1{font-size:22px}.brand-subtitle{display:none}.header-icon-btn{width:38px;height:38px}.role-switch select{min-height:37px;padding:6px 28px 6px 10px}.topbar .sync-status{display:none}.topbar #logoutBtn{font-size:10px}
  main{padding:0 10px}.today-overview{margin-top:4px;padding:12px;grid-template-columns:43px minmax(0,1fr) 20px}.today-avatar{width:42px;height:42px;font-size:20px}.today-copy strong{font-size:15px}.calendar-panel{padding:13px 9px 10px;border-radius:19px}.calendar-section-head{gap:8px}.calendar-section-head h2{display:none}.calendar-section-head>div:first-child{display:none}.calendar-section-head .segmented{margin-left:auto;margin-right:auto}.calendar-toolbar strong{font-size:17px}.calendar-toolbar{grid-template-columns:33px minmax(0,1fr) auto 33px;padding-top:3px}.calendar-toolbar .text-btn{font-size:10px}.day-cell{min-height:78px;padding:4px 2px}.assignment-full{display:none}.assignment-compact{display:inline-block;font-size:8px;padding:3px 4px}.assignments{align-items:flex-start}.date-num{width:20px;height:20px;font-size:9px;margin-bottom:3px}.mini-event{font-size:9px;max-height:14px}.legend{gap:8px;font-size:8px;overflow:hidden}.legend-event{display:none}
  .section-head{align-items:center}.section-head h2{font-size:21px}.section-head p{display:none}.section-head .button-row{gap:5px}.section-head .button-row .secondary{display:none}.section-head .primary{font-size:11px;padding:9px 10px;min-height:38px}.event-card{grid-template-columns:42px minmax(0,1fr) auto;padding:13px 12px}.event-symbol{width:40px;height:40px}.event-card h4{font-size:15px}.event-card .event-actions{grid-column:1/4;gap:11px}.event-card .event-actions .link-btn{font-size:10px}.event-category-pill{font-size:9px}.expense-row{grid-template-columns:38px minmax(0,1fr) auto;padding:12px}.expense-icon{width:36px;height:36px}.expense-amount{font-size:14px}.report-summary-grid{grid-template-columns:1fr 1fr}.report-stat{padding:13px}.report-stat strong{font-size:18px}.report-stat.report-balance{grid-column:1/-1}.bottom-nav{height:78px}.nav-plus{width:50px!important;height:50px!important;margin-top:-21px!important}.nav-icon{width:23px;height:23px!important}.nav-icon svg{width:21px;height:21px}.nav-item small{font-size:8.5px}
}
@media(max-width:420px){
  main{padding:0 7px}.topbar{padding-left:9px;padding-right:9px}.brand-copy h1{font-size:20px}.header-icon-btn{width:35px}.role-switch select{max-width:88px;font-size:10px}.calendar-panel{padding-left:6px;padding-right:6px}.calendar-toolbar strong{font-size:15px}.weekday-row div{font-size:7.5px}.day-cell{min-height:70px}.assignment-compact{font-size:7.5px;padding:2.5px 3px}.mini-event{font-size:8px}.legend{font-size:7.5px}.today-copy strong{font-size:14px}.today-event{font-size:10px}.request-actions.three{grid-template-columns:1fr}.request-actions.three .primary,.request-actions.three .secondary{order:initial}.bottom-nav{padding-left:3px;padding-right:3px}.nav-item small{font-size:8px}.nav-badge{right:7px}.expense-tabs{width:100%}.expense-tabs button{flex:1}.report-filter-grid{grid-template-columns:1fr 1fr}.report-category-main{gap:5px}
}
@media(max-width:360px){
  .brand-copy h1{font-size:18px}.brand-mark{width:31px}.brand-mark svg{width:29px}.header-icon-btn{display:none}.role-switch select{max-width:80px}.day-cell{min-height:66px}.calendar-toolbar .text-btn{display:none}.calendar-toolbar{grid-template-columns:31px minmax(0,1fr) 31px}.calendar-toolbar #nextPeriod{grid-column:3}.calendar-toolbar strong{grid-column:2}.calendar-toolbar #todayBtn{display:none}.legend{justify-content:center}.nav-item small{font-size:7.5px}
}
.expense-icon.cat-medico{background:#f1e6f1}.expense-icon.cat-scuola{background:#fff0df}.expense-icon.cat-sport{background:#e8f2fc}.expense-icon.cat-abbigliamento{background:#e7f7f3}.expense-icon.cat-trasporti{background:#eef2f3}
.today-overview.mother .today-copy strong span{color:var(--mother)}.today-overview.father .today-copy strong span{color:var(--father)}

/* =========================================================
   MATCH ANTEPRIMA v13 - visual system approved 04/09/2026
   Keeps data/auth logic intact; this layer is presentation.
   ========================================================= */
:root{
  --preview-teal:#075a78;
  --preview-teal-2:#0b718e;
  --preview-teal-soft:#eaf5f8;
  --preview-plum:#98528d;
  --preview-plum-soft:#f7edf6;
  --preview-blue:#3c7db8;
  --preview-blue-soft:#eaf3fb;
  --preview-green:#49a875;
  --preview-orange:#f28a2e;
  --preview-rose:#b54468;
  --preview-bg:#f7f9fb;
  --preview-line:#e7ecef;
  --preview-ink:#122f3f;
  --preview-muted:#708089;
  --preview-shadow:0 5px 18px rgba(22,54,72,.075);
  --preview-shadow-strong:0 9px 28px rgba(17,48,66,.11);
}
body{background:linear-gradient(180deg,#fbfcfd 0,#f5f8fa 100%);color:var(--preview-ink)}
.app-shell{max-width:900px;background:transparent}
main{max-width:900px;margin:0 auto}
.topbar{max-width:900px;margin:0 auto;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;padding:18px 18px 12px;position:relative}
.topbar-menu{width:42px;height:42px;border:0;background:transparent;color:var(--preview-teal);display:grid;place-items:center;border-radius:13px;padding:9px}
.topbar-menu svg{width:24px;height:24px}
.topbar-menu:hover{background:#eef5f7}
.brand-block{justify-self:start;display:flex;align-items:center;gap:10px;min-width:0}
.brand-mark{width:42px;height:42px;color:var(--preview-teal)}
.brand-mark svg{width:40px;height:40px}
.brand-copy h1{font-family:Georgia,"Times New Roman",serif;font-size:27px;line-height:1;color:#123f59;letter-spacing:-.025em}
.brand-subtitle{font-size:10px;color:#809098;margin-top:4px}
.mobile-view-title{display:none;font-size:21px;font-weight:800;letter-spacing:-.025em;justify-self:center}
.session-panel{display:flex;align-items:center;justify-self:end;gap:8px}
.header-icon-btn{border:0;background:transparent;color:var(--preview-teal);box-shadow:none}
.header-icon-btn:hover{background:#eef5f7}
.role-switch{margin-left:2px}.role-switch>span{display:none}.role-switch select{background:#fff;border-color:var(--preview-line);border-radius:12px}
.sync-status{border-radius:999px;background:#eef7f6;color:#47736d;padding:5px 8px;font-size:9px}

/* generic screen rhythm */
.view{padding-top:3px}.section-head{margin:7px 0 14px;align-items:center}.section-head h2{font-size:24px;letter-spacing:-.025em}.section-head p{font-size:12px}.primary,.secondary{min-height:42px;border-radius:11px}.primary{background:linear-gradient(180deg,var(--preview-teal-2),var(--preview-teal));box-shadow:0 4px 12px rgba(7,90,120,.12)}.secondary{background:#fff;border:1px solid #cbdce5;color:var(--preview-teal)}
.card,.item-card{border-color:var(--preview-line);box-shadow:var(--preview-shadow)}

/* Calendar - closer to approved mockup */
.today-overview{border:1px solid #eedfec;background:linear-gradient(120deg,#fbf5fb,#fff);box-shadow:var(--preview-shadow-strong);border-radius:18px;padding:14px 15px;margin:5px 0 15px;grid-template-columns:52px minmax(0,1fr) 24px;gap:12px;min-height:96px}
.today-overview.father{background:linear-gradient(120deg,#f0f7fc,#fff);border-color:#d8e8f4}.today-overview.mother{background:linear-gradient(120deg,#faf0f9,#fff);border-color:#ead9e8}.today-overview.mixed{background:linear-gradient(120deg,#f5f4fb,#fff)}
.today-avatar{width:50px;height:50px;border-radius:50%;font-size:21px;background:linear-gradient(145deg,#af72a8,#87477f);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}.today-overview.father .today-avatar{background:linear-gradient(145deg,#5d98c8,#3675aa)}
.today-copy small{font-size:11px;color:#7e858b;margin-bottom:2px}.today-copy strong{font-size:17px;color:#111f27;letter-spacing:-.02em}.today-event{font-size:11px;color:#3e4f58;margin-top:7px}.today-chevron{font-size:29px;font-weight:300;color:#213d4c}
.calendar-panel{background:#fff;border:1px solid var(--preview-line);border-radius:20px;box-shadow:var(--preview-shadow);padding:15px 13px 11px}
.calendar-section-head{display:flex;flex-direction:column-reverse;align-items:center;gap:10px;margin:0 0 6px}.calendar-section-head>div:first-child{display:none}.calendar-section-head .segmented{width:auto;background:#fff;border:1px solid #dfe6ea;border-radius:11px;padding:2px;box-shadow:0 2px 5px rgba(15,44,59,.04)}.calendar-section-head .segmented button{min-width:100px;padding:7px 15px}.calendar-section-head .segmented button.active{background:linear-gradient(180deg,var(--preview-teal-2),var(--preview-teal));color:#fff;box-shadow:none}
.calendar-toolbar{grid-template-columns:38px minmax(0,1fr) 38px;gap:3px;padding:0 2px 9px;position:relative}.calendar-toolbar strong{font-size:20px;text-transform:capitalize;letter-spacing:-.02em}.calendar-toolbar #todayBtn{position:absolute;right:40px;top:2px;font-size:10px;opacity:.7}.calendar-toolbar #nextPeriod{grid-column:3}.calendar-toolbar .icon-btn{font-size:25px;color:#173d51}
.calendar-grid{padding:0;border:1px solid #eef1f3;border-radius:14px;overflow:hidden}.weekday-row{background:#fff}.weekday-row div{font-size:9px;letter-spacing:.04em;text-transform:uppercase;color:#6e7b82;padding:9px 0 7px}.month-grid{background:#fff}.day-cell{min-height:92px;padding:6px 3px 5px;border-color:#eef1f3;display:flex;flex-direction:column;align-items:center;text-align:center}.day-cell:nth-child(-n+7){border-top:0}.day-cell:hover{background:#f8fbfc}.day-cell.outside{background:#fcfcfd;color:#bdc5c8}.date-num{width:23px;height:23px;margin:0 0 5px;font-size:10px;color:#253943}.day-cell.today .date-num{background:var(--preview-teal);box-shadow:0 2px 6px rgba(7,90,120,.24)}
.month-parent-wrap{display:flex;justify-content:center;align-items:center;min-height:25px;gap:2px}.month-parent-badge{width:23px;height:23px;border-radius:8px;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:800;box-shadow:0 2px 5px rgba(28,60,79,.13)}.month-parent-badge.father{background:linear-gradient(180deg,#4e8fc5,#3476ae)}.month-parent-badge.mother{background:linear-gradient(180deg,#ad68a3,#8e4d87)}
.month-parent-wrap.split{gap:2px;flex-wrap:wrap}.month-split-badge{height:18px;padding:0 4px;border-radius:6px;display:inline-grid;place-items:center;font-size:7px;font-weight:900;color:#fff;white-space:nowrap}.month-split-badge.father{background:var(--preview-blue)}.month-split-badge.mother{background:var(--preview-plum)}.month-split-badge.pending{background:#d49d2a;color:#fff}.month-split-badge.unassigned{background:#d7dde0;color:#59676d}
.month-event-icons{display:flex;align-items:center;justify-content:center;gap:2px;margin-top:4px;min-height:16px;max-width:100%}.month-event-icon{display:inline-grid;place-items:center;width:15px;height:15px;font-size:10px;line-height:1;overflow:hidden}.month-event-icon.scuola{filter:saturate(1.1)}
.legend{justify-content:center;border-top:1px solid #eff2f3;margin-top:8px;padding-top:8px;gap:12px}.legend .dot{width:15px;height:15px;position:relative}.legend .dot.father::after{content:"P";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:8px;font-style:normal;font-weight:900}.legend .dot.mother::after{content:"M";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:8px;font-style:normal;font-weight:900}.legend-event{font-size:10px}
.week-day{box-shadow:var(--preview-shadow);border-color:var(--preview-line)}

/* Agenda */
#view-agenda>.section-head{margin-bottom:8px}.agenda-filter-row{display:flex;justify-content:flex-start;margin:0 0 12px}.agenda-tabs{border:1px solid #e1e7ea;background:#fff;border-radius:999px;padding:2px;max-width:100%;overflow:auto}.agenda-tabs button{border-radius:999px;padding:7px 13px;white-space:nowrap}.agenda-tabs button.active{background:linear-gradient(180deg,var(--preview-teal-2),var(--preview-teal));color:#fff;box-shadow:none}.agenda-list-label{font-size:11px;color:#697981;margin:4px 2px -1px;font-weight:700}.event-card{position:relative;display:grid;grid-template-columns:50px minmax(0,1fr) 24px;gap:12px;align-items:start;border:1px solid var(--preview-line);border-radius:17px;padding:15px 13px;background:#fff;overflow:hidden}.event-card::before{content:"";position:absolute;left:0;top:22px;width:5px;height:5px;border-radius:50%;background:#9aa7ae}.event-card-sport::before{background:var(--preview-green)}.event-card-visita::before{background:var(--preview-plum)}.event-card-scuola::before{background:var(--preview-orange)}.event-card-festa::before{background:var(--preview-rose)}
.event-symbol{width:48px;height:48px;font-size:22px}.event-symbol.sport{background:#e7f6ed}.event-symbol.visita{background:#f3e6f2}.event-symbol.scuola{background:#fff0df}.event-symbol.festa{background:#f8e7ee}.event-kicker{font-size:9px;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:#8a969c;margin-bottom:2px}.event-card h4{font-size:17px;margin:0 0 5px;color:#152b37}.event-detail-line{display:grid;grid-template-columns:15px minmax(0,1fr);align-items:center;gap:3px;font-size:11px;color:#51636c;line-height:1.55}.event-chevron{font-size:28px;color:#2d4653;align-self:center}.event-actions{grid-column:2/4;border-top:1px solid #eff2f3;padding-top:8px;margin-top:3px;display:flex;gap:12px;flex-wrap:wrap}.event-actions .link-btn{font-size:10px}.event-notes{margin:7px 0 0}.empty-state-card{background:#fff;border:1px dashed #d6e0e5;border-radius:18px;padding:30px 20px;text-align:center;color:#74848d}.empty-state-card>span{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#edf5f8;color:var(--preview-teal);font-size:22px;margin:0 auto 10px}.empty-state-card strong{display:block;color:#233b48;margin-bottom:4px}.empty-state-card p{font-size:12px}.empty-state-card button{margin-top:8px}

/* Requests */
.requests-card-shell{padding:0;border:0;box-shadow:none;background:transparent}.requests-card-shell>.card-title-row{padding:0 2px 10px}.requests-card-shell>.card-title-row h3{font-size:19px}.requests-card-shell>.card-title-row .badge{background:var(--preview-teal)}
#requestsList>.item-card{position:relative;border-radius:18px;padding:17px;background:#fff;box-shadow:var(--preview-shadow-strong);border-color:#e5eaed}#requestsList>.item-card::before{content:"";position:absolute;left:16px;top:16px;width:42px;height:42px;border-radius:50%;background:linear-gradient(145deg,#b16da7,#8d4a86);opacity:.13;pointer-events:none}#requestsList>.item-card>.item-top{padding-left:0}.request-compare{grid-template-columns:1fr 24px 1fr;background:#fafbfc;border-color:#ebeff1;padding:10px}.compare-box{font-size:10px;color:#718089}.compare-box strong{font-size:14px;color:#172f3c}.request-actions{margin-top:12px}.request-actions .primary{background:linear-gradient(180deg,var(--preview-teal-2),var(--preview-teal))}.request-actions .secondary{background:#fff}.request-actions.three{display:grid;grid-template-columns:1fr 1fr 1fr}.request-actions.three [data-reject]{border-color:#d68ca0;color:#a42d52}.batch-detail{background:#f8fafb;border:1px solid #edf1f3;border-radius:12px;padding:9px;font-size:10px;color:#65757d;max-height:190px;overflow:auto}
#view-family.requests-focus>.section-head h2{font-size:24px}#view-family.requests-focus>.section-head p{display:none}#view-family.requests-focus>#familyConnectionCard,#view-family.requests-focus>.card:not(.requests-card-shell){display:none!important}#view-family.requests-focus .requests-card-shell{display:block}

/* Expenses */
#view-expenses>.section-head{margin-bottom:9px}.expense-tabs{width:min(360px,100%);margin:0 0 13px;background:#fff;border:0;border-bottom:1px solid #e7ecef;border-radius:0;padding:0;gap:20px}.expense-tabs button{border-radius:0;padding:8px 3px 9px;background:transparent!important;box-shadow:none!important;color:#65757f}.expense-tabs button.active{color:var(--preview-teal);border-bottom:2px solid var(--preview-teal)}
.balance-card{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;color:inherit!important;text-align:left!important}.expense-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.expense-overview-tile{position:relative;background:#fff;border:1px solid var(--preview-line);border-radius:16px;padding:15px 14px;box-shadow:var(--preview-shadow);min-height:116px;display:flex;flex-direction:column}.expense-overview-tile small{font-size:10px;color:#53636c;font-weight:700}.expense-overview-tile strong{font-size:25px;color:#123d55;letter-spacing:-.035em;margin:7px 0 4px}.expense-overview-tile em{font-style:normal;font-size:9px;color:#79868d;line-height:1.35}.expense-overview-tile.balance strong{color:#9a477f}.overview-icon{position:absolute;right:12px;top:12px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e8f5f2;color:#147365;font-size:16px}.expense-overview-tile.balance .overview-icon{background:#f7ecf5;color:#a24e8a}
.expense-row{grid-template-columns:42px minmax(0,1fr) auto;border-radius:15px;box-shadow:var(--preview-shadow);padding:13px}.expense-icon{border-radius:50%;width:40px;height:40px}.expense-copy h4{font-size:15px}.expense-copy .meta{font-size:10px;line-height:1.5}.expense-amount{font-size:15px}
.report-filters{border-radius:16px;box-shadow:none;background:#fbfcfd}.report-filter-grid select,.report-filter-grid input{background:#fff}.report-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.report-stat{border:1px solid var(--preview-line)!important;box-shadow:var(--preview-shadow)!important;background:#fff!important}.report-stat.report-balance strong{color:#9a477f}.category-report{margin-top:3px}.category-report-row{border-bottom:1px solid #edf1f3}.category-report-row:last-child{border-bottom:0}.report-bar{background:#edf0f2;border-radius:99px;overflow:hidden}.monthly-report{background:#fbfcfd;border-radius:13px;padding:8px}.monthly-row{border-bottom:1px solid #eef1f3}

/* Bottom navigation */
.bottom-nav{max-width:900px;height:84px;background:rgba(255,255,255,.985);border-top:1px solid #e8edef;box-shadow:0 -7px 24px rgba(18,52,70,.055);padding:7px 10px calc(8px + env(safe-area-inset-bottom))}.nav-item{color:#566a74}.nav-item.active{color:var(--preview-teal)}.nav-item small{font-size:9px}.nav-plus{width:58px!important;height:58px!important;margin-top:-27px!important;border:5px solid #fff;background:linear-gradient(180deg,var(--preview-teal-2),var(--preview-teal));box-shadow:0 8px 21px rgba(7,90,120,.26)}

/* Modal cards */
.modal-card{max-width:570px;border-radius:26px 26px 0 0}.modal-card .eyebrow{color:var(--preview-teal)}.modal-card input:focus,.modal-card select:focus,.modal-card textarea:focus{outline:2px solid #9ec9da;outline-offset:1px;border-color:#8abccf}.modal-card .primary.full{margin-top:7px}

@media(max-width:720px){
  .topbar{grid-template-columns:38px minmax(0,1fr) auto;padding:12px 9px 8px}.topbar-menu{width:36px;height:36px;padding:8px}.brand-block{justify-self:center}.brand-mark{width:34px;height:34px}.brand-mark svg{width:32px;height:32px}.brand-copy h1{font-size:21px}.session-panel{gap:3px}.role-switch{display:none}.sync-status{display:none!important}.topbar #logoutBtn{display:none}.header-icon-btn{width:36px;height:36px}.mobile-view-title{display:none}
  body[data-app-view="agenda"] .brand-block,body[data-app-view="expenses"] .brand-block,body[data-app-view="family"] .brand-block,body[data-app-view="add"] .brand-block{display:none}.mobile-view-title{font-size:20px}body[data-app-view="agenda"] .mobile-view-title,body[data-app-view="expenses"] .mobile-view-title,body[data-app-view="family"] .mobile-view-title,body[data-app-view="add"] .mobile-view-title{display:block}.topbar:has(.mobile-view-title[style*="display"]) .brand-block{display:none}
  main{padding:0 10px}.section-head{margin:3px 0 10px}.section-head h2{font-size:20px}.section-head p{display:none}.section-head .primary{font-size:10px;padding:8px 10px}.today-overview{min-height:88px;margin-top:4px}.today-copy strong{font-size:15px}.calendar-panel{padding:13px 8px 9px}.calendar-section-head{margin-bottom:5px}.calendar-section-head .segmented button{min-width:86px;padding:6px 13px;font-size:11px}.calendar-toolbar strong{font-size:17px}.calendar-toolbar #todayBtn{display:none}.calendar-toolbar{grid-template-columns:33px minmax(0,1fr) 33px}.day-cell{min-height:68px;padding:4px 2px}.date-num{width:19px;height:19px;font-size:9px;margin-bottom:3px}.month-parent-badge{width:21px;height:20px;border-radius:7px;font-size:10px}.month-split-badge{height:16px;font-size:6.5px;padding:0 3px}.month-event-icons{min-height:14px;margin-top:2px}.month-event-icon{width:13px;height:13px;font-size:9px}.weekday-row div{font-size:7px;padding:7px 0 5px}.legend{gap:9px;font-size:8px}.legend-event{display:none}.legend .dot{width:13px;height:13px}.agenda-filter-row{overflow:auto;padding-bottom:2px}.agenda-tabs{max-width:none}.agenda-tabs button{font-size:10px;padding:7px 10px}.event-card{grid-template-columns:44px minmax(0,1fr) 18px;padding:13px 11px}.event-symbol{width:42px;height:42px}.event-card h4{font-size:15px}.event-kicker{font-size:8px}.event-detail-line{font-size:10px}.event-chevron{font-size:24px}.event-actions{grid-column:1/4}.expense-overview-tile{padding:13px 12px;min-height:105px}.expense-overview-tile strong{font-size:20px}.overview-icon{width:29px;height:29px;font-size:14px}.expense-tabs{width:100%;justify-content:center}.report-filters{padding:13px}.report-summary-grid{grid-template-columns:1fr 1fr}.request-actions.three{grid-template-columns:1fr}.bottom-nav{height:80px}.nav-plus{width:53px!important;height:53px!important;margin-top:-24px!important}.nav-item small{font-size:8px}
}
@media(max-width:420px){
  .topbar{padding-left:6px;padding-right:6px}.brand-copy h1{font-size:19px}.brand-mark{width:31px}.brand-mark svg{width:29px}.header-icon-btn{width:34px}.today-overview{grid-template-columns:44px minmax(0,1fr) 17px;padding:11px}.today-avatar{width:42px;height:42px}.today-copy strong{font-size:14px}.today-event{font-size:9px}.calendar-panel{padding-left:5px;padding-right:5px}.day-cell{min-height:63px}.month-parent-badge{width:20px;height:19px}.month-event-icons{gap:0}.legend{font-size:7px}.legend .dot{width:12px;height:12px}.event-card{grid-template-columns:40px minmax(0,1fr) 16px}.event-symbol{width:38px;height:38px;font-size:18px}.expense-overview-grid{gap:7px}.expense-overview-tile{padding:11px 9px;min-height:98px}.expense-overview-tile strong{font-size:18px}.expense-overview-tile em{font-size:8px}.overview-icon{right:8px;top:8px}.expense-row{grid-template-columns:35px minmax(0,1fr) auto;padding:11px 9px}.expense-icon{width:34px;height:34px}.expense-copy h4{font-size:13px}.expense-amount{font-size:13px}.report-filter-grid{grid-template-columns:1fr 1fr}.nav-item small{font-size:7.5px}
}
@media(max-width:360px){
  .topbar-menu{width:32px}.brand-copy h1{font-size:17px}.header-icon-btn{width:31px}.calendar-toolbar strong{font-size:15px}.day-cell{min-height:59px}.month-parent-badge{width:18px;height:18px;font-size:9px}.month-split-badge{font-size:6px;padding:0 2px}.month-event-icon{font-size:8px;width:11px}.weekday-row div{font-size:6.5px}.agenda-tabs button{font-size:9px;padding:6px 8px}.expense-overview-tile strong{font-size:16px}.overview-icon{display:none}.bottom-nav{padding-left:2px;padding-right:2px}.nav-item small{font-size:7px}
}


/* v14: request editing + automatic event archive */
.archive-status{display:inline-flex;align-items:center;margin-left:7px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:800;vertical-align:middle}
.archive-status.completed{background:#eaf6f1;color:#1e6c58}
.archive-status.cancelled{background:#f7ecef;color:#8a3b50}
.event-card-archived{opacity:.88;background:linear-gradient(180deg,#fff,#fafbfc)}
.event-card-archived .event-chevron{display:none}
.request-edit-current{margin:2px 0 14px;padding:12px 14px;border-radius:14px;background:#f4f7f8;color:#526269}
#agendaArchiveTab{white-space:nowrap}
@media (max-width:560px){.agenda-tabs{overflow-x:auto;justify-content:flex-start;scrollbar-width:none}.agenda-tabs::-webkit-scrollbar{display:none}.agenda-tabs button{flex:0 0 auto}.request-actions{gap:8px}.request-actions button{min-height:42px}}


/* Notification center v15 */
.notification-center-card{max-width:620px;padding:24px;max-height:min(760px,88vh);overflow:hidden;display:flex;flex-direction:column}
.notification-center-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-right:36px;margin-bottom:14px}
.notification-center-head h2{margin:3px 0 2px}
.compact-btn{padding:9px 12px;min-height:40px;white-space:nowrap}
.notification-list{display:flex;flex-direction:column;gap:8px;overflow:auto;padding:2px 2px 6px;overscroll-behavior:contain}
.notification-item{width:100%;border:1px solid var(--border,#dfe7e8);background:#fff;border-radius:16px;padding:13px;display:grid;grid-template-columns:42px minmax(0,1fr) 10px;gap:11px;align-items:start;text-align:left;color:inherit;cursor:pointer;min-height:72px}
.notification-item.unread{background:linear-gradient(135deg,#f4fbfb 0%,#fff 70%);border-color:#b9d7d7}
.notification-kind{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-weight:800;font-size:17px;background:#edf5f5;color:#236b72}
.notification-kind.kind-requests{background:#f3edf7;color:#7c4d87}
.notification-kind.kind-expenses{background:#edf7f3;color:#2b7560}
.notification-kind.kind-events{background:#eef4fb;color:#3f6f9d}
.notification-kind.kind-calendar{background:#eaf5f6;color:#276d73}
.notification-copy{min-width:0;display:flex;flex-direction:column;gap:3px}
.notification-copy strong{font-size:.94rem;line-height:1.2}
.notification-copy span{font-size:.86rem;line-height:1.35;color:var(--muted,#67777a)}
.notification-copy small{font-size:.75rem;color:#8a989b;margin-top:2px}
.notification-unread-dot{width:8px;height:8px;border-radius:50%;background:#2f747b;margin-top:7px}
.notification-empty{padding:32px 16px;text-align:center;display:flex;flex-direction:column;gap:5px;color:var(--muted,#67777a)}
.notification-empty strong{color:var(--text,#24373b)}
.notification-settings-card{overflow:hidden}
.notification-permission-status{font-size:.78rem;font-weight:700;color:#557074;background:#eef5f5;border-radius:999px;padding:7px 10px;text-align:center}
.notification-pref-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.notification-pref-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border,#dfe7e8);border-radius:15px;padding:12px 13px;background:#fff;cursor:pointer}
.notification-pref-row>span{display:flex;flex-direction:column;gap:2px;min-width:0}
.notification-pref-row strong{font-size:.9rem}
.notification-pref-row small{color:var(--muted,#67777a);font-size:.76rem;line-height:1.3}
.notification-pref-row input{width:22px;height:22px;flex:0 0 auto;accent-color:#2d6f75}
@media (max-width:680px){.notification-pref-grid{grid-template-columns:1fr}.notification-center-card{max-height:86vh;padding:19px 15px}.notification-center-head{align-items:center}.compact-btn{font-size:.78rem;padding:8px 9px}.notification-item{grid-template-columns:38px minmax(0,1fr) 8px;padding:11px}.notification-kind{width:38px;height:38px}}

/* Expense reference code */
.expense-ref-inline{display:inline-flex;align-items:center;border-radius:999px;padding:2px 7px;background:#eef5f7;color:#24586b;font-weight:850;letter-spacing:.03em;font-size:.9em;white-space:nowrap}
.expense-reference-box{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:center;margin:10px 0 14px;padding:12px 13px;border:1px solid #dbe7ea;border-radius:14px;background:linear-gradient(135deg,#f4fafb,#fff)}
.expense-reference-box>span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}
.expense-reference-box>strong{grid-column:1/2;font-size:17px;color:#174d61;letter-spacing:.035em}
.expense-reference-box>button{grid-column:2;grid-row:1/3;align-self:center}
.expense-reference-box>small{grid-column:1/-1;color:var(--muted);font-size:10px}
.expense-reference-hint{margin-top:-4px;margin-bottom:13px}
@media(max-width:420px){.expense-ref-inline{font-size:8.5px;padding:2px 5px}.expense-reference-box{padding:11px}.expense-reference-box>strong{font-size:15px}}


/* v17: Festività e vacanze, regole annuali e alternanza anni */
.holiday-info-banner{display:flex;gap:12px;align-items:center;padding:14px 16px;margin:0 0 14px;border-radius:16px;background:linear-gradient(135deg,#fff7e9,#f8f1fb);border:1px solid #efe2d0}.holiday-info-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:#fff;color:#9a6a25;font-size:20px;box-shadow:0 3px 10px rgba(80,55,20,.06)}.holiday-info-banner strong,.holiday-info-banner small{display:block}.holiday-info-banner small{color:var(--muted);margin-top:2px}.holiday-tabs{width:min(420px,100%);margin-bottom:14px}.holiday-tabs button{flex:1}.holiday-list{max-width:900px}.holiday-rule-card{padding:16px}.holiday-rule-head{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:11px;align-items:start}.holiday-rule-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#fff4dd,#f5ebfa);font-size:21px}.holiday-rule-card h4{margin:2px 0 4px;font-size:16px}.holiday-occurrences{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.holiday-occurrence{display:grid;grid-template-columns:44px minmax(0,1fr) 30px;gap:8px;align-items:center;padding:6px 0;font-size:12px}.holiday-occurrence>span{color:var(--muted);font-weight:700}.holiday-occurrence>strong{font-size:12px}.holiday-parent{width:26px;height:24px;border-radius:8px;display:grid;place-items:center;color:#fff}.holiday-parent.father{background:var(--father)}.holiday-parent.mother{background:var(--mother)}.holiday-empty{padding:36px 16px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:18px}.holiday-empty span,.holiday-empty strong,.holiday-empty small{display:block}.holiday-empty span{font-size:30px;margin-bottom:8px}.holiday-empty strong{color:var(--ink);margin-bottom:4px}.holiday-family-card #holidayFamilyPreview .holiday-rule-card{box-shadow:none;background:#fafcfc;margin-bottom:8px}.holiday-family-card #holidayFamilyPreview .holiday-rule-head{grid-template-columns:36px minmax(0,1fr) auto}.holiday-family-card #holidayFamilyPreview .holiday-rule-icon{width:34px;height:34px;border-radius:11px;font-size:16px}.holiday-family-card #holidayFamilyPreview .holiday-occurrence{grid-template-columns:40px minmax(0,1fr) 28px}.holiday-form .holiday-field-group{padding:12px 0;border-top:1px solid #edf0f1}.holiday-preview{margin:12px 0 15px;padding:12px;border-radius:14px;background:#f7f9fa;border:1px solid #e8edef}.holiday-preview .preview-title{font-weight:800;margin-bottom:7px}.holiday-preview-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:7px;padding:5px 0;align-items:center;font-size:11px}.holiday-preview-row span{color:var(--muted)}.holiday-preview-row b{color:var(--preview-teal)}.month-event-icon.holiday{background:#fff4dd;color:#8a6124}.day-holiday-banner{display:grid;gap:8px;margin:8px 0 15px}.day-holiday-banner>div{display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:9px;align-items:center;padding:11px 12px;border-radius:14px;background:linear-gradient(135deg,#fff7e8,#f8f0fb);border:1px solid #eadfce}.day-holiday-banner>div>span{grid-row:1/3;font-size:20px}.day-holiday-banner strong,.day-holiday-banner small{display:block}.day-holiday-banner small{color:var(--muted);font-size:10px}.action-card.holiday-action .action-icon{background:linear-gradient(145deg,#fff1cf,#f1e4f7);color:#896323}
@media(max-width:560px){.holiday-rule-head{grid-template-columns:40px minmax(0,1fr);}.holiday-rule-head>.pill{grid-column:2;justify-self:start}.holiday-rule-icon{width:38px;height:38px}.holiday-occurrence{grid-template-columns:36px minmax(0,1fr) 28px}.holiday-tabs{overflow:hidden}.holiday-tabs button{font-size:10px;padding:7px 8px}.holiday-info-banner{padding:12px}.holiday-form .two-col{grid-template-columns:1fr}.holiday-family-card #holidayFamilyPreview .holiday-rule-head{grid-template-columns:32px minmax(0,1fr)}.holiday-family-card #holidayFamilyPreview .holiday-rule-head>.pill{display:none}}


/* v18: push notifications + event reminders */
.event-reminder-box{border:1px solid #dce8ea;border-radius:17px;padding:13px 14px;margin:13px 0;background:linear-gradient(135deg,#f7fbfb,#fff)}
.event-reminder-box legend{padding:0 7px;font-size:13px;font-weight:850;color:var(--preview-teal)}
.event-reminder-box>.hint{margin:0 0 10px;font-size:10px}
.reminder-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:9px 0 12px}
.reminder-choice{display:flex!important;align-items:center;gap:8px!important;border:1px solid #e0e8ea;border-radius:12px;padding:9px 10px!important;background:#fff;font-size:11px;font-weight:750;cursor:pointer}
.reminder-choice input{width:18px!important;height:18px!important;min-height:18px!important;margin:0!important;accent-color:var(--preview-teal)}
.reminder-tag{display:inline-flex;align-items:center;gap:4px;width:max-content;max-width:100%;margin-top:7px;padding:4px 8px;border-radius:999px;background:#eef7f7;color:#256d73;font-size:9px;font-weight:750;line-height:1.2}
.notification-permission-status{max-width:210px}
@media(max-width:480px){.reminder-choice-grid{grid-template-columns:1fr 1fr}.event-reminder-box{padding:11px}.reminder-choice{padding:8px!important;font-size:10px}.notification-settings-card .button-row{display:grid;grid-template-columns:1fr 1fr}.notification-settings-card #saveNotificationPrefs{grid-column:1/-1}}

.push-diagnostic-output { margin-top: 12px; padding: 10px 12px; border: 1px dashed var(--border, #d8e0e6); border-radius: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.reminder-diagnostic-output { white-space: pre-line; }


/* v21 · Spese: conto comune e filtri elenco */
.expense-list-filters{padding:13px 14px;margin-bottom:12px;background:#fbfcfd;box-shadow:none;border:1px solid var(--preview-line,var(--line))}
.expense-list-filter-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}
.expense-list-filter-head strong{display:block;font-size:13px}.expense-list-filter-head small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.expense-list-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.expense-list-filter-grid label{display:flex;flex-direction:column;gap:5px;font-size:10px;font-weight:800;color:var(--muted);min-width:0}
.expense-list-filter-grid select{width:100%;min-width:0;border:1px solid #dbe4e8;border-radius:11px;padding:8px 9px;background:#fff;color:var(--ink);font-size:12px}
.expense-list-filter-summary{margin-top:9px;font-size:10px;color:var(--muted);font-weight:700}
.common-account-note{display:inline-block;margin-top:4px;color:#39716c;font-weight:800}
@media(max-width:720px){.expense-list-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-list-filter-grid label:last-child{grid-column:1/-1}}
@media(max-width:420px){.expense-list-filters{padding:11px 10px}.expense-list-filter-head{align-items:flex-start}.expense-list-filter-head .compact-btn{padding:7px 8px;font-size:9px}.expense-list-filter-grid{gap:7px}.expense-list-filter-grid select{font-size:11px;padding:8px 7px}}

/* v24 · area Strumenti e diagnostica */
.diagnostics-entry-card{position:relative;overflow:hidden}
.diagnostics-entry-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#eef5f7;color:var(--preview-teal);font-size:19px;flex:0 0 auto}
#view-diagnostics .card{margin-bottom:12px}
.compact-btn{min-height:36px;padding:7px 11px;font-size:11px;white-space:nowrap}
.diagnostics-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-top:10px}
.diagnostic-stat{border:1px solid var(--preview-line,#e1e8eb);border-radius:14px;background:#fbfcfd;padding:11px;min-width:0}
.diagnostic-stat span{display:block;color:#71808a;font-size:9px;font-weight:750;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}
.diagnostic-stat strong{display:block;color:#173b4c;font-size:14px;line-height:1.25;overflow-wrap:anywhere}
.diagnostics-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.diagnostics-action-grid button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;min-height:76px;padding:12px 14px}
.diagnostics-action-grid button strong{font-size:13px;color:inherit}
.diagnostics-action-grid button small{font-size:10px;line-height:1.35;color:#71808a;margin-top:4px;font-weight:500}
.diagnostics-detail-card .push-diagnostic-output{white-space:pre-line;background:#fbfcfd;border-style:solid;min-height:52px}
.diagnostics-copy-card{border-style:dashed}
.diagnostics-copy-fallback{width:100%;margin-top:10px;min-height:150px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.45;background:#fbfcfd;border:1px solid var(--preview-line,#e1e8eb);border-radius:12px;padding:11px;color:#173b4c}
#view-diagnostics .section-head .secondary{display:inline-flex}

@media(max-width:760px){
  .diagnostics-summary-grid{grid-template-columns:1fr 1fr}
  .diagnostic-stat:last-child{grid-column:1/-1}
}
@media(max-width:480px){
  .diagnostics-action-grid{grid-template-columns:1fr}
  #view-diagnostics .card-title-row{align-items:flex-start;gap:10px}
  #view-diagnostics .compact-btn{flex:0 0 auto}
  .notification-settings-card .button-row{grid-template-columns:1fr 1fr}
  .notification-settings-card #saveNotificationPrefs{grid-column:auto}
}

/* v26 · desktop UI refinement (visual only) */
.expense-payer-inline{display:inline-block;margin-right:7px}
.expense-status-badge{display:inline-flex;align-items:center;vertical-align:middle;margin:2px 5px 0 0;padding:3px 7px;border-radius:999px;font-size:9px;font-weight:850;line-height:1.2;border:1px solid transparent}
.expense-status-badge.status-reimbursed{background:#eaf6f0;color:#27725a;border-color:#d7ece3}
.expense-status-badge.status-common{background:#eaf5f5;color:#2c6f72;border-color:#d5e9e9}
.expense-status-badge.status-pending{background:#fff5d8;color:#866511;border-color:#f0dfaa}
.expense-status-badge.status-rejected,.expense-status-badge.status-archived{background:#f8ecef;color:#9b4056;border-color:#efd8df}
.expense-status-badge.status-open{background:#eef4fb;color:#3d6795;border-color:#dce7f4}
.expense-attachment-inline{display:inline-block;margin-left:2px}

@media (min-width: 1050px){
  body{background:linear-gradient(180deg,#fbfcfd 0,#f6f8fa 400px,#f4f7f9 100%)}
  .app-shell{max-width:1240px;padding-bottom:112px}
  .topbar{padding:19px 28px 13px;min-height:80px}
  .brand-block{gap:12px}.brand-mark{width:40px;height:40px}.brand-mark svg{width:37px;height:37px}.brand-copy h1{font-size:28px}.brand-subtitle{font-size:10px}
  .session-panel{gap:8px}.role-switch select{min-width:112px}.sync-status{padding:6px 10px}
  main{padding:0 28px}
  .view{padding-top:6px}
  .section-head{margin:8px 0 14px}.section-head h2{font-size:25px}.section-head p{font-size:12px}
  .primary,.secondary{transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background .14s ease}
  .primary:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(7,90,120,.16)}
  .secondary:hover{transform:translateY(-1px);border-color:#a9c9d7;box-shadow:0 5px 14px rgba(17,48,66,.06)}

  /* Calendar: denser and more desktop-like */
  .today-overview{min-height:86px;padding:15px 18px;border-radius:20px;margin-bottom:16px;grid-template-columns:52px minmax(0,1fr) 24px}
  .today-avatar{width:50px;height:50px}.today-copy strong{font-size:18px}.today-event{font-size:11px;margin-top:5px}
  .calendar-panel{padding:18px 18px 12px;border-radius:23px;margin-bottom:14px}
  .calendar-section-head{margin-bottom:4px}.calendar-section-head h2{font-size:19px}
  .calendar-toolbar{grid-template-columns:42px minmax(0,1fr) 42px;padding:2px 4px 10px}.calendar-toolbar strong{font-size:20px}.calendar-toolbar #todayBtn{right:48px}
  .calendar-grid{border-radius:15px}.weekday-row div{font-size:9px;padding:8px 0 7px}
  .day-cell{min-height:82px;padding:6px 5px 5px;transition:background .13s ease,box-shadow .13s ease}
  .day-cell:hover{background:#f7fafb;box-shadow:inset 0 0 0 1px #dce8ed}
  .day-cell.today{background:linear-gradient(180deg,#f4fafc,#fff 64%);box-shadow:inset 0 0 0 2px rgba(7,90,120,.18)}
  .day-cell.today::after{content:"OGGI";position:absolute;right:6px;top:7px;font-size:7px;font-weight:900;letter-spacing:.08em;color:var(--preview-teal);background:#eaf5f7;border-radius:999px;padding:2px 5px}
  .day-cell.today .date-num{background:transparent;color:var(--preview-teal);box-shadow:none;font-size:11px}
  .date-num{width:24px;height:22px;margin-bottom:4px;font-size:10px}
  .month-parent-wrap{min-height:27px}.month-parent-badge{width:26px;height:25px;border-radius:8px;font-size:11px;box-shadow:0 3px 8px rgba(28,60,79,.14)}
  .month-split-badge{min-width:24px}.month-event-icons{margin-top:3px;min-height:15px}.month-event-icon{width:16px;height:15px;font-size:10px}
  .legend{padding-top:9px!important;margin-top:9px;gap:15px;font-size:9px}

  /* Agenda: compact two-column cards on large screens */
  #view-agenda>.section-head{margin-bottom:9px}.agenda-filter-row{margin-bottom:13px}
  #eventsList.stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;align-items:stretch}
  #eventsList>.agenda-list-label,#eventsList>.empty-state-card{grid-column:1/-1}
  .event-card{height:100%;min-height:154px;grid-template-columns:44px minmax(0,1fr) 20px;gap:11px;padding:14px 13px;border-radius:18px;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}
  .event-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(18,52,70,.08);border-color:#d7e3e8}
  .event-symbol{width:42px;height:42px;font-size:19px}.event-card h4{font-size:16px}.event-detail-line{font-size:10.5px}.event-kicker{font-size:8px}
  .event-actions{padding-top:7px;margin-top:2px}.event-actions .link-btn{font-size:10px}.reminder-tag,.recurrence-tag{font-size:9px}

  /* Add: one clean row of actions */
  .action-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.action-card{min-height:150px;padding:20px;border-radius:20px}.action-card strong{font-size:16px}.action-card small{font-size:11px}

  /* Expenses: compact summary, filters and two-column list */
  #view-expenses>.section-head{margin-bottom:7px}.expense-tabs{margin-bottom:12px}
  .expense-overview-grid{grid-template-columns:1.25fr .75fr;gap:13px}.expense-overview-tile{min-height:104px;padding:14px 15px}.expense-overview-tile strong{font-size:24px}
  .expense-list-filters{padding:13px 15px}.expense-list-filter-grid{gap:11px}.expense-list-filter-grid select{min-height:39px}
  #expensesList.stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch}
  #expensesList>.item-card:not(.expense-row){grid-column:1/-1}
  .expense-row{height:100%;min-height:92px;padding:13px 14px;border-radius:17px;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}
  .expense-row:hover{transform:translateY(-2px);box-shadow:0 10px 23px rgba(18,52,70,.08);border-color:#d7e3e8}
  .expense-icon{width:39px;height:39px}.expense-copy h4{font-size:14px;margin-bottom:4px}.expense-copy .meta{font-size:9.5px;line-height:1.55}.expense-amount{font-size:16px;align-self:start;margin-top:3px}
  .expense-status-badge{font-size:8.5px;padding:3px 6px}
  .report-filters{padding:15px 16px}.report-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.report-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.report-stat{min-height:96px;padding:14px 15px}.report-stat strong{font-size:20px}.report-stat.report-balance{grid-column:auto}

  /* Family / requests / diagnostics */
  #requestsList.stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.requests-card-shell #requestsList>.item-card{margin:0}
  .diagnostics-summary-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:11px}.diagnostics-action-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}

  /* Desktop navigation: floating dock instead of full-width mobile bar */
  .bottom-nav{bottom:18px;width:min(680px,calc(100% - 56px));height:70px;border:1px solid rgba(217,226,231,.95);border-radius:23px;padding:6px 12px;background:rgba(255,255,255,.965);box-shadow:0 13px 36px rgba(18,52,70,.14);overflow:visible}
  .nav-item{border-radius:15px;transition:background .13s ease,color .13s ease,transform .13s ease}.nav-item:hover{background:#f2f7f8;transform:translateY(-1px)}.nav-item.active{background:#eef6f8}.nav-item small{font-size:9px}.nav-icon{width:23px;height:23px!important}.nav-icon svg{width:21px;height:21px}.nav-plus{width:52px!important;height:52px!important;margin-top:-22px!important;border-width:4px;font-size:29px!important}.add-nav:hover{background:transparent}.nav-badge{right:18px;top:2px}

  /* Desktop dialogs: centered cards, mobile keeps bottom sheets */
  .modal{padding:24px;overflow:auto}.modal-card{top:50%;bottom:auto;left:50%;transform:translate(-50%,-50%);width:min(620px,calc(100% - 48px));max-height:86vh;border-radius:24px;padding:25px 25px 27px;box-shadow:0 24px 70px rgba(8,34,48,.22)}
  .notification-center-card{max-width:700px}
}

@media (min-width: 1450px){
  .app-shell{max-width:1320px}.topbar{padding-left:34px;padding-right:34px}main{padding-left:34px;padding-right:34px}
  .day-cell{min-height:86px}
}

/* v27 · monthly calendar: show only complete weeks touching the selected month */
.day-cell.outside{
  background:#f3f5f6;
  color:#9aa5aa;
}
.day-cell.outside:hover{background:#eef2f3}
.day-cell.outside .date-num{color:#98a3a8}
.day-cell.outside .month-parent-badge,
.day-cell.outside .month-split-badge{
  opacity:.52;
  filter:saturate(.45);
}
.day-cell.outside .month-event-icons{opacity:.55}
.day-cell.outside.today{background:linear-gradient(180deg,#edf4f5,#f3f5f6 72%)}


/* v28 - Scambio date / weekend */
.swap-flow{display:grid;gap:14px;margin:12px 0}.swap-step-card{border:1px solid var(--border,#dce6ea);border-radius:18px;padding:16px;background:linear-gradient(180deg,#fff,rgba(247,250,251,.78))}.swap-step-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}.swap-step-head>span{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border-radius:999px;background:var(--primary,#087b95);color:#fff;font-weight:800}.swap-step-head div{display:grid;gap:2px}.swap-step-head strong{font-size:1rem}.swap-step-head small{color:var(--muted,#748793);line-height:1.35}.swap-step-head b{color:var(--primary,#087b95)}.swap-quick-actions{align-items:center;margin-top:4px}.swap-quick-actions .hint{margin:0}.swap-picker-head{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:8px;margin:8px 0;text-align:center;text-transform:capitalize}.swap-picker-head .icon-btn{width:40px;height:40px;border:1px solid var(--border,#dce6ea);border-radius:12px;background:#fff;color:var(--ink,#133241);font-size:26px;line-height:1;cursor:pointer}.swap-calendar-weekdays,.swap-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.swap-calendar-weekdays{padding:3px 0 6px;color:var(--muted,#748793);font-size:.72rem;font-weight:800;text-align:center;text-transform:uppercase}.swap-calendar-day{min-height:54px;border:1px solid #e3eaee;border-radius:11px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#173341;cursor:pointer;transition:.16s ease}.swap-calendar-day:hover:not(:disabled){transform:translateY(-1px);border-color:#91c4d0;box-shadow:0 4px 12px rgba(14,70,86,.08)}.swap-calendar-day.outside{background:#f5f7f8;color:#9aa8af}.swap-calendar-day.disabled{opacity:.42;cursor:not-allowed}.swap-calendar-day.available{box-shadow:inset 0 0 0 1px rgba(8,123,149,.04)}.swap-calendar-day.selected{border-color:#087b95;background:#eaf7fa;box-shadow:inset 0 0 0 2px #087b95}.swap-owner{display:grid;place-items:center;width:21px;height:21px;border-radius:7px;color:#fff;font-size:.68rem;font-weight:900}.swap-owner.father{background:#398cc7}.swap-owner.mother{background:#a6509b}.swap-owner.split{background:#9caab1}.swap-date-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.swap-date-chip{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#edf4f6;color:#31515e;font-size:.78rem;font-weight:700}.swap-preview-grid{display:grid;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr);gap:10px;align-items:stretch;margin-top:10px}.swap-preview-side{border:1px solid #e2e9ed;border-radius:14px;padding:12px;background:#fff}.swap-preview-side>span,.swap-request-label{display:block;color:#748793;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.swap-preview-side>strong{display:block;margin-top:3px;font-size:1.05rem}.swap-arrow,.swap-request-arrow{display:grid;place-items:center;font-size:1.6rem;color:#087b95;font-weight:800}.swap-warning{margin-top:10px;color:#9b5b10}.swap-request-card{border-left:4px solid #087b95}.swap-request-grid{display:grid;grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);gap:12px;align-items:center;margin:14px 0;padding:14px;border-radius:15px;background:#f7fafb}.swap-request-grid .swap-date-list{margin-top:7px}
@media (min-width:900px){#scheduleModal .modal-card{max-width:780px}.swap-flow{grid-template-columns:.9fr 1.1fr;align-items:start}}
@media (max-width:640px){.swap-preview-grid,.swap-request-grid{grid-template-columns:1fr}.swap-arrow,.swap-request-arrow{transform:rotate(90deg);min-height:24px}.swap-calendar-day{min-height:48px}.swap-step-card{padding:13px}.swap-quick-actions{align-items:stretch}.swap-quick-actions button{width:100%}}


/* v29 - onboarding programmazione iniziale */
.initial-setup-card{width:min(920px,100%)}
.initial-setup-form{display:flex;flex-direction:column;gap:16px;margin-top:18px}
.initial-role-summary{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:8px 12px;padding:13px 15px;border:1px solid var(--line);border-radius:15px;background:#f8fbfc}
.initial-role-summary>span{font-size:12px;color:var(--muted);font-weight:800}.initial-role-summary>strong{font-size:15px;color:var(--primary)}.initial-role-summary>small{justify-self:end;color:var(--muted)}
.initial-week-card{border:1px solid var(--line);border-radius:18px;padding:16px;background:#fff}
.initial-week-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.initial-week-head>div{display:flex;flex-direction:column;gap:3px}.initial-week-head strong{font-size:14px}.initial-week-head small{font-size:12px;color:var(--muted);line-height:1.4}.initial-week-head>span{font-size:10px;font-weight:900;color:var(--primary);background:#edf5f6;border-radius:999px;padding:5px 8px;white-space:nowrap}
.initial-day-picker{display:grid;gap:8px;align-items:stretch}.initial-day-picker.seven{grid-template-columns:repeat(7,1fr)}.initial-day-picker.five{grid-template-columns:repeat(5,1fr) minmax(150px,1.4fr)}
.initial-day-picker label{display:block;cursor:pointer}.initial-day-picker input{position:absolute;opacity:0;pointer-events:none}.initial-day-picker span:not(.initial-fixed-weekend){display:grid;place-items:center;min-height:44px;border:1px solid #d7e0e4;border-radius:12px;background:#fbfcfd;font-size:12px;font-weight:900;color:#61727b;transition:.15s ease}.initial-day-picker input:checked+span{background:#e8f2f5;border-color:#94b9c3;color:#174b5b;box-shadow:inset 0 0 0 1px #94b9c3}.initial-day-picker label:hover span{transform:translateY(-1px)}
.initial-fixed-weekend{display:grid;place-items:center;text-align:center;border:1px dashed #d6dde2;border-radius:12px;background:#f3f5f7;color:#7a878e;font-size:11px;font-weight:800;padding:6px 10px}
.initial-anchor-field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:900}.initial-anchor-field input{max-width:270px;border:1px solid #ccd9d6;border-radius:12px;padding:11px 12px;background:#fff;font-size:16px}.initial-anchor-field small{font-weight:500;color:var(--muted)}
.initial-setup-preview{display:grid;grid-template-columns:1fr 1fr;gap:12px}.initial-preview-block{border:1px solid var(--line);border-radius:15px;padding:12px;background:#fafcfd}.initial-preview-block>span{display:block;font-size:11px;font-weight:900;margin-bottom:8px}.initial-preview-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.initial-preview-day{display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 3px;border-radius:9px}.initial-preview-day small{font-size:9px}.initial-preview-day strong{font-size:14px}.initial-preview-day.father{background:#eaf3f8;color:#2f6c8f}.initial-preview-day.mother{background:#f4edf6;color:#8a5d8e}.initial-setup-preview>.hint{grid-column:1/-1;margin:0;font-size:11px}.initial-info{margin:0}
@media(max-width:720px){.initial-role-summary{grid-template-columns:1fr auto}.initial-role-summary>small{grid-column:1/-1;justify-self:start}.initial-day-picker.seven{grid-template-columns:repeat(4,1fr)}.initial-day-picker.five{grid-template-columns:repeat(3,1fr)}.initial-fixed-weekend{grid-column:span 2}.initial-setup-preview{grid-template-columns:1fr}.initial-preview-grid{grid-template-columns:repeat(7,1fr)}}


/* v30 - wizard programmazione, anteprima reale e revisione annuale */
.initial-start-row{align-items:start}.initial-start-row label{margin:0}.initial-start-row small{font-weight:500;color:var(--muted)}
.initial-real-preview{grid-column:1/-1;border:1px solid #dce6e9;border-radius:16px;padding:13px;background:#f8fbfc}.program-real-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px;font-size:11px}.program-real-head span{color:var(--muted);font-weight:800}.program-real-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.program-real-day{display:grid;grid-template-columns:1fr auto;grid-template-areas:'day day' 'date parent';gap:2px;padding:7px 6px;border-radius:10px;min-height:56px}.program-real-day small{grid-area:day;font-size:9px;opacity:.8}.program-real-day span{grid-area:date;font-size:12px;font-weight:800}.program-real-day strong{grid-area:parent;align-self:end;font-size:14px}.program-real-day.father{background:#eaf3f8;color:#2f6c8f}.program-real-day.mother{background:#f4edf6;color:#8a5d8e}.program-real-day.inactive{background:#eef1f2;color:#98a5aa}.calendar-program-summary{display:flex;flex-direction:column;gap:10px;margin:10px 0 14px}.program-summary-line{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:12px}.program-summary-line span{color:var(--muted)}.program-summary-empty{padding:12px;border-radius:14px;background:#f6f9fa}.program-summary-empty p{margin:5px 0 0;color:var(--muted);font-size:12px}.calendar-program-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#eef6f8;color:var(--primary2);font-weight:900}.calendar-program-modal-card{max-width:760px}.calendar-program-preview{margin:14px 0}.program-danger-option,.program-confirm{display:grid!important;grid-template-columns:auto 1fr;align-items:start;gap:10px!important;padding:12px;border:1px solid #dce5e7;border-radius:14px;background:#fafcfd}.program-danger-option input,.program-confirm input{width:auto!important;margin-top:3px}.program-danger-option span,.program-confirm span{display:flex;flex-direction:column;gap:3px}.program-danger-option small,.program-confirm small{font-weight:500;color:var(--muted)}.program-danger-option:has(input:checked){border-color:#e0a3a3;background:#fff5f5}.setup-warning.danger{border-color:#efb2b2;background:#fff3f3;color:#8f3535}.annual-review-info{padding:13px;border-radius:14px;background:#f3f8fa;color:#526a74;font-size:12px;line-height:1.5;margin:14px 0}.annual-review-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.program-request-note{margin:12px 0;padding:10px 12px;border-radius:12px;background:#f5f8f9;font-size:12px;color:#526a74}
@media(max-width:720px){.program-real-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.program-real-day{padding:6px 3px;min-height:52px}.program-real-day span{font-size:11px}.program-real-day strong{font-size:13px}.program-real-head{align-items:flex-start;flex-direction:column;gap:3px}.annual-review-actions{grid-template-columns:1fr}}

/* v31 — flussi semplificati e progressive disclosure */
.wizard-progress{display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:8px;margin:8px 0 18px}.wizard-progress>span{display:flex;align-items:center;gap:6px;justify-content:center;min-width:34px;height:34px;padding:0 10px;border-radius:999px;background:#eef3f4;color:#809098;font-weight:900;font-size:12px}.wizard-progress>span small{font-size:10px;font-weight:800}.wizard-progress>span.active{background:var(--primary);color:#fff}.wizard-progress>span.done{background:#e5f2ee;color:#27725a}.wizard-progress>i{height:2px;background:#e1e8ea;border-radius:999px}.wizard-step-title{display:flex;gap:11px;align-items:center;margin:8px 0 16px}.wizard-step-title>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--primary);color:#fff;font-weight:900}.wizard-step-title>div{display:flex;flex-direction:column;gap:2px}.wizard-step-title small{color:var(--muted);font-size:11px}.wizard-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.wizard-actions button{min-width:130px}
.program-presets{display:flex;flex-direction:column;gap:8px;padding:12px 13px;border-radius:15px;background:#f6f9fa;border:1px solid var(--line);margin-bottom:13px}.program-presets>span{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.program-preset-buttons{display:flex;gap:7px;flex-wrap:wrap}.program-preset-buttons button{padding:8px 11px;font-size:11px}.program-preset-buttons button.active{background:var(--primary);border-color:var(--primary);color:#fff}.program-presets>small{font-size:10px;color:var(--muted)}
.program-day-editor label>span,.program-day-fixed{min-height:58px!important;display:flex!important;flex-direction:column;gap:3px!important;align-items:center;justify-content:center;border:1px solid #dbe4e7;border-radius:13px;background:#f8fafb;color:#718189;transition:.15s ease}.program-day-editor label>span small,.program-day-fixed small{font-size:9px;text-transform:uppercase;letter-spacing:.04em}.program-day-editor label>span strong,.program-day-fixed strong{font-size:17px;line-height:1}.program-day-editor label>span.father,.program-day-fixed.father{background:#eaf3f8!important;border-color:#c9ddea!important;color:#2f6c8f!important;box-shadow:none!important}.program-day-editor label>span.mother,.program-day-fixed.mother{background:#f4edf6!important;border-color:#e3d3e7!important;color:#8a5d8e!important;box-shadow:none!important}.program-day-fixed{opacity:.82;cursor:not-allowed}.initial-day-picker input:checked+span{box-shadow:none}.first-week-mini{margin-top:14px}.first-week-mini-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.first-week-mini-head small{color:var(--muted)}.first-week-mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.first-week-mini-grid>span{display:grid;grid-template-columns:1fr auto;grid-template-areas:'d d' 'n p';padding:7px;border-radius:10px;min-height:55px}.first-week-mini-grid small{grid-area:d;font-size:9px}.first-week-mini-grid b{grid-area:n;font-size:13px}.first-week-mini-grid strong{grid-area:p}.first-week-mini-grid .father{background:#eaf3f8;color:#2f6c8f}.first-week-mini-grid .mother{background:#f4edf6;color:#8a5d8e}.first-week-mini-grid .inactive{background:#eef1f2;color:#97a3a8}

.advanced-disclosure{border:1px solid var(--line);border-radius:14px;background:#fafcfc;margin:14px 0;overflow:hidden}.advanced-disclosure>summary{cursor:pointer;list-style:none;padding:12px 14px;font-size:12px;font-weight:900;color:#34515d;display:flex;align-items:center;justify-content:space-between;gap:10px}.advanced-disclosure>summary::-webkit-details-marker{display:none}.advanced-disclosure>summary::after{content:'＋';font-size:16px;color:var(--primary)}.advanced-disclosure[open]>summary::after{content:'−'}.advanced-disclosure>summary small{font-weight:600;color:var(--muted);margin-left:auto}.advanced-disclosure[open]>summary{border-bottom:1px solid var(--line);background:#f5f9f9}.entry-advanced>label,.entry-advanced>div,.entry-advanced>fieldset{margin-left:14px!important;margin-right:14px!important}.entry-advanced>label:last-child{margin-bottom:16px!important}.compact-entry-form>button[type="submit"]{margin-top:14px}.danger-disclosure{border-color:#ead8d8;background:#fffafa}.danger-disclosure[open]>summary{background:#fff5f5;color:#8f4242}

.schedule-mode-chooser{margin:12px 0 14px}.schedule-primary-modes{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:7px}.schedule-mode-btn{border:1px solid var(--line);background:#fff;border-radius:15px;padding:12px;text-align:left;color:var(--ink);display:flex;flex-direction:column;gap:2px;cursor:pointer}.schedule-mode-btn strong{font-size:13px}.schedule-mode-btn small{font-size:10px;color:var(--muted)}.schedule-mode-btn.active{border-color:#8ebdc8;background:#eaf6f8;box-shadow:inset 0 0 0 1px #8ebdc8;color:#174b5b}.schedule-secondary-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px}.schedule-secondary-modes .active{background:var(--primary);color:#fff;border-color:var(--primary)}

.request-tabs{width:max-content;margin:10px 0 4px}.completed-request-card{opacity:.9}.completed-request-card .meta{margin-top:2px}.requests-card-shell #requestsList{margin-top:10px}

.annual-review-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#f0f7f8;border:1px solid #d5e7ea;border-radius:18px;padding:13px 15px;margin-bottom:13px}.annual-review-banner>div:first-child{display:flex;align-items:center;gap:10px;min-width:0}.annual-review-banner>div:first-child>div{display:flex;flex-direction:column;gap:2px}.annual-review-banner small{color:var(--muted);font-size:11px;line-height:1.35}.annual-review-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#fff;color:var(--primary);font-size:19px;font-weight:900}.annual-review-banner .button-row{flex:0 0 auto}.annual-review-banner button{padding:8px 11px}

.diagnostics-summary-compact{margin-top:14px}.diagnostics-collapsible{padding:0!important}.diagnostics-collapsible>summary{cursor:pointer;list-style:none;padding:16px 18px;font-weight:900}.diagnostics-collapsible>summary::-webkit-details-marker{display:none}.diagnostics-collapsible>summary::after{content:'＋';float:right;color:var(--primary)}.diagnostics-collapsible[open]>summary{border-bottom:1px solid var(--line)}.diagnostics-collapsible[open]>summary::after{content:'−'}.diagnostics-detail-block{padding:14px 18px;border-bottom:1px solid var(--line)}.diagnostics-detail-block:last-child{border-bottom:0}.diagnostics-action-compact{grid-template-columns:1fr 1fr;padding:14px 18px}

.quick-add-card{max-width:520px}.quick-add-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.quick-add-action{border:1px solid var(--line);background:#fff;border-radius:17px;padding:16px 12px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px;color:var(--ink);cursor:pointer}.quick-add-action:hover{border-color:#a9cbd3;background:#f5fbfc}.quick-add-action>span{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#eaf4f6;color:var(--primary);font-size:21px;font-weight:900}.quick-add-action strong{font-size:13px}.quick-add-action small{font-size:10px;color:var(--muted)}.quick-add-more{margin-bottom:0}.quick-add-more button{margin:12px;width:calc(100% - 24px)}

.overflow-menu{position:relative;margin-left:auto}.overflow-menu>summary{list-style:none;cursor:pointer;display:grid;place-items:center;min-width:34px;height:34px;border-radius:10px;background:#f1f5f5;color:#536b75;font-size:20px;font-weight:900}.overflow-menu>summary::-webkit-details-marker{display:none}.overflow-menu-panel{position:absolute;right:0;top:40px;z-index:20;min-width:190px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:10px;box-shadow:0 12px 30px rgba(18,52,70,.15);display:flex;flex-direction:column;gap:10px}.overflow-menu-panel .link-btn{text-align:left}.expense-overflow-menu{margin-top:12px}.expense-overflow-menu>summary{display:flex;justify-content:center;gap:5px;font-size:12px;padding:0 10px}.expense-overflow-menu .overflow-menu-panel{position:static;margin-top:8px;box-shadow:none}

@media(max-width:720px){.wizard-progress>span small{display:none}.wizard-progress>span{padding:0;width:34px;min-width:34px}.program-day-editor{grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:4px}.program-day-editor label>span,.program-day-fixed{min-height:50px!important;border-radius:10px}.program-day-editor label>span strong,.program-day-fixed strong{font-size:15px}.first-week-mini-grid{gap:3px}.first-week-mini-grid>span{padding:5px 3px}.wizard-actions{display:grid;grid-template-columns:1fr 1fr}.wizard-actions button:only-child{grid-column:1/-1}.schedule-primary-modes{grid-template-columns:1fr}.schedule-secondary-modes{grid-template-columns:1fr}.annual-review-banner{align-items:flex-start;flex-direction:column}.annual-review-banner .button-row{width:100%}.annual-review-banner .button-row button{flex:1}.diagnostics-action-compact{grid-template-columns:1fr}.quick-add-grid{grid-template-columns:1fr}.quick-add-action{flex-direction:row;text-align:left;align-items:center}.quick-add-action>span{flex:0 0 42px}.quick-add-action small{margin-left:auto}.overflow-menu-panel{right:0}}


/* v32 — richieste calendario semplificate */
.simplified-schedule-chooser .schedule-primary-modes{grid-template-columns:1fr}
.schedule-program-link{margin-top:8px;text-align:left;width:100%;padding-left:0}
.one-way-transfer-note{padding:12px 14px;border-radius:14px;background:var(--soft,#f5f7f9);margin-bottom:12px}
.one-way-transfer-note p{margin:4px 0 0;color:var(--muted,#667085);font-size:.88rem}
@media (min-width: 900px){.simplified-schedule-chooser .schedule-primary-modes{max-width:620px}}


/* v33 — Settimane A/B libere e switch alla pari */
.swap-counter-banner{display:flex;flex-direction:column;gap:5px;margin:10px 0 14px;padding:13px 15px;border:1px solid #cfe3e8;border-radius:15px;background:#f2f9fb;color:#365b68}.swap-counter-banner strong{color:#0b718e}.swap-counter-banner span{font-size:12px;line-height:1.45}.swap-counter-banner small{font-size:11px;color:var(--muted)}.swap-counter-banner .swap-date-list{display:inline-flex;margin:0 4px;vertical-align:middle}.counter-swap-note{margin-top:10px;padding:9px 11px;border-radius:11px;background:#f2f9fb;color:#315c68}.program-wizard-form .initial-week-card+ .initial-week-card{margin-top:12px}.program-wizard-form .initial-week-head strong{letter-spacing:.01em}
@media(max-width:640px){.swap-counter-banner{padding:11px 12px}.request-actions.three{grid-template-columns:1fr}.request-actions.three button{width:100%}}

/* v33 - controproposta: il lato ricevuto resta fisso */
.swap-step-card.counter-fixed{background:linear-gradient(180deg,#fff,#f7fafb);border-style:dashed}.counter-fixed-badge{display:inline-flex;align-items:center;margin-left:6px;padding:2px 7px;border-radius:999px;background:#edf3f5;color:#607782;font-size:.68rem;font-weight:800;vertical-align:middle}.swap-calendar-day.fixed{opacity:1;border-color:#8aa2ad;background:#eef3f5;box-shadow:inset 0 0 0 1px #8aa2ad}.swap-step-card.counter-fixed #swapReceiveSummary{margin-top:4px;padding:10px 0 2px}.swap-step-card.counter-fixed #swapReceiveSummary:before{content:'Date confermate dalla proposta ricevuta';display:block;width:100%;margin-bottom:5px;color:var(--muted,#748793);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}

/* v33.5 - One ledger: paid amounts and outstanding reimbursements.
   Container queries use the actual report width, including at browser zoom. */
.report-summary{display:block;min-width:0;margin:0;container-type:inline-size;container-name:expense-summary}
.report-summary>.report-overview{margin:0;padding:22px 24px 16px;border:1px solid var(--line);border-radius:16px;box-shadow:none;background:#fff;min-width:0}
.report-total-panel{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding:0 0 20px;border-bottom:1px solid var(--line)}
.report-total-panel>div{min-width:0}
.report-total-panel h3{margin:0;font-size:18px;font-weight:700;line-height:1.4}
.report-total-panel p{margin:5px 0 0;font-size:12px;line-height:1.5;color:var(--muted)}
.report-cost-total{display:block;font-size:34px;font-weight:750;line-height:1.2;letter-spacing:-.025em;white-space:nowrap;font-variant-numeric:tabular-nums}
.report-ledger{width:100%;table-layout:fixed;border-collapse:collapse;margin:0;text-align:left}
.report-ledger thead th{padding:17px 12px 10px;font-size:12px;font-weight:500;line-height:1.5;color:var(--muted);text-align:right}
.report-ledger thead th:first-child{width:38%;text-align:left;padding-left:0}
.report-ledger thead th:last-child{padding-right:0}
.report-ledger tbody th,.report-ledger tbody td{padding:17px 12px;vertical-align:middle;border-bottom:1px solid var(--line)}
.report-ledger tbody th{padding-left:0;text-align:left;font-weight:650;font-size:15px;line-height:1.4}
.report-ledger tbody td{text-align:right}
.report-ledger tbody td:last-child{padding-right:0}
.report-ledger tbody tr:last-child th,.report-ledger tbody tr:last-child td{border-bottom:0}
.report-payer-name{display:block;overflow-wrap:anywhere}
.report-paid-amount,.report-refund-amount,.report-not-applicable{display:block;font-size:21px;line-height:1.3;font-weight:650;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.report-refund-amount{color:#687a84;font-weight:600}
.report-refund-amount.is-due{color:var(--primary);font-weight:700}
.report-not-applicable{color:#8697a0;font-weight:400}
.report-refund small{display:block;margin-top:3px;font-size:11px;line-height:1.5;font-weight:400;color:var(--muted)}
.report-mobile-label{display:none}
.report-refund-note{padding:12px 0 0;margin:0;border-top:1px solid var(--line);color:var(--muted);font-size:11px;line-height:1.6}
.report-empty-message{font-size:13px;line-height:1.6;color:var(--muted);margin:14px 0 0}
.report-warning{padding:12px 14px;border:1px solid #ecd9b0;border-radius:10px;background:#fff9ec;color:#715820;font-size:12px;line-height:1.6}
.report-overview>.report-warning{margin:12px 0 0}
.report-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.report-scope{display:flex;flex-wrap:wrap;align-items:center;gap:5px 0;margin:2px 0 14px;padding:0 2px;color:var(--muted);font-size:12px;line-height:1.45;letter-spacing:.005em}
.report-scope span{display:inline-flex;align-items:center;min-width:0}
.report-scope span+span::before{content:'•';margin:0 8px;color:#a6b4bb;font-size:9px}
.report-scope-period{font-weight:700;color:#365663}
.report-scope-filter{font-weight:450;color:#71838c}
.report-print-scope{display:flex}

/* Filters remain one click away. A single line group replaces the repeated scope. */
#expenseReportPane>.report-filters{padding:0;margin:0 0 10px;border:0;border-radius:0;box-shadow:none;background:transparent}
.report-filter-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:52px;padding:9px 2px 12px;cursor:pointer;list-style:none;font-size:13px;font-weight:650;line-height:1.45}
.report-filter-toggle::-webkit-details-marker{display:none}
.report-filter-toggle>span:first-child{min-width:0}
.report-filter-action{display:flex;align-items:center;gap:8px;flex-shrink:0;color:var(--primary);font-size:12px}
.report-filter-action::after{content:'';width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-4px}
.report-filters[open] .report-filter-action::after{transform:rotate(225deg);margin-top:4px}
#expenseReportPane>.report-filters .report-filter-grid{margin:0 0 14px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff;gap:12px}
.report-toolbar{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:4px 22px;padding:4px 2px 14px;margin:0}
.report-export-action{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:0;background:transparent;color:var(--primary);font-size:12px;font-weight:600;line-height:1.5;padding:9px 2px;cursor:pointer}
.report-export-action:hover{text-decoration:underline;text-underline-offset:4px}
.report-export-action:disabled{opacity:.45;cursor:not-allowed;text-decoration:none}
.report-export-action:focus-visible,.report-filter-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:4px}

/* Existing detail data and interactions are retained, below the main summary. */
#expenseReportPane>.report-detail-section{border-radius:16px;box-shadow:none;padding:20px 24px;margin-bottom:14px}
.report-detail-section .card-title-row h3{font-size:17px;line-height:1.4}
.report-detail-section .hint{font-size:12px;line-height:1.6}
.report-math-details{margin:0 0 14px;padding:0;border-radius:12px;box-shadow:none;background:transparent}
.report-math-details>summary{padding:14px 16px;cursor:pointer;color:var(--primary);font-size:13px;font-weight:600;line-height:1.5;min-height:46px}
.report-math-details[open]>summary{border-bottom:1px solid var(--line)}
.report-math-body{padding:0 18px 18px;min-width:0}
.report-reimbursement-detail h4{font-size:14px;line-height:1.5;margin:18px 0 8px}
.report-explainer{border-top:1px solid var(--line);margin-top:16px;padding-top:0}
.report-explainer>summary{padding:13px 0 2px;cursor:pointer;color:var(--primary);font-size:13px;font-weight:650;line-height:1.55}
.report-explainer>summary:focus-visible,.report-math-details>summary:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:3px}
.report-explainer[open]>summary{padding-bottom:10px}
.report-not-debt{display:inline-block;margin-left:5px;font-size:11px;color:var(--muted);font-weight:500}
.report-table-wrap{overflow-x:auto;max-width:100%;margin-top:4px}
.report-reconciliation{border-collapse:collapse;width:100%;font-size:12px;line-height:1.5}
.report-reconciliation caption{text-align:left;font-size:11px;color:var(--muted);padding:0 0 8px}
.report-reconciliation th,.report-reconciliation td{padding:9px 10px;border-bottom:1px solid var(--line)}
.report-reconciliation thead th{background:#f4f7f8;color:#536a77;font-size:11px;font-weight:700}
.report-reconciliation thead small{font-size:inherit;font-weight:500}
.report-reconciliation th:first-child{text-align:left;width:46%}
.report-reconciliation tbody th{font-weight:500}
.report-reconciliation td,.report-reconciliation th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}
.report-reconciliation td{white-space:nowrap}
.report-reconciliation .report-total-row th,.report-reconciliation .report-total-row td{font-weight:800;background:#f6fafb}
.report-footnote{font-size:12px;color:var(--muted);line-height:1.6;margin:12px 0 0}
.report-detail-expense .report-expense-value{flex-shrink:0;text-align:right}
.report-detail-expense .report-expense-value strong{font-size:14px;white-space:nowrap}
.report-detail-expense .report-expense-impact{color:#336879;margin-top:5px}
.report-detail-expense>span:first-child{min-width:0;overflow-wrap:anywhere}
.report-detail-expense>span:first-child>strong{white-space:normal;max-width:none}
.report-detail-settlement{border:1px solid var(--line);border-radius:12px;padding:12px;margin:12px 0;font-size:13px;line-height:1.6;background:#f4f9fa}
.category-report-split{flex-wrap:wrap;justify-content:flex-start;gap:5px 18px}
.report-open-expenses .report-detail-list{border:1px solid var(--line);border-radius:12px;overflow:hidden}


@media(max-width:640px){
  .report-scope{font-size:11px;margin:0 0 12px;gap:4px 0}
  .report-scope span+span::before{margin:0 6px}
}
/* Narrow report: payer and paid amount on one line, refund on the next.
   Table/row/cell roles remain explicit for assistive technology. */
@container expense-summary (max-width:560px){
  .report-summary>.report-overview{padding:18px 18px 14px}
  .report-total-panel{padding-bottom:18px;gap:12px 18px}
  .report-total-panel h3{font-size:17px}
  .report-cost-total{font-size:30px}
  .report-ledger,.report-ledger tbody{display:block;width:100%}
  .report-ledger thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .report-ledger .report-payer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px 14px;padding:19px 0;border-bottom:1px solid var(--line)}
  .report-ledger .report-payer:last-child{border-bottom:0}
  .report-ledger tbody th{font-size:15px}
  .report-ledger tbody th,.report-ledger tbody td{display:block;min-width:0;padding:0;border:0}
  .report-ledger .report-refund{grid-column:1/-1;display:flex;flex-direction:row-reverse;align-items:baseline;justify-content:space-between;gap:12px;text-align:left}
  .report-refund small{margin:0;font-size:12px}
  .report-mobile-label{display:inline}
  .report-paid-amount{font-size:21px}
  .report-refund-amount{font-size:17px;flex-shrink:0}
  .report-ledger .report-common-note{display:block}
  .report-common-note .report-not-applicable{display:none}
  .report-refund-note{font-size:11px}
}
@container expense-summary (max-width:330px){
  .report-summary>.report-overview{padding:17px 16px 14px}
  .report-cost-total{font-size:29px}
  .report-paid-amount{font-size:20px}
  .report-refund-amount{font-size:16px}
}
@media(max-width:640px){
  #expenseReportPane>.report-detail-section{padding:18px 16px}
  .report-reconciliation{font-size:11px}
  .report-reconciliation th,.report-reconciliation td{padding:8px 6px}
  .report-not-debt{display:block;margin-left:16px}
  .report-detail-expense{flex-wrap:wrap;align-items:flex-start}
  .report-detail-expense>span:first-child{flex:1 1 150px}
}
@media print{
  body.expense-report-print .topbar,body.expense-report-print .bottom-nav,
  body.expense-report-print #authGate,body.expense-report-print .modal,
  body.expense-report-print .toast,body.expense-report-print .view:not(#view-expenses),
  body.expense-report-print #view-expenses>.section-head,body.expense-report-print .expense-tabs,
  body.expense-report-print #expenseListPane,body.expense-report-print .report-toolbar{display:none!important}
  body.expense-report-print .app-shell{max-width:none;min-height:0;padding:0}
  body.expense-report-print main{padding:0;max-width:none}
  body.expense-report-print #expenseReportPane{position:static!important;width:auto!important;padding:0!important}
  body.expense-report-print .report-print-scope{display:flex;color:#333;font-size:10px;line-height:1.5;margin:0 0 16px}
  body.expense-report-print .report-summary{display:block;container-type:normal;margin-bottom:16px}
  body.expense-report-print .report-summary>.card{break-inside:avoid}
  body.expense-report-print .report-cost-total{font-size:28px}
  body.expense-report-print .report-ledger{display:table;table-layout:fixed}
  body.expense-report-print .report-ledger thead{display:table-header-group;position:static;width:auto;height:auto;clip:auto;overflow:visible;white-space:normal}
  body.expense-report-print .report-ledger tbody{display:table-row-group}
  body.expense-report-print .report-ledger .report-payer{display:table-row}
  body.expense-report-print .report-ledger tbody th,body.expense-report-print .report-ledger tbody td{display:table-cell}
  body.expense-report-print .report-mobile-label{display:none}
  body.expense-report-print .report-paid-amount,body.expense-report-print .report-refund-amount{font-size:18px}
  body.expense-report-print .report-reconciliation tr,body.expense-report-print .report-detail-expense{break-inside:avoid}
  body.expense-report-print .report-table-wrap{overflow:visible}
  body.expense-report-print .report-reconciliation{font-size:10px}
  body.expense-report-print .report-category-detail,body.expense-report-print .report-math-details{break-inside:auto}
  body.expense-report-print .report-explainer>summary,body.expense-report-print .report-math-details>summary{break-after:avoid}
}


/* v33.7 - Spese: riepilogo operativo, elenco solo di dettaglio */
.expense-glance{margin:0;padding:0;border:1px solid var(--line);border-radius:18px;box-shadow:none;background:#fff;overflow:hidden}
.expense-glance-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 22px 18px;border-bottom:1px solid var(--line)}
.expense-glance-head h3{margin:2px 0 0;font-size:20px;line-height:1.35}
.expense-glance-head p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
.expense-glance-total{text-align:right;flex:0 0 auto}
.expense-glance-total span{display:block;margin-bottom:2px;color:var(--muted);font-size:11px;font-weight:650}
.expense-glance-total strong{font-size:30px;line-height:1.2;letter-spacing:-.025em;font-variant-numeric:tabular-nums;color:#17394b}
.expense-status-list{padding:0 22px}
.expense-status-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:12px;padding:17px 0;border-bottom:1px solid var(--line)}
.expense-status-row:last-child{border-bottom:0}
.expense-status-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#eef4f5;color:#4e6d78;font-size:15px;font-weight:800}
.expense-status-row.has-attention .expense-status-icon{background:#e8f4f6;color:var(--primary)}
.expense-status-row.has-pending .expense-status-icon{background:#fff4df;color:#9a6b16}
.expense-status-copy{min-width:0}
.expense-status-copy>strong{display:block;font-size:14px;line-height:1.4}
.expense-status-copy p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.expense-status-row>small{color:var(--muted);font-size:11px;white-space:nowrap}
.expense-refund-lines{display:flex;flex-wrap:wrap;gap:5px 18px;margin-top:5px}
.expense-refund-lines>span{display:inline-flex;align-items:baseline;gap:7px;font-size:12px;line-height:1.4;color:#4e6570}
.expense-refund-lines strong{font-weight:550}
.expense-refund-lines b{font-size:14px;font-weight:750;color:var(--primary);font-variant-numeric:tabular-nums;white-space:nowrap}
.expense-status-ok{color:#5f747e!important}
.expense-pending-value{text-align:right;min-width:70px}
.expense-pending-value>strong{display:block;font-size:20px;line-height:1.2;font-variant-numeric:tabular-nums}
.expense-pending-value>small{display:block;margin-top:2px;color:var(--muted);font-size:11px;white-space:nowrap}
.expense-paid-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);background:#fafcfc}
.expense-paid-strip>span{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:13px 18px;border-right:1px solid var(--line);min-width:0}
.expense-paid-strip>span:last-child{border-right:0}
.expense-paid-strip small{color:var(--muted);font-size:11px;white-space:nowrap}
.expense-paid-strip strong{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.expense-glance>.report-warning{margin:12px 22px 18px}
.report-category-focus{margin-top:14px!important}
.report-category-focus .category-report-row{padding:11px 0 13px}
.report-category-focus .category-report-row:last-child{padding-bottom:0}
.report-category-focus .category-report-main small{font-size:11px}
.expense-report-more{margin:0 0 16px;padding:0;border-radius:16px;box-shadow:none;overflow:hidden}
.expense-report-more>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;cursor:pointer;list-style:none;font-size:14px;font-weight:700;color:#34515d}
.expense-report-more>summary::-webkit-details-marker{display:none}
.expense-report-more>summary::after{content:'+';font-size:18px;font-weight:500;color:var(--primary)}
.expense-report-more[open]>summary{border-bottom:1px solid var(--line)}
.expense-report-more[open]>summary::after{content:'−'}
.expense-report-more>summary span{min-width:0}
.expense-report-more>summary small{margin-left:auto;color:var(--muted);font-size:11px;font-weight:500;line-height:1.4;text-align:right}
.expense-report-more-body{padding:0 20px 18px}
.report-subsection{padding:20px 0;border-bottom:1px solid var(--line)}
.report-subsection:last-of-type{border-bottom:1px solid var(--line)}
.report-subsection .card-title-row{margin-bottom:8px}
.report-subsection .card-title-row h3{font-size:16px}
.expense-report-more .report-math-details{margin:10px 0 0;border:0}
.expense-report-more .report-math-details>summary{padding:14px 0}
.expense-report-more .report-math-body{padding:0 0 8px}
#expenseListPane>.expense-list-filters{margin-top:0}
#expenseListPane .expense-list-filter-head small{max-width:520px}
@media(max-width:640px){
  .expense-glance-head{padding:17px 16px 15px;gap:12px}
  .expense-glance-head h3{font-size:18px}
  .expense-glance-total strong{font-size:25px}
  .expense-status-list{padding:0 16px}
  .expense-status-row{grid-template-columns:30px minmax(0,1fr) auto;gap:10px;padding:15px 0}
  .expense-status-row>small{display:none}
  .expense-status-icon{width:28px;height:28px}
  .expense-refund-lines{display:grid;gap:4px}
  .expense-pending-value{min-width:58px}
  .expense-paid-strip{grid-template-columns:1fr}
  .expense-paid-strip>span{padding:10px 16px;border-right:0;border-bottom:1px solid var(--line)}
  .expense-paid-strip>span:last-child{border-bottom:0}
  .expense-glance>.report-warning{margin:10px 16px 16px}
  .report-category-focus{padding:17px 16px!important}
  .expense-report-more>summary{padding:15px 16px}
  .expense-report-more>summary small{display:none}
  .expense-report-more-body{padding:0 16px 16px}
}
@media print{
  body.expense-report-print .expense-glance{break-inside:avoid}
  body.expense-report-print .expense-report-more{border:0}
  body.expense-report-print .expense-report-more>summary{display:none!important}
  body.expense-report-print .expense-report-more-body{padding:0}
  body.expense-report-print .expense-paid-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
}


/* v33.8 - proposte da confermare fuori dai totali + percentuali categorie */
.expense-pending-note{color:#8b681b;font-weight:650}
.category-report-value{text-align:right;flex:0 0 auto}
.category-report-value>strong{display:block;white-space:nowrap;font-variant-numeric:tabular-nums}
.category-report-value>small{display:block!important;margin-top:3px!important;font-size:10px!important;color:var(--muted);white-space:nowrap}
.report-category-detail-value{text-align:right;flex:0 0 auto}
.report-category-detail-value>strong{display:block;white-space:nowrap}
.report-category-detail-value>small{display:block!important;text-align:right;font-size:10px!important;color:var(--muted)}
@media(max-width:420px){
  .category-report-value>small{font-size:9px!important}
}


/* v33.12 - evidenziazione giorni ceduti / scambiati */
.legend .dot.changed{background:linear-gradient(180deg,#d8eff3,#b9dde6);border:1px solid #8ebfcb;box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)}
.day-cell.changed-day,
.week-day.changed-day{
  position:relative;
}
.day-cell.changed-day{
  background:linear-gradient(180deg,#f5fbfd 0%, #ffffff 72%);
  box-shadow:inset 0 0 0 1px rgba(143,191,203,.35);
}
.day-cell.changed-day:hover{background:linear-gradient(180deg,#edf8fb 0%, #fbfeff 75%)}
.day-cell.changed-day::before,
.week-day.changed-day::before{
  content:"↔";
  position:absolute;
  display:grid;
  place-items:center;
  font-weight:900;
  color:#4b7b87;
  background:#e3f2f5;
  border:1px solid #bddae1;
  box-shadow:0 2px 6px rgba(41,95,109,.08);
}
.day-cell.changed-day::before{
  top:6px;
  left:6px;
  width:16px;
  height:16px;
  border-radius:999px;
  font-size:10px;
}
.week-day.changed-day{
  background:linear-gradient(180deg,#f8fcfd 0%, #ffffff 100%);
  border-color:#d8e7eb;
  box-shadow:0 3px 10px rgba(17,48,66,.04), inset 0 0 0 1px rgba(143,191,203,.3);
}
.week-day.changed-day::before{
  top:12px;
  right:12px;
  min-width:24px;
  height:20px;
  padding:0 6px;
  border-radius:999px;
  font-size:11px;
}
.day-cell.changed-partial,
.week-day.changed-partial{
  box-shadow:inset 0 0 0 1px rgba(143,191,203,.22);
}
.day-cell.changed-full,
.week-day.changed-full{
  box-shadow:inset 0 0 0 1px rgba(143,191,203,.45);
}
.day-cell.today.changed-day{
  background:linear-gradient(180deg,#eef8fb 0%, #ffffff 68%);
  box-shadow:inset 0 0 0 2px rgba(7,90,120,.18), inset 0 0 0 999px rgba(233,247,250,.24);
}
.day-cell.outside.changed-day{
  background:linear-gradient(180deg,#eef4f5 0%, #f6f8f9 100%);
}
@media (max-width: 640px){
  .legend .dot.changed{border-width:1px}
  .day-cell.changed-day::before{width:14px;height:14px;font-size:9px;top:4px;left:4px}
  .week-day.changed-day::before{top:10px;right:10px;min-width:22px;height:18px;font-size:10px}
}

/* v34.0 - Assistente AI testuale + vocale */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.ai-launcher{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);z-index:29;display:flex;align-items:center;gap:8px;max-width:calc(100% - 28px);border:1px solid #cfe1e6;background:rgba(255,255,255,.97);color:var(--primary);border-radius:999px;padding:9px 14px;font-size:11px;font-weight:850;box-shadow:0 8px 24px rgba(17,48,66,.12);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);cursor:pointer;white-space:nowrap}
.ai-launcher:hover{background:#f5fbfc;border-color:#a8cdd6}.ai-launcher-spark{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:linear-gradient(180deg,#e9f6f8,#dceff3);font-size:13px}.ai-launcher-mic{font-size:13px}
.ai-assistant-card{max-width:660px}.ai-assistant-head{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;align-items:start;padding-right:38px}.ai-assistant-logo{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#e7f5f7,#d8edf2);color:var(--primary);font-size:24px;font-weight:900;box-shadow:inset 0 0 0 1px #c9e2e8}.ai-assistant-head h2{margin:1px 0 4px}.ai-assistant-head .hint{margin:0}
.ai-conversation{display:flex;flex-direction:column;gap:9px;max-height:250px;overflow:auto;margin:16px 0 12px;padding:3px 2px;scrollbar-width:thin}.ai-message{max-width:90%;border-radius:15px;padding:10px 12px;border:1px solid #e3eaed;background:#f7f9fa;align-self:flex-start}.ai-message.user{align-self:flex-end;background:#edf7f9;border-color:#cfe6eb}.ai-message strong{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:#61757e;margin-bottom:3px}.ai-message p{margin:0;font-size:12px;line-height:1.45;white-space:pre-wrap;color:#2b414c}
.ai-examples{display:flex;gap:6px;overflow-x:auto;padding:1px 0 8px;scrollbar-width:none}.ai-examples::-webkit-scrollbar{display:none}.ai-examples button{flex:0 0 auto;border:1px solid #d9e6e9;background:#fff;color:#48626d;border-radius:999px;padding:7px 10px;font-size:9px;font-weight:800;cursor:pointer}.ai-examples button:hover{background:#f4fafb;border-color:#bad7de}
.ai-compose{display:grid;gap:9px;margin-top:3px}.ai-compose textarea{margin:0!important;resize:vertical;min-height:78px;font-size:15px}.ai-compose-actions{display:grid;grid-template-columns:auto 1fr;gap:8px}.ai-compose-actions .primary{width:100%}.ai-mic-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:108px}.ai-mic-btn.recording{background:#fff0f2;border-color:#e4a7b0;color:#9a3143;box-shadow:0 0 0 3px rgba(190,64,83,.08)}.ai-mic-btn.recording>span:first-child{animation:aiPulse 1s infinite ease-in-out}@keyframes aiPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
.ai-status{min-height:18px;margin-top:7px}.ai-status.is-error{color:#a23845}.ai-status.is-success{color:#237a57}.ai-status.is-working{color:#416d7a}.ai-status.is-recording{color:#9a3143;font-weight:750}
.ai-action-card{margin-top:12px;border:1px solid #bcdbe2;background:linear-gradient(180deg,#f5fbfc,#fff);border-radius:18px;padding:14px;box-shadow:0 7px 20px rgba(17,48,66,.055)}.ai-action-label{display:inline-flex;padding:4px 8px;border-radius:999px;background:#e8f4f6;color:#386d79;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;margin-bottom:9px}.ai-action-card h3{margin:0 0 9px;font-size:16px}.ai-action-card p{font-size:12px;line-height:1.5;color:#40555f;margin:4px 0 10px}.ai-preview-grid{display:grid;grid-template-columns:92px minmax(0,1fr);gap:6px 10px;font-size:11px}.ai-preview-grid span{color:var(--muted)}.ai-preview-grid strong{color:#2d4752;overflow-wrap:anywhere}.ai-action-buttons{display:grid;grid-template-columns:1fr 1.25fr;gap:8px;margin-top:13px}.ai-privacy-note{margin:12px 0 0}.ai-privacy-note p{font-size:10px;color:var(--muted);line-height:1.5;margin:10px 12px 13px}
@media (min-width:1050px){.ai-launcher{bottom:100px;z-index:31}.ai-assistant-card{width:min(660px,calc(100% - 48px))}.ai-conversation{max-height:310px}}
@media (max-width:720px){.ai-launcher{bottom:91px;padding:8px 12px;font-size:10px}.ai-assistant-head{grid-template-columns:42px minmax(0,1fr)}.ai-assistant-logo{width:40px;height:40px;border-radius:14px}.ai-conversation{max-height:220px}.ai-message{max-width:94%}.ai-compose-actions{grid-template-columns:112px 1fr}}
@media (max-width:420px){.ai-launcher{bottom:88px;max-width:calc(100% - 18px);font-size:9.5px;gap:6px;padding:7px 10px}.ai-launcher-spark{width:20px;height:20px}.ai-assistant-head{grid-template-columns:36px minmax(0,1fr);gap:9px}.ai-assistant-logo{width:34px;height:34px;border-radius:12px;font-size:19px}.ai-assistant-head h2{font-size:20px}.ai-conversation{max-height:190px}.ai-message p{font-size:11px}.ai-examples button{font-size:8.5px}.ai-preview-grid{grid-template-columns:78px minmax(0,1fr);font-size:10px}.ai-compose-actions{grid-template-columns:102px 1fr}.ai-mic-btn{min-width:0;padding-left:8px;padding-right:8px}}

/* v35.0 - guida, account, privacy e basi commerciali */
.legal-gate-card{max-width:620px}.legal-gate-links{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.legal-gate-links a{text-decoration:none;text-align:center}.legal-consent-row{display:flex!important;align-items:flex-start!important;gap:10px!important;padding:11px 12px;margin:8px 0;border:1px solid var(--line);border-radius:13px;background:#fbfcfd}.legal-consent-row input{width:18px!important;height:18px!important;flex:0 0 18px;margin-top:1px}.legal-consent-row span{font-size:12px;line-height:1.45;color:#40525c}
.help-entry-icon,.guide-hero-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#eaf5f7;color:var(--primary);font-weight:900;font-size:20px}.guide-hero{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center}.guide-hero h3{margin:2px 0 4px}.guide-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.guide-quick-grid button{border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px 12px;text-align:left;display:grid;grid-template-columns:30px minmax(0,1fr);grid-template-rows:auto auto;column-gap:9px;cursor:pointer;box-shadow:0 3px 12px rgba(17,48,66,.035)}.guide-quick-grid button>span{grid-row:1/3;width:30px;height:30px;border-radius:10px;background:#edf6f7;color:var(--primary);display:grid;place-items:center;font-weight:900}.guide-quick-grid strong{font-size:13px}.guide-quick-grid small{font-size:10px;color:var(--muted);margin-top:2px}.guide-steps{display:grid;gap:10px}.guide-step{padding:0!important;overflow:hidden}.guide-step summary{list-style:none;display:flex;align-items:center;gap:12px;padding:15px 16px;cursor:pointer}.guide-step summary::-webkit-details-marker{display:none}.guide-step summary>span{display:grid;place-items:center;width:30px;height:30px;border-radius:999px;background:#e9f4f6;color:var(--primary);font-weight:900;flex:0 0 30px}.guide-step summary>div{display:grid;gap:2px;min-width:0}.guide-step summary strong{font-size:14px}.guide-step summary small{font-size:10px;color:var(--muted)}.guide-step[open] summary{border-bottom:1px solid #edf1f3}.guide-step-body{padding:15px 18px 18px;color:#40525c;font-size:12px;line-height:1.55}.guide-step-body p{margin-top:0}.guide-step-body ol{padding-left:21px}.guide-step-body li{margin:6px 0}.guide-tip{margin:12px 0;padding:10px 12px;border-radius:12px;background:#f0f7f8;color:#31545f}.guide-footer-card{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-top:14px}.guide-footer-card a{text-decoration:none}.welcome-guide-card{max-width:670px;text-align:center}.welcome-guide-mark{width:52px;height:52px;border-radius:18px;background:#eaf5f7;color:var(--primary);display:grid;place-items:center;font-size:30px;margin:0 auto 12px}.welcome-guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:18px 0;text-align:left}.welcome-guide-grid>div{border:1px solid var(--line);border-radius:15px;padding:12px;display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto auto;column-gap:9px}.welcome-guide-grid span{grid-row:1/3;display:grid;place-items:center;width:27px;height:27px;border-radius:999px;background:#eaf5f7;color:var(--primary);font-size:11px;font-weight:900}.welcome-guide-grid strong{font-size:12px}.welcome-guide-grid small{font-size:10px;color:var(--muted);margin-top:2px}.welcome-guide-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.commercial-plan-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid var(--line);border-radius:15px;background:#fbfcfd;margin:11px 0}.commercial-plan-summary>div{display:grid;gap:2px}.commercial-plan-summary span{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:900}.commercial-plan-summary strong{font-size:16px}.commercial-plan-summary small{font-size:10px;color:var(--muted)}.legal-links-row{display:flex;gap:9px;flex-wrap:wrap;margin:10px 0}.legal-links-row a{font-size:11px;font-weight:800;color:var(--primary);text-decoration:none;padding:7px 10px;background:#edf5f7;border-radius:999px}.commercial-operator-note{margin:10px 0 0}.account-data-actions{margin-top:10px}.account-danger-zone{border-color:#ead8dc;background:#fffafa}.account-deletion-impact{padding:13px 14px;border:1px solid #dce8eb;background:#f7fbfc;border-radius:14px;margin:13px 0}.account-deletion-impact strong{display:block;margin-bottom:4px}.account-deletion-impact p{margin:0;font-size:11px;color:var(--muted);line-height:1.5}.account-deletion-warning{padding:12px 14px;border-radius:14px;background:#fff2f2;border:1px solid #f0d7da;margin:12px 0}.account-deletion-warning p{margin:3px 0 0;font-size:11px;line-height:1.5}.danger-button{background:#a4384b!important;border-color:#a4384b!important;color:#fff!important}.danger-button:hover{background:#8e2f40!important}.account-deletion-card label:not(.legal-consent-row){display:grid;gap:7px;margin-top:12px}.account-deletion-card input[type="text"]{text-transform:uppercase;letter-spacing:.08em;font-weight:800}
@media(max-width:720px){.legal-gate-links{grid-template-columns:1fr}.guide-hero{grid-template-columns:40px minmax(0,1fr)}.guide-hero>button{grid-column:1/-1}.guide-quick-grid{grid-template-columns:1fr 1fr}.guide-footer-card{align-items:stretch;flex-direction:column}.commercial-plan-summary{align-items:stretch;flex-direction:column}.welcome-guide-grid{grid-template-columns:1fr}.welcome-guide-actions{grid-template-columns:1fr}}
@media(max-width:420px){.guide-quick-grid{grid-template-columns:1fr}.guide-step summary{padding:13px 12px}.guide-step-body{padding:13px 14px 16px}}
#view-help .section-head .secondary{display:inline-flex}


/* v35.1 - AI guidata: chiarimenti + anteprima modificabile */
.ai-action-buttons{grid-template-columns:1fr 1fr 1.25fr}
.ai-action-editor{margin-top:12px;padding-top:12px;border-top:1px solid #dce9ed}
.ai-action-editor.hidden{display:none}
.ai-action-edit-form{display:grid;gap:11px}.ai-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ai-edit-grid label{display:grid;gap:5px;font-size:9px;font-weight:850;color:#647780;text-transform:uppercase;letter-spacing:.035em}.ai-edit-grid label.wide{grid-column:1/-1}.ai-edit-grid input,.ai-edit-grid select,.ai-edit-grid textarea{width:100%;min-width:0;border:1px solid #d8e3e7;border-radius:11px;background:#fff;padding:9px 10px;color:#263f4a;font:inherit;font-size:12px;text-transform:none;letter-spacing:0}.ai-edit-grid textarea{resize:vertical;min-height:58px}.ai-check-edit{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:8px!important;text-transform:none!important;letter-spacing:0!important;font-size:11px!important;color:#40555f!important}.ai-check-edit input{width:auto!important}.ai-edit-actions{display:grid;grid-template-columns:1fr 1.2fr;gap:8px}.ai-action-preview.editing{opacity:.55}
@media(max-width:520px){.ai-action-buttons{grid-template-columns:1fr 1fr}.ai-action-buttons #aiConfirmAction{grid-column:1/-1}.ai-edit-grid{grid-template-columns:1fr}.ai-edit-grid label.wide{grid-column:auto}.ai-edit-actions{grid-template-columns:1fr}.ai-action-editor{margin-top:10px}}


/* v35.2 - recupero password */
.form-success{padding:11px 12px;background:#eaf6ef;color:#226b4b;border:1px solid #cee8d9;border-radius:12px;font-size:12px;line-height:1.5}
.auth-link:disabled{opacity:.58;cursor:wait}

/* v36.0 · Free / Premium commercial access */
.premium-inline{display:inline-flex;align-items:center;justify-content:center;margin-left:5px;padding:2px 6px;border-radius:999px;background:#f3e8ff;color:#7647a8;font-size:8px;font-weight:900;letter-spacing:.03em;text-transform:uppercase;vertical-align:middle}
.premium-locked{position:relative;opacity:.82}
button.premium-locked::after,.action-card.premium-locked::after,.quick-add-action.premium-locked::after{content:"Premium";position:absolute;right:8px;top:7px;border-radius:999px;padding:3px 6px;background:#f3e8ff;color:#70459d;font-size:7px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;box-shadow:0 1px 4px rgba(90,55,120,.08)}
.premium-control{position:relative}
.premium-control-locked{padding:10px;border:1px dashed #d8c9e6;border-radius:13px;background:linear-gradient(180deg,#fdfaff,#fff)}
.premium-control-locked::after{content:"Premium";position:absolute;right:9px;top:8px;padding:2px 6px;border-radius:999px;background:#f2e8fb;color:#744ba0;font-size:8px;font-weight:900;text-transform:uppercase}
.premium-panel-locked{position:relative;border-color:#ded2e9!important;background:linear-gradient(180deg,#fefcff,#fff)!important}
.premium-panel-locked::after{content:"Notifiche push · Premium";display:inline-flex;margin-top:8px;padding:5px 8px;border-radius:999px;background:#f3e8ff;color:#70459d;font-size:9px;font-weight:850}
body[data-plan="free"] .ai-launcher{opacity:.82}
body[data-plan="free"] .ai-launcher::after{content:"Premium";font-size:8px;font-weight:900;background:#fff;color:#70459d;border-radius:999px;padding:2px 6px;margin-left:2px}

.premium-modal-card{width:min(660px,calc(100% - 24px));background:linear-gradient(180deg,#fff 0%,#fcf9ff 100%)}
.premium-hero-mark{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#e9f5f8,#f1e8fb);color:#245b6b;font-size:25px;font-weight:900;margin-bottom:8px;box-shadow:0 7px 18px rgba(38,70,90,.08)}
.premium-price-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:17px 0 13px}.premium-price-card{position:relative;text-align:left;border:1px solid #dce5e9;border-radius:16px;padding:14px;background:#fff;display:grid;gap:3px;cursor:pointer}.premium-price-card span{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:#6c7980}.premium-price-card strong{font-size:22px;color:#173a48}.premium-price-card small{font-size:10px;color:var(--muted)}.premium-price-card em{position:absolute;right:8px;top:8px;font-style:normal;font-size:8px;font-weight:900;color:#356d55;background:#e9f6ef;padding:3px 6px;border-radius:999px}.premium-price-card.recommended,.premium-price-card.selected{border-color:#93bdc9;box-shadow:inset 0 0 0 1px #93bdc9;background:#f8fcfd}
.premium-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.premium-feature-grid span{padding:9px 10px;border-radius:11px;background:#fff;border:1px solid #edf0f2;font-size:11px;font-weight:750;color:#42545d}
.premium-trial-note{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px 12px;border-radius:13px;background:#eef7f8;border:1px solid #d4e9ed;margin:13px 0}.premium-trial-note strong{font-size:12px;color:#1d5967}.premium-trial-note span{font-size:10px;color:#65757d;text-align:right}.premium-family-note{text-align:center;margin:9px 0 0!important}
.commercial-usage-note{display:block;margin-top:5px;color:#667982;font-size:10px}.commercial-account-status{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;margin-top:10px;padding:10px 12px;border-radius:12px;background:#f8fafb;border:1px solid #edf1f2}.commercial-account-status>span{font-size:10px;color:var(--muted);font-weight:800}.commercial-account-status>strong{font-size:11px}.commercial-account-status .link-btn{font-size:10px}
.guide-plan-banner{margin:12px 0 15px;background:linear-gradient(135deg,#f5fbfc,#fbf7ff)}.guide-plan-banner strong{font-size:15px}.guide-plan-banner p{font-size:11px;color:#5e7078;line-height:1.5}.verification-email{font-weight:850;color:#245b6b;background:#eef7f8;border-radius:12px;padding:10px 12px;word-break:break-all}.verification-actions{margin-top:14px}
@media(max-width:640px){.premium-price-grid,.premium-feature-grid{grid-template-columns:1fr}.premium-price-card{padding:12px}.premium-trial-note{align-items:flex-start;flex-direction:column}.premium-trial-note span{text-align:left}.commercial-account-status{grid-template-columns:auto 1fr}.commercial-account-status .link-btn{grid-column:1/-1;justify-self:start}}


/* v36.1 - dettaglio Premium robusto e stato Premium permanente */
.premium-current-plan{display:grid;gap:3px;margin:14px 0;padding:13px 14px;border:1px solid #d7e7eb;border-radius:15px;background:#f5fbfc}
.premium-current-plan>span{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:900}
.premium-current-plan>strong{font-size:18px;color:#164b5b}
.premium-current-plan>small{font-size:10px;line-height:1.5;color:#60747d}
.premium-comparison{display:grid;border:1px solid #e5ebee;border-radius:15px;overflow:hidden;background:#fff;margin:13px 0}
.premium-comparison>div{display:grid;grid-template-columns:minmax(0,1fr) 58px 72px;align-items:center;min-height:38px;border-top:1px solid #edf1f3;padding:0 10px;gap:6px}
.premium-comparison>div:first-child{border-top:0;background:#f8fafb}
.premium-comparison span{font-size:10px;color:#43565f;line-height:1.3}
.premium-comparison strong,.premium-comparison b{text-align:center;font-size:10px;color:#34535f}
.premium-comparison b:last-child{color:#1d7660}
.premium-prices-muted{opacity:.65}
@media(max-width:420px){.premium-comparison>div{grid-template-columns:minmax(0,1fr) 42px 58px;padding:0 7px}.premium-comparison span{font-size:9px}.premium-comparison strong,.premium-comparison b{font-size:9px}}

.premium-refresh-btn{justify-self:start;margin-top:5px;font-size:10px}.premium-refresh-btn:disabled{opacity:.55;cursor:wait}


/* v37 - Google Play billing */
.premium-billing-status{margin:10px 0 8px;text-align:center}
.premium-billing-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.premium-billing-actions .secondary{min-height:42px}
@media(max-width:520px){.premium-billing-actions{grid-template-columns:1fr}}


/* v37.1 - privacy / verification / app check */
.ai-consent-card{width:min(620px,calc(100% - 24px))}.ai-consent-points{display:grid;gap:8px;margin:14px 0}.ai-consent-points>div{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:#f8fbfc}.ai-consent-points strong{font-size:11px;color:#274a57}.ai-consent-points span{font-size:10px;line-height:1.45;color:var(--muted)}.email-verification-card .verification-email{font-weight:850;overflow-wrap:anywhere}.commercial-account-status strong{overflow-wrap:anywhere}
@media(min-width:1050px){.diagnostics-summary-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}


/* v37.2 - calendario festività nazionale P/M */
.holiday-planner-controls{display:grid;grid-template-columns:42px minmax(110px,1fr) 42px minmax(190px,auto);gap:8px;align-items:center;max-width:900px;margin:0 0 14px}.holiday-planner-period{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:42px;border:1px solid var(--line);border-radius:13px;background:#fff}.holiday-planner-period small{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.holiday-planner-period strong{font-size:17px}.holiday-planner-child{display:grid;grid-template-columns:auto minmax(130px,1fr);align-items:center;gap:8px;font-size:11px;font-weight:800;color:var(--muted)}.holiday-planner-child select{min-height:42px}
.holiday-planner-card{max-width:1050px;border:1px solid var(--line);border-radius:20px;background:#fff;overflow:hidden;box-shadow:0 4px 16px rgba(17,48,66,.04)}.holiday-planner-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;padding:18px 18px 14px;background:linear-gradient(135deg,#fffaf0,#fbf7fd)}.holiday-planner-head h3{margin:2px 0 3px;font-size:22px}.holiday-planner-head p{margin:0;color:var(--muted);font-size:11px}.holiday-planner-mini-legend{display:flex;gap:10px;font-size:10px;color:var(--muted);white-space:nowrap}.holiday-planner-mini-legend span{display:flex;align-items:center;gap:5px}.holiday-planner-mini-legend .holiday-parent{display:inline-grid}
.holiday-planner-columns,.holiday-planner-row{display:grid;grid-template-columns:minmax(170px,1.2fr) minmax(230px,1.35fr) 116px minmax(135px,.9fr) 112px;gap:11px;align-items:center}.holiday-planner-columns{padding:8px 16px;background:#f7f9fa;border-top:1px solid #edf0f1;border-bottom:1px solid #edf0f1;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:#829097}.holiday-planner-grid{display:grid}.holiday-planner-row{position:relative;padding:11px 16px;border-bottom:1px solid #edf0f1;transition:background .13s ease,box-shadow .13s ease}.holiday-planner-row:last-child{border-bottom:0}.holiday-planner-row:hover{background:#fcfdfd}.holiday-planner-row.dirty{background:#f3fafb;box-shadow:inset 3px 0 0 #6babb8}.holiday-planner-row.pending-row{background:#fffdf6}.holiday-planner-row.locked-row{opacity:.78}.holiday-planner-name{display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;align-items:center}.holiday-planner-name>span{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#fff5df;font-size:17px}.holiday-planner-name strong,.holiday-planner-name small{display:block}.holiday-planner-name strong{font-size:12px}.holiday-planner-name small{font-size:9px;color:var(--muted);margin-top:2px;text-transform:capitalize}.holiday-planner-period-edit{display:grid;grid-template-columns:1fr 1fr;gap:6px}.holiday-planner-period-edit label,.holiday-planner-repeat{font-size:8px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:850}.holiday-planner-period-edit input,.holiday-planner-repeat select{min-height:34px;padding:5px 7px;font-size:10px;margin-top:3px}.holiday-planner-assign{display:grid;gap:3px}.holiday-planner-label{font-size:8px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:850}.holiday-parent-choice{display:grid;grid-template-columns:1fr 1fr;gap:4px}.holiday-parent-choice button{height:34px;border:1px solid #d8e1e5;border-radius:10px;background:#fff;color:#68777e;font-size:12px;font-weight:900;cursor:pointer}.holiday-parent-choice button.selected.father{background:var(--father);border-color:var(--father);color:#fff;box-shadow:0 3px 8px rgba(52,118,174,.18)}.holiday-parent-choice button.selected.mother{background:var(--mother);border-color:var(--mother);color:#fff;box-shadow:0 3px 8px rgba(142,77,135,.18)}.holiday-parent-choice button:disabled{cursor:not-allowed;opacity:.7}.holiday-planner-status{display:grid;justify-items:start;gap:3px}.holiday-planner-status .pill.neutral{background:#f0f3f4;color:#6d7b82}.holiday-planner-status small{font-size:8px;color:var(--muted);line-height:1.25}.holiday-planner-save{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 17px;background:#f8fbfc;border-top:1px solid #e9eef0}.holiday-planner-save strong,.holiday-planner-save small{display:block}.holiday-planner-save strong{font-size:11px}.holiday-planner-save small{font-size:9px;color:var(--muted);margin-top:2px}.holiday-planner-save button{min-width:230px}.holiday-local-section{max-width:1050px;margin-top:18px}.holiday-local-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:10px}.holiday-local-head h3{margin:2px 0 0}.holiday-local-empty{display:flex;gap:12px;align-items:center;padding:17px;border:1px dashed var(--line);border-radius:16px;color:var(--muted)}.holiday-local-empty>span{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:#f4f7f8}.holiday-local-empty strong,.holiday-local-empty small{display:block}.holiday-local-empty strong{color:var(--ink);font-size:12px}.holiday-local-empty small{font-size:10px;margin-top:2px}
@media(max-width:820px){.holiday-planner-columns{display:none}.holiday-planner-row{grid-template-columns:minmax(0,1fr) 102px minmax(130px,.8fr);grid-template-areas:"name assign status" "period period repeat";gap:9px 10px;padding:12px}.holiday-planner-name{grid-area:name}.holiday-planner-period-edit{grid-area:period}.holiday-planner-assign{grid-area:assign}.holiday-planner-repeat{grid-area:repeat}.holiday-planner-status{grid-area:status}.holiday-planner-save{align-items:stretch}.holiday-planner-save button{min-width:190px}}
@media(max-width:560px){.holiday-planner-controls{grid-template-columns:36px minmax(90px,1fr) 36px}.holiday-planner-child{grid-column:1/-1;grid-template-columns:34px 1fr}.holiday-planner-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name status" "assign repeat" "period period";gap:9px}.holiday-planner-name>span{width:31px;height:31px}.holiday-planner-status{justify-items:end}.holiday-planner-period-edit input,.holiday-planner-repeat select{font-size:9px}.holiday-planner-assign{min-width:94px}.holiday-planner-save{display:grid;gap:10px}.holiday-planner-save button{width:100%;min-width:0}.holiday-planner-head{align-items:flex-start}.holiday-planner-mini-legend{display:none}.holiday-local-head{align-items:flex-start}.holiday-local-head .secondary{font-size:9px;padding:8px}.holiday-local-head h3{font-size:16px}}


/* v37.5 - Famiglia più compatta */
.family-compact-view{max-width:920px;margin:0 auto}
.family-main-head{margin-bottom:10px}
.family-identity-card{padding:15px 16px}
.family-identity-main{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.family-section-kicker{display:block;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:2px}
.family-identity-card h3{margin:0;font-size:20px}
.family-identity-card .members-list{margin:8px 0 0}
.family-code-block{display:grid;justify-items:end;gap:4px;flex:0 0 auto}
.family-code-block small{font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:900}
.family-code-block .link-btn{font-size:9px;padding:2px 0}
.family-notification-center{margin-top:10px}
.family-priority-card{margin-top:2px}
.family-calendar-card{padding:16px}
.family-compact-title{margin-bottom:5px}
.family-section-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#edf5f7;color:var(--primary);font-size:17px}
.family-setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0}
.family-setting-row>div:first-child{display:grid;gap:2px;min-width:0}
.family-setting-row strong{font-size:13px}
.family-setting-row small{font-size:10px;color:var(--muted)}
.family-setting-row-bordered{border-top:1px solid var(--line);margin-top:8px;padding-top:14px}
.family-row-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.family-inline-summary{margin:0 0 8px;padding:8px 10px!important;background:#f8fafb;border-radius:11px;font-size:10px}
.family-holiday-preview{max-height:170px;overflow:auto;margin:0}
.family-card-footnote{margin:9px 0 0!important;font-size:9px!important}
.family-collapsible{padding:0;overflow:hidden}
.family-collapsible>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px}
.family-collapsible>summary::-webkit-details-marker{display:none}
.family-collapsible>summary>span:first-child{display:grid;gap:2px}
.family-collapsible>summary strong{font-size:15px}
.family-collapsible>summary small{font-size:10px;color:var(--muted);font-weight:500}
.family-summary-chevron{font-size:22px;color:var(--muted);transition:transform .15s ease}
.family-collapsible[open] .family-summary-chevron{transform:rotate(90deg)}
.family-collapsible-body{border-top:1px solid var(--line);padding:14px 16px 16px}
.family-inner-details{border-top:1px solid var(--line);margin-top:13px;padding-top:4px}
.family-inner-details>summary{cursor:pointer;padding:10px 0;font-size:11px;font-weight:850;color:#354a55}
.family-inner-details .child-info-settings{margin-top:8px}
.family-account-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.family-tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.family-tool-button{display:flex!important;align-items:center!important;text-align:left!important;gap:10px;padding:11px!important}
.family-tool-button>span{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#eef5f7;color:var(--primary);font-weight:900;flex:0 0 30px}
.family-tool-button>div{display:grid;gap:1px}.family-tool-button strong{font-size:11px}.family-tool-button small{font-size:8px;color:var(--muted)}
.family-export-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.family-export-actions button{font-size:9px;padding:9px 7px}
.account-danger-compact{margin-top:10px;padding:11px 12px;border-radius:13px;background:#fff8f8;border:1px solid #efdcdf}
.account-danger-compact strong{font-size:11px}.account-danger-compact p{font-size:9px;color:var(--muted);line-height:1.45;margin:4px 0 9px}
.family-danger-details>summary{color:#8d4655}
@media(max-width:640px){
  .family-identity-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.family-code-block{align-self:start}.family-code{font-size:11px;padding:6px 7px}
  .member-chip{font-size:9px;padding:5px 7px}.family-notification-center{width:100%}
  .family-setting-row{align-items:flex-start}.family-setting-row small{font-size:9px}.family-setting-row .compact-btn{padding:7px 9px;font-size:9px}
  .family-account-grid,.family-tools-grid{grid-template-columns:1fr}.family-export-actions{grid-template-columns:1fr 1fr}.family-export-actions button:first-child{grid-column:1/-1}
  .family-collapsible>summary{padding:13px 14px}.family-collapsible-body{padding:12px 14px 14px}
  .family-holiday-preview{max-height:125px}
}

/* v37.6 - festività più chiare su mobile, P/M deselezionabile, periodi rapidi */
.holiday-info-banner{align-items:flex-start}
.holiday-info-copy{min-width:0;flex:1}
.holiday-info-steps{display:flex;flex-wrap:wrap;gap:6px 8px;margin:7px 0 4px}
.holiday-info-steps span{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.76);font-size:10px;font-weight:800;color:#4f6069;border:1px solid rgba(218,200,176,.62)}
.holiday-info-steps b{display:grid;place-items:center;width:17px;height:17px;border-radius:999px;background:#8b6b3d;color:#fff;font-size:9px}
.holiday-info-copy>small{font-size:10px;line-height:1.45}
.holiday-planner-period-area{display:grid;gap:5px;min-width:0}
.holiday-period-presets{display:flex;flex-wrap:wrap;gap:4px}
.holiday-period-presets button{min-height:27px;padding:4px 7px;border:1px solid #dce4e7;border-radius:999px;background:#fff;color:#617179;font-size:8px;font-weight:800;cursor:pointer;line-height:1.15}
.holiday-period-presets button:hover:not(:disabled){border-color:#98c3cc;background:#f5fbfc}
.holiday-period-presets button.selected{background:#e7f4f6;border-color:#8bbcc7;color:#19596a;box-shadow:inset 0 0 0 1px rgba(139,188,199,.18)}
.holiday-period-presets button:disabled{opacity:.62;cursor:not-allowed}
.holiday-period-help,.holiday-parent-help,.holiday-planner-repeat>small{display:block;color:var(--muted);font-size:8px;font-weight:600;letter-spacing:0;text-transform:none;line-height:1.35}
.holiday-planner-repeat{display:grid;gap:3px}
.holiday-planner-period-edit input{width:100%;min-width:0}
.holiday-parent-choice button{transition:background .13s ease,border-color .13s ease,box-shadow .13s ease,transform .13s ease}
.holiday-parent-choice button:active:not(:disabled){transform:scale(.97)}
.holiday-parent.none{background:#edf1f2;color:#718087;border:1px solid #d8e0e3}

@media(max-width:820px){
  .holiday-planner-row{grid-template-columns:minmax(0,1fr) 112px minmax(130px,.8fr);grid-template-areas:"name assign status" "period period repeat"}
  .holiday-planner-period-area{grid-area:period}
}

@media(max-width:560px){
  #view-holidays>.section-head{align-items:flex-start;gap:10px}
  #view-holidays>.section-head>div:first-child{min-width:0}
  #view-holidays>.section-head h2{font-size:21px;line-height:1.1}
  #view-holidays>.section-head p{display:block;font-size:10px;line-height:1.4;margin-top:4px}
  #view-holidays>.section-head .button-row{width:100%;display:grid;grid-template-columns:auto 1fr;gap:7px}
  #view-holidays>.section-head .button-row button{font-size:9px;padding:8px 9px}
  .holiday-info-banner{gap:9px;padding:11px 10px;margin-bottom:10px}
  .holiday-info-icon{width:32px;height:32px;flex:0 0 32px;font-size:16px;border-radius:10px}
  .holiday-info-copy>strong{font-size:12px}
  .holiday-info-steps{display:grid;grid-template-columns:1fr;margin-top:7px;gap:4px}
  .holiday-info-steps span{padding:5px 7px;border-radius:9px;font-size:9px}
  .holiday-info-copy>small{font-size:9px;line-height:1.45;margin-top:5px}
  .holiday-planner-card{border-radius:16px;background:#f7f9fa;border-color:#e6ecef;overflow:visible;box-shadow:none}
  .holiday-planner-head{padding:14px 12px 12px;border-radius:16px 16px 0 0}
  .holiday-planner-head h3{font-size:19px}
  .holiday-planner-head p{font-size:10px;line-height:1.5;margin-top:4px}
  .holiday-planner-grid{display:grid;gap:9px;padding:9px}
  .holiday-planner-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name status" "assign assign" "period period" "repeat repeat";gap:11px 8px;padding:12px;border:1px solid #e2e8eb;border-radius:14px;background:#fff;box-shadow:0 2px 7px rgba(17,48,66,.035)}
  .holiday-planner-row:last-child{border-bottom:1px solid #e2e8eb}
  .holiday-planner-row.dirty{background:#f4fbfc;border-color:#b9d9e0;box-shadow:inset 3px 0 0 #6babb8,0 2px 7px rgba(17,48,66,.035)}
  .holiday-planner-row.pending-row{background:#fffdf6}
  .holiday-planner-name{grid-area:name;grid-template-columns:36px minmax(0,1fr);gap:9px}
  .holiday-planner-name>span{width:36px;height:36px;font-size:18px}
  .holiday-planner-name strong{font-size:13px;line-height:1.2}
  .holiday-planner-name small{font-size:9px;line-height:1.35;margin-top:3px}
  .holiday-planner-status{grid-area:status;align-self:start;justify-items:end}
  .holiday-planner-status .pill{font-size:8px;white-space:nowrap}
  .holiday-planner-assign{grid-area:assign;min-width:0;padding-top:2px}
  .holiday-planner-label,.holiday-planner-repeat{font-size:9px;letter-spacing:.06em}
  .holiday-parent-choice{grid-template-columns:1fr 1fr;gap:7px;margin-top:3px}
  .holiday-parent-choice button{height:40px;font-size:14px;border-radius:11px}
  .holiday-parent-help{font-size:9px;margin-top:2px}
  .holiday-planner-period-area{grid-area:period;padding-top:1px}
  .holiday-period-presets{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:2px}
  .holiday-period-presets button{min-height:34px;border-radius:10px;font-size:9px;padding:6px 5px}
  .holiday-period-presets button:last-child{grid-column:1/-1}
  .holiday-planner-period-edit{grid-template-columns:1fr 1fr;gap:7px;margin-top:2px}
  .holiday-planner-period-edit label{font-size:9px}
  .holiday-planner-period-edit input{min-height:40px;font-size:10px;padding:6px 5px;background:#fff}
  .holiday-period-help{font-size:9px;margin-top:1px}
  .holiday-planner-repeat{grid-area:repeat;background:#f8fafb;border-radius:11px;padding:8px 9px}
  .holiday-planner-repeat select{min-height:39px;font-size:10px;margin-top:3px;background:#fff}
  .holiday-planner-repeat>small{font-size:9px;margin-top:2px}
  .holiday-planner-save{border-radius:0 0 16px 16px;padding:12px}
  .holiday-planner-save strong{font-size:11px}.holiday-planner-save small{font-size:9px;line-height:1.4}
}

@media(max-width:360px){
  .holiday-planner-period-edit{grid-template-columns:1fr}
  .holiday-planner-row{padding:10px}
  .holiday-period-presets button{min-height:38px;font-size:8.5px;line-height:1.25}
}


/* v38.0 · commercial hardening */
.account-delete-web-link{display:inline-flex;margin-top:9px;font-size:11px;font-weight:750;color:var(--primary);text-decoration:none}.account-delete-web-link:hover{text-decoration:underline}.security-diagnostic-output{white-space:pre-line}.public-info-page{max-width:820px;margin:0 auto;padding:32px 20px 72px}.public-info-page h1{margin-bottom:8px}.public-info-page h2{margin-top:28px}.public-info-page .public-card{border:1px solid var(--line);border-radius:18px;padding:18px;margin:14px 0;background:#fff}.public-info-page .public-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.public-info-page a.public-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 14px;border-radius:12px;background:var(--primary);color:#fff;text-decoration:none;font-weight:800}.public-info-page a.public-button.secondary{background:#fff;color:var(--primary);border:1px solid #bfd4dd}.public-info-page code{word-break:break-word}


/* v38.3 - periodi festività a menu, locali in coda, famiglie con più figli */
.holiday-period-select{width:100%;min-height:34px;border:1px solid #dce4e7;border-radius:10px;background:#fff;color:#40545e;padding:6px 9px;font-size:10px;font-weight:800}
.holiday-period-select:disabled{opacity:.65;cursor:not-allowed}
.holiday-local-queue{padding:14px 16px 16px;border-top:1px solid #edf0f1;background:#fcfdfd}
.holiday-local-queue .holiday-local-head{align-items:center;margin:0 0 10px}.holiday-local-queue .holiday-local-head>div{display:grid;gap:2px}.holiday-local-queue .holiday-local-head small{font-size:9px;color:var(--muted)}
.family-children-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.family-children-hint{display:block;margin-top:7px}.new-child-draft{padding:10px;border:1px dashed #bfd4dd;border-radius:12px;background:#f8fbfc}.new-child-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.new-child-input-row .link-btn{font-size:9px;white-space:nowrap}.create-family-children{display:grid;gap:2px}.create-family-children-hint{display:block;margin:6px 0 10px}.create-family-children .new-child-input-row input{width:100%}
@media(max-width:560px){.holiday-period-select{min-height:42px;font-size:10px}.holiday-local-queue{padding:12px 9px}.holiday-local-queue .holiday-local-head{align-items:flex-start;gap:8px}.holiday-local-queue .holiday-local-head h3{font-size:15px}.holiday-local-queue .holiday-local-head .secondary{font-size:9px;padding:8px}.family-children-actions{grid-template-columns:1fr}.new-child-input-row{grid-template-columns:1fr}.new-child-input-row .link-btn{justify-self:start}}


/* v38.4 - mobile account actions, persistent notification bell */
.family-session-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 2px}
.family-session-actions .secondary{min-height:42px;font-size:10px}
.family-logout-btn{border-color:#ead8dc!important;color:#9b3f52!important;background:#fffafa!important}
.billing-diagnostic-output{white-space:pre-line}
@media(max-width:720px){
  .topbar .session-panel{width:38px;min-width:38px;max-width:38px;display:flex!important;flex:0 0 38px;flex-wrap:nowrap!important;overflow:visible;justify-content:center;position:relative;z-index:12}
  .topbar .session-panel #headerRequestsBtn{display:grid!important;visibility:visible!important;opacity:1!important;width:36px!important;height:36px!important;min-width:36px!important;flex:0 0 36px;position:relative;z-index:13}
  .topbar .session-panel .role-switch,.topbar .session-panel .sync-status,.topbar .session-panel #logoutBtn{display:none!important}
  .family-session-actions{grid-template-columns:1fr}
  .family-session-actions .secondary{width:100%;font-size:11px}
}
@media(max-width:360px){
  .topbar .session-panel{width:34px;min-width:34px;max-width:34px;flex-basis:34px}
  .topbar .session-panel #headerRequestsBtn{width:32px!important;height:32px!important;min-width:32px!important;flex-basis:32px}
}


/* v38.5 - day request and commercial readiness */
.day-request-card{border-color:#cfe3e7;background:linear-gradient(180deg,#fbfeff,#fff)}
.request-compare{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:center;margin:12px 0;padding:10px;border-radius:13px;background:#f5fafb;border:1px solid #e1ecef}
.request-compare>span{font-weight:900;color:#789099}
.compare-box{display:grid;gap:2px;font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.compare-box strong{font-size:12px;color:var(--ink);text-transform:none;letter-spacing:0}
.ios-push-install-hint{margin-top:10px}.ios-push-install-hint p{margin:5px 0 0;font-size:10px;line-height:1.45}
.premium-billing-disclosure{margin:9px 0 5px;padding:9px 10px;border:1px solid #e3e9ec;border-radius:11px;background:#fafcfd;line-height:1.5}
#commercialReadinessOutput{white-space:pre-line}
@media(max-width:520px){.request-compare{grid-template-columns:1fr}.request-compare>span{text-align:center;transform:rotate(90deg)}.premium-billing-disclosure{font-size:9px}}


/* v38.6 - accesso mobile robusto e azioni account sempre raggiungibili */
.auth-recovery-actions{margin-top:10px;padding:12px;border:1px solid #d9e5e8;background:#f7fbfc;border-radius:14px;display:grid;gap:9px}
.auth-recovery-actions>small{color:var(--muted);font-size:10px;overflow-wrap:anywhere}
.auth-recovery-actions .button-row{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.family-logout-btn{display:flex;align-items:center;justify-content:center;font-weight:850}
@media(max-width:640px){
  .auth-recovery-actions .button-row{grid-template-columns:1fr}
  .family-session-actions{display:grid!important;grid-template-columns:1fr!important}
  .family-session-actions #familyLogoutBtn{display:flex!important;visibility:visible!important;opacity:1!important;min-height:46px!important}
  .family-session-actions #familyLogoutBtn.hidden{display:none!important}
}

.family-setup-logout{margin-top:12px}

/* v38.6.2 login diagnostics */
.auth-build-line{margin:-2px 0 10px!important;font-size:11px;line-height:1.4;color:var(--muted)!important}.auth-build-line strong{color:var(--primary)}#authBootRecovery{margin-top:12px}#authBootRecovery p{margin:6px 0 12px}

.auth-recovery-advanced{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.auth-recovery-advanced.hidden{display:none!important}.auth-recovery-advanced .secondary{flex:1 1 220px}.auth-recovery-actions .push-diagnostic-output{white-space:pre-wrap;margin-top:10px}

/* v38.6.12 bilingual IT/EN selector */
.bimbi-language-switcher{position:fixed;top:max(8px,env(safe-area-inset-top));right:10px;z-index:10020;display:flex;align-items:center;gap:4px;padding:4px 6px;border:1px solid rgba(148,163,184,.35);border-radius:999px;background:rgba(255,255,255,.94);box-shadow:0 4px 14px rgba(17,48,66,.10);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.bimbi-language-switcher button{appearance:none;border:0;background:transparent;color:#667780;font:800 10px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;padding:5px 6px;border-radius:999px;cursor:pointer}
.bimbi-language-switcher button.active{background:#0b6f8f;color:#fff}.bimbi-language-switcher span{color:#9aa9b0;font-size:9px}
@media(min-width:721px){.bimbi-language-switcher.in-header{position:static;top:auto;right:auto;left:auto;bottom:auto;z-index:14;flex:0 0 auto;margin:0 1px;box-shadow:0 2px 8px rgba(17,48,66,.06);background:#fff}}
@media(max-width:720px){.bimbi-language-switcher,.bimbi-language-switcher.in-header{position:fixed;top:auto;bottom:calc(76px + env(safe-area-inset-bottom));left:10px;right:auto;z-index:34;margin:0}}


/* v38.6.14 recurring events: choose multiple weekdays in one weekly series */
.recurrence-weekday-box{margin:12px 0 10px}.event-weekday-picker label:has(input:checked){border-color:var(--primary2);background:#eaf3f1;color:var(--primary2);font-weight:800}.event-weekday-picker input{accent-color:var(--primary2)}


/* v38.6.15 recurring series: edit from selected occurrence + per-weekday times */
.recurrence-time-box{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.recurrence-time-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
.recurrence-time-grid label{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:var(--card)}
.recurrence-time-grid label span{font-weight:750;min-width:0}
.recurrence-time-grid input[type="time"]{width:118px;min-width:0;margin:0}
.event-edit-scope-card{max-width:520px}
.event-edit-scope-actions{display:grid;gap:10px;margin-top:14px}
.event-edit-scope-actions button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;min-height:64px}
.event-edit-scope-actions button small{font-weight:500;opacity:.86}
@media(max-width:520px){.recurrence-time-grid{grid-template-columns:1fr}.recurrence-time-grid input[type="time"]{width:128px}.event-edit-scope-actions button{min-height:70px}}

/* v38.6.16 - piano corrente e limite figli Free */
.premium-price-card.current-plan{outline:2px solid var(--accent,#315fcb);outline-offset:2px}
.premium-price-card.current-plan::after{content:'Piano attuale';display:block;font-size:.75rem;font-weight:700;margin-top:.35rem}

/* v38.6.22 - UX semplificata: Home, filtri figlio, ricorrenze e conflitti */
.home-dashboard{display:grid;gap:0}.home-section-head{align-items:center}.home-section-head .eyebrow{margin-bottom:5px}
.child-filter-row{display:flex;gap:8px;align-items:center;overflow-x:auto;scrollbar-width:none;padding:2px 0 12px}.child-filter-row::-webkit-scrollbar{display:none}
.child-filter-chip{border:1px solid var(--line);background:#fff;color:var(--primary);border-radius:999px;padding:8px 14px;font-size:12px;font-weight:800;white-space:nowrap;transition:.15s ease}
.child-filter-chip.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 4px 12px rgba(38,70,83,.14)}
.home-custody-card{padding:16px 18px}.home-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.home-card-head h3{margin:0;font-size:18px}.home-card-head .eyebrow{margin-bottom:2px}
.home-custody-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.home-child-status{display:grid;grid-template-columns:38px minmax(0,1fr) 10px;align-items:center;gap:10px;text-align:left;border:1px solid var(--line);background:#f8fbfa;border-radius:15px;padding:12px;color:var(--ink)}.home-child-status.father{background:#f4f8fb}.home-child-status.mother{background:#fff7f9}.home-child-status span:nth-child(2){min-width:0}.home-child-status strong,.home-child-status small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-child-status small{color:var(--muted);margin-top:2px}.home-child-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#eaf3f1;color:var(--primary);font-weight:900}.home-status-dot{width:9px;height:9px;border-radius:50%;background:#c9d4d2}.home-status-dot.with-you{background:var(--primary2);box-shadow:0 0 0 4px rgba(42,157,143,.12)}
.home-dashboard-grid{display:grid;grid-template-columns:1.45fr .85fr;gap:16px}.home-dashboard-grid>.card{margin-bottom:16px}.home-week-list,.home-attention-list{display:grid;gap:8px}
.home-week-item{border:1px solid #e6ecea;background:#fff;border-radius:13px;padding:9px 10px;display:grid;grid-template-columns:44px 34px minmax(0,1fr) auto;align-items:center;gap:9px;text-align:left;color:var(--ink)}.home-week-item:hover{background:#f8fbfa}.home-date-chip{display:grid;place-items:center;background:#edf5f4;border-radius:10px;padding:5px 4px;line-height:1}.home-date-chip strong{font-size:15px}.home-date-chip small{font-size:9px;text-transform:uppercase;color:var(--muted);margin-top:4px}.home-week-icon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#f1f5f4}.home-week-copy{min-width:0}.home-week-copy strong,.home-week-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-week-copy small{color:var(--muted);font-size:10px;margin-top:3px}
.home-attention-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;text-align:left;border:1px solid #e6ecea;background:#fff;border-radius:13px;padding:10px;color:var(--ink)}.home-attention-item>span:first-child{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#fff5d8;color:#866614;font-weight:900}.home-attention-item strong,.home-attention-item small{display:block}.home-attention-item small{color:var(--muted);font-size:10px;margin-top:2px}.home-attention-item>b{color:#9aabad;font-size:18px}
.home-empty{display:grid;place-items:center;text-align:center;gap:4px;padding:20px 10px;color:var(--muted)}.home-empty>span{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#eaf6f1;color:#28815e;font-weight:900}.home-empty strong{color:var(--ink)}.home-empty small{font-size:10px}
.home-quick-actions{padding:16px 18px}.home-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.home-quick-action{display:grid;grid-template-columns:36px minmax(0,1fr);grid-template-areas:'icon title' 'icon sub';column-gap:9px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:14px;background:#f9fbfb;padding:11px;color:var(--ink)}.home-quick-action>span{grid-area:icon;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:#eaf3f1;color:var(--primary);font-weight:900;font-size:17px}.home-quick-action strong{grid-area:title;font-size:12px}.home-quick-action small{grid-area:sub;font-size:9px;color:var(--muted);margin-top:2px}
.agenda-child-filters{padding-top:0;margin-bottom:2px}
.event-quick-field{margin:13px 0}.event-child-quick-picker{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px}.event-child-quick-picker .child-filter-chip{padding:9px 13px}
.event-quick-repeat{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin:12px 0!important;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:#f8fbfa}.event-quick-repeat input{width:auto!important;accent-color:var(--primary2)}.event-quick-repeat span strong,.event-quick-repeat span small{display:block}.event-quick-repeat span small{font-weight:500;color:var(--muted);margin-top:2px}.event-quick-repeat-end{margin:8px 0 12px;padding:10px 12px;border:1px solid #e2ebe9;border-radius:13px;background:#fcfdfd}.event-quick-repeat-end label{margin:0!important}.event-quick-repeat-end .hint{margin:5px 0 0}
.event-conflict-preview{display:flex;align-items:center;gap:10px;border:1px solid #f0d490;background:#fff8df;border-radius:13px;padding:10px 12px;margin:10px 0}.event-conflict-preview .event-conflict-icon,.event-card-conflict>span{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#e9a23b;color:#fff;font-weight:900}.event-conflict-preview strong,.event-conflict-preview small{display:block}.event-conflict-preview small{color:#7c6230;margin-top:2px}
.event-card-conflict{display:flex;align-items:center;gap:8px;margin-top:9px;padding:8px 9px;border-radius:11px;background:#fff7db;color:#765d23}.event-card-conflict>span{width:22px;height:22px;font-size:11px}.event-card-conflict small{line-height:1.35}
.recurrence-manage-card{max-width:540px}.recurrence-manage-summary{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid var(--line);background:#f8fbfa;border-radius:14px;margin:12px 0}.recurrence-manage-summary strong,.recurrence-manage-summary small{display:block}.recurrence-manage-summary small{color:var(--muted);margin-top:3px}.recurrence-manage-actions{display:grid;gap:10px}.recurrence-manage-actions>button{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;min-height:60px}.recurrence-manage-actions>button small{font-weight:500;opacity:.82}.recurrence-suspend-box{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:end;border:1px solid var(--line);border-radius:13px;padding:10px;background:#fbfcfc}.recurrence-suspend-box label{margin:0!important}.recurrence-suspend-box button{min-height:41px}.danger-outline{border:1px solid #efc6c6;background:#fff8f8;color:var(--danger);border-radius:12px;padding:11px 14px;font-weight:800}

@media(max-width:720px){
  .home-dashboard-grid{grid-template-columns:1fr}.home-custody-grid{grid-template-columns:1fr 1fr}.home-quick-grid{grid-template-columns:1fr 1fr 1fr}.home-section-head{margin-top:4px}.home-week-item{grid-template-columns:42px 30px minmax(0,1fr) auto}.home-quick-action{grid-template-columns:32px minmax(0,1fr);padding:9px}.home-quick-action>span{width:32px;height:32px}.home-quick-action strong{font-size:10px}.home-quick-action small{font-size:8px}
}
@media(max-width:470px){
  .home-custody-grid{grid-template-columns:1fr}.home-quick-grid{grid-template-columns:1fr}.home-quick-action strong{font-size:12px}.home-quick-action small{font-size:9px}.child-filter-chip{padding:8px 12px;font-size:11px}.recurrence-suspend-box{grid-template-columns:1fr}.recurrence-suspend-box button{width:100%}
}


/* v38.6.22 - profilo/famiglia sempre raggiungibile */
.profile-family-btn{background:#eef5f7!important;color:var(--primary)!important;border:1px solid #dce8e8!important;flex:0 0 auto}
.profile-family-btn:hover{background:#e5f0f1!important}.profile-family-btn svg{width:22px;height:22px}
.profile-family-menu{position:absolute;right:18px;top:70px;z-index:85;width:min(330px,calc(100vw - 24px));padding:8px;background:rgba(255,255,255,.985);border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 48px rgba(17,48,66,.18);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.profile-family-menu-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px 11px;border-bottom:1px solid #edf1f0;margin-bottom:4px}.profile-family-menu-head>div{min-width:0}.profile-family-menu-head strong,.profile-family-menu-head small{display:block}.profile-family-menu-head strong{font-size:14px}.profile-family-menu-head small{font-size:9px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-menu-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#eaf3f1;color:var(--primary2);font-size:17px;font-weight:900;flex:0 0 34px}
.profile-family-menu>button{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;border:0;background:transparent;color:var(--ink);text-align:left;border-radius:12px;padding:9px 10px}.profile-family-menu>button:hover,.profile-family-menu>button:focus-visible{background:#f2f7f6;outline:none}.profile-family-menu>button>span:nth-child(2){min-width:0}.profile-family-menu>button strong,.profile-family-menu>button small{display:block}.profile-family-menu>button strong{font-size:11px}.profile-family-menu>button small{font-size:8.5px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-family-menu>button>b{font-size:19px;color:#9badb1;font-weight:600}.profile-menu-icon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#eef5f7;color:var(--primary);font-size:14px;font-weight:900}
.profile-target-highlight{animation:profileTargetPulse 1.35s ease}@keyframes profileTargetPulse{0%,100%{box-shadow:var(--shadow)}35%{box-shadow:0 0 0 3px rgba(42,157,143,.19),var(--shadow)}}
.home-quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.home-family-shortcut>span{background:#eef5f7;color:var(--primary2)}
@media(max-width:720px){
  .topbar{grid-template-columns:34px minmax(0,1fr) 76px!important;gap:6px!important}.topbar .session-panel{width:76px!important;min-width:76px!important;max-width:76px!important;flex-basis:76px!important;gap:3px!important;justify-content:flex-end!important}.topbar .session-panel #headerRequestsBtn,.topbar .session-panel #profileFamilyBtn{display:grid!important;visibility:visible!important;opacity:1!important;width:36px!important;height:36px!important;min-width:36px!important;flex:0 0 36px!important}.profile-family-menu{right:8px;top:56px}.home-quick-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:470px){.home-quick-grid{grid-template-columns:1fr}.profile-family-menu{width:min(318px,calc(100vw - 16px))}}
@media(max-width:360px){
  .topbar{grid-template-columns:32px minmax(0,1fr) 66px!important;gap:3px!important}.topbar .session-panel{width:66px!important;min-width:66px!important;max-width:66px!important;flex-basis:66px!important;gap:2px!important}.topbar .session-panel #headerRequestsBtn,.topbar .session-panel #profileFamilyBtn{width:32px!important;height:32px!important;min-width:32px!important;flex-basis:32px!important}.profile-family-menu{top:51px;right:4px;width:calc(100vw - 8px);border-radius:15px}.profile-family-menu>button{padding:8px}.profile-family-menu>button small{font-size:8px}
}

/* v38.6.22 - profilo/famiglia nell'header, + di nuovo centrato nella barra */
.topbar{grid-template-columns:minmax(0,1fr) auto!important}
.topbar .brand-block{justify-self:start}
.bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr))}
.profile-family-btn.active,.profile-family-btn[aria-expanded="true"]{color:var(--preview-teal)!important;background:#e7f3f4!important;border-color:#cfe3e5!important}
.profile-family-menu{position:absolute!important;top:70px!important;bottom:auto!important;right:18px!important;z-index:85}
@media(max-width:720px){
  .topbar{grid-template-columns:minmax(0,1fr) 76px!important;padding-left:12px;padding-right:9px;gap:6px!important}
  .topbar .brand-block{justify-self:start}
  .topbar .session-panel{width:76px!important;min-width:76px!important;max-width:76px!important;flex-basis:76px!important;gap:3px!important;justify-content:flex-end!important}
  .topbar .session-panel #headerRequestsBtn,.topbar .session-panel #profileFamilyBtn{display:grid!important;visibility:visible!important;opacity:1!important;width:36px!important;height:36px!important;min-width:36px!important;flex:0 0 36px!important}
  .profile-family-menu{right:8px!important;top:56px!important;bottom:auto!important;width:min(318px,calc(100vw - 16px))}
  .bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr));padding-left:4px;padding-right:4px}
  .nav-item small{font-size:8.5px}
}
@media(max-width:360px){
  .topbar{grid-template-columns:minmax(0,1fr) 66px!important;padding-left:9px;padding-right:7px;gap:3px!important}
  .topbar .session-panel{width:66px!important;min-width:66px!important;max-width:66px!important;flex-basis:66px!important;gap:2px!important}
  .topbar .session-panel #headerRequestsBtn,.topbar .session-panel #profileFamilyBtn{width:32px!important;height:32px!important;min-width:32px!important;flex-basis:32px!important}
  .profile-family-menu{right:4px!important;top:51px!important;bottom:auto!important;width:calc(100vw - 8px);border-radius:15px}
  .bottom-nav{padding-left:2px;padding-right:2px}
  .nav-item small{font-size:7.5px}
  .nav-icon,.nav-icon svg{width:20px!important;height:20px!important}
  .nav-plus{width:50px!important;height:50px!important;margin-top:-22px!important;font-size:28px!important}
}
.profile-menu-open .ai-launcher{opacity:0;pointer-events:none;transform:translateY(8px)}

/* Home: incoming and outgoing pending proposals */
.home-attention-group{display:grid;gap:8px;min-width:0;padding-top:12px;border-top:1px solid var(--line)}
.home-attention-group:first-child{padding-top:0;border-top:0}
.home-attention-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.home-attention-heading h4{margin:0;font-size:13px}
.home-attention-count{border-radius:20px;background:#fff5d8;padding:3px 8px;font-size:12px;font-weight:700}
.home-attention-group.waiting .home-attention-count,.home-attention-group.waiting .home-attention-item>span:first-child{background:#eaf3f1;color:var(--primary)}
.home-attention-item{width:100%;min-width:0}.home-attention-item strong,.home-attention-item small{overflow-wrap:anywhere}

.attachment-preview{margin:10px 0 14px;padding:10px;border:1px solid var(--line);border-radius:14px;background:#f7faf9;overflow:hidden}.attachment-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:13px}.attachment-preview-toolbar strong{min-width:0;overflow-wrap:anywhere}.attachment-preview-image{display:block;width:100%;max-height:65vh;object-fit:contain;border-radius:8px;background:#e9efed}.attachment-preview-pdf{display:block;width:100%;height:min(65vh,620px);border:0;border-radius:8px;background:#fff}.attachment-preview [download]{display:block;margin-top:10px;text-align:center}

.attachment-upload-progress{display:flex;align-items:center;gap:10px;margin:9px 0;padding:10px 12px;border:1px solid #cfe4e2;border-radius:12px;background:#f0f8f7;color:var(--primary);font-size:13px;font-weight:700}.attachment-upload-progress[hidden]{display:none}.attachment-upload-spinner{width:18px;height:18px;flex:0 0 18px;border:2px solid #b8d5d2;border-top-color:var(--primary);border-radius:50%;animation:attachment-spin .8s linear infinite}@keyframes attachment-spin{to{transform:rotate(360deg)}}

#expenseSubmitBtn.is-loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px}#expenseSubmitBtn.is-loading .attachment-upload-spinner{border-color:rgba(255,255,255,.45);border-top-color:#fff}
