/* Qystone Events — planner (/plan). Builds on qy.css; every color is a token. */
.top{display:flex;justify-content:space-between;align-items:end;gap:var(--s6);margin-bottom:var(--s6)}
.top h1{font-size:var(--t-h1);line-height:var(--t-h1-lh);margin-bottom:var(--s2)}
.lede{color:var(--ink-muted);max-width:60ch}
.layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:var(--s6);align-items:start}
.panel{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--r-lg);min-width:0}
.form{padding:var(--s6)}
.preview{padding:var(--s6);position:sticky;top:var(--s4)}
.steps{display:flex;gap:var(--s2);margin-bottom:var(--s6)}
.step{height:4px;flex:1;border-radius:var(--r-sm);background:var(--steel-300)}
.step.active{background:var(--qystone-deep)}
.hint{color:var(--ink-muted);margin:0 0 var(--s6)}
.field{margin:0 0 var(--s4)}
label,.field-label{display:block;font-weight:600;margin-bottom:var(--s2)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
.choices{display:flex;flex-wrap:wrap;gap:var(--s2)}
.choice{border:1px solid var(--control);background:var(--surface-raised);color:var(--ink);border-radius:var(--r-md);padding:8px 14px;min-height:40px;transition:border-color var(--lift),background-color var(--lift),color var(--lift)}
.choice:hover{border-color:var(--qystone-deep)}
.choice.selected{background:var(--qystone-deep);color:var(--on-qystone);border-color:var(--qystone-deep)}
.choice.mt{margin-top:var(--s2)}
.radio{display:flex;gap:var(--s3);align-items:center;min-height:44px;margin:0;font-weight:400;cursor:pointer}
.radio input{width:20px;height:20px;min-height:0;margin:0;accent-color:var(--qystone-deep)}
.actions{display:flex;justify-content:space-between;gap:var(--s3);margin-top:var(--s6)}
.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 var(--s6);border-radius:var(--r-md);font-weight:600;transition:transform var(--lift),border-color var(--lift),background-color var(--lift)}
.primary{border:1px solid var(--qystone-deep);background:var(--qystone-deep);color:var(--on-qystone)}
.primary:hover{background:var(--qystone);border-color:var(--qystone);transform:translateY(-1px)}
.secondary{border:1px solid var(--line);background:var(--surface-raised);color:var(--ink)}
.secondary:hover{border-color:var(--qystone-deep);transform:translateY(-1px)}
.primary:active,.secondary:active{transform:translateY(0)}
.secondary.inline-label{display:inline-flex;cursor:pointer}
.eyebrow{font-family:var(--font-display);font-size:var(--t-label);line-height:var(--t-label-lh);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--qystone-deep);margin:0 0 var(--s2)}
.preview h2{font-size:var(--t-h2);line-height:var(--t-h2-lh)}
.summary{background:var(--surface-sunken);padding:var(--s4);border-radius:var(--r-md);margin:var(--s4) 0}
.summary strong{display:block}
.results{margin-top:var(--s4)}
.result{border-top:1px solid var(--line);padding:var(--s3) 0}
.result strong{display:block}
.meta{font-size:var(--t-small);line-height:var(--t-small-lh);color:var(--ink-muted);margin:var(--s1) 0}
.badge{display:inline-block;font-size:var(--t-label);line-height:var(--t-label-lh);font-weight:600;border-radius:var(--r-sm);padding:2px 6px;background:var(--surface-sunken);color:var(--ink-muted);margin-right:var(--s1)}
.caution{background:var(--status-warn-tint);color:var(--status-warn)}
.empty{color:var(--ink-muted)}
.brief{white-space:pre-wrap;background:var(--surface-sunken);border-radius:var(--r-md);padding:var(--s4);font-size:var(--t-small);line-height:var(--t-small-lh)}
.hidden{display:none}
.range{width:100%;accent-color:var(--qystone-deep);padding:0;border:0;min-height:0}
.range-value{font-family:var(--font-data);font-size:var(--t-h2);line-height:var(--t-h2-lh);font-weight:600}
.inline{display:flex;justify-content:space-between;align-items:center;gap:var(--s3)}
.error{color:var(--status-critical);font-weight:600;font-size:var(--t-small);line-height:var(--t-small-lh)}
.hint-inline{font-size:var(--t-small);line-height:var(--t-small-lh);color:var(--ink-muted);margin-top:var(--s1)}
.hint-inline.mt{margin-top:var(--s2)}
.field.mt{margin-top:var(--s3)}
.hp{position:absolute;left:-9999px}
.ml{margin-left:var(--s2)}
/* date picker: status colors carry the word + glyph in the markup, never color alone */
.date-picker{border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s4);margin:var(--s4) 0}
.weekday-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--s1);margin:var(--s2) 0}
.date-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s2);margin:var(--s2) 0 var(--s4)}
.weekday-group h3{margin:var(--s4) 0 0}
.weekday,.day{border-radius:var(--r-sm);border:1px solid var(--steel-300);padding:var(--s2) 2px;background:var(--surface-sunken);color:var(--ink);text-align:center;font-size:var(--t-small);line-height:var(--t-small-lh)}
.day{position:relative;min-height:66px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}
.date-options .day{min-height:94px}
.day span,.day small{font-size:var(--t-label);line-height:var(--t-label-lh)}
.day strong{font-family:var(--font-data);font-size:var(--t-body);margin:2px}
.day .date-text{font-size:var(--t-small);line-height:var(--t-small-lh);white-space:normal;font-weight:600}
.weekday.green,.day.green{background:var(--status-ok-tint);border-color:var(--status-ok);color:var(--ink)}
.weekday.yellow,.day.yellow{background:var(--status-warn-tint);border-color:var(--status-warn);color:var(--ink)}
.weekday.red,.day.red{background:var(--status-critical-tint);border-color:var(--status-critical);color:var(--ink);text-decoration:line-through}
.day.red .holiday-flag{text-decoration:none}
.holiday-flag{display:block;font-style:normal;font-size:var(--t-label);line-height:1.15;margin:var(--s1) 2px 0;color:var(--ink-muted)}
.cross{position:absolute;font-size:28px;color:var(--status-critical)}
/* map */
.map-panel{position:relative;margin-top:var(--s4);padding:var(--s4);border:1px solid var(--line);border-radius:var(--r-md);min-width:0}
.map-panel .inline{flex-wrap:wrap}
.map-panel button:disabled{opacity:.5;cursor:default}
.map-controls{display:flex;flex-wrap:wrap;gap:var(--s1);margin:var(--s3) 0 var(--s2)}
.map-controls button{background:var(--surface-sunken);border:1px solid var(--control);border-radius:var(--r-sm);padding:6px 12px;color:var(--ink);min-height:36px}
.map-tiles{height:320px;position:relative;overflow:hidden;background:var(--surface-sunken);border:1px solid var(--steel-300);border-radius:var(--r-md);cursor:crosshair}
.map-tiles img{position:absolute;width:256px;height:256px;pointer-events:none}
.map-pin{position:absolute;transform:translate(-50%,-80%);font-size:34px;color:var(--status-critical);text-shadow:0 1px 3px var(--surface-raised);pointer-events:none}
.map-attribution{position:absolute;right:3px;bottom:3px;background:var(--surface-raised);opacity:.92;padding:2px 4px;font-size:var(--t-label);line-height:var(--t-label-lh);color:var(--ink-muted);z-index:2;border-radius:var(--r-sm)}
/* quote */
.quote-note,.quote-card{background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s4);margin:var(--s4) 0}
.quote-note p{margin:var(--s1) 0;font-size:var(--t-small);line-height:var(--t-small-lh)}
.quote-card h3{font-family:var(--font-data);font-size:32px;line-height:36px;font-weight:600;margin:var(--s2) 0}
.quote-card ul{padding-left:20px;font-size:var(--t-small);line-height:var(--t-small-lh)}
.quote-card h4{margin-bottom:var(--s1)}
.service-branch{border:1px solid var(--line);border-radius:var(--r-md);margin:var(--s3) 0;overflow:hidden}
.service-branch summary{padding:var(--s3) var(--s4);cursor:pointer;font-weight:600;background:var(--surface-sunken);display:flex;justify-content:space-between;gap:var(--s3)}
.service-branch summary span{font-weight:400;font-size:var(--t-small);color:var(--ink-muted)}
.branch-body{padding:var(--s4)}
.quote-line{display:flex;justify-content:space-between;gap:var(--s3);padding:var(--s3) 0;border-bottom:1px solid var(--line)}
.quote-line small{display:block;color:var(--ink-muted);font-size:var(--t-small);line-height:var(--t-small-lh);margin-top:var(--s1)}
.quote-line b{white-space:nowrap;font-family:var(--font-data);font-weight:600}
@media(max-width:850px){.layout{grid-template-columns:1fr}.preview{position:static}.top{align-items:start;flex-direction:column}}
@media(max-width:520px){.form,.preview{padding:var(--s4)}.grid2{grid-template-columns:1fr}.actions{flex-wrap:wrap}.date-options,.weekday-row{gap:2px}.date-options .day{min-height:85px}.day{min-height:57px}.quote-card{padding:var(--s3)}.quote-line{flex-wrap:wrap}}
/* series */
.series-list{margin-top:var(--s4);padding-top:var(--s4);border-top:1px solid var(--line)}
.series-events{list-style:none;margin:var(--s3) 0;padding:0;display:flex;flex-direction:column;gap:var(--s3)}
.series-event{border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s3) var(--s4) 0;background:var(--surface)}
.se-head{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);margin-bottom:var(--s2)}
.series-event .grid2 .field{margin-bottom:var(--s3)}
.quote-events{margin:var(--s3) 0 var(--s4);border-top:1px solid var(--line)}
