.sidebar .nav-scroll{padding-top:10px;padding-bottom:4px;overflow-y:hidden}.sidebar .nav-group{margin-bottom:7px}.sidebar .nav-group:first-child .nav-label{padding-top:0}.sidebar .nav-label{padding-bottom:3px}.sidebar .nav-item{height:34px}
.travel-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.travel-kpi{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:18px 20px;display:grid;gap:7px}.travel-kpi span{font-size:12px;letter-spacing:.06em;color:var(--muted);font-weight:700}.travel-kpi strong{font-size:26px;letter-spacing:-.04em}.travel-kpi small{color:var(--muted);font-size:11px}
.travel-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.85fr);gap:14px;margin-bottom:14px}.panel-head>div p{margin:3px 0 0;color:var(--muted);font-size:11px}.pipeline-steps,.destination-list,.source-list,.report-funnel{padding:16px 20px}.pipeline-steps>div,.report-funnel>div{display:grid;grid-template-columns:130px 1fr 44px 46px;align-items:center;gap:12px;padding:10px 0}.pipeline-steps i,.report-funnel i,.source-list i{height:7px;background:var(--surface2);border-radius:999px;overflow:hidden}.pipeline-steps i b,.report-funnel i b,.source-list i b{display:block;height:100%;background:var(--accent);border-radius:inherit}.pipeline-steps small,.report-funnel small{color:var(--muted)}.destination-list>div{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--border)}.destination-list>div:last-child{border:0}.destination-list span{display:flex;gap:10px;align-items:center}.destination-list span b{width:22px;height:22px;border-radius:7px;background:var(--surface2);display:grid;place-items:center;font-size:12px}.destination-list small{color:var(--muted)}.travel-activity{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--border)}.travel-activity:last-child{border:0}.travel-activity time{font-size:11px;color:var(--muted)}.travel-activity div{display:grid;gap:2px}.travel-activity div span{font-size:12px;color:var(--muted)}
.calendar-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px}.travel-calendar{display:grid;grid-template-columns:70px repeat(7,minmax(110px,1fr));grid-template-rows:56px repeat(9,64px);position:relative;overflow:auto}.calendar-time-head,.calendar-day-head,.calendar-time,.calendar-slot{border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.calendar-day-head{display:grid;place-items:center;align-content:center;gap:2px}.calendar-day-head span{font-size:12px;color:var(--muted)}.calendar-day-head strong{font-size:15px}.calendar-day-head.active{background:var(--accent2);color:var(--accent)}.calendar-time{display:flex;justify-content:center;padding-top:8px;font-size:12px;color:var(--muted)}.calendar-event{grid-column:var(--day);grid-row:var(--row)/span 2;z-index:2;margin:4px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:8px;background:var(--accent2);padding:7px;text-align:left;display:grid;align-content:start;gap:2px;overflow:hidden}.calendar-event time,.calendar-event span{font-size:12px;color:var(--muted)}.calendar-event strong{font-size:12px}.calendar-event.proposal{border-color:#5f7ea5;background:#edf3f8}.calendar-event.supplier{border-color:#a28354;background:#f7f1e8}.calendar-event.deadline{border-color:#a65e5e;background:#faeeee}.calendar-event.trip{border-color:#598069;background:#eaf3ed}
.source-list>div{display:grid;grid-template-columns:1fr auto;gap:7px 12px;padding:9px 0}.source-list i{grid-column:1/-1}.report-table{margin-top:14px}
.travel-reports-page .overview-middle{grid-template-columns:minmax(220px,.72fr) minmax(0,2fr)}
.travel-reports-page .overview-middle>.performance{order:-1}
.travel-reports-page .overview-bottom{grid-template-columns:minmax(0,1.45fr) minmax(280px,.8fr)}
.travel-reports-page .attention-stack{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr))}
.travel-reports-page .operation-copy strong,.travel-reports-page .operation-row>strong{font-family:Inter,system-ui,sans-serif;font-weight:500;letter-spacing:-.01em}
.travel-reports-page .operation-copy small{font-weight:400}.travel-reports-page .operation-time{font-weight:400;color:var(--muted)}
.travel-reports-page .panel-head h2{font-weight:500;letter-spacing:.03em}
@media(max-width:1100px){.travel-reports-page .overview-middle,.travel-reports-page .overview-bottom{grid-template-columns:1fr}.travel-reports-page .attention-stack{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.travel-reports-page .attention-stack{display:grid;grid-template-columns:1fr}.travel-reports-page .overview-middle>.performance{order:0}}
@media(max-width:1050px){.travel-kpi-grid{grid-template-columns:repeat(2,1fr)}.travel-dashboard-grid{grid-template-columns:1fr}.travel-calendar{grid-template-columns:58px repeat(7,minmax(105px,1fr))}}@media(max-width:640px){.sidebar .nav-scroll{padding-top:12px}.travel-kpi-grid{grid-template-columns:1fr 1fr}.travel-kpi{padding:14px}.travel-kpi strong{font-size:21px}.calendar-toolbar{overflow:auto}.travel-calendar{min-width:850px}}

/* Travel Crafters operational page patterns — derived from the approved visual references. */
.tc-page-grid{display:grid;gap:16px;align-items:start}.tc-page-grid .panel{overflow:hidden}.tc-stat-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px;background:var(--surface);border:1px solid var(--border);border-radius:18px;overflow:hidden}.tc-stat-strip article{min-height:108px;padding:18px 24px;border-right:1px solid var(--border);display:grid;align-content:center;gap:6px}.tc-stat-strip article:last-child{border:0}.tc-stat-strip article.warm{background:#f6f1db}.tc-stat-strip span,.eyebrow{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.tc-stat-strip strong{font-size:30px;line-height:1;font-weight:400;letter-spacing:-.035em}.tc-stat-strip small{font-size:11px;color:var(--muted)}
.tc-person{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left}.tc-person .avatar{width:36px;height:36px;font-size:12px}.tc-person>span:nth-child(2){display:grid;gap:2px;min-width:0}.tc-person strong{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tc-person small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tc-person .status{font-size:12px}.tc-progress{display:block;height:8px;background:var(--surface2);border-radius:3px;overflow:hidden}.tc-progress i{display:block;width:var(--value);height:100%;background:var(--accent)}.tc-progress i.light{background:#d8c987}.tc-progress i.accent{background:var(--accent)}
.tc-dark-panel,.tc-warm-panel{border-radius:22px;padding:24px;border:1px solid var(--border)}.tc-dark-panel{background:#272824;color:#fff;border-color:#272824;min-height:100%;display:flex;flex-direction:column}.tc-dark-panel .eyebrow{color:#a8aa9f}.tc-dark-panel h2{font-size:26px;font-weight:400;margin:10px 0 8px}.tc-dark-panel h3{font-size:12px;font-weight:500;margin:22px 0 10px}.tc-dark-panel>p{color:#b8baaf;font-size:12px;line-height:1.55}.tc-dark-details{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.tc-dark-details span{display:grid;gap:4px;font-size:12px;color:#92958a}.tc-dark-details strong{font-size:12px;color:#fff;font-weight:500}.tc-dark-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}.tc-dark-panel .btn.light{background:#d8c987;color:#171914;border-color:#d8c987}.tc-dark-panel .btn.ghost{background:transparent;color:#fff;border-color:#565851}.tc-warm-panel{background:#f6f1db;border-color:#e6d99f}.big-number{font-size:52px;font-weight:300;letter-spacing:-.05em}.block-meter{display:grid;grid-template-columns:repeat(10,1fr);gap:5px;margin:18px 0}.block-meter i{height:13px;border:1px solid #64665e;border-radius:3px}.block-meter i.done{background:#d8c987;border-color:#d8c987}.block-meter i.active{background:#9aa66a;border-color:#9aa66a}
.request-layout{grid-template-columns:minmax(0,1fr) 310px}.tc-kanban{min-width:0}.tc-kanban .panel-head{padding:18px 20px}.tc-kanban-cols{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:10px;padding:0 14px 16px;overflow-x:auto}.tc-kanban-col{background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:10px;min-height:0}.tc-kanban-col>header,.proposal-cols>div>header{display:flex;justify-content:space-between;padding:4px 3px 10px;font-size:11px}.tc-kanban-col>header span,.proposal-cols header span{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:1px 7px}.tc-lead-card{display:block;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:11px;margin-bottom:8px;text-align:left}.tc-lead-card:hover{border-color:var(--border-strong)}.tc-lead-card p{font-size:11px;margin:12px 0 7px}.tc-lead-card>small{font-size:12px;color:var(--muted)}
.clients-layout{grid-template-columns:minmax(0,1fr) 340px}.tc-table-panel .panel-head{padding:18px 20px}.tc-table{padding:0 18px 18px}.tc-table-row{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(130px,.7fr) 120px 95px;gap:14px;align-items:center;width:100%;padding:11px 4px;border:0;border-bottom:1px solid var(--border);background:transparent;text-align:left;color:inherit}.tc-table-row.head{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.tc-table-row:not(.head):hover{background:var(--surface2)}.tc-table-row>span{font-size:11px}.tc-attention{padding:0 20px 8px}.tc-attention .panel-head{padding-left:0;padding-right:0}.attention-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border)}.attention-row .avatar{width:34px;height:34px;font-size:12px}.attention-row>span:nth-child(2),.attention-row>span:first-child:not(.avatar){display:grid;gap:3px}.attention-row strong{font-size:11px}.attention-row small{font-size:12px;color:var(--muted)}.attention-row .btn{grid-column:3}
.couples-layout{grid-template-columns:minmax(0,1.5fr) 320px}.tc-matrix .panel-head{padding:18px 20px}.matrix-grid{display:grid;grid-template-columns:150px repeat(3,minmax(125px,1fr));gap:7px;padding:0 20px 20px;align-items:center}.matrix-grid>b{font-size:12px;color:var(--muted);font-weight:500;text-align:center}.matrix-grid>strong{font-size:11px;font-weight:500}.matrix-cell{height:40px;border:0;border-radius:10px;background:var(--surface2);font-size:11px}.matrix-cell:nth-of-type(3n+2){background:#f4edd0}.matrix-cell.selected{background:var(--primary);color:#fff}.couple-profile{padding:24px;background:#f6f1db}.couple-profile h2{margin:10px 0 3px;font-size:24px;font-weight:400}.couple-profile>p{font-size:11px;color:var(--muted)}.couple-score{display:flex;align-items:end;gap:8px;margin:22px 0}.couple-score strong{font-size:42px;font-weight:300}.couple-score span{font-size:11px;color:var(--muted);padding-bottom:7px}.detail-lines{display:grid;margin:15px 0 22px}.detail-lines>span{display:grid;gap:3px;padding:11px 0;border-bottom:1px solid var(--border);font-size:12px;color:var(--muted)}.detail-lines strong{font-size:11px;color:var(--text);font-weight:500}.couple-profile>.btn{width:100%}.journey-history{grid-column:1/-1;padding:0 20px 12px}.journey-history .panel-head{padding-left:0;padding-right:0}.journey-row{display:grid;grid-template-columns:minmax(180px,1fr) 1fr 150px 45px;align-items:center;gap:20px;padding:12px 0;border-top:1px solid var(--border)}.journey-row>span:first-child{display:grid}.journey-row small{color:var(--muted);font-size:12px}.journey-row>span:nth-child(3){font-size:11px}.journey-row>b{font-size:11px;text-align:right}
.supplier-layout{grid-template-columns:minmax(0,1fr) 310px}.supplier-map{min-height:0;background-image:radial-gradient(var(--border) .65px,transparent .65px);background-size:14px 14px}.supplier-map .panel-head{padding:20px 24px}.supplier-map .panel-head h2{font-size:23px;font-weight:400;margin-top:7px}.legend{display:flex;gap:15px;font-size:12px;color:var(--muted)}.ecosystem{height:350px;position:relative}.ecosystem:before{content:"";position:absolute;inset:10% 12%;background:repeating-conic-gradient(from 0deg,transparent 0 44deg,var(--border) 45deg 46deg);border-radius:50%;opacity:.55}.ecosystem-core,.ecosystem-node{position:absolute;z-index:1;background:var(--surface);border:1px solid var(--border);box-shadow:0 6px 18px #2221}.ecosystem-core{left:50%;top:50%;transform:translate(-50%,-50%);width:150px;height:150px;border-radius:50%;display:grid;place-content:center;text-align:center}.ecosystem-core strong{font-size:17px}.ecosystem-core small,.ecosystem-node span{font-size:12px;color:var(--muted)}.ecosystem-node{width:155px;padding:12px;border-radius:12px;display:grid;gap:3px;text-align:left}.ecosystem-node.n0{left:9%;top:10%}.ecosystem-node.n1{right:8%;top:12%}.ecosystem-node.n2{left:3%;bottom:16%}.ecosystem-node.n3{right:4%;bottom:14%}.ecosystem-node.n4{left:43%;bottom:2%}.supplier-card{padding:24px}.supplier-card h2{font-size:23px;font-weight:400;margin:12px 0}.supplier-card>p{font-size:11px;color:var(--muted);line-height:1.5}.supplier-card>.btn{width:100%}
.trips-layout,.proposal-layout{grid-template-columns:minmax(0,1fr) 330px}.production-pipeline .panel-head,.proposal-board .panel-head{padding:20px}.timeline-track{display:grid;grid-template-columns:repeat(6,1fr);padding:25px 24px 36px;position:relative}.timeline-track:before{content:"";position:absolute;left:8%;right:8%;top:36px;border-top:2px dotted var(--border-strong)}.timeline-step{z-index:1;display:grid;justify-items:center;gap:7px;border:0;background:transparent;text-align:center}.timeline-step i{width:25px;height:25px;border-radius:50%;background:var(--surface);border:1px solid var(--border-strong)}.timeline-step.done i{background:#dfe5c7;border-color:#aab784}.timeline-step.active i{background:#d8c987;border:5px solid #f5e7a7}.timeline-step strong{font-size:12px}.timeline-step small{font-size:12px;color:var(--muted)}.journey-board{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 18px 18px}.journey-card{border:1px solid var(--border);background:var(--surface2);border-radius:13px;padding:12px;text-align:left}.journey-card>div:last-child{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin-top:13px}.journey-card b{font-size:12px}.journey-pulse>p{margin-top:0}.proposal-cols{display:grid;grid-template-columns:repeat(4,minmax(165px,1fr));gap:10px;padding:0 14px 16px;overflow:auto}.proposal-cols>div{background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:9px;min-height:0}.proposal-card{width:100%;display:grid;gap:12px;padding:12px;margin-bottom:9px;background:var(--surface);border:1px solid var(--border);border-radius:12px;text-align:left}.proposal-card>div:nth-child(2){display:flex;justify-content:space-between}.proposal-card footer{display:flex;justify-content:space-between;border-top:1px solid var(--border);padding-top:9px;font-size:12px;color:var(--muted)}
.task-layout{grid-template-columns:320px minmax(0,1fr) 300px}.focus-card h2{font-size:24px;font-weight:400;margin:10px 0 2px}.focus-card>p{font-size:11px;color:var(--muted);margin-bottom:20px}.focus-row{width:100%;display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;text-align:left;padding:11px 8px;border:0;border-top:1px solid #e6d99f;background:transparent}.focus-row.active{background:#fff9e9;border-radius:12px}.focus-row time{font-size:12px;color:var(--muted)}.focus-row>span:nth-child(2){display:grid}.focus-row strong{font-size:11px}.focus-row small{font-size:12px;color:var(--muted)}.focus-card>.btn{width:100%;margin-top:18px}.task-stream{padding:0 20px 10px}.task-stream .panel-head{padding-left:0;padding-right:0}.stream-row{display:grid;grid-template-columns:28px 1fr 60px auto;gap:9px;align-items:center;padding:13px 0;border-bottom:1px solid var(--border)}.task-check{width:24px;height:24px;border:1px solid var(--border);border-radius:7px;display:grid;place-items:center;color:transparent}.task-check.done{background:var(--accent2);color:var(--accent)}.stream-row>span:nth-child(2){display:grid}.stream-row strong{font-size:11px}.stream-row small,.stream-row time{font-size:12px;color:var(--muted)}
.communication-layout{grid-template-columns:300px minmax(0,1fr) 300px}.conversation-list{padding:0 12px 12px}.conversation-list .panel-head{padding-left:8px;padding-right:8px}.conversation{display:block;width:100%;padding:12px 9px;border:0;border-top:1px solid var(--border);background:transparent;text-align:left;border-radius:11px}.conversation.selected{background:#f6f1db}.conversation p{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:8px 0 0}.conversation .tc-person>b{min-width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:#fff;font-size:12px}.message-thread{display:grid;grid-template-rows:auto 1fr auto;min-height:0}.message-thread .panel-head{padding:14px 18px}.thread-body{padding:22px;display:flex;flex-direction:column;gap:15px}.message{max-width:75%;padding:12px 14px;border-radius:12px;background:var(--surface2)}.message.outbound{align-self:flex-end;background:#f6f1db}.message small{font-size:12px;color:var(--muted)}.message p{font-size:11px;line-height:1.5;margin:6px 0 0}.composer{display:grid;grid-template-columns:1fr auto;gap:10px;padding:15px;border-top:1px solid var(--border)}.composer textarea{resize:none;min-height:52px;border:1px solid var(--border);background:var(--surface2);border-radius:11px;padding:12px;font:inherit;font-size:11px}.communication-context h2{font-size:23px;font-weight:400}.communication-context h3{font-size:12px}.tag-cloud{display:flex;flex-wrap:wrap;gap:6px}.tag-cloud span{padding:6px 9px;background:#fff9e9;border:1px solid #e6d99f;border-radius:999px;font-size:12px}
@media(max-width:1250px){.request-layout,.clients-layout,.couples-layout,.supplier-layout,.trips-layout,.proposal-layout{grid-template-columns:1fr}.request-layout>.tc-dark-panel,.trips-layout>.tc-dark-panel,.proposal-layout>.tc-dark-panel{min-height:360px}.task-layout{grid-template-columns:1fr 1fr}.task-layout>.tc-attention{grid-column:1/-1}.communication-layout{grid-template-columns:280px 1fr}.communication-context{grid-column:1/-1}.tc-stat-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.tc-stat-strip{grid-template-columns:1fr 1fr}.tc-stat-strip article{padding:15px;min-height:90px}.tc-stat-strip strong{font-size:24px}.task-layout,.communication-layout{grid-template-columns:1fr}.matrix-grid{min-width:610px}.tc-matrix{overflow:auto}.journey-board{grid-template-columns:1fr}.journey-row{grid-template-columns:1fr}.tc-table{overflow:auto}.tc-table-row{min-width:690px}.ecosystem-node{width:125px}.timeline-track{min-width:680px}.production-pipeline{overflow:auto}}

/* Dashboard visual alignment pass */
.tc-page-grid{gap:14px;align-items:start;margin-bottom:14px}
.tc-page-grid>.panel,.tc-page-grid>.tc-dark-panel,.tc-page-grid>.tc-warm-panel{border:0;border-radius:22px;box-shadow:none;min-width:0}
.tc-stat-strip{gap:7px;margin-bottom:14px;background:transparent;border:0;border-radius:0;overflow:visible}
.tc-stat-strip article{min-height:94px;padding:13px 14px;border:0;border-radius:18px;background:var(--surface);align-content:space-between}
.tc-stat-strip article.warm{background:#dce2b9}
.tc-stat-strip span{font-size:12px;letter-spacing:0;text-transform:none}
.tc-stat-strip strong{font-size:28px;letter-spacing:-1px}
.tc-stat-strip small{font-size:12px}
.tc-page-grid .panel-head{padding:18px 18px 12px;min-height:48px}
.tc-page-grid .panel-head h2{font-size:15px;font-weight:500;letter-spacing:-.2px}
.tc-page-grid .panel-head>span{font-size:12px;color:var(--muted)}
.tc-dark-panel{background:#dce2b9;color:#252a19;border:0;padding:18px;min-height:0;height:auto}
.tc-dark-panel .eyebrow,.tc-dark-panel>p,.tc-dark-details span{color:#5e6643}
.tc-dark-panel h2,.tc-dark-details strong{color:#252a19}
.tc-dark-panel h2{font-size:24px;margin:8px 0 5px}
.tc-dark-panel>p{font-size:11px;margin:0;line-height:1.5}
.tc-dark-panel h3{margin:16px 0 8px}
.tc-dark-details{gap:12px;margin:16px 0}
.tc-dark-details span{padding:10px 0;border-bottom:1px solid #c7cf9e}
.tc-dark-details strong{font-size:11px}
.tc-dark-actions{margin-top:12px}
.tc-dark-panel .btn.light{background:#1c1d19;border-color:#1c1d19;color:#fff}
.tc-dark-panel .btn.ghost{background:rgba(255,255,255,.55);border:0;color:#252a19}
.tc-warm-panel{background:var(--surface);border:0;padding:18px}
.big-number{font-size:39px;font-weight:400;letter-spacing:-2px}
.block-meter{gap:4px;margin:13px 0}.block-meter i{height:11px;border:0;background:rgba(37,42,25,.16)}.block-meter i.done{background:#7f8b4f}.block-meter i.active{background:#f0c95c}
.tc-person .avatar{background:#ddddd2}.tc-person strong{font-weight:500}
.tc-progress{height:6px;border-radius:7px}.tc-progress i{border-radius:inherit}
.tc-kanban .panel-head,.tc-table-panel .panel-head,.tc-matrix .panel-head,.supplier-map .panel-head,.production-pipeline .panel-head,.proposal-board .panel-head{padding:18px 18px 12px}
.tc-kanban-cols{gap:7px;padding:0 7px 7px}
.tc-kanban-col{min-height:0;padding:7px;background:var(--surface2);border:0;border-radius:16px}
.tc-lead-card{padding:10px;margin-bottom:7px;border:0;border-radius:14px;background:var(--surface)}
.tc-lead-card:last-child{margin-bottom:0}.tc-lead-card p{margin:9px 0 5px}
.tc-table{padding:0 16px 12px}.tc-table-row{padding:11px 0}
.tc-attention{padding:7px;background:var(--surface);border-radius:22px}.tc-attention .panel-head{padding:11px 11px 8px}
.attention-row{margin-bottom:7px;padding:12px;border:0;border-radius:16px;background:var(--surface2)}.attention-row:last-child{margin-bottom:0}
.matrix-grid{gap:6px;padding:0 7px 7px}.matrix-cell{height:38px;border-radius:16px}.matrix-cell:nth-of-type(3n+2){background:var(--accent2)}
.couple-profile{padding:18px;background:#dce2b9}.couple-profile h2{font-size:22px}.couple-score{margin:14px 0}.couple-score strong{font-size:36px}.detail-lines{margin:10px 0 15px}.detail-lines>span{padding:9px 0}
.journey-history{padding:0 16px 10px}.journey-history .panel-head{padding-left:0;padding-right:0}
.supplier-map{min-height:0;background-image:radial-gradient(var(--border) .55px,transparent .55px)}
.supplier-map .panel-head h2{font-size:20px;margin-top:4px}.ecosystem{height:350px}
.ecosystem-core,.ecosystem-node{border:0;box-shadow:none}.ecosystem-core{background:var(--surface2)}.ecosystem-node{padding:10px;background:var(--surface)}
.supplier-card{padding:18px}.supplier-card h2{font-size:20px;margin:8px 0}.supplier-card>p{margin:8px 0}
.timeline-track{padding:18px 18px 28px}.timeline-track:before{top:29px}.timeline-step i{width:23px;height:23px}.journey-board{gap:7px;padding:0 7px 7px}.journey-card{padding:11px;border:0;background:var(--surface2);border-radius:16px}
.proposal-cols{gap:7px;padding:0 7px 7px}.proposal-cols>div{min-height:0;padding:7px;border:0;background:var(--surface2);border-radius:16px}.proposal-card{gap:10px;padding:10px;margin-bottom:7px;border:0;border-radius:14px}
.focus-card{background:#dce2b9}.focus-card>p{margin-bottom:12px}.focus-row{border-color:#c7cf9e;padding:10px 6px}.focus-row.active{background:rgba(255,255,255,.65)}.focus-card>.btn{margin-top:12px}
.task-stream{padding:0 16px 10px}.task-stream .panel-head{padding-left:0;padding-right:0}.stream-row{padding:11px 0}
.conversation-list{padding:0 7px 7px}.conversation-list .panel-head{padding-left:11px;padding-right:11px}.conversation{padding:11px;border-top:0;margin-bottom:4px;border-radius:16px;background:var(--surface2)}.conversation.selected{background:#dce2b9}
.message-thread{min-height:0;height:auto}.thread-body{padding:18px;min-height:250px}.message{padding:11px 13px;border-radius:16px}.message.outbound{background:var(--accent2)}.composer{padding:12px}.communication-context{background:var(--surface2)}
.calendar-toolbar{margin-bottom:10px;gap:7px}.calendar-toolbar .btn,.calendar-toolbar .seg{height:32px;font-size:11px}.travel-calendar{border:0;border-radius:20px;grid-template-columns:58px repeat(7,minmax(96px,1fr));grid-template-rows:48px repeat(9,46px);max-width:1280px}.calendar-day-head{gap:0}.calendar-day-head span{font-size:12px}.calendar-day-head strong{font-size:13px}.calendar-time{padding-top:6px;font-size:12px}.calendar-event{border-left-width:2px;border-radius:9px;margin:3px;padding:5px 7px;gap:1px}.calendar-event time,.calendar-event span{font-size:12px}.calendar-event strong{font-size:12px;line-height:1.2}
[data-theme=dark] .tc-stat-strip article.warm,[data-theme=dark] .tc-dark-panel,[data-theme=dark] .couple-profile,[data-theme=dark] .focus-card,[data-theme=dark] .conversation.selected{background:#464f32;color:#e5ebd6}
[data-theme=dark] .tc-dark-panel h2,[data-theme=dark] .tc-dark-details strong{color:#e5ebd6}
[data-theme=dark] .tc-dark-panel .eyebrow,[data-theme=dark] .tc-dark-panel>p,[data-theme=dark] .tc-dark-details span{color:#c6cdb4}
@media(min-width:1500px){.tc-stat-strip article{min-height:110px}.tc-page-grid{gap:14px}.ecosystem{height:390px}}
@media(max-width:640px){.tc-page-grid{gap:10px}.tc-stat-strip{gap:7px}.tc-stat-strip article{min-height:83px;padding:12px 9px}.tc-stat-strip strong{font-size:24px}.tc-dark-panel,.tc-warm-panel,.couple-profile,.supplier-card{padding:16px}.thread-body{min-height:210px}}


/* Calendario: varianti per il tema scuro. */
[data-theme=dark] .calendar-event{background:color-mix(in srgb,var(--accent) 16%,var(--surface));border-color:color-mix(in srgb,var(--accent) 55%,transparent)}
[data-theme=dark] .calendar-event strong{color:var(--text)}
[data-theme=dark] .calendar-event time,[data-theme=dark] .calendar-event span{color:var(--muted)}
[data-theme=dark] .calendar-event.proposal{border-color:#7f9fc7;background:#222b35}
[data-theme=dark] .calendar-event.supplier{border-color:#b69a6c;background:#2f2a22}
[data-theme=dark] .calendar-event.deadline{border-color:#c98585;background:#35262a}
[data-theme=dark] .calendar-event.trip{border-color:#76a587;background:#212e26}

/* Tema scuro: contrasto minimo 4.5:1 su avatar, trend, pannelli caldi e tag. */
[data-theme=dark] .readiness-trend.positive{color:#b4bd88}
[data-theme=dark] .readiness-trend.negative{color:#e0a597}
[data-theme=dark] .attention-tile b{color:#e0b394}
[data-theme=dark] .tc-warm-panel,[data-theme=dark] article.warm,[data-theme=dark] .warm{--muted:#d3d9bd}
[data-theme=dark] .focus-row.active{background:rgba(255,255,255,.1)}
[data-theme=dark] .tag-cloud span{background:rgba(255,255,255,.08);color:var(--text)}
[data-theme=dark] .positive,[data-theme=dark] .readiness-trend.positive{color:#b4bd88!important}
[data-theme=dark] .negative,[data-theme=dark] .readiness-trend.negative{color:#e0a597!important}
[data-theme=dark] .sidebar .avatar{color:#d3d9a8}
[data-theme=dark] .tc-person .avatar{background:#32362a;color:#d3d9a8}
[data-theme=dark] .attention-row .avatar{background:#32362a;color:#d3d9a8}
[data-theme=dark] .conversation.selected{--muted:#d3d9bd}

/* Calendario: su mobile usa lo stile della pagina Planning (classi mobile-planner-* in ui-refinement.css). */
.calendar-mobile{display:none}
@media(max-width:640px){
  .calendar-desktop{display:none}
  .calendar-mobile{display:grid}
  .calendar-mobile .mobile-room-row .status{display:inline-flex}
  .calendar-mobile .mobile-planner-nav{height:56px;grid-template-columns:40px auto 1fr 40px}
  .calendar-mobile .mobile-planner-nav button{height:40px;min-width:40px}
  .calendar-mobile .mobile-planner-filters button{height:40px}
  [data-theme=dark] .calendar-mobile .mobile-date-strip button.active{border-color:color-mix(in srgb,var(--accent) 60%,transparent)}
}

/* Communications: su desktop il workspace occupa tutta l'altezza dello schermo; liste e messaggi scorrono al loro interno. */
@media(min-width:1251px){
  .main:has(.communication-layout){display:flex;flex-direction:column;overflow:hidden;padding-bottom:16px}
  .main:has(.communication-layout)>.page-header{flex:0 0 auto}
  .communication-layout{flex:1 1 auto;min-height:0;margin-bottom:0;align-items:stretch;grid-template-rows:minmax(0,1fr)}
  .communication-layout>.conversation-list,.communication-layout>.message-thread,.communication-layout>.communication-context{min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior:contain}
  .communication-layout>.message-thread{overflow:hidden}
  .message-thread .thread-body{min-height:0;overflow-y:auto}
  .message-thread .composer{background:var(--surface)}
  .conversation-list .panel-head{position:sticky;top:0;z-index:1;background:var(--surface)}
}

/* Pagine con workspace a pannelli (Requests, Clients, Trips, Proposals, Tasks, Communications):
   su desktop il workspace riempie l'altezza disponibile e i pannelli scorrono al loro interno.
   Se lo schermo è troppo basso (< 480px di workspace) scorre la pagina. */
@media(min-width:1251px){
  .main:has(>.tc-page-grid){display:flex;flex-direction:column;overflow-y:auto;padding-bottom:16px}
  .main:has(>.tc-page-grid)>*{flex:0 0 auto}
  .main:has(>.tc-page-grid)>.tc-page-grid{flex:1 1 auto;min-height:480px;margin-bottom:0;align-items:stretch;grid-template-rows:minmax(0,1fr)}
  .main:has(>.tc-page-grid)>.tc-stat-strip{margin-bottom:14px}
  .main:has(>.tc-page-grid)>.tc-page-grid>*{min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior:contain}
}

/* Calendario desktop: la griglia settimanale riempie l'altezza disponibile. */
@media(min-width:641px){
  .main:has(>.calendar-desktop){display:flex;flex-direction:column;overflow-y:auto;padding-bottom:16px}
  .calendar-desktop{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
  .calendar-desktop>.page-header,.calendar-desktop>.calendar-toolbar{flex:0 0 auto}
  .calendar-desktop>.travel-calendar{flex:1 1 auto;min-height:520px;grid-template-rows:48px repeat(9,minmax(46px,1fr))}
}

/* Tema scuro, desktop: hover coerente su pulsanti, navigazione e schede interattive.
   Le regole :hover generiche erano sovrascritte dai colori fissi del tema scuro. */
@media(hover:hover) and (pointer:fine){
  [data-theme=dark] .btn,[data-theme=dark] .icon-btn,[data-theme=dark] .topbar .icon,[data-theme=dark] .sidebar .nav-item,[data-theme=dark] .seg,[data-theme=dark] .journey-card,[data-theme=dark] .tc-lead-card,[data-theme=dark] .attention-tile,[data-theme=dark] .conversation,[data-theme=dark] .focus-row,[data-theme=dark] .timeline-step,[data-theme=dark] .calendar-event{transition:background-color .16s ease,border-color .16s ease,color .16s ease,filter .16s ease}
  [data-theme=dark] .btn:not(.primary):hover,[data-theme=dark] .icon-btn:hover,[data-theme=dark] .topbar .icon:hover,[data-theme=dark] .seg:not(.active):hover{background:#2b2d25;border-color:#4a4d40;color:var(--text)}
  [data-theme=dark] .btn.primary:hover{background:#b6bd8c;border-color:#b6bd8c;color:#202319}
  [data-theme=dark] .sidebar .nav-item:not(.active):hover{background:#2b2d25;color:#f1f2e9}
  [data-theme=dark] .journey-card:hover,[data-theme=dark] .attention-tile:hover{background:#363930;border-color:#4a4d40}
  [data-theme=dark] .tc-lead-card:hover{background:#2b2d25;box-shadow:inset 0 0 0 1px #4a4d40}
  [data-theme=dark] .conversation:not(.selected):hover{background:#363930}
  [data-theme=dark] .focus-row:not(.active):hover{background:rgba(255,255,255,.07)}
  [data-theme=dark] .timeline-step:not(.active):hover{background:rgba(255,255,255,.05);border-radius:12px}
  [data-theme=dark] .calendar-event:hover{filter:brightness(1.18)}
}
@media(prefers-reduced-motion:reduce){[data-theme=dark] .btn,[data-theme=dark] .icon-btn,[data-theme=dark] .journey-card,[data-theme=dark] .tc-lead-card,[data-theme=dark] .conversation,[data-theme=dark] .calendar-event{transition:none}}

/* Menu laterale, tema scuro: l'icona si colora d'oliva al passaggio del mouse, bene in evidenza rispetto al testo. */
@media(hover:hover) and (pointer:fine){
  [data-theme=dark] .sidebar .nav-item .nav-icon{transition:color .16s ease}
  [data-theme=dark] .sidebar .nav-item:not(.active):hover .nav-icon,[data-theme=dark] .sidebar .nav-item:not(.active):focus-visible .nav-icon{color:#c3cc92}
  [data-theme=dark] .sidebar .nav-item:not(.active):hover,[data-theme=dark] .sidebar .nav-item:not(.active):focus-visible{color:#ffffff}
}

/* Menu laterale, tema scuro: la voce attiva ha sfondo chiaro, quindi l'icona deve essere scura (prima 1,1:1 di contrasto). */
[data-theme=dark] .sidebar .nav-item.active .nav-icon,[data-theme=dark] .sidebar .nav-item.active:hover .nav-icon{color:#4d5a28}

/* Calendario desktop: viste Week / Month / Agenda. */
@media(min-width:641px){
  .calendar-desktop>.calendar-view{flex:1 1 auto;min-height:520px;display:flex;flex-direction:column}
  .calendar-view>.travel-calendar{flex:1 1 auto;min-height:0;grid-template-rows:48px repeat(9,minmax(46px,1fr))}
  .calendar-view>.calendar-month,.calendar-view>.calendar-agenda-view{flex:1 1 auto;min-height:0}
}
.calendar-views .seg{cursor:pointer}
.calendar-month{display:flex;flex-direction:column;border:0;border-radius:20px;overflow:hidden;max-width:1280px}
.month-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--border)}
.month-head span{padding:12px 10px;font-size:12px;color:var(--muted);text-align:left}
.month-grid{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(5,minmax(96px,1fr));overflow:auto}
.month-cell{display:flex;flex-direction:column;gap:4px;padding:8px;min-width:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}
.month-cell:nth-child(7n){border-right:0}
.month-cell.other{background:color-mix(in srgb,var(--surface2) 55%,transparent)}
.month-cell.other .month-num{color:var(--muted);opacity:.6}
.month-num{font-size:13px;font-variant-numeric:tabular-nums;width:26px;height:26px;display:grid;place-items:center;border-radius:50%}
.month-cell.today .month-num{background:var(--accent);color:#202319;font-weight:600}
.month-chip{display:flex;gap:6px;align-items:baseline;width:100%;min-width:0;padding:3px 7px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:7px;background:var(--accent2);color:var(--text);font:inherit;font-size:12px;text-align:left;cursor:pointer}
.month-chip time{color:var(--muted);font-variant-numeric:tabular-nums;flex:0 0 auto}
.month-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.month-chip.proposal{border-color:#5f7ea5;background:#edf3f8}
.month-chip.supplier{border-color:#a28354;background:#f7f1e8}
.month-chip.deadline{border-color:#a65e5e;background:#faeeee}
.month-chip.trip{border-color:#598069;background:#eaf3ed}
[data-theme=dark] .month-chip{background:color-mix(in srgb,var(--accent) 16%,var(--surface))}
[data-theme=dark] .month-chip.proposal{border-color:#7f9fc7;background:#222b35}
[data-theme=dark] .month-chip.supplier{border-color:#b69a6c;background:#2f2a22}
[data-theme=dark] .month-chip.deadline{border-color:#c98585;background:#35262a}
[data-theme=dark] .month-chip.trip{border-color:#76a587;background:#212e26}
.month-more{font-size:12px;color:var(--muted);padding-left:4px}
.calendar-agenda-view{border:0;border-radius:20px;overflow:auto;max-width:1280px;padding:6px 0}
.agenda-group{padding:10px 20px 6px}
.agenda-group+.agenda-group{border-top:1px solid var(--border)}
.agenda-group-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}
.agenda-group-head h2{font-size:15px;font-weight:500;margin:0}
.agenda-group-head span{font-size:12px;color:var(--muted)}
.agenda-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;padding:12px 10px;border:0;border-radius:12px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.agenda-row time{font-size:13px;font-variant-numeric:tabular-nums;color:var(--muted)}
.agenda-row-body{display:grid;gap:2px;min-width:0}
.agenda-row-body strong{font-size:14px;font-weight:500}
.agenda-row-body span{font-size:12px;color:var(--muted)}
.agenda-row:hover{background:var(--surface2)}
.agenda-row:focus-visible,.month-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(prefers-reduced-motion:reduce){.agenda-row{transition:none}}

/* Week: tutte le 24 ore; la griglia scorre internamente con intestazione e colonna orari fisse. */
.calendar-view>.travel-calendar{grid-template-rows:48px repeat(24,60px);overflow:auto;overscroll-behavior:contain}
.travel-calendar .calendar-time-head,.travel-calendar .calendar-day-head{position:sticky;top:0;z-index:4;background:var(--surface)}
.travel-calendar .calendar-day-head.active{background:var(--accent2)}
.travel-calendar .calendar-time-head{left:0;z-index:5}
.travel-calendar .calendar-time{position:sticky;left:0;z-index:3;background:var(--surface)}

/* Add activity: durata e orario di inizio reali nella vista Week. */
.calendar-event{grid-row:var(--row)/span var(--span,2);margin-top:calc(4px + var(--off,0px))}

/* Add activity: modulo. */
.act-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}
.act-field{display:grid;gap:6px;align-content:start;min-width:0}
.act-wide{grid-column:1/-1}
.act-field label{font-size:13px;font-weight:500}
.act-optional{font-weight:400;color:var(--muted)}
.act-form .input{width:100%;box-sizing:border-box;min-height:44px;border:1px solid var(--border);border-radius:12px;background:var(--surface2);color:var(--text);padding:0 12px;font:inherit;font-size:14px}
.act-form textarea.input{padding:10px 12px;min-height:84px;resize:vertical}
.act-form select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%23a4a89a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;cursor:pointer}
.act-form .input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.act-form .input.invalid{border-color:#bd6258}
.act-form input[type=date],.act-form input[type=time]{color-scheme:light}
[data-theme=dark] .act-form input[type=date],[data-theme=dark] .act-form input[type=time]{color-scheme:dark}
.act-times{grid-template-columns:1fr 1fr;gap:12px}
.act-times>div{display:grid;gap:6px;min-width:0}
.act-times .act-error{grid-column:1/-1}
.act-error{min-height:0;font-size:12px;color:#c0675b}
.act-error:empty{display:none}
.act-hint{font-size:12px;color:var(--muted);line-height:1.4}
@media(max-width:560px){.act-form{grid-template-columns:1fr}.act-wide{grid-column:auto}}

/* Requests: vista Board / List. */
.request-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.request-views .seg{cursor:pointer}
.request-view{min-width:0}
.tc-lead-card .lead-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tc-lead-card .lead-foot small{font-size:12px;color:var(--muted)}
.request-filters{display:flex;gap:6px;flex-wrap:wrap;padding:0 18px 12px}
.request-chip{height:32px;padding:0 12px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:12px;cursor:pointer;transition:background-color .16s ease,color .16s ease,border-color .16s ease}
.request-chip:hover{background:var(--surface2);color:var(--text)}
.request-chip.active{background:var(--accent2);border-color:color-mix(in srgb,var(--accent) 55%,transparent);color:var(--text)}
.request-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.request-table{padding:0 18px 14px;overflow-x:auto}
.request-table .tc-table-row{grid-template-columns:minmax(220px,1.5fr) minmax(130px,1fr) 120px 105px 100px 80px;min-width:760px;cursor:pointer}
.request-table .tc-table-row>span{font-size:13px}
.request-table .tc-table-row.head>span{font-size:12px}
[data-theme=dark] .request-chip.active{background:#464f32;border-color:#76814f}
@media(prefers-reduced-motion:reduce){.request-chip{transition:none}}

/* Requests: filtro per owner, nuova richiesta e impostazioni del form. */
.request-head-actions{position:relative}
.request-head-actions .btn.active{border-color:color-mix(in srgb,var(--accent) 60%,transparent);background:var(--accent2)}
.owner-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:190px;padding:6px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 12px 32px rgba(0,0,0,.28)}
.owner-menu button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:40px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.owner-menu button:hover,.owner-menu button:focus-visible{background:var(--surface2);outline:none}
.owner-menu button[aria-checked=true]{color:var(--accent)}
.owner-menu i{font-style:normal;width:14px}
.req-empty-col{margin:6px 4px;font-size:12px;color:var(--muted)}
.fs-form{display:grid;gap:18px}
.fs-form section{display:grid;gap:2px}
.fs-form h3{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;font-weight:500}
.fs-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--border)}
.fs-row:last-child{border-bottom:0}
.fs-row>span{display:grid;gap:3px;min-width:0}
.fs-row strong{font-size:14px;font-weight:500}
.fs-row small{font-size:12px;color:var(--muted)}
.fs-switch{position:relative;flex:0 0 auto;width:44px;height:26px;border:0;border-radius:999px;background:var(--surface2);box-shadow:inset 0 0 0 1px var(--border);cursor:pointer;transition:background-color .16s ease}
.fs-switch i{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--muted);transition:transform .16s ease,background-color .16s ease}
.fs-switch.on{background:var(--accent)}
.fs-switch.on i{transform:translateX(18px);background:#202319}
.fs-switch:focus-visible,.fs-select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.fs-select{width:auto;min-width:130px;min-height:40px;border:1px solid var(--border);border-radius:12px;background:var(--surface2);color:var(--text);padding:0 12px;font:inherit;font-size:13px}
.fs-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}
.fs-link code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
@media(prefers-reduced-motion:reduce){.fs-switch,.fs-switch i{transition:none}}

/* Calendario: filtri per tipo di attività e coppia. */
.cal-filters{position:relative;display:flex;gap:8px}
.cal-filters .btn.active,.mobile-planner-filters button.active{border-color:color-mix(in srgb,var(--accent) 60%,transparent);background:var(--accent2)}
.cal-menu-host{position:relative}
.cal-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:40;min-width:220px;padding:6px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 12px 32px rgba(0,0,0,.28)}
.cal-filters .cal-menu{left:auto;right:0}
.mobile-planner-filters .cal-menu{left:0;right:0;min-width:0;grid-column:1/-1}
.cal-menu button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:40px;height:auto;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.cal-menu button:hover,.cal-menu button:focus-visible{background:var(--surface2);outline:none}
.cal-menu button[aria-checked=true]{color:var(--accent)}
.cal-menu i{font-style:normal;width:14px}
.cal-menu [role=menuitemcheckbox]{justify-content:flex-start}
.cal-box{flex:0 0 auto;width:16px;height:16px;border:1.5px solid var(--muted);border-radius:5px;display:grid;place-items:center}
[aria-checked=true]>.cal-box{background:var(--accent);border-color:var(--accent)}
[aria-checked=true]>.cal-box::after{content:"";width:8px;height:4px;border-left:2px solid #202319;border-bottom:2px solid #202319;transform:translateY(-1px) rotate(-45deg)}
.cal-menu-foot{display:flex;justify-content:flex-end;margin-top:4px;padding-top:4px;border-top:1px solid var(--border)}
.cal-menu-foot button{width:auto;min-height:34px;color:var(--muted)}
.cal-menu-foot button:disabled{opacity:.4;cursor:default}
.cal-note{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;padding:10px 14px;border-radius:12px;background:var(--surface);color:var(--muted);font-size:13px}
.cal-note button{border:0;background:none;color:var(--accent);font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:4px 2px}
@media(max-width:640px){.mobile-planner-filters button{min-width:0}.mobile-planner-filters button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* Requests: richiesta selezionata, scheda dettaglio. */
.tc-lead-card.selected{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 70%,transparent)}
.request-table .tc-table-row.selected{background:var(--accent2)}
.request-aside h3{margin-top:4px}
.rd-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rd-meta{margin-left:auto;font-size:12px;color:var(--muted)}
.rd-summary{margin:12px 0 4px;font-size:14px;line-height:1.5;color:var(--text)}
.rd-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;margin:12px 0}
.rd-grid>div{padding:10px 0;border-bottom:1px solid var(--border);min-width:0}
.rd-grid dt,.rd-notes dt,.rd-readiness>span{font-size:12px;color:var(--muted);margin:0 0 3px}
.rd-grid dd,.rd-notes dd{margin:0;font-size:14px;overflow-wrap:anywhere}
.rd-notes{padding:6px 0 10px}
.rd-readiness{display:grid;gap:6px;margin:6px 0 14px}
.rd-form{margin-top:4px}
@media(max-width:560px){.rd-grid{grid-template-columns:1fr}}

/* Clients: scheda cliente, import CSV. */
.cl-avatar{flex:0 0 auto}
.cl-id{display:grid;gap:2px;min-width:0;flex:1}
.cl-id strong{font-size:15px;font-weight:500}
.cl-id small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.cl-attention{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 4px;padding:12px 14px;border-radius:12px;background:var(--surface2)}
.cl-attention>span{display:grid;gap:2px;min-width:0}
.cl-attention strong{font-size:14px;font-weight:500}
.cl-attention small{font-size:12px;color:var(--muted)}
.cl-consent{border-bottom:0;padding:4px 0}
.imp{display:grid;gap:14px}
.imp-drop{display:grid;justify-items:center;gap:8px;padding:28px 16px;border:1.5px dashed var(--border);border-radius:16px;background:var(--surface2);text-align:center;color:var(--muted);font-size:13px;transition:border-color .16s ease,background-color .16s ease}
.imp-drop strong{font-size:14px;font-weight:500;color:var(--text)}
.imp-drop.over,.imp-drop:focus-visible{border-color:var(--accent);background:var(--accent2);outline:none}
.imp-help{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.imp-help code{padding:1px 5px;border-radius:5px;background:var(--surface2);font-size:12px}
.imp-link{border:0;background:none;color:var(--accent);font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:4px 2px}
.imp-summary{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.imp-summary strong{font-size:14px;font-weight:500;overflow-wrap:anywhere}
.imp-summary span{font-size:12px;color:var(--muted)}
.imp-preview{display:grid;margin-top:8px;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.imp-preview>div{display:grid;grid-template-columns:1.2fr 1.6fr .8fr .8fr;gap:10px;padding:9px 12px;font-size:12px;border-bottom:1px solid var(--border)}
.imp-preview>div:last-of-type{border-bottom:0}
.imp-preview span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.imp-preview small{padding:8px 12px;color:var(--muted);font-size:12px;border-top:1px solid var(--border)}
.imp-issues{margin:10px 0 0;padding:0 0 0 18px;font-size:12px;color:#c0675b;display:grid;gap:3px}
.imp-error{color:#c0675b}
@media(max-width:560px){.imp-preview>div{grid-template-columns:1fr 1fr}.imp-preview>div span:nth-child(n+3){display:none}}
@media(prefers-reduced-motion:reduce){.imp-drop{transition:none}}

/* Trips: filtro per fase, selezione, storybook, task e archivio. */
.timeline-step{cursor:pointer;border-radius:12px;padding:6px 4px;transition:background-color .16s ease}
.timeline-step.filtered i{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 45%,transparent)}
.timeline-step:focus-visible,.journey-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.journey-card{cursor:pointer}
.journey-card.selected{border-color:color-mix(in srgb,var(--accent) 70%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 70%,transparent)}
.journey-stage{display:block;margin-top:10px}
.trip-filter-note{display:flex;align-items:center;gap:10px;margin:0 18px 10px;font-size:13px;color:var(--muted)}
.trip-filter-note button{border:0;background:none;color:var(--accent);font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:4px 2px}
.trip-board .agenda-empty{padding:36px 14px}
.sb-list{display:grid;margin:6px 0 14px;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.sb-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 12px;font-size:13px;border-bottom:1px solid var(--border)}
.sb-row:last-child{border-bottom:0}
.sb-num{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.tk-list{display:grid;margin-top:8px}
.tk-row{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:0 4px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);font:inherit;font-size:14px;text-align:left;cursor:pointer}
.tk-row:last-child{border-bottom:0}
.tk-row:hover{background:var(--surface2)}
.tk-row.done{color:var(--muted);text-decoration:line-through}
.tk-row[aria-checked=true] .cal-box{background:var(--accent);border-color:var(--accent)}
.tk-row[aria-checked=true] .cal-box::after{content:"";width:8px;height:4px;border-left:2px solid #202319;border-bottom:2px solid #202319;transform:translateY(-1px) rotate(-45deg)}
.ar-list{display:grid;margin-top:6px}
.ar-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 2px;border-bottom:1px solid var(--border)}
.ar-row:last-child{border-bottom:0}
.ar-row>span:first-child{display:grid;gap:2px;min-width:0}
.ar-row strong{font-size:14px;font-weight:500}
.ar-row small,.ar-tag{font-size:12px;color:var(--muted)}
@media(prefers-reduced-motion:reduce){.timeline-step{transition:none}}

/* Trips: filtro per fase a schede (tabs) con "All" e conteggi. */
.stage-filter{display:grid;gap:8px;padding:0 18px 14px}
.stage-filter-label{font-size:12px;color:var(--muted)}
.stage-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;scroll-snap-type:x proximity;scrollbar-width:thin}
.stage-tab{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px 0 8px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text);font:inherit;font-size:13px;cursor:pointer;scroll-snap-align:start;transition:background-color .16s ease,border-color .16s ease,color .16s ease}
.stage-num{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--surface2);color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.stage-tab b{font-weight:500;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.stage-tab:hover{background:var(--surface2);border-color:var(--border-strong,var(--border))}
.stage-tab.active{background:var(--accent);border-color:var(--accent);color:#202319}
.stage-tab.active .stage-num{background:rgba(32,35,25,.16);color:#202319}
.stage-tab.active b{color:#202319}
.stage-tab.empty:not(.active){opacity:.6}
.stage-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
[data-theme=dark] .stage-tab:hover:not(.active){background:#2b2d25;border-color:#4a4d40}
@media(prefers-reduced-motion:reduce){.stage-tab{transition:none}}
@media(min-width:900px){.stage-tabs{flex-wrap:wrap;overflow-x:visible}}

/* Pagine a pannelli: riempiono lo schermo se il contenuto è poco, ma crescono e fanno scorrere la pagina se ce n'è di più.
   (Communications resta a schermo intero con scorrimento interno: è una chat.) */
@media(min-width:1251px){
  .main:has(>.tc-page-grid:not(.communication-layout))>.tc-page-grid{flex:1 0 auto;min-height:480px;grid-template-rows:auto;align-content:stretch}
  .main:has(>.tc-page-grid:not(.communication-layout))>.tc-page-grid>*{min-height:auto;max-height:none;overflow:visible}
  .main:has(>.tc-page-grid:not(.communication-layout)){padding-bottom:24px}
}

/* Trips: vista List. */
.trip-views .seg{cursor:pointer}
.trip-table{padding:0 18px 14px;overflow-x:auto}
.trip-table .tc-table-row{grid-template-columns:minmax(200px,1.4fr) 130px minmax(150px,1fr) 90px 90px 100px;min-width:780px;cursor:pointer}
.trip-table .tc-table-row>span{font-size:13px}
.trip-table .tc-table-row.head>span{font-size:12px}
.trip-table .tc-table-row.selected{background:var(--accent2)}
.trip-prog{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.trip-prog b{font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}
.production-pipeline .panel-head .request-head-actions{gap:14px}

/* Filtro per fase compatto: una riga su desktop, scorrimento senza barra su mobile. */
.stage-filter{gap:6px;padding:0 18px 10px}
.stage-tabs{gap:6px;padding:2px 0 4px;scrollbar-width:none;-ms-overflow-style:none}
.stage-tabs::-webkit-scrollbar{display:none;width:0;height:0}
.stage-tab{min-height:34px;padding:0 12px;gap:6px;font-size:12px}
.stage-tab b{font-size:12px}
@media(max-width:899px){
  .stage-filter{padding:0 14px 8px}
  .stage-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 90%,transparent);mask-image:linear-gradient(90deg,#000 90%,transparent);padding-right:24px}
}

/* Filtro per fase: sempre su una sola riga; sotto i 1400px scorre in orizzontale (senza barra) con sfumatura a destra. */
.stage-tabs{flex-wrap:nowrap!important;overflow-x:auto!important}
@media(min-width:1401px){.stage-tabs{-webkit-mask-image:none;mask-image:none;padding-right:0}}
@media(min-width:900px) and (max-width:1400px){.stage-tabs{-webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);mask-image:linear-gradient(90deg,#000 92%,transparent);padding-right:24px}}

/* Tasks: stream interattivo, attenzioni, azioni di eliminazione. */
.attention-row.no-avatar{grid-template-columns:minmax(0,1fr) auto auto}
.attention-row.no-avatar>span:first-child{min-width:0}
.stream-row{cursor:pointer}
.stream-row:hover{background:var(--surface2)}
.stream-row.is-done strong{color:var(--muted);text-decoration:line-through}
.task-check{background:transparent;padding:0;font:inherit;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease}
.task-check:hover{border-color:var(--accent)}
.task-check:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.task-stream .panel-head .segmented{margin-left:auto}
.task-stream-body .agenda-empty{padding:40px 14px}
.focus-row{cursor:pointer}
.focus-row:hover{background:rgba(255,255,255,.07)}
.focus-card .btn.primary{cursor:pointer}
.modal-spacer{flex:1}
.btn.danger-text{color:#d08a7e;border-color:transparent;background:transparent}
.btn.danger-text:hover{background:rgba(190,100,88,.14)}
.btn.danger-solid{background:#b65346;border-color:#b65346;color:#fff}
.btn.danger-solid:hover{background:#c4604f;border-color:#c4604f}
@media(prefers-reduced-motion:reduce){.task-check{transition:none}}

/* Proposals: filtro per fase, vista List, menu e revisione. */
.proposal-board .prop-filter{padding:0 20px 10px}
.prop-views .seg{cursor:pointer}
.proposal-card{cursor:pointer}
.proposal-card.selected{border-color:color-mix(in srgb,var(--accent) 70%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 70%,transparent)}
.proposal-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.prop-more{display:inline-grid;place-items:center;min-width:32px;height:24px;border-radius:8px;letter-spacing:1px;cursor:pointer;color:var(--muted)}
.prop-more:hover,.prop-more:focus-visible{background:var(--surface2);color:var(--text);outline:none}
.proposal-cols.single{display:block}
.proposal-cols.single>div{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:9px;align-items:start}
.proposal-cols.single>div>header,.proposal-cols.single>div>p{grid-column:1/-1}
.proposal-cols.single .proposal-card{margin-bottom:0}
.prop-table{padding:0 18px 14px;overflow-x:auto}
.prop-table .tc-table-row{grid-template-columns:minmax(200px,1.5fr) 110px 100px 140px 90px 40px;min-width:720px;cursor:pointer}
.prop-table .tc-table-row>span{font-size:13px}
.prop-table .tc-table-row.head>span{font-size:12px}
.prop-table .tc-table-row.selected{background:var(--accent2)}
.prop-menu{position:fixed;z-index:60;min-width:200px;padding:6px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 12px 32px rgba(0,0,0,.28)}
.prop-menu button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:40px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.prop-menu button:hover,.prop-menu button:focus-visible{background:var(--surface2);outline:none}
.prop-menu button.danger{color:#d08a7e}
.prop-menu button[aria-checked=true]{color:var(--accent)}
.prop-menu i{font-style:normal;width:14px}
.pr-review-actions{display:flex;gap:8px;flex:0 0 auto}
.pr-review-actions .btn[disabled]{opacity:.55;cursor:default}

/* Communications: conversazioni, messaggi di sistema, menu canali, evidenze. */
.conversation{cursor:pointer}
.conversation-list .panel-head .btn.active{border-color:color-mix(in srgb,var(--accent) 60%,transparent);background:var(--accent2)}
.message.system{align-self:center;max-width:90%;text-align:center;background:transparent;border:1px dashed var(--border)}
.message.system p{margin:2px 0 0;font-size:13px;color:var(--muted)}
.composer textarea{font-size:14px}
.composer .btn[disabled]{opacity:.5;cursor:default}
.comm-menu{position:fixed;z-index:60;min-width:190px;padding:6px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 12px 32px rgba(0,0,0,.28)}
.comm-menu button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:40px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.comm-menu button:hover,.comm-menu button:focus-visible{background:var(--surface2);outline:none}
.comm-menu button[aria-checked=true]{color:var(--accent)}
.comm-menu i{font-style:normal;width:14px}
.comm-link{color:inherit;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent);text-underline-offset:3px}
.comm-link:hover{text-decoration-color:currentColor}
.tag-cloud .tag-add{padding:6px 11px;border:1px dashed color-mix(in srgb,currentColor 45%,transparent);border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:12px;cursor:pointer}
.tag-cloud .tag-add:hover,.tag-cloud .tag-add:focus-visible{background:rgba(255,255,255,.08);outline:none}
.tag-input{height:32px;padding:0 12px;border:1px solid var(--accent);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-size:12px;min-width:140px}
.tag-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

/* Communications: gestione template. */
.tpl-row{align-items:flex-start}
.tpl-row>span:first-child{display:grid;gap:3px;min-width:0}
.tpl-row strong{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tpl-tag{font-style:normal;font-size:11px;font-weight:400;padding:2px 8px;border-radius:999px;background:var(--surface2);color:var(--muted)}
.tpl-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;flex:0 0 auto}
.tpl-ph{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:6px;font-size:12px;color:var(--muted)}
.tpl-ph .btn.sm{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.tpl-preview{padding:12px 14px;border:1px dashed var(--border);border-radius:12px;background:var(--surface2);font-size:13px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text)}
.rd-summary code{padding:1px 5px;border-radius:5px;background:var(--surface2);font-size:12px}
@media(max-width:560px){.tpl-row{flex-direction:column;align-items:stretch}.tpl-actions{justify-content:flex-start}}

/* Reports: menu, fonti cliccabili, note. */
.panel-note{margin:0 16px 14px;padding:10px 12px;border-radius:12px;background:var(--surface2);color:var(--muted);font-size:12px}
.overview-middle>.panel>.panel-note{display:flex;align-items:center}
.rep-menu{position:fixed;z-index:60;min-width:200px;padding:6px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 12px 32px rgba(0,0,0,.28)}
.rep-menu button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:40px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.rep-menu button:hover,.rep-menu button:focus-visible{background:var(--surface2);outline:none}
.rep-menu button[aria-checked=true]{color:var(--accent)}
.rep-menu i{font-style:normal;width:14px}
.panel-head .btn.sm.active{border-color:color-mix(in srgb,var(--accent) 60%,transparent);background:var(--accent2)}
.rep-source{display:block;width:100%;border:0;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:background-color .16s ease}
.rep-source:hover{background:var(--surface2)}
.rep-source.selected{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 70%,transparent)}
.rep-source:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.rep-dest-list .operation-row{border-bottom:1px solid var(--border)}
.rep-dest-list .operation-row:last-child{border-bottom:0}
.rep-format{width:fit-content;margin-top:6px}
.attention-tile{cursor:pointer}
@media print{.sidebar,.topbar,.mobile-nav,#overlay-root,#toast-root,.page-header .actions{display:none!important}.app-shell{display:block!important;height:auto!important;padding:0!important}.workspace{height:auto!important}.main{overflow:visible!important;padding:0!important}body{background:#fff!important}}
@media(prefers-reduced-motion:reduce){.rep-source{transition:none}}

/* Topbar: ricerca globale, crea nuovo, notifiche, aiuto, scorciatoie. */
kbd{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border:1px solid var(--border);border-bottom-width:2px;border-radius:6px;background:var(--surface2);color:var(--text);font:inherit;font-size:12px}
.modal.command{padding:0;overflow:hidden}
.command-results{max-height:min(56vh,440px);overflow-y:auto;padding:6px 8px 8px}
.command-results .command-row{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:12px;cursor:pointer;min-height:48px}
.command-results .command-row.selected{background:var(--accent2)}
.command-results .command-icon{flex:0 0 auto;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--surface2);font-size:12px;font-weight:600;color:var(--muted)}
.command-results .command-icon svg{width:16px;height:16px;stroke:currentColor;fill:none}
.command-copy{display:grid;gap:2px;min-width:0;flex:1}
.command-copy strong{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.command-copy small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.command-type{flex:0 0 auto;font-size:12px;color:var(--muted)}
.command-results .command-label{padding:10px 10px 4px;font-size:12px;color:var(--muted);letter-spacing:.04em}
.command-empty{display:grid;gap:4px;padding:32px 12px;text-align:center;color:var(--muted);font-size:13px}
.command-empty strong{font-size:14px;font-weight:500;color:var(--text)}
.command-foot{display:flex;gap:16px;padding:10px 16px;border-top:1px solid var(--border);font-size:12px;color:var(--muted)}
.command-foot span{display:flex;align-items:center;gap:6px}
.notif-badge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#c0675b;color:#fff;font-size:11px;font-weight:600;line-height:18px;text-align:center;border:2px solid var(--bg,#1b1d18);box-sizing:content-box}
.top-dd{position:fixed;z-index:100;width:min(380px,calc(100vw - 24px));max-height:min(70vh,520px);display:flex;flex-direction:column;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 16px 40px rgba(0,0,0,.35);overflow:hidden}
.top-dd.narrow{width:min(320px,calc(100vw - 24px))}
.top-dd-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:14px 16px 10px;border-bottom:1px solid var(--border)}
.top-dd-head strong{font-size:14px;font-weight:500}
.top-dd-head span{font-size:12px;color:var(--muted)}
.top-dd-list{overflow-y:auto;padding:6px}
.top-dd-item{display:flex;align-items:flex-start;gap:10px;width:100%;padding:10px;border:0;border-radius:12px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.top-dd-item:hover,.top-dd-item:focus-visible{background:var(--surface2);outline:none}
.top-dd-item>span{display:grid;gap:2px;min-width:0;flex:1}
.top-dd-item strong{font-size:13px;font-weight:500}
.top-dd-item small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.top-dd-item time{flex:0 0 auto;font-size:12px;color:var(--muted);padding-top:1px}
.top-dd-item.read strong{color:var(--muted);font-weight:400}
.top-dd-item .notification-dot{flex:0 0 auto;margin-top:6px}
.top-dd-foot{padding:6px;border-top:1px solid var(--border)}
.top-dd-foot button{width:100%;min-height:40px;border:0;border-radius:10px;background:transparent;color:var(--accent);font:inherit;font-size:13px;cursor:pointer}
.top-dd-foot button:hover{background:var(--surface2)}
.sc-list{display:grid;margin-top:6px}
.sc-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:0 2px;border-bottom:1px solid var(--border);font-size:13px}
.sc-row:last-child{border-bottom:0}
.sc-row>span:last-child{display:flex;gap:6px}
.help-page{display:grid;gap:14px}
.help-search{padding:18px;display:grid;gap:8px;border:0;border-radius:20px}
.help-search label{font-size:13px;font-weight:500}
.help-topics{display:grid;gap:10px}
.help-topic-card{border-radius:16px;background:var(--surface);padding:0 18px}
.help-topic-card summary{display:grid;gap:3px;padding:16px 0;cursor:pointer;list-style:none}
.help-topic-card summary::-webkit-details-marker{display:none}
.help-topic-card summary strong{font-size:15px;font-weight:500}
.help-topic-card summary span{font-size:13px;color:var(--muted)}
.help-topic-card summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}
.help-topic-card ol{margin:0;padding:0 0 18px 20px;display:grid;gap:8px;font-size:14px;line-height:1.5}
@media(max-width:640px){.command-foot{display:none}.command-results{max-height:60vh}}

/* Ricerca: popup ancorato alla barra in alto (desktop). */
.search-pop{position:fixed;z-index:110;display:flex;flex-direction:column;max-height:min(72vh,560px);border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 18px 48px rgba(0,0,0,.4);overflow:hidden}
.search-pop .command-input{flex:0 0 auto;height:48px;padding:0 18px 0 46px;border:0;border-bottom:1px solid var(--border);background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23a4a89a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='10' r='6'/%3E%3Cpath d='m15 15 5 5'/%3E%3C/svg%3E") no-repeat 16px center;color:var(--text);font:inherit;font-size:15px;outline:0}
.search-pop .command-results{max-height:min(52vh,420px)}
[data-action="command"][aria-expanded="true"]{visibility:hidden}

/* One mobile "add" button: 40px circle with a plus. Other header actions keep their text label. */
@media(max-width:640px){
  .page-header .actions,.planner-header .actions{width:auto!important;flex:none!important;margin:0!important}
  .page-header .actions .btn.btn-add,.planner-header .actions .btn,.mobile-planner-head .btn.primary{width:40px!important;min-width:40px!important;height:40px!important;padding:0!important;flex:none!important;border-radius:10px!important;font-size:0!important;display:inline-flex!important;align-items:center;justify-content:center;gap:0}
  .page-header .actions .btn.btn-add::after,.planner-header .actions .btn::after{content:"+"!important;font-size:20px!important;line-height:1;font-weight:400}
  .page-header .actions .btn.primary:not(.btn-add){width:auto!important;height:40px!important;padding:0 16px!important;flex:none!important;border-radius:999px!important;font-size:13px!important}
  .page-header .actions .btn.primary:not(.btn-add)::after{content:none!important}
}
@media(max-width:640px){.page-header:has(.btn-add){grid-template-columns:minmax(0,1fr) auto!important;align-items:start;column-gap:12px}.page-header:has(.btn-add) .title{width:auto!important;min-width:0}}
@media(max-width:640px){.mobile-planner-head .btn.primary span{display:none!important}.mobile-planner-head .btn.primary svg{width:18px;height:18px;stroke-width:2}}
/* Dashboard: panels must not grow past the viewport; wide content (funnel) scrolls inside the panel. */
@media(max-width:640px){.overview-middle>.panel,.overview-middle>*{min-width:0!important;max-width:100%!important}.overview-middle .panel-head{flex-wrap:wrap;gap:8px}.overview-middle .panel-head .btn{flex:none}}
/* Squarer selection controls: segmented switches, filter chips and stage tabs share one soft-square shape. */
.segmented .seg,.calendar-toolbar .seg{border-radius:7px!important}
.request-chip,.tag-cloud .tag-add{border-radius:8px!important}
.stage-tab{border-radius:10px!important}
/* Settings navigation on mobile: one compact row that scrolls sideways instead of a wrapping grid. */
@media(max-width:800px){
  .settings-nav{display:flex!important;flex-wrap:nowrap;gap:4px;padding:5px!important;overflow-x:auto!important;overflow-y:hidden;border-radius:14px!important;scroll-snap-type:x proximity;scroll-padding-inline:8px}
  .settings-nav .settings-nav-item{flex:0 0 auto!important;height:38px!important;padding:0 16px!important;white-space:nowrap!important;border-radius:10px!important;font-size:13px;scroll-snap-align:center}
}
/* Modal footers with a destructive action: Delete on the left, the rest grouped on the right (primary last). */
.modal-foot:has(.modal-spacer){align-items:center;flex-wrap:nowrap}
.modal-foot:has(.modal-spacer) .btn{flex:0 0 auto;white-space:nowrap}
.modal-foot:has(.modal-spacer) .btn.danger-text{min-width:0;padding-inline:14px}
.modal-foot:has(.modal-spacer) .modal-spacer{flex:1 1 0;min-width:0}
@media(max-width:720px){
  .modal-foot:has(.modal-spacer){flex-direction:column-reverse;align-items:stretch;flex-wrap:nowrap}
  .modal-foot:has(.modal-spacer) .btn{width:100%;min-width:0}
  .modal-foot:has(.modal-spacer) .modal-spacer{display:none}
}
/* Calendar activity detail */
.calendar-event,.month-chip,.agenda-row,.mobile-room-row[data-cal-ev]{cursor:pointer}
.calendar-event:focus-visible,.month-chip:focus-visible,.agenda-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ev-detail{display:grid;gap:12px}.ev-detail .status{justify-self:start}
.ev-row{display:grid;grid-template-columns:84px minmax(0,1fr);gap:12px;font-size:13px;line-height:1.45}.ev-row span{color:var(--muted)}.ev-row strong{font-weight:500;overflow-wrap:anywhere}
/* Dashboard pipeline: cards stay inside the panel padding and scroll sideways with snap. */
@media(max-width:640px){
  .overview-middle .readiness-grid{display:flex!important;gap:10px;padding:8px 16px 14px!important;margin:-8px 0 0!important;width:100%;box-sizing:border-box;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scroll-padding-inline:16px}
  .overview-middle .readiness-grid::after{content:"";flex:0 0 6px}
  .overview-middle .readiness-grid .readiness-cell{flex:0 0 min(44%,150px)!important;width:auto!important;min-width:0!important;scroll-snap-align:start;box-sizing:border-box}
  .overview-middle .panel-note{margin-left:16px!important;margin-right:16px!important}
}

/* ---- Communications workflow ---- */
.communication-layout{--tw-hover:color-mix(in srgb,var(--text) 6%,transparent);--tw-line-hover:color-mix(in srgb,var(--text) 24%,var(--border))}
.comm-items{display:contents}
.conversation-list{container-type:inline-size}
.comm-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:6px;vertical-align:middle}
.comm-st{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:11px;background:var(--surface2);color:var(--muted);font-style:normal;white-space:nowrap}
.comm-st.open{color:var(--text)}.comm-st.waiting{background:color-mix(in srgb,#d4a24a 22%,transparent);color:inherit}.comm-st.snoozed{background:color-mix(in srgb,#6f8fb0 22%,transparent)}.comm-st.resolved{background:color-mix(in srgb,var(--accent) 24%,transparent)}
.conversation>.comm-st{margin:2px 0 0 4px}
.conversation:hover{background:var(--tw-hover)}
.conversation:focus-visible,.cl-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.comm-thread-head{flex-wrap:wrap;gap:10px}
.comm-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-left:auto}
.message.note{align-self:stretch;max-width:100%;background:color-mix(in srgb,#d4a24a 14%,transparent);border:1px dashed color-mix(in srgb,#d4a24a 55%,var(--border));border-radius:12px}
.message.note small{color:var(--muted)}
.message.is-sending{opacity:.7}.message.is-failed{border:1px solid #c0675b;background:color-mix(in srgb,#c0675b 12%,transparent)}
.message .btn.sm{margin-top:8px}
.message-thread .composer{grid-template-columns:minmax(0,1fr);gap:10px}
.comm-mode{justify-self:start}
.comm-send-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.comm-send-row .spacer{flex:1}
.comm-ctl{display:grid;gap:10px;margin:6px 0 10px}.comm-ctl label{display:grid;gap:6px;font-size:12px;color:var(--muted)}.comm-ctl .input{width:100%;box-sizing:border-box}
.comm-quick{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.comm-empty{margin:0;color:var(--muted);font-size:12.5px}
.comm-links .cl-link{grid-template-columns:70px minmax(0,1fr) auto;padding:9px 10px}
.communication-context .cl-link:hover{background:var(--tw-hover);border-color:var(--tw-line-hover)}
@keyframes tw-new-msg{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:no-preference){
  .message.tw-new-msg{animation:tw-new-msg .32s cubic-bezier(.2,.7,.2,1)}
  .comm-st{transition:background-color .2s ease,color .2s ease}
  .conversation{transition:background-color .16s ease}
}
@keyframes comm-bump{0%{transform:scale(1)}40%{transform:scale(1.28)}100%{transform:scale(1)}}
@keyframes comm-item-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:no-preference){
  .comm-anim .conversation,.comm-anim .agenda-empty{animation:comm-item-in .34s cubic-bezier(.2,.7,.2,1) backwards}
  .comm-anim .conversation:nth-child(2){animation-delay:40ms}.comm-anim .conversation:nth-child(3){animation-delay:80ms}.comm-anim .conversation:nth-child(4){animation-delay:120ms}.comm-anim .conversation:nth-child(n+5){animation-delay:160ms}
  .comm-thread-head .comm-st{animation:tc-fade .3s ease}
}
@media(max-width:640px){.comm-actions{margin-left:0;width:100%}}
.comm-badges{display:inline-flex;align-items:center;gap:6px;margin-left:auto;flex:none}
.comm-badges .comm-dot{margin:0}

/* Status filter: one compact dropdown + search on a single row */
.comm-toolbar{display:flex;align-items:center;gap:8px;padding:6px 8px 10px;min-width:0}
.comm-filter-wrap{flex:none}
.comm-filter{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 12px;border:1px solid var(--border);border-radius:10px;background:transparent;color:var(--text);font:inherit;font-size:13px;white-space:nowrap;cursor:pointer;transition:background-color .16s ease,border-color .16s ease}
.comm-filter:hover,.comm-filter[aria-expanded="true"]{background:var(--tw-hover);border-color:var(--tw-line-hover)}
.comm-filter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.comm-filter b,.comm-status-menu b{display:inline-grid;place-items:center;min-width:22px;height:20px;padding:0 6px;border-radius:999px;background:var(--tw-hover);font-weight:600;font-size:11px;font-variant-numeric:tabular-nums}
.comm-chev{color:var(--muted);transition:transform .2s ease}.comm-filter[aria-expanded="true"] .comm-chev{transform:rotate(180deg)}
.comm-sd{width:8px;height:8px;border-radius:50%;flex:none;background:var(--muted)}
.comm-sd.open{background:var(--accent)}.comm-sd.waiting{background:#d4a24a}.comm-sd.snoozed{background:#6f8fb0}.comm-sd.resolved{background:#7ea585}.comm-sd.all{background:var(--text);opacity:.5}
.comm-search{flex:1;min-width:0;padding:0}.comm-search .input{width:100%;box-sizing:border-box;height:38px;font-size:13px}
.comm-status-menu{padding:6px}
.comm-status-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.comm-status-menu button span{flex:1}
.comm-status-menu button:hover,.comm-status-menu button:focus-visible{background:var(--tw-hover);outline:none}
.comm-status-menu button em{width:14px;font-style:normal;color:var(--accent);text-align:center}
@keyframes comm-bump{0%{transform:scale(1)}40%{transform:scale(1.28)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:no-preference){.comm-filter b.bump{animation:comm-bump .4s cubic-bezier(.3,1.5,.5,1)}.comm-status-menu{animation:tc-pop .16s ease-out backwards}}
.comm-search .input{height:38px!important;min-height:38px}
.comm-items .agenda-empty{display:grid;gap:4px;padding:18px 12px;text-align:center}
.comm-items .agenda-empty strong,.comm-items .agenda-empty span{display:block}

/* ---- Tasks: toolbar, grouping, board ---- */
.task-head-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-left:auto}
.task-stream.is-board .task-seg{display:none}
.task-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:0 14px 10px}
.task-search{flex:1 1 180px;min-width:0}.task-search .input{width:100%;box-sizing:border-box;height:38px!important;min-height:38px;font-size:13px}
.task-filter-btns{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.task-fbtn.on{border-color:var(--accent)}
.stream-group{display:flex;align-items:center;gap:8px;padding:12px 14px 4px;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.stream-group b{font-weight:600;font-size:11px;padding:0 7px;height:18px;display:inline-grid;place-items:center;border-radius:999px;background:var(--tw-hover,rgba(127,127,127,.14))}
.stream-group.overdue{color:#d08a7e}
.stream-row{cursor:pointer;transition:background-color .16s ease}
.stream-row:hover{background:var(--tw-hover,rgba(127,127,127,.08))}
.stream-row:focus-visible,.task-card:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.tk-chip{display:inline-flex;align-items:center;height:18px;padding:0 7px;margin-left:4px;border-radius:999px;background:var(--surface2);color:var(--muted);font-size:10.5px;font-style:normal}
.tk-chip.progress{background:color-mix(in srgb,#6f8fb0 24%,transparent);color:inherit}.tk-chip.waiting{background:color-mix(in srgb,#d4a24a 24%,transparent);color:inherit}
.task-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:12px;overflow-x:auto;padding:0 14px 14px;scroll-snap-type:x proximity}
.task-col{display:grid;align-content:start;gap:10px;padding:10px;border:1px solid var(--border);border-radius:14px;background:var(--surface);min-width:0;scroll-snap-align:start;transition:border-color .16s ease,background-color .16s ease}
.task-col.over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface))}
.task-col>header{display:flex;justify-content:space-between;align-items:center;font-size:13px}.task-col>header span{color:var(--muted);font-size:12px}
.task-col-body{display:grid;gap:8px;min-height:40px}
.task-card{display:grid;gap:6px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface2,transparent);cursor:grab;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}
.task-card:hover{border-color:var(--tw-line-hover,var(--border))}
.task-card.dragging{opacity:.45;transform:scale(.98)}
.task-card.is-done strong{text-decoration:line-through;opacity:.65}
.task-card strong{font-size:13px;font-weight:600;line-height:1.35}.task-card small{color:var(--muted);font-size:12px}
.task-card-foot{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.task-card-foot .tk-chip{margin:0}.task-card-foot .spacer{flex:1}
.task-adv{width:26px;height:26px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--muted);font:inherit;font-size:16px;line-height:1;cursor:pointer;transition:background-color .16s ease,color .16s ease}
.task-adv:hover{background:var(--tw-hover,rgba(127,127,127,.14));color:var(--text)}
@media(prefers-reduced-motion:no-preference){.task-stream-body .stream-row,.task-card{animation:comm-item-in .3s cubic-bezier(.2,.7,.2,1) backwards}}
@media(max-width:640px){.task-board{grid-auto-columns:minmax(240px,82%)}.task-head-actions{width:100%;margin-left:0}}
