:root{color-scheme:light;--bg:#f5f7f4;--paper:#fff;--ink:#192c25;--muted:#51665b;--quiet:#596d61;--line:#dfe7de;--green:#214d3e;--dark:#173e33;--sage:#eaf2e9;--serif:Georgia,"Songti SC","Noto Serif CJK SC",serif;--sans:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-family:var(--sans);font-size:14px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);min-width:300px}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--green);text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #488b67;outline-offset:3px}button:disabled{opacity:.6;cursor:wait}h1,h2,h3,p{margin:0}p{line-height:1.65}svg.ico{width:19px;height:19px;flex:none;vertical-align:middle}button{border:0;background:none}.skip{position:fixed;left:20px;top:-70px;z-index:10;background:white;padding:12px}.skip:focus{top:12px}
.sidebar{position:fixed;inset:0 auto 0 0;width:223px;background:#fbfcfa;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:30px 17px 18px;z-index:2}.brand{display:flex;align-items:center;gap:11px;padding:0 9px;color:var(--ink);text-align:left}.brandmark{background:var(--dark);color:#f1f7ef;width:41px;height:41px;border-radius:13px;display:grid;place-items:center}.brandmark .ico{width:24px;height:24px}.brand strong{display:block;font-size:18px;letter-spacing:.03em}.brand small{display:block;color:var(--quiet);font-family:var(--serif);letter-spacing:.09em;font-size:11px;margin-top:3px}.nav-caption{margin:47px 11px 11px;color:var(--quiet);font-size:11px;letter-spacing:.13em}.nav-list{display:grid;gap:5px}.nav-btn{display:flex;align-items:center;gap:12px;text-align:left;padding:13px 12px;border-radius:9px;color:#4e6257;font-weight:550}.nav-btn:hover,.nav-btn.active{background:#e8f0e8;color:#204f3e}.nav-btn.active{font-weight:750}.local-card{margin-top:auto;border:1px solid var(--line);border-radius:12px;padding:13px 11px;display:flex;align-items:flex-start;gap:9px;background:#f5f8f4}.local-card .ico{width:16px;height:16px;color:var(--green);margin-top:1px}.local-card b{font-size:11px;display:block}.local-card small{font-size:10px;color:var(--quiet);line-height:1.6;display:block;margin-top:4px}
.workspace{margin-left:223px}.top{height:73px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,3.5vw,55px);border-bottom:1px solid var(--line);background:#fcfdfb;gap:12px}.crumb,.top-actions{display:flex;align-items:center;gap:10px}.crumb{color:var(--quiet);font-size:13px;white-space:nowrap}.crumb b{color:var(--ink)}.crumb .ico{width:13px;height:13px}.top-actions .btn{min-height:36px;font-size:12px;padding:7px 11px}.top-clock{font-size:11px;color:var(--quiet);white-space:nowrap;margin-right:3px}.mobile-nav{display:none}
main{max-width:1450px;margin:auto;padding:26px clamp(22px,3.5vw,55px) 48px}.hero{isolation:isolate;position:relative;min-height:246px;display:flex;align-items:flex-end;border-radius:17px;overflow:hidden;color:white;background:#254938;padding:29px 32px}.hero.demo{background-image:linear-gradient(90deg,#102e22ec 0%,#102e2280 55%,#102e2220 100%),url('./alpine-cover.jpg');background-size:cover;background-position:center 54%}.hero:not(.demo):after{content:"";position:absolute;width:380px;height:380px;border:1px solid #b2d6b033;border-radius:50%;right:-40px;top:-130px;box-shadow:0 0 0 36px #b2d6b013,0 0 0 72px #b2d6b013,0 0 0 108px #b2d6b013;z-index:-1}.hero-content{max-width:95%}.hero-kicker{display:flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.19em;font-size:10px;color:#e2eee2;font-weight:650;margin-bottom:13px}.hero-kicker .ico{width:15px;height:15px}.hero h1{font-family:var(--serif);font-size:clamp(30px,4vw,50px);letter-spacing:.035em;line-height:1.16;overflow-wrap:anywhere}.hero p{color:#edf4ed;font-size:13px;margin:11px 0 19px}.hero-meta{display:flex;flex-wrap:wrap;gap:7px}.hero-meta span{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#f4faf4;border:1px solid #e1f1e456;background:#163b2da9;border-radius:6px;padding:6px 8px}.hero-meta .ico{width:13px;height:13px}.hero-index{position:absolute;right:26px;bottom:24px;color:#e4f0e5;font-family:var(--serif);letter-spacing:.17em;font-size:10px}
.date-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:20px 0 23px;padding-bottom:14px;border-bottom:1px solid var(--line)}.date-tabs{display:flex;gap:8px;min-width:0;overflow:auto;padding:3px}.day{white-space:nowrap;display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:9px 12px;color:var(--muted);font-size:12px}.day b{font-weight:750}.day small{font-size:11px}.day.selected{background:var(--dark);border-color:var(--dark);color:white}.day:hover:not(.selected){background:var(--sage)}.date-caption{font-size:11px;color:var(--quiet);display:flex;align-items:center;gap:6px;white-space:nowrap}.date-caption .ico{width:14px;height:14px}
.dashboard{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(250px,1fr);gap:21px;align-items:start}.stack{display:grid;gap:16px;min-width:0}.eyebrow{font-size:10px;letter-spacing:.15em;color:var(--quiet);font-weight:750;margin-bottom:6px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:8px;margin:0 0 11px}.section-head h2,.page-title{font-size:23px;line-height:1.2;letter-spacing:.025em}.section-head p,.page-intro{color:var(--quiet);font-size:12px}.section-head p{margin-top:4px}.panel,.focus,.event,.ticket-card{background:var(--paper);border:1px solid var(--line);border-radius:13px}.focus{padding:15px 16px;background:#edf4eb;border-color:#d7e6d6}.focus-top,.focus-body,.next-row{display:flex;align-items:center;gap:10px}.focus-top{justify-content:space-between;margin-bottom:13px}.focus-status{display:inline-flex;align-items:center;gap:6px;color:#24523b;font-weight:750;font-size:11px}.focus-status:before{content:"";width:7px;height:7px;background:#41885c;border-radius:50%;box-shadow:0 0 0 3px #cbe3cd}.focus-time{color:var(--quiet);font-variant-numeric:tabular-nums;font-size:11px}.focus-body{align-items:flex-start}.focus-body h3{font-size:20px;line-height:1.3}.focus-body p,.next-row p{font-size:11px;color:var(--quiet);margin-top:4px;overflow-wrap:anywhere}.focus-body .focus-info,.next-row>div:nth-child(2){flex:1;min-width:0}.focus-actions,.row-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}.next-row{padding:13px 0 0;margin-top:13px;border-top:1px solid #d6e3d5}.next-row strong{font-size:13px}.next-row .next-time{font-size:12px;color:var(--green);font-weight:700;white-space:nowrap}.tag{display:inline-flex;align-items:center;gap:4px;font-size:10px;line-height:1.25;color:#43574a;background:#edf1ed;border-radius:5px;padding:4px 6px;white-space:nowrap}.tag.warn{background:#fbf1df;color:#76521f}.tag.good{background:#e5f3e7;color:#24543a}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:37px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--green);white-space:nowrap;font-weight:650;font-size:12px;text-align:center}.btn:hover{background:var(--sage);border-color:#bfd2c1}.btn.primary{color:white;background:var(--dark);border-color:var(--dark)}.btn.primary:hover{background:#2e5d4a}.btn.subtle{background:transparent}.btn .ico{width:15px;height:15px}.btn.small{font-size:11px;padding:5px 8px;min-height:31px}.icon-button{width:36px;height:36px;display:grid;place-items:center;border-radius:8px;color:var(--green);flex:none}.icon-button:hover{background:var(--sage)}.glyph{width:38px;height:38px;border-radius:10px;background:#e8f1ea;color:#245940;display:grid;place-items:center;flex:none}.glyph.sight{background:#e8eef5;color:#405c78}.glyph.meal{background:#f6eddd;color:#805925}.glyph.stay{background:#eeeaf6;color:#654e87}.glyph.small{width:31px;height:31px;border-radius:8px}.glyph.small .ico{width:16px;height:16px}
.filters{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 11px}.filter{border:1px solid var(--line);border-radius:7px;background:white;padding:6px 9px;font-size:11px;color:var(--muted)}.filter.active,.filter:hover{border-color:#c4d6c6;background:#eaf2e9;color:var(--green)}.timeline{display:grid;gap:8px}.event{display:grid;grid-template-columns:52px 37px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px;position:relative}.event.current{border-color:#b6d0b8}.event-time{font-size:12px;font-weight:750;font-variant-numeric:tabular-nums}.event-time small{display:block;color:var(--quiet);font-size:10px;margin-top:4px;font-weight:400}.event-title{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.event h3{font-size:13px;overflow-wrap:anywhere}.event p{color:var(--quiet);font-size:11px;margin-top:3px;overflow-wrap:anywhere}.event .icon-button{width:31px;height:31px}
.panel{padding:15px}.panel-title{display:flex;align-items:center;gap:8px}.panel-title .ico{width:17px;height:17px;color:var(--green)}.panel h2{font-size:15px}.panel .intro{font-size:11px;color:var(--quiet);margin-top:5px}.scenic-list{display:grid;gap:0;margin-top:9px}.scenic-row{padding:11px 0;display:grid;grid-template-columns:38px 1fr;gap:8px;border-bottom:1px solid #e8ede7}.scenic-row:last-child{border-bottom:0}.scenic-row time{font-weight:750;font-size:11px;color:var(--green);padding-top:3px}.scenic-row h3{font-size:12px;display:inline;margin-right:4px}.scenic-row p{color:var(--quiet);font-size:11px;margin-top:4px}.scenic-row.now h3{color:#24553c}.scenic-row.now{background:#f3f8f2}.panel-link{padding:0;color:#24553c;font-size:11px;font-weight:700;display:inline-flex;gap:5px;align-items:center;margin-top:7px}.panel-link:hover{text-decoration:underline}.panel-link .ico{width:13px;height:13px}.mini-list{margin-top:8px}.mini-row{display:flex;width:100%;align-items:center;gap:8px;text-align:left;padding:8px 0;border-bottom:1px solid #e8ede7}.mini-row:last-child{border-bottom:0}.mini-row:hover strong{text-decoration:underline}.mini-row strong{font-size:12px;display:block;overflow-wrap:anywhere}.mini-row small{font-size:10px;color:var(--quiet);display:block;margin-top:3px}.mini-row .mini-label{margin-left:auto}.day-note{font-size:11px;color:var(--quiet)}
.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:7px 0 19px}.page-title{font-size:31px}.page-intro{margin-top:7px}.page-actions{display:flex;gap:7px;flex-wrap:wrap}.ticket-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.ticket-card{padding:15px;min-width:0}.ticket-card h3{font-size:16px}.ticket-card p{font-size:11px;color:var(--quiet);margin-top:4px}.ticket-head{display:flex;align-items:center;gap:10px}.ticket-head>div:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}.ticket-files{margin-top:10px}.ticket-file{display:flex;align-items:center;gap:7px;border-top:1px solid var(--line);padding:8px 0}.ticket-file .file-name{flex:1;min-width:0;font-size:12px;overflow-wrap:anywhere}.ticket-file .file-name small{display:block;font-size:10px;color:var(--quiet);margin-top:3px}.empty{padding:22px;border:1px dashed #c6d4c7;border-radius:11px;color:var(--quiet);background:#fafcf9;font-size:13px}
.editor-tabs{display:flex;gap:7px;margin-bottom:12px}.editor-tabs .active{background:var(--dark);color:white}.editor-grid{display:grid;gap:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:11px 0}.field{display:grid;gap:5px;font-size:12px;font-weight:650;min-width:0}.field.wide{grid-column:1/-1}.field input,.field select,.field textarea,textarea.source{width:100%;min-width:0;padding:8px 9px;border:1px solid #ccd9cd;border-radius:7px;background:white;font-weight:400}.field textarea{min-height:72px;resize:vertical}.field small{font-size:10px;color:var(--quiet);font-weight:400}.field.check{display:flex;align-items:center;gap:7px}.field.check input{width:auto}.error{color:#a02f28;font-size:12px;margin:7px 0}.source{min-height:370px;margin-top:10px;resize:vertical;font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;line-height:1.5;tab-size:2}.editor-list{display:grid;gap:0;margin-top:9px}.editor-item{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);padding:8px 0}.editor-item>div:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}.editor-item small{display:block;color:var(--quiet);font-size:10px;margin-top:3px}.danger{color:#9b3d32}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
dialog{border:1px solid var(--line);border-radius:15px;padding:0;width:min(575px,calc(100vw - 26px));max-height:calc(100dvh - 28px);color:var(--ink);box-shadow:0 14px 60px #173e3350}dialog::backdrop{background:#172f2799}.dialog-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 16px;background:white;border-bottom:1px solid var(--line)}.dialog-head h2{font-size:18px;overflow-wrap:anywhere}.dialog-body{padding:15px 16px 18px}.dialog-body h3{font-size:14px;margin:15px 0 5px}.dialog-body .detail-meta{color:var(--quiet);font-size:12px;margin-bottom:10px;overflow-wrap:anywhere}.dialog-body p{white-space:pre-wrap;overflow-wrap:anywhere}.detail-list{margin:5px 0 0;padding-left:19px;line-height:1.7;color:var(--muted)}.ticket-image{display:block;width:100%;max-height:70dvh;object-fit:contain;margin-top:10px;background:#f4f6f3}.ticket-pdf{width:100%;height:52dvh;border:1px solid var(--line);margin-top:10px}.toast{position:fixed;bottom:20px;right:20px;z-index:4;color:white;background:var(--dark);padding:11px 14px;border-radius:9px;box-shadow:0 4px 20px #173e3344;max-width:calc(100vw - 40px);font-size:12px}
@media(max-width:990px){.sidebar{width:175px;padding-inline:12px}.workspace{margin-left:175px}.hero{min-height:217px}.dashboard{gap:13px;grid-template-columns:minmax(0,1.42fr) minmax(220px,1fr)}main,.top{padding-inline:22px}.event{grid-template-columns:44px 32px minmax(0,1fr) auto;gap:7px}.event .glyph{width:32px;height:32px}.date-caption{display:none}}
@media(max-width:760px){.sidebar{display:none}.workspace{margin-left:0}.top{height:57px;padding:0 14px}.top-clock{display:none}.crumb .home-crumb,.crumb .ico{display:none}main{padding:14px 14px calc(83px + env(safe-area-inset-bottom))}.hero{padding:20px;min-height:202px;border-radius:13px}.hero h1{font-size:clamp(26px,7vw,38px)}.hero p{margin-bottom:13px}.hero-index{display:none}.hero-kicker{margin-bottom:10px}.date-row{margin:12px 0 15px;padding-bottom:9px}.day{padding:8px 9px;gap:6px}.dashboard{grid-template-columns:1fr;gap:14px}.mobile-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;inset:auto 0 0;padding:4px 7px calc(4px + env(safe-area-inset-bottom));background:#fbfcfa;border-top:1px solid var(--line);z-index:3}.mobile-nav .nav-btn{flex-direction:column;gap:3px;justify-content:center;padding:6px 3px;font-size:10px}.mobile-nav .ico{width:17px;height:17px}.ticket-grid{grid-template-columns:1fr}.toast{bottom:calc(65px + env(safe-area-inset-bottom))}.page-heading{flex-direction:column}.top .btn{min-height:34px}}
@media(max-width:365px){.top-actions .export-top{display:none}.form-grid{grid-template-columns:1fr}.hero-meta span{font-size:10px}.event{gap:6px}.event .tag{font-size:9px}}
[hidden]{display:none!important}

@media(max-width:990px){.hero-index{display:none}}

.sidebar .nav-list{margin-top:35px}
.crumb{min-width:0}
.crumb .crumb-page{flex:none;color:var(--quiet);font-weight:550}
.trip-switch{display:flex;align-items:center;gap:6px;min-width:0;padding:6px 7px;border-radius:7px;background:var(--sage);color:var(--green);font-weight:700}
.trip-switch span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trip-switch .ico{display:block}
.top-actions{flex:none}
.hero h1+.hero-meta{margin-top:16px}
.hero:not(.demo){min-height:187px}
.date-tabs{width:100%}
.trip-empty{margin-top:16px;display:flex;align-items:center;justify-content:space-between}
.library-group+.library-group{margin-top:23px}
.library-group .section-head h2{font-size:18px}
.library-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(270px,100%),1fr));gap:9px}
.trip-card{display:flex;align-items:center;gap:11px;min-width:0;padding:14px;text-align:left;border:1px solid var(--line);border-radius:12px;background:white}
.trip-card:hover,.trip-card.selected{border-color:#b6d0b8;background:#f4f8f3}
.trip-card-body{display:grid;gap:4px;flex:1;min-width:0;overflow-wrap:anywhere}
.trip-card strong{font-size:15px}
.trip-subtitle{font-size:12px;color:var(--muted)}
.trip-card small,.library-note{font-size:11px;color:var(--quiet)}
.trip-card>.ico{width:14px;height:14px;color:var(--green)}
.library-note{margin-top:17px}
.library-empty h2{font-size:16px}
@media(max-width:760px){.crumb-page{display:none}.trip-switch{max-width:100%}.mobile-nav .nav-btn{white-space:nowrap}.library-group+.library-group{margin-top:17px}}

/* Periods give long days a scan-friendly outline. */
/* Timeline cards share one set of columns. */
.periods{display:grid;gap:14px}
.period>summary{display:flex;align-items:center;gap:8px;min-height:35px;padding:5px 9px;list-style:none;cursor:pointer;border-bottom:1px solid var(--line);color:var(--muted)}
.period>summary:hover{background:#edf2ed}
.period>summary::-webkit-details-marker{display:none}
.period>summary strong{font-size:12px;font-weight:650}
.period>summary small{margin-left:auto;font-size:11px;color:var(--quiet)}
.period>summary .ico{width:14px;height:14px}
.period[open]>summary .ico{transform:rotate(90deg)}
.period[open]>.timeline{margin-top:7px}
.timeline{--time-col:43px;--glyph-col:34px;--col-gap:9px;--row-pad:10px}
.timeline .event,.timeline .route-leg{grid-template-columns:var(--time-col) var(--glyph-col) minmax(0,1fr) 24px;gap:var(--col-gap);padding-inline:var(--row-pad)}
.timeline .glyph{width:var(--glyph-col);height:var(--glyph-col);border-radius:9px}
.timeline .glyph .ico{width:18px;height:18px}
.timeline .event-time{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;color:#294339}
.event-time time{display:block}
.event-time .event-end{font-size:11px;font-weight:400;color:var(--quiet);margin-top:2px}
.timeline .event{padding-block:11px;border-radius:11px;min-height:64px}
.timeline .event h3{font-size:14px;line-height:1.35}
.timeline .event-content p,.route-leg-info small{font-size:11px;line-height:1.4;color:var(--quiet)}
.timeline .event .icon-button{width:24px;height:28px}
.timeline .event .icon-button .ico{width:15px;height:15px}
.timeline .event-sight{background:#f0f6fc;border-color:#dce7f2}
.timeline .event-sight h3{color:#264761}
.timeline .event-sight .glyph{background:#e0ebf6;color:#365f81}
.timeline .event-meal{background:#fff7e8;border-color:#efe5ce;min-height:59px;padding-block:9px}
.timeline .event-meal h3{color:#634424}
.timeline .event-meal .glyph{background:#f6e8cb;color:#81552b}
.timeline .event-stay{background:#f7f3fb;border-color:#e9e0f1}
.timeline .event.current{border-color:#76a087}

.focus-sight,.ticket-sight{background:#f1f7ff;border-color:#c8d9e8}
.focus-meal{background:#fff6e6;border-color:#ebddbd}
.focus-transport,.ticket-transport{background:#f4f7f5}
.focus-stay{background:#f7f3fb;border-color:#e1d7ec}
.next-sight strong{color:#284f6c}.next-meal strong{color:#754819}
.library-card{min-width:0;display:grid;background:white;border:1px solid var(--line);border-radius:12px}
.library-card .trip-card{width:100%;border:0;border-radius:11px 11px 0 0;min-height:68px}
.trip-tools{display:flex;gap:3px;justify-content:flex-end;padding:2px 8px;border-top:1px solid #e9eee8}
.trip-tools .icon-button{width:34px;height:34px}
.trip-tools [data-act=remove-trip]{color:#913f36}
.sync-conflict{margin-top:12px;padding:10px;border:1px solid #ebddbd;border-radius:8px;background:#fff8eb}
.sync-conflict h3{margin:0}
.focus-time{text-align:right}

.dashboard{column-gap:21px;row-gap:0;grid-template-areas:"heading ." "main aside";grid-template-rows:auto 1fr}
.focus-heading{grid-area:heading}
.dashboard-main{grid-area:main;align-content:start}
.dashboard-aside{grid-area:aside;align-content:start}

/* The route background starts after the time column. */
.route-card{display:grid;position:relative;min-width:0;padding:1px 0;border:1px solid transparent}
.route-card::before{content:"";position:absolute;inset:0 0 0 calc(var(--row-pad) + var(--time-col) + var(--col-gap) + 13px);border-radius:9px;background:#edf2ee;pointer-events:none}
.route-leg{position:relative;display:grid;align-items:center;text-align:left;width:100%;min-height:53px;padding-block:6px;border-radius:8px;color:#354a40}
.route-leg.route-walk{min-height:46px;padding-block:4px}
.route-connected .route-leg+.route-leg::before{content:"";position:absolute;top:0;right:var(--row-pad);left:calc(var(--row-pad) + var(--time-col) + var(--col-gap) + 16px);border-top:1px dashed #cbd7ce}
.timeline .route-leg{grid-template-columns:calc(var(--time-col) + 16px) var(--glyph-col) minmax(0,1fr) 24px}
.route-leg:hover,.route-leg.route-current{background:linear-gradient(to right,transparent calc(var(--row-pad) + var(--time-col) + var(--col-gap) + 13px),#dce9df88 0)}
.route-guide{position:absolute;z-index:1;top:0;bottom:0;left:calc(var(--row-pad) + var(--time-col) + 4px);width:15px;display:grid;place-items:center;color:#6e8578;pointer-events:none}
.route-guide::before{content:"";position:absolute;inset:0 auto 0 50%;border-left:1px dashed #a9baae}
.route-guide .ico{position:relative;width:15px;height:19px;padding-block:2px;background:var(--bg)}

.route-leg .glyph{background:#e2ebe4;color:#4b6658}
.route-leg.route-walk .glyph{height:30px}
.route-leg>.ico{width:15px;height:15px;justify-self:center}
.route-leg-info{display:grid;gap:2px;min-width:0}
.route-leg-info strong{font-size:12px;line-height:1.35;overflow-wrap:anywhere}
@media(max-width:365px){.timeline{--time-col:40px;--glyph-col:30px;--col-gap:6px;--row-pad:8px}}

.restaurant-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.restaurant-tabs button{border:1px solid #e4d2af;border-radius:7px;background:#fff8eb;color:#614421;padding:7px 9px;overflow-wrap:anywhere;text-align:left}
.restaurant-tabs button[aria-selected=true]{background:#765126;border-color:#765126;color:white;font-weight:700}
.restaurant-content{border-left:2px solid #ead8b5;padding-left:10px}
.restaurant-address{display:flex;align-items:flex-start;gap:6px;font-size:12px;color:var(--muted);margin:0 0 6px!important}
.restaurant-address .ico{width:14px;height:14px;margin-top:3px}
.restaurants-editor,.restaurant-fields{min-width:0;border:1px solid #e4d2af;border-radius:8px;padding:9px;margin:0;background:#fffbf2}
.restaurants-editor>legend,.restaurant-fields>legend{padding:0 5px;font-weight:700}
.restaurants-editor .intro{font-weight:400;color:var(--quiet)}
.restaurant-fields{margin:8px 0;background:white}
.restaurant-fields .form-grid{margin:4px 0 8px}
@media(max-width:990px){.dashboard{column-gap:13px}}
@media(max-width:760px){
  .dashboard,.dashboard.with-focus,.dashboard.with-tickets{display:flex;flex-direction:column;gap:13px;align-items:stretch}
  .dashboard>.focus-heading{order:0}
  .dashboard-main,.dashboard-aside{display:contents}
  .dashboard .focus{order:1}
  .dashboard .timeline-section{order:2}
  .dashboard .side-tickets{order:3}
  .dashboard .dashboard-side{order:4}
  .dashboard .focus-heading .section-head{margin:0}
}

/* Keep the card itself as the detail button's hit area. */
.event .icon-button{position:static}
.event .icon-button::after{content:"";position:absolute;inset:0;border-radius:inherit;cursor:pointer}
.event:has(.icon-button:focus-visible){outline:3px solid #488b67;outline-offset:2px}
.event .icon-button:focus-visible{outline:none}
@media(hover:hover){.event:hover{box-shadow:0 0 0 1px #6e958277}}
html.dialog-open{overflow:hidden;overscroll-behavior:none;scrollbar-gutter:stable}
html.dialog-open body{position:fixed;top:var(--dialog-offset);left:0;right:0;overflow:hidden}
dialog{overscroll-behavior:contain}
.dashboard .focus{background:#e1f0e4;border-color:#80a88c;border-inline-start:5px solid #377857;box-shadow:0 2px 10px #214d3e12}
.focus .focus-status{background:#246044;color:white;border-radius:6px;padding:4px 8px}
.focus .focus-status::before{background:#bce6c7;box-shadow:none}

.ticket-face{--ticket-accent:#32694d;--ticket-bg:#edf5ed;border:1px solid #dce6dd;border-top:4px solid var(--ticket-accent);border-radius:12px;padding:16px;background:var(--ticket-bg)}
.ticket-face-admission{--ticket-accent:#426b93;--ticket-bg:#f0f6fc}
.ticket-face-sports{--ticket-accent:#a06b2b;--ticket-bg:#fff7e8}
.ticket-face-flight{--ticket-accent:#536c9c;--ticket-bg:#f1f5fc}
.ticket-face-generic{--ticket-accent:#6d647b;--ticket-bg:#f7f4fa}
.ticket-face-top{display:flex;justify-content:space-between;align-items:center;color:var(--ticket-accent);font-size:12px}
.ticket-face h3{font-size:20px;line-height:1.4;margin:16px 0!important}
.ticket-data{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:16px 0;padding:14px 0;border-block:1px dashed #c7d5ca}
.ticket-data dt{font-size:11px;color:var(--muted)}
.ticket-data dd{margin:4px 0 0;font-size:15px;font-weight:650;overflow-wrap:anywhere;white-space:pre-wrap}
.ticket-notes{font-size:12px;color:var(--muted)}
.ticket-qr{margin:14px auto 0;max-width:255px;padding:10px;background:white;text-align:center;border-radius:8px}
.ticket-qr svg{display:block;width:100%;height:auto}
.ticket-qr p{font-size:10px;color:var(--muted);margin-top:7px}

.ticket-file{flex-wrap:wrap}.ticket-file .file-name{flex-basis:120px}

.ticket-qr.ticket-barcode{max-width:100%;min-width:0;border-radius:8px}
.barcode-viewport{overflow-x:auto;background:#fff}
.ticket-barcode svg{width:100%;max-width:none;height:auto;shape-rendering:crispEdges}
