:root{--navy:#031426;--ink:#09203b;--gold:#b88919;--cream:#fbf7ee;--muted:#6f7b8b;--line:#e2d8c7;--serif:Georgia,"Times New Roman",serif}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}.wrap{width:min(100% - 28px,980px);margin:auto}.builder-hero{background:linear-gradient(145deg,#031426,#07566c);color:#fff;padding:24px 0 30px}.back{color:#f0be45;text-decoration:none;font-weight:850;font-size:13px}.kicker{color:#9a781f;font-size:10px;font-weight:950;letter-spacing:.16em}.builder-hero .kicker{color:#f0be45;margin-top:18px}.builder-hero h1{font:500 clamp(42px,10vw,68px)/.94 var(--serif);margin:8px 0}.builder-hero p{color:#dbe6ed;line-height:1.45;max-width:720px}.builder-main{padding:16px 0 calc(110px + env(safe-area-inset-bottom))}.start-panel,.next-choice{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px;padding:24px 0;border-bottom:1px solid var(--line)}.section-number{color:#b88919;font-weight:950;font-size:11px;padding-top:4px}.start-panel h2,.next-choice h2,.day-summary h2,.candidate-head h2{font:500 32px/1.02 var(--serif);margin:7px 0 10px}.start-panel p,.next-choice p,.candidate-head p{color:var(--muted);line-height:1.45;margin:0 0 14px}.next-choice>div:last-child{min-width:0}.category-grid{display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,minmax(136px,auto));grid-auto-columns:calc((100% - 54px)/2);column-gap:10px;row-gap:10px;overflow-x:auto;max-width:100%;min-width:0;padding:2px 2px 8px;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.category-grid::-webkit-scrollbar{display:none}.category-grid button{scroll-snap-align:start;min-width:0;min-height:136px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--ink);text-align:left;padding:12px}.category-grid button.on{border:2px solid var(--gold);background:#fff8df}.category-grid b,.category-grid small{display:block}.category-grid b{font-size:14px;line-height:1.25;overflow-wrap:anywhere}.category-grid small{color:var(--muted);font-size:11px;line-height:1.35;margin-top:6px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.category-swipe-hint{font-size:11px;color:#82621b;text-align:right;font-weight:850;letter-spacing:.01em;margin:7px 4px 0}.category-swipe-hint[hidden]{display:none}@media(min-width:640px){.category-grid{grid-auto-columns:calc((100% - 72px)/3);column-gap:12px;row-gap:12px;grid-template-rows:repeat(2,minmax(126px,auto))}.category-grid button{min-height:126px}}@media(min-width:940px){.category-grid{grid-auto-columns:calc((100% - 96px)/4)}}@media(max-width:390px){.category-grid button{padding:10px}.category-grid b{font-size:13px}.category-grid small{font-size:10px}}.day-summary{margin:12px 0 4px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px}.day-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.day-summary-head button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:8px 10px;font-size:10px;font-weight:900}.day-stop{display:grid;grid-template-columns:36px minmax(0,1fr) 34px;align-items:center;gap:9px;padding:11px 0;border-top:1px solid #eee7da}.day-stop>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#f7efd9;color:#7b611a;font-size:10px;font-weight:950}.day-stop b,.day-stop small{display:block}.day-stop b{font-size:15px}.day-stop small{color:var(--muted);font-size:10px;margin-top:3px}.day-stop button{width:32px;height:32px;border:0;border-radius:50%;background:#f0f2f4;color:#587086;font-size:20px}.day-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.day-metrics>div{background:#f8f5ee;border-radius:12px;padding:10px}.day-metrics small,.day-metrics b{display:block}.day-metrics small{font-size:8px;color:#8a6a17;font-weight:950;letter-spacing:.06em;line-height:1.25}.day-metrics b{font-size:14px;margin-top:5px}.day-warning{margin:10px 0 0;background:#fff4d6;border-radius:11px;padding:9px 10px;color:#72530b;font-size:11px;font-weight:750}.day-summary-actions{margin-top:12px}.finish-btn{width:100%;min-height:50px;border:0;border-radius:13px;background:var(--navy);color:#fff;font-weight:950}.candidate-section{padding:26px 0}.candidate-head{margin-bottom:12px}
.candidate-section{padding:22px 0;scroll-margin-top:110px}
.next-choice{scroll-margin-top:110px}
.candidate-head{margin-bottom:12px}
.candidate-rail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px;padding:2px 0 18px}
.candidate-card{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 4px 13px #0314260a;min-width:0}
.candidate-card.has-thumb{grid-template-columns:88px minmax(0,1fr)}
.candidate-thumb{width:88px;height:100%;min-height:128px;max-height:220px;object-fit:cover;object-position:center;background:#f0ece4;display:block}
.candidate-body{min-width:0;padding:12px}
.candidate-town{color:#99751d;font-size:9px;font-weight:950;letter-spacing:.1em;text-transform:uppercase}
.candidate-card h3{font:700 19px/1.09 var(--serif);margin:3px 0 5px}
.candidate-card p{color:var(--muted);font-size:11px;line-height:1.4;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.candidate-distance{color:#0a5368;font-size:10px;font-weight:900;line-height:1.4;margin:7px 0 0}
.candidate-travel{color:#596f7d;font-size:10px;margin:2px 0 0}
.candidate-note{font-size:10px;line-height:1.4;color:#7a6018;background:#fbf4e4;padding:6px 8px;border-radius:8px;margin-top:7px}
.candidate-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.candidate-actions button,.candidate-actions a{min-height:36px;display:inline-flex;justify-content:center;align-items:center;padding:0 10px;border:1px solid #d9cfbd;border-radius:9px;background:#fff;color:var(--navy);font-weight:900;font-size:10px;text-decoration:none;cursor:pointer}
.candidate-actions .primary{background:var(--navy);border-color:var(--navy);color:#fff}
.candidate-actions .remove{color:#7b4827}
.category-total{display:inline-grid;place-items:center;background:#f5ecd8;border-radius:999px;min-width:23px;min-height:21px;padding:0 5px;font-size:11px;margin-left:5px;color:#71530f}
.category-grid button.on .category-total{background:#efd890}
.empty-state{border:1px dashed #d7cdbb;border-radius:16px;padding:20px;color:var(--muted);line-height:1.45;grid-column:1/-1}
.day-dock[hidden],.day-summary[hidden],#guidedBuilder[hidden],#candidateSection[hidden]{display:none!important}
.day-dock{position:fixed;z-index:90;left:50%;bottom:calc(12px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(calc(100% - 24px),560px);display:flex;align-items:center;justify-content:space-between;gap:12px;background:#031426;color:#fff;border:1px solid #ffffff26;border-radius:17px;padding:11px 12px;box-shadow:0 16px 40px #0005}.day-dock small,.day-dock b{display:block}.day-dock small{font-size:9px;color:#d8bf79;font-weight:900;letter-spacing:.08em}.day-dock b{font-size:12px;margin-top:2px}.day-dock button{border:0;border-radius:11px;background:#d7a72e;color:#142033;min-height:40px;padding:0 14px;font-weight:950}@media(min-width:760px){.candidate-rail{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.wrap{width:calc(100% - 20px)}.start-panel,.next-choice{grid-template-columns:28px minmax(0,1fr)}.start-panel h2,.next-choice h2,.day-summary h2,.candidate-head h2{font-size:28px}.day-metrics{grid-template-columns:1fr}.candidate-rail{grid-template-columns:minmax(0,1fr)}.candidate-card.has-thumb{grid-template-columns:78px minmax(0,1fr)}.candidate-thumb{width:78px;min-height:118px}.candidate-body{padding:10px}.candidate-card h3{font-size:19px}}
.day-stop .day-stop-notice{color:#755a17;background:#fcf3e1;border-radius:6px;padding:4px 6px;line-height:1.4;margin-top:6px;font-size:10px}
