:root{--paper:#f5f0e5;--ink:#27251f;--red:#ed5b3d;--blue:#236b77;--yellow:#e6b942;--line:#c7bdad;--soft:#e8e0d1}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:Georgia,"Songti SC",serif;background-image:radial-gradient(#c8beae 0.7px,transparent .7px);background-size:15px 15px}button,input,textarea{font:inherit}button{cursor:pointer}header{height:82px;border-bottom:2px solid var(--ink);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1220px)/2))}.logo{display:flex;align-items:center;gap:12px;font:700 14px/1 sans-serif;letter-spacing:2px}.logo>span{display:grid;place-items:center;width:42px;height:42px;border:2px solid var(--ink);border-radius:50%;font:italic 700 22px Georgia;background:var(--yellow)}.logo small{display:block;font:9px/2 monospace;color:#797164;letter-spacing:1px}.ink-button{border:2px solid var(--ink);background:var(--ink);color:var(--paper);padding:11px 16px;font:700 12px sans-serif;box-shadow:3px 3px 0 var(--red)}.ink-button:hover{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--red)}main{width:min(1220px,calc(100% - 40px));margin:auto}.intro{min-height:310px;display:flex;justify-content:space-between;align-items:end;padding:55px 20px 45px;border-left:1px solid var(--line);border-right:1px solid var(--line)}.kicker{font:700 10px monospace;letter-spacing:2px;color:var(--red)}h1{font-size:clamp(48px,7vw,88px);letter-spacing:-5px;line-height:.9;margin:20px 0 0}h1 i{font-weight:400;color:var(--blue)}.intro-copy{width:310px;font-size:15px;line-height:1.8;margin:0 0 5px;border-top:3px solid var(--red);padding-top:14px}.toolbar{border:2px solid var(--ink);background:#fbf8f0;min-height:80px;display:flex;align-items:center;padding:15px 20px;gap:25px;box-shadow:5px 5px 0 #bbb09f}.trip-name{display:flex;flex-direction:column;border-right:1px solid var(--line);padding-right:25px}.trip-name label{font:700 9px monospace;color:#7e7465;letter-spacing:1px}.trip-name input{border:0;background:transparent;font-size:19px;font-weight:700;width:250px;padding:6px 0 0;outline:0}.summary{display:flex;gap:22px;margin-right:auto}.summary span{font:11px monospace;color:#766d60}.summary b{display:block;font:700 18px Georgia;color:var(--ink)}.text-button{border:0;border-bottom:1px solid var(--red);background:none;color:var(--red);font-size:11px;padding:4px}.empty{text-align:center;padding:110px 20px}.empty h2{font-size:26px;margin:28px 0 8px}.empty p{color:#82796c;margin:0 0 26px;font-size:14px}.stack{height:70px;position:relative;width:100px;margin:auto}.stack i{position:absolute;display:block;width:76px;height:50px;border:2px solid var(--ink);background:#fff8e9;left:12px;transform:rotate(-7deg)}.stack i:nth-child(2){transform:rotate(5deg);background:var(--yellow);top:8px}.stack i:nth-child(3){transform:rotate(0);background:#f7f0e3;top:16px}.days{padding:55px 0 90px;display:grid;gap:55px}.day{display:grid;grid-template-columns:185px 1fr;gap:28px}.day-head{position:sticky;top:15px;align-self:start;border-top:5px solid var(--ink);padding-top:13px}.day-head time{font:700 11px monospace;color:var(--red)}.day-head h2{font-size:31px;margin:6px 0 16px}.day-totals{border-top:1px solid var(--line);padding-top:12px;font:10px/1.9 monospace;color:#71695d}.day-totals b{color:var(--ink)}.card-list{display:grid;gap:17px;min-width:0}.route-card{display:grid;grid-template-columns:78px 10px minmax(0,1fr) auto;gap:18px;align-items:stretch;background:#fffaf0;border:1px solid var(--ink);padding:0 18px 0 0;min-height:128px;box-shadow:4px 4px 0 var(--soft);position:relative;transition:.15s}.route-card.dragging{opacity:.35;transform:rotate(1deg)}.route-card.drag-over{border-top:6px solid var(--red)}.time-tab{background:var(--blue);color:#fff;display:grid;place-content:center;text-align:center}.time-tab b{font:700 20px monospace}.time-tab small{font:9px monospace;color:#bad0d2;margin-top:5px}.route-line{width:2px;background:var(--ink);align-self:stretch;position:relative}.route-line:before{content:"";width:8px;height:8px;border:2px solid var(--ink);background:var(--yellow);border-radius:50%;position:absolute;left:-5px;top:24px}.card-body{padding:20px 0;min-width:0}.card-body h3{font-size:22px;margin:0 0 8px;overflow-wrap:anywhere}.chips{display:flex;gap:7px;flex-wrap:wrap}.chip{font:10px monospace;background:#eae2d3;padding:5px 7px}.chip.transit{background:#d8e8e7;color:#165863}.card-body p{font-size:12px;color:#756d61;line-height:1.6;margin:12px 0 0;overflow-wrap:anywhere}.card-actions{display:flex;flex-direction:column;justify-content:center;gap:7px}.card-actions button{background:none;border:1px solid var(--line);width:32px;height:30px;color:#70675b}.drag-handle{cursor:grab;font-size:16px}.relation{margin:-5px 0 -12px 78px;display:flex;align-items:center;gap:9px;font:700 10px monospace;color:#6e665b}.relation:before{content:"";width:32px;height:1px;background:currentColor}.relation.conflict{color:#cf3e2b}.relation.gap{color:var(--blue)}dialog{width:min(650px,calc(100% - 30px));padding:0;border:2px solid var(--ink);background:var(--paper);box-shadow:10px 10px 0 #171612}dialog::backdrop{background:#26231dcc}dialog form{padding:28px}.dialog-head{display:flex;justify-content:space-between;align-items:start;border-bottom:2px solid var(--ink);padding-bottom:16px;margin-bottom:22px}.dialog-head small{font:700 9px monospace;color:var(--red);letter-spacing:2px}.dialog-head h2{font-size:28px;margin:5px 0 0}.dialog-head button{border:0;background:none;font-size:28px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-grid label{font:700 10px sans-serif;letter-spacing:.5px;position:relative}.form-grid .wide{grid-column:1/-1}.form-grid input,.form-grid textarea{display:block;width:100%;border:1px solid var(--ink);background:#fffaf0;padding:11px;margin-top:6px;outline:0}.form-grid input:focus,.form-grid textarea:focus{box-shadow:3px 3px 0 var(--yellow)}.form-grid label>span{position:absolute;right:10px;bottom:12px;color:#80766a;font-size:10px}.form-error{color:#bc351f;font-size:11px;min-height:15px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.paper-button{border:1px solid var(--ink);background:transparent;padding:11px 16px;font-size:12px}@media(max-width:760px){header{padding:0 18px}.intro{display:block;min-height:0;padding:45px 16px}.intro-copy{margin-top:38px;width:auto}.toolbar{align-items:flex-start;flex-wrap:wrap}.trip-name{width:100%;border:0;border-bottom:1px solid var(--line);padding:0 0 10px}.trip-name input{width:100%}.day{grid-template-columns:1fr;gap:14px}.day-head{position:static;display:flex;justify-content:space-between;align-items:end}.day-head h2{margin-bottom:0}.day-totals{text-align:right}.route-card{grid-template-columns:65px 6px minmax(0,1fr);padding-right:10px;gap:11px}.card-actions{grid-column:3;flex-direction:row;justify-content:flex-end;padding-bottom:10px}.relation{margin-left:65px}h1{letter-spacing:-3px}}@media(max-width:480px){main{width:calc(100% - 20px)}header .ink-button{padding:9px}.logo div{font-size:11px}.summary{width:100%;justify-content:space-between}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.route-card{grid-template-columns:59px 5px minmax(0,1fr)}.time-tab b{font-size:16px}.card-body h3{font-size:18px}}
