:root{--ink:#344e4d;--muted:#657c78;--line:#dbe9e3}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:linear-gradient(160deg,#edf7f1,#f4f6fb);font-family:system-ui,-apple-system,"Yu Gothic",sans-serif}main{max-width:650px;margin:auto;padding:16px 13px 30px}header{position:relative;margin:2px 0 18px}.brand{font-size:27px;font-weight:700;letter-spacing:1px}.version{position:absolute;right:0;top:10px;font-size:10px;color:var(--muted)}header p{font-size:13px;margin:8px 0;color:var(--muted)}.card{background:white;border:1px solid var(--line);border-radius:17px;padding:16px;margin:12px 0;box-shadow:0 3px 12px #375c4c07}h1,h2{font-size:17px;margin:0 0 13px}label{display:block;font-size:13px;font-weight:600;margin:12px 0 6px}input,select{font:inherit;font-size:16px;min-width:0;width:100%;min-height:48px;border:1px solid #bfd3cc;border-radius:10px;padding:12px;background:#fff;color:var(--ink)}button,a.map-link{font:inherit;border:1px solid #bfd3cc;border-radius:11px;min-height:46px;padding:12px;color:var(--ink);cursor:pointer;font-size:14px;background:#f0f6f3}button:disabled{opacity:.5;cursor:default}.add,.sort{display:block;width:100%;margin-top:13px;background:#d9ecdf;border-color:#a8c8b3;font-weight:700;font-size:16px}.sort{background:#dfe8f6;border-color:#b0c3dd}.list-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.list-head h2{margin:0}.quiet{padding:9px;font-size:12px;min-height:42px}.stop{border-top:1px dashed var(--line);padding:13px 0}.stop:first-child{margin-top:12px}.stop-title{display:flex;gap:8px;align-items:center}.number{display:inline-flex;align-items:center;justify-content:center;border:1px solid #9bb8ad;border-radius:50%;width:26px;height:26px;flex:0 0 auto;font-size:14px}.stop strong{font-size:16px;overflow-wrap:anywhere}.stop p{font-size:14px;line-height:1.7;margin:7px 0;overflow-wrap:anywhere}.controls{display:flex;gap:7px;justify-content:flex-end}.controls button{min-width:40px;padding:8px;font-size:12px}.candidate{font-size:13px;margin-top:8px}.note,#empty,footer{font-size:12px;line-height:1.8;color:var(--muted)}.origin{font-weight:600;font-size:14px}.map-link{display:block;text-decoration:none;text-align:center;background:#d8eadd!important;border-color:#a7c6b0!important;font-weight:700;font-size:16px!important;margin-top:9px}#status{font-size:13px;line-height:1.8;overflow-wrap:anywhere}footer{text-align:center;padding:16px 4px}a:focus-visible,button:focus-visible{outline:3px solid #659387;outline-offset:3px}

.list-actions{display:flex;gap:6px;flex-shrink:0}.history-button{background:#dfe8f6}dialog{width:min(94vw,620px);max-height:88dvh;overflow:auto;border:1px solid var(--line);border-radius:17px;padding:17px;color:var(--ink)}dialog::backdrop{background:#21352d66}.history-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.history-head h2{margin:0}.history-head strong{font-size:14px;white-space:nowrap}.history-record{border-top:1px solid var(--line);padding:13px 0}summary{cursor:pointer;padding:12px 0;font-size:14px}.history-stop{padding:8px 0;border-top:1px dashed var(--line)}.history-stop p{margin:6px 0;font-size:14px;overflow-wrap:anywhere}#history-delete-all{margin-top:12px}@media(max-width:350px){.list-head h2{font-size:14px}.list-actions .quiet{font-size:11px;padding:7px}}

.earnings-link{display:block;text-align:center;border:1px solid #bfd3cc;border-radius:11px;background:#e4eee7;color:var(--ink);padding:13px;text-decoration:none;font-weight:700}

/* VIP palette: warm ivory text, charcoal surfaces, champagne accents. */
:root{color-scheme:dark;--ink:#f1eade;--muted:#bbb3a6;--line:#484033;--gold:#d8bc83;--gold-dark:#2b251b}
body{background:radial-gradient(ellipse at 90% 0,#342b1d 0,transparent 45%),linear-gradient(150deg,#0d0e10,#18191b 70%,#101113);color:var(--ink);background-attachment:fixed}
main{padding-top:23px}header{padding:0 2px 18px;border-bottom:1px solid #6b5838;margin-bottom:21px}header::before{content:'PRIVATE DRIVER';display:block;font-size:10px;letter-spacing:3.5px;color:var(--gold);margin-bottom:9px}.brand{font-size:28px;font-weight:650;letter-spacing:2px;color:#f7efdf}header p{color:var(--muted);font-size:12px}.version{color:var(--gold);top:28px;border:1px solid #615037;padding:4px 7px;border-radius:4px}
.card{background:linear-gradient(135deg,#232426,#1b1c1f);border-color:var(--line);border-radius:13px;box-shadow:0 10px 28px #0003;padding:18px;margin:16px 0}.card h1,.card h2{color:#e8d3ab;font-weight:650;letter-spacing:.3px}label{color:#d6cbb8}input,select{background:#131517;border-color:#5c5140;color:#f7f1e7;border-radius:8px;box-shadow:inset 0 2px 5px #0003;min-height:49px}input::placeholder{color:#a39c91;opacity:1}input:focus,select:focus{outline:2px solid #d8bc83;outline-offset:2px;border-color:var(--gold)}button{background:#2c2c2b;border-color:#665a45;color:#eee3cf;border-radius:8px;transition:filter .15s,transform .15s}button:active,a.map-link:active,.earnings-link:active{transform:translateY(1px);filter:brightness(.9)}button:disabled{opacity:.45}.add,.sort{background:linear-gradient(120deg,#dec89c,#c4a16b);border-color:#e4cca0;color:#201b14;font-size:16px;font-weight:750;box-shadow:0 4px 16px #0003}.sort{margin-top:14px}.list-head{flex-wrap:wrap;row-gap:12px}.list-actions{margin-left:auto}.quiet{background:#28292b;color:#e1d4bc;border-color:#5f523d}.history-button{background:#382f21;border-color:#86704a}.stop{border-color:#494133;padding:16px 0}.stop-title strong{color:#f6eedd}.number{border-color:#b49a6e;color:#e8cd9e;background:#30291e;width:28px;height:28px}.stop p{color:#d4cfc6;font-size:15px}.controls button{background:#29292b;min-height:44px;min-width:44px;border-color:#584f40}.note,#empty,footer{color:var(--muted)}.origin{color:#eee0c7}#status{color:#e8cd9e}.map-link{background:linear-gradient(120deg,#d9bf8c,#bfa06b)!important;border-color:#e4c994!important;color:#201b14!important;box-shadow:0 4px 15px #0003;min-height:52px;display:flex!important;align-items:center;justify-content:center;line-height:1.65}.earnings-link{background:linear-gradient(120deg,#302a21,#252321);color:#eed8ae;border:1px solid #9c8051;border-radius:8px;min-height:50px}.earnings-link::before{content:'¥';display:inline-block;margin-right:10px;font-size:18px;color:var(--gold)}footer{font-size:11px;line-height:1.9}dialog{background:#1c1d20;border-color:#8d744c;color:var(--ink);box-shadow:0 20px 70px #0008;border-radius:13px}dialog::backdrop{background:#050608c9;backdrop-filter:blur(4px)}.history-head h2{color:#ead5ae}.history-record,.history-stop{border-color:#4d4435}summary{color:#e0c797}.history-stop p{color:#d4cfc6}a:focus-visible,button:focus-visible{outline:3px solid #e7cd9b;outline-offset:3px}@media(prefers-reduced-motion:reduce){button{transition:none}}@media(max-width:350px){main{padding-left:10px;padding-right:10px}.card{padding:14px}.brand{font-size:25px}.version{font-size:9px}}

.header-tools{position:absolute;right:0;top:28px;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.header-tools .version{position:static}.guide-link{font-size:11px;color:#e7cd9b;text-underline-offset:4px;min-height:30px;display:flex;align-items:center}header p{margin-top:21px}@media(max-width:350px){.guide-link{font-size:10px}.header-tools{gap:6px}}

.guide-chapters{display:grid;gap:9px}.guide-chapters button{text-align:left;line-height:1.7;width:100%;min-height:48px}

/* Brand text remains separate from header controls on narrow phones. */
.app-header .brand-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.app-header .brand{flex:1 1 190px;font-size:clamp(20px,5vw,27px);line-height:1.55;letter-spacing:.5px;overflow-wrap:anywhere}.app-header .header-tools{position:static;flex:0 0 auto;gap:5px;align-items:flex-end}.app-header .header-tools .version{position:static;margin:0}.app-header .guide-link{font-size:11px;min-height:32px;white-space:nowrap}.app-header .app-tagline{margin:17px 0 0;padding:2px 0 2px 14px;border-left:2px solid #bfa06b;color:#e3d7c1;font-size:14px;line-height:1.95;letter-spacing:.15px}.app-header .app-tagline strong{color:#edd2a0;font-weight:650}.app-header .app-tagline span{color:#c5bcad}@media(max-width:350px){.app-header .brand-row{gap:7px}.app-header .brand{flex-basis:170px;font-size:20px}.app-header .guide-link{font-size:10px}.app-header .app-tagline{font-size:13px}}

.app-header .app-tagline{margin-top:8px}.app-header .tagline-last{display:flex;align-items:center;justify-content:space-between;gap:7px;font-size:clamp(11.5px,3.4vw,14px)}.app-header .tagline-last>span{min-width:0;white-space:nowrap}.app-header .tagline-last .guide-link{flex:0 0 auto;min-height:30px;font-size:clamp(10px,2.8vw,11px);color:#e7cd9b;line-height:1.6;margin-left:auto}

.next-action-hint{font-size:13px;line-height:1.8;color:#ead5ae;background:#29251e;border:1px solid #6a5637;border-left:3px solid #d8bc83;border-radius:8px;padding:11px 13px;margin:12px 0 16px}.next-action{position:relative;outline:2px solid #ffe1a3!important;outline-offset:3px;box-shadow:0 0 0 5px #d8bc8326,0 0 22px #e5bf6273;animation:next-action-glow 2.4s ease-in-out infinite}.next-action::after{content:'次はここ';position:absolute;top:-14px;right:10px;font-size:10px;line-height:1.5;padding:2px 7px;border-radius:10px;background:#f5dfb0;color:#211b12;font-weight:700;border:1px solid #c39d5e;pointer-events:none}.next-action.candidate{background:#30291d}.map-link.next-action{margin-top:17px}.add.next-action,.sort.next-action{margin-top:20px}@keyframes next-action-glow{0%,100%{box-shadow:0 0 0 5px #d8bc8326,0 0 15px #e5bf6240}50%{box-shadow:0 0 0 5px #d8bc8340,0 0 27px #e5bf6280}}@media(prefers-reduced-motion:reduce){.next-action{animation:none}}

.map-web-fallback{display:block;text-align:right;color:#c5b18d;font-size:12px;padding:10px 2px;min-height:40px;text-underline-offset:4px}.map-ready-dialog{max-width:620px}.map-ready-dialog h2{font-size:17px;margin:0}.map-ready-primary{margin-top:16px!important}

/* Normalize native date/time controls so their picker buttons stay within the app column. */
input[type="date"],input[type="month"],input[type="time"],input[type="datetime-local"]{display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;margin-inline:0}input[type="date"]::-webkit-date-and-time-value,input[type="month"]::-webkit-date-and-time-value,input[type="time"]::-webkit-date-and-time-value,input[type="datetime-local"]::-webkit-date-and-time-value{min-width:0;max-width:100%;text-align:left}input[type="date"]::-webkit-calendar-picker-indicator,input[type="month"]::-webkit-calendar-picker-indicator,input[type="time"]::-webkit-calendar-picker-indicator,input[type="datetime-local"]::-webkit-calendar-picker-indicator{margin:0;padding:0}

/* iPhone month/date fields otherwise retain a wider native minimum width than their card. */
input[type="date"],input[type="month"]{-webkit-appearance:none;appearance:none}input[type="date"]::-webkit-date-and-time-value,input[type="month"]::-webkit-date-and-time-value{width:100%;min-width:0;max-width:100%;text-align:left}

/* Import controls: local CSV/TSV roster and pasted LINE dispatch text. */
textarea{font:inherit;font-size:16px;line-height:1.65;min-width:0;width:100%;max-width:100%;box-sizing:border-box;border:1px solid #5c5140;border-radius:8px;padding:12px;background:#131517;color:#f7f1e7;resize:vertical}textarea::placeholder{color:#a39c91}.bulk-import summary{line-height:1.6}.import-body{min-width:0;margin-top:14px}.import-body h2{margin:20px 0 8px;font-size:16px}.import-body label{margin-top:14px}.import-body button{margin-top:9px}.import-body hr{border:0;border-top:1px solid #4d4435;margin:22px 0}.roster-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;align-items:center;padding:10px 0;border-bottom:1px solid #4d4435;min-width:0}.roster-name{min-width:0;overflow-wrap:anywhere;font-weight:700}.roster-address{min-width:0;overflow-wrap:anywhere;color:var(--muted);font-size:12px}.roster-add{grid-column:2;grid-row:1/3;margin:0;padding:8px 10px;min-height:38px}.line-cast-entry{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:10px 0;border-bottom:1px dashed #4d4435;min-width:0}.line-cast-label{display:flex;align-items:center;gap:8px;min-width:0;margin:0}.line-cast-check{flex:0 0 20px;width:20px;min-height:20px;margin:0;accent-color:#d8bc83}.line-cast-name{overflow-wrap:anywhere}.line-cast-shop{font-size:11px;color:var(--gold);margin-left:auto}.line-cast-address{font-size:14px!important;min-height:43px!important}.line-cast-entry .note{margin:0}.import-body [role=status]{margin:7px 0}
.roster-launch-row{display:flex;justify-content:flex-end;margin:-6px 0 0}.roster-launch{min-height:32px;padding:5px 11px;font-size:12px;border-radius:7px;color:#d9c69f;background:#232426;border-color:#665a45}.entry-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.entry-title-row h1{margin:0;min-width:0;font-size:19px}.line-import-launch{flex:0 0 auto;min-height:38px;padding:7px 10px;font-size:13px;font-weight:700;background:linear-gradient(120deg,#dec89c,#c4a16b);border-color:#e4cca0;color:#201b14}.import-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.import-dialog-head h2{margin:0;color:#ead5ae;font-size:18px}.import-dialog-head button{flex:0 0 auto;min-height:40px;padding:8px 13px}.import-body{padding-bottom:6px}

.origin-buttons{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.origin-buttons button{min-width:0;min-height:58px;padding:10px 6px;font-weight:750;font-size:16px;line-height:1.5}.origin-buttons span{display:block;font-size:12px}.origin-buttons button[aria-pressed="true"]{background:linear-gradient(120deg,#dec89c,#c4a16b);border-color:#f4d9a4;color:#201b14;box-shadow:0 0 0 2px #e4cca04d}.origin-buttons button[aria-pressed="false"]{background:#242426;color:#dfd5c4;border-color:#665a45}

.demo-tools{margin:12px 0 20px;padding:12px 16px;border:1px dashed #b9a178;border-radius:12px}.demo-tools summary{cursor:pointer;font-size:13px;color:#deca9f}.demo-tools button{margin-top:10px}

.report-link{display:flex;align-items:center;justify-content:center;min-height:54px;padding:12px 16px;border:1px solid #cbb27b;border-radius:12px;background:linear-gradient(135deg,#ead8ad,#d8bf8c);color:#211c12;font-weight:800;font-size:17px;text-decoration:none;text-align:center;box-shadow:0 5px 16px #0002}.report-link:focus-visible{outline:3px solid #fff;outline-offset:4px}
