/* Demo-only compact planning surface. Existing brand colors and forms remain. */
main{max-width:1180px;padding:0 22px}
header{max-width:1224px;padding:12px 22px}
.demo-banner{padding:5px 14px;font-size:12px}
.intro{padding:14px 0 12px}
.intro .eyebrow,.intro .subtitle{display:none}
h1{font-size:clamp(27px,3vw,34px);letter-spacing:-.8px;margin:0 0 2px}
.lead{font-size:14px;line-height:1.4}
nav{margin:8px 0 7px;gap:5px;flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px}
nav button,.nav-more summary{min-height:38px;padding:6px 12px;font-size:13px;white-space:nowrap}
.nav-button[aria-current=false]{background:transparent;color:var(--ink);border-color:var(--line)}
.list-heading{margin:0 0 8px}.list-heading h2{font-size:18px}
#connection{font-size:11px}
.group-tabs{display:flex;gap:3px;overflow-x:auto;margin:0 0 9px;border-bottom:1px solid var(--line);scrollbar-width:thin}
.group-tab{background:transparent;border:0;border-radius:0;color:var(--muted);padding:7px 13px;min-height:39px;white-space:nowrap;font-size:13px}
.group-tab[aria-pressed=true]{color:var(--ink);border-bottom:3px solid var(--green);background:#edf2e7}
.plan-table{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.plan-head,.plan-summary{display:grid;grid-template-columns:170px 92px minmax(0,1fr);gap:0;align-items:center}
.plan-head{background:#edf2e8;color:#486052;font-size:11px;font-weight:700;letter-spacing:.02em}
.plan-head span,.plan-summary>span{padding:7px 10px;min-width:0}
.plan-head span+span,.plan-summary>span+span{border-left:1px solid #ecf0e9}
.plan-row{border-top:1px solid var(--line);background:#fff}
.plan-row:first-of-type{border-top:0}
.plan-row[open]{background:#fbfcf8}
.plan-summary{cursor:pointer;list-style:none;min-height:46px;font-size:13px;line-height:1.3}
.plan-summary::-webkit-details-marker{display:none}
.plan-summary:hover{background:#f5f8f0}
.plan-summary:focus-visible{outline:3px solid #b7c970;outline-offset:-3px}
.plan-date{font-weight:700;white-space:nowrap}.plan-attendance{font-weight:700;color:#345940;white-space:nowrap}
.plan-rides{display:flex;align-items:baseline;gap:3px 0;flex-wrap:wrap;white-space:normal}
.plan-rides>span{flex:none;max-width:none}
.plan-rides>span+span:before{content:' · ';color:var(--muted)}
.plan-rides .plan-alert{color:#87612a;font-weight:700}
.plan-row[open]>.plan-summary{border-bottom:1px solid var(--line)}
.plan-detail{padding:10px 14px 13px;display:grid;grid-template-columns:1fr 1fr;column-gap:18px;row-gap:6px;font-size:13px}
.roster-line,.roster-names{grid-column:1/-1;margin:0}.roster-names{color:var(--muted)}
.detail-direction{border-top:1px solid var(--line);padding-top:6px;min-width:0}
.detail-direction h4{font-size:13px;margin:0 0 4px}
.detail-car{padding:3px 0;display:flex;gap:7px;flex-wrap:wrap;align-items:baseline}
.detail-car strong{color:var(--ink)}.detail-car span{color:#52695a}
.detail-note{margin:1px 0;color:var(--muted);font-size:12px;width:100%}
.detail-missing{margin:4px 0;color:#86642c;font-weight:700}
.ride-action{grid-column:1/-1;border-top:1px solid var(--line);padding-top:7px;display:flex;align-items:center;gap:12px}
.ride-action .offer{min-height:42px;padding:7px 15px}
.one-way summary{cursor:pointer;color:var(--green);font-weight:700;width:max-content;min-height:38px;padding:8px 0}
.one-way[open]{width:100%}
.ride-options{display:flex;gap:7px;flex-wrap:wrap;padding:4px 0 8px}
.ride-options button{min-height:38px;padding:5px 10px;font-size:13px}
.plan-detail .fold{grid-column:1/-1;margin:0}.plan-detail .fold summary{min-height:32px;padding:5px 0}
.text-button{border:0;background:transparent;color:var(--green);padding:2px 4px;min-height:32px;font-size:12px;text-decoration:underline;text-underline-offset:2px}
.ride-window{display:flex;gap:3px;margin:0 0 8px}
.window-button{background:transparent;border:1px solid var(--line);color:var(--muted);padding:5px 11px;min-height:36px;font-size:12px}
.window-button[aria-pressed=true]{background:#edf2e7;color:var(--ink);border-color:#aac293}
.week-row,.coach-row,.notice-row{display:block;background:#fff;border:1px solid var(--line);border-radius:9px;margin:0 0 5px;overflow:hidden}
.week-summary,.coach-summary{list-style:none;cursor:pointer;padding:9px 12px;display:flex;align-items:center;gap:10px;min-height:44px;font-size:13px}
.week-summary::-webkit-details-marker,.coach-summary::-webkit-details-marker{display:none}
.week-summary:hover,.coach-summary:hover{background:#f5f8f0}
.week-summary strong,.coach-summary strong{min-width:180px;white-space:nowrap}
.week-child{display:flex;gap:5px;align-items:baseline;min-width:0;white-space:nowrap}
.week-child b{font-weight:700}.week-child>span:nth-child(2){color:#4d6855}
.week-transport{color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.week-need,.week-done{margin-left:auto;white-space:nowrap;font-weight:700}
.week-need{color:#87612a}.week-done{color:#345940}
.week-detail,.coach-detail{border-top:1px solid var(--line);padding:8px 13px;font-size:13px}
.week-detail{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.week-child-detail{border-right:1px solid var(--line);padding-right:8px}
.week-child-detail h4{font-size:13px;margin:0}
.week-child-detail .own-transport{font-size:12px;padding:3px 0}
.coach-summary{justify-content:space-between}.coach-summary span{color:var(--muted)}
.coach-detail p{margin:2px 0}.coach-toolbar{display:flex;justify-content:flex-end;margin:-37px 0 4px}
.matrix-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:9px;background:#fff}
.coach-matrix{border-collapse:collapse;width:100%;font-size:12px;min-width:600px}
.coach-matrix th,.coach-matrix td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:center;white-space:nowrap}
.coach-matrix th:first-child{text-align:left;position:sticky;left:0;background:#f5f8f1}
.coach-matrix tr:first-child{background:#edf2e8}
.notice-row{font-size:13px;padding:8px 12px}.notice-row>span{display:inline-block;margin-left:10px;color:#765b2b}
.notice-row summary{cursor:pointer;font-weight:700}.notice-row p{margin:5px 0}
.attendance-row{padding:7px 0}.attendance-row h3{font-size:13px}.attendance-buttons button{min-height:36px;padding:6px 9px;font-size:12px}
.empty-state{padding:12px 0;color:var(--muted);font-size:13px}
footer{padding:18px 0;font-size:12px}
@media(max-width:760px){
 main{padding:0 13px}.intro{padding:10px 0 8px}h1{font-size:29px}.lead{font-size:12px}
 .list-heading{margin-bottom:5px}.list-heading h2{font-size:16px}
 #connection{display:none}
 .group-tabs{margin-bottom:6px}
 .plan-head{display:none}
 .plan-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1px 6px;padding:7px 10px;min-height:62px;font-size:12px}
 .plan-summary>span{padding:0;border:0!important}
 .plan-date{grid-column:1;font-size:13px}.plan-attendance{grid-column:2;grid-row:1;text-align:right}
 .plan-rides{grid-column:1/-1;display:block;line-height:1.25;white-space:normal}
 .plan-rides>span{display:inline;max-width:none}
 .plan-detail{grid-template-columns:1fr;padding:9px 11px}
 .detail-direction{grid-column:1}
 .ride-window{margin:0 0 6px}
 .week-summary{display:block;padding:8px 10px;min-height:55px}
 .week-summary strong{display:block;min-width:0;margin-bottom:2px}
 .week-child{display:grid;grid-template-columns:50px auto minmax(0,1fr);gap:5px;line-height:1.25;margin:2px 0}
 .week-transport{text-align:right}
 .week-need,.week-done{display:block;margin:3px 0 0}
 .coach-summary{display:block;padding:8px 10px;min-height:42px}
 .coach-summary strong,.coach-summary span{display:block;min-width:0;white-space:normal}
 .coach-toolbar{margin:0 0 4px;justify-content:flex-start}
 .attendance-row{display:grid;grid-template-columns:1fr auto;gap:5px}
 .attendance-buttons button{min-height:36px;font-size:11px;padding:5px 7px}
 .notice-row>span{display:block;margin:3px 0 0}
}
@media(max-width:400px){
 header{padding:8px 13px}.brand{font-size:17px}.brand img{width:28px;height:28px}
 nav{margin:5px 0}.nav-button,.nav-more summary{font-size:11px;min-height:34px;padding:5px 8px}
 .demo-banner{font-size:10px;line-height:1.25}
 .plan-summary{min-height:60px}
 .attendance-row{display:block}.attendance-buttons{margin-top:3px}
}
