:root {
  --paper:#f7f5ef; --white:#fffefa; --ink:#28332e; --muted:#7b857b; --line:#e6e8df;
  --green:#385d4f; --green-d:#28483c; --sage:#edf1e9; --orange:#b96f4b;
  --shadow:0 15px 36px rgba(35,55,44,.07); --radius:22px;
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
  color:var(--ink); background:var(--paper); font-synthesis:none;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.36;cursor:not-allowed}a{color:inherit}h1,h2,h3,p{margin-top:0}.serif{font-family:Georgia,"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:500}.small-label{font-size:10px;text-transform:uppercase;letter-spacing:.18em;font-weight:800;color:var(--orange)}.app-header{position:sticky;top:0;z-index:40;background:rgba(247,245,239,.94);backdrop-filter:blur(18px);border-bottom:1px solid rgba(56,93,79,.09)}.top-inner{height:68px;max-width:1040px;margin:auto;padding:0 26px;display:flex;align-items:center;gap:12px}.brand-button{border:0;background:transparent;display:flex;align-items:center;gap:7px;padding:5px 0;color:var(--ink)}.brand-glyph{font-size:27px;color:var(--orange);font-weight:400}.brand-name{font-family:Georgia,serif;letter-spacing:-.05em;font-size:30px;line-height:1}.brand-period{color:var(--orange)}.header-tagline{font-size:11px;letter-spacing:.13em;color:var(--muted);margin-left:9px;margin-top:5px}.header-action{margin-left:auto;border:1px solid var(--line);background:var(--white);border-radius:50%;font-weight:bold;font-size:24px;line-height:1;width:39px;height:39px;color:var(--green)}main{max-width:1040px;margin:0 auto;padding:36px 24px 130px;min-height:70vh}.fade-in{animation:fade .26s ease both}@keyframes fade{from{opacity:.2;transform:translateY(6px)}to{opacity:1;transform:none}}
.home-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:26px}.home-head h1{font-size:30px;line-height:1.4;letter-spacing:-.055em;margin:7px 0 0}.lede{color:var(--muted);font-size:13px;line-height:1.85;margin-top:9px;margin-bottom:0}.button{border:0;display:inline-flex;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:700;border-radius:100px;padding:12px 18px;min-height:45px;white-space:nowrap;transition:transform .15s,background .15s}.button:active,.icon-btn:active,.trip-card:active{transform:scale(.98)}.button.primary{background:var(--green);color:#fff}.button.primary:hover{background:var(--green-d)}.button.secondary{background:var(--sage);color:var(--green)}.button.outline{background:var(--white);border:1px solid var(--line);color:var(--ink)}.button.danger{background:#fbeae5;color:#a43c31}.button.text{background:transparent;color:var(--green);padding:8px 10px;min-height:38px}.button.full{width:100%}.icon{width:18px;height:18px;vertical-align:middle;display:inline-block;flex-shrink:0}.icon.sm{width:15px;height:15px}.icon.xl{width:21px;height:21px}.section-overline{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin:27px 0 16px}.trips-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.trip-card{border:1px solid var(--line);background:var(--white);padding:0;border-radius:20px;overflow:hidden;text-align:left;box-shadow:var(--shadow);display:block;color:var(--ink);width:100%}.cover-visual{height:202px;position:relative;overflow:hidden;isolation:isolate;background:#769184}.cover-visual::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 110% 78% at 95% 10%,rgba(255,237,180,.75),transparent 64%),linear-gradient(160deg,rgba(245,236,194,.32),rgba(23,60,59,.42));z-index:-1}.cover-visual::after{content:"";position:absolute;bottom:-55%;left:-15%;height:105%;width:140%;transform:rotate(-12deg);border-radius:47% 53% 0 0;background:linear-gradient(158deg,#8ea697 0%,#4b7168 50%,#314c46 100%);z-index:-1;box-shadow:0 -34px 0 -7px rgba(201,216,199,.35),0 -74px 0 -16px rgba(212,220,202,.31)}.theme-sunset .cover-visual{background:#cda081}.theme-sunset .cover-visual::before{background:radial-gradient(ellipse 80% 70% at 70% 24%,#fce7afdd,transparent 75%),linear-gradient(170deg,transparent,#865b54aa)}.theme-sunset .cover-visual::after{background:linear-gradient(145deg,#b69b8a,#a96d58 65%,#775957)}.theme-ink .cover-visual{background:#687987}.theme-ink .cover-visual::after{background:linear-gradient(145deg,#a9b8bb,#4f717f 65%,#2c4355)}.cover-visual.has-photo::before{background:linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.45))}.cover-visual.has-photo::after{display:none}.cover-title{position:absolute;bottom:18px;left:19px;right:18px;z-index:1;color:#fff;font-family:Georgia,"Yu Mincho",serif;font-size:23px;line-height:1.42;text-shadow:0 2px 13px rgba(26,42,35,.3);word-break:break-word}.cover-kicker{position:absolute;top:17px;left:19px;color:#fff;z-index:1;font:700 10px/1.3 sans-serif;letter-spacing:.19em;text-shadow:0 1px 6px #0005}.cover-photo{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.card-details{padding:16px 18px 18px}.card-date{font-size:12px;color:var(--green);font-weight:800;letter-spacing:.02em}.card-dest{font-size:12px;color:var(--muted);margin-top:5px}.card-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:13px;color:var(--muted);font-size:11px}.demo-tag{padding:4px 8px;border-radius:40px;background:#f6ecdf;color:#9c744e;font-size:10px;font-weight:700}.trip-new{border:1px dashed #b8c6bb;min-height:265px;border-radius:20px;background:#f4f6ef;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;color:var(--green);cursor:pointer}.trip-new .round-plus{background:var(--white);width:56px;height:56px;display:grid;place-items:center;border-radius:50%;box-shadow:var(--shadow)}.trip-new span{font-size:13px;font-weight:700}.empty-message{color:var(--muted);font-size:13px}.summary-card{border:1px solid var(--line);border-radius:24px;background:var(--white);overflow:hidden;display:grid;grid-template-columns:200px 1fr;min-height:160px;box-shadow:var(--shadow)}.summary-card .cover-visual{height:auto;min-height:180px}.summary-card .cover-title{font-size:19px}.summary-info{padding:24px 25px;align-self:center}.summary-info h1{font-family:Georgia,"Yu Mincho",serif;font-size:25px;line-height:1.4;margin:3px 0 7px}.summary-sub{font-size:12px;color:var(--muted);line-height:1.7}.summary-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.editor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:29px 0 10px}.editor-toolbar h2{font-size:19px;letter-spacing:-.02em;margin:4px 0 0}.day-tabs{display:flex;gap:9px;overflow:auto;padding:14px 1px 17px;scrollbar-width:none}.day-tabs::-webkit-scrollbar{display:none}.day-tab{min-width:100px;background:var(--white);border:1px solid var(--line);border-radius:15px;padding:11px 14px;color:var(--muted);text-align:left;flex-shrink:0}.day-tab.active{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 8px 20px rgba(56,93,79,.15)}.day-tab strong{font-size:15px;display:block;margin-top:3px;color:inherit}.day-tab small{font-size:10px;letter-spacing:.04em}.timeline{margin-top:9px}.timeline-row{display:grid;grid-template-columns:62px 22px minmax(0,1fr);gap:10px;position:relative;align-items:start;min-height:126px}.timeline-time{font-family:Georgia,sans-serif;font-size:16px;color:var(--green);padding-top:18px;font-weight:700;letter-spacing:-.03em}.timeline-time span{display:block;font-size:10px;color:var(--muted);font-family:inherit;margin-top:3px;font-weight:500}.timeline-rail{position:relative;height:100%;display:flex;align-items:center;flex-direction:column;padding-top:23px}.timeline-dot{width:12px;height:12px;background:var(--orange);border-radius:50%;border:3px solid var(--paper);box-shadow:0 0 0 1px var(--orange);z-index:1}.timeline-row.transit-row .timeline-dot{background:var(--green);box-shadow:0 0 0 1px var(--green)}.timeline-rail::after{content:"";position:absolute;top:30px;bottom:-5px;width:1px;background:#cdd8ca}.timeline-row:last-child .timeline-rail::after{display:none}.timeline-card{border:1px solid var(--line);border-radius:17px;background:var(--white);padding:15px 16px;margin-bottom:15px;box-shadow:0 6px 20px rgba(49,73,60,.025)}.item-top{display:flex;align-items:center;gap:7px}.kind-chip{font-size:10px;font-weight:800;background:#f8efe8;color:#a66b48;padding:4px 9px;border-radius:99px;display:inline-block}.kind-chip.transport{background:#edf3ec;color:var(--green)}.kind-chip.memo{background:#f3f0f9;color:#7b6a9d}.item-title{font-weight:800;font-size:16px;line-height:1.5;margin:9px 0 7px;overflow-wrap:anywhere}.item-sub{color:var(--muted);font-size:12px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.item-meta{color:var(--green);font-size:12px;line-height:1.7;display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.meta-pill{background:var(--sage);border-radius:7px;padding:3px 7px}.item-actions{display:flex;gap:4px;justify-content:flex-end;padding-top:9px;margin-top:10px;border-top:1px solid #f0f0ed}.icon-btn{border:0;background:transparent;color:var(--muted);min-width:39px;min-height:39px;display:inline-grid;place-items:center;border-radius:10px}.icon-btn:hover{background:var(--sage);color:var(--green)}.add-slot{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin:8px 0 20px}.tip-panel{padding:16px 18px;border:1px solid #dfe8da;background:#edf2e9;border-radius:16px;font-size:12px;color:#547061;line-height:1.75;margin-top:9px}.conflict-panel{background:#fff0e8;border:1px solid #f1ceb8;color:#a35c38;border-radius:14px;padding:10px 14px;margin:5px 0 14px;font-size:12px;line-height:1.7}.mini-empty{border:1px dashed #ccd5c9;padding:40px 20px;text-align:center;border-radius:19px;color:var(--muted);background:rgba(255,255,255,.6);font-size:13px}.mini-empty strong{display:block;color:var(--green);font-size:17px;margin-bottom:9px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:35;border-top:1px solid #e5e9e0;background:rgba(255,254,250,.96);backdrop-filter:blur(18px);display:flex;justify-content:center;gap:36px;padding:9px 12px calc(9px + env(safe-area-inset-bottom))}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:74px;min-height:52px;border:0;background:transparent;color:#9ba39a;font-size:10px;font-weight:700;letter-spacing:.05em}.nav-item.active{color:var(--green)}.nav-item.active .icon{stroke-width:2.6}
.book-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.book-intro h1{font-size:23px;margin:6px 0 0}.book-intro .book-actions{display:flex;gap:8px}.booklet{width:100%;max-width:760px;margin:0 auto;box-shadow:0 15px 50px rgba(33,52,43,.12);background:#fffefa;overflow:hidden;border-radius:5px}.book-cover{min-height:500px;padding:58px 52px;position:relative;background:#d6e1d7;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;color:#fff}.book-cover.theme-sunset{background:linear-gradient(147deg,#dfbc9c,#936b61)}.book-cover.theme-forest{background:linear-gradient(155deg,#c9d9c5,#567a6a)}.book-cover.theme-ink{background:linear-gradient(155deg,#cad8db,#446578)}.book-cover::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 85% 70% at 83% 6%,#f9e9af89,transparent 76%);z-index:0}.book-cover::after{content:"";position:absolute;width:145%;height:70%;bottom:-27%;left:-25%;border-radius:50% 50% 0 0;transform:rotate(-8deg);background:#2d5048aa;box-shadow:0 -50px 0 -24px #f4f3dfa1;z-index:0}.book-cover.theme-sunset::after{background:#835a4f88}.book-cover.theme-ink::after{background:#29445c88}.book-cover.has-photo::before{background:linear-gradient(180deg,#0c282021,#132a28b0);z-index:1}.book-cover.has-photo::after{display:none}.book-cover>div:not(.book-photo){z-index:2;position:relative}.book-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.book-upper{display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:.18em;font-weight:700}.book-big-title{font-family:Georgia,"Yu Mincho",serif;font-size:clamp(34px,7vw,61px);font-weight:500;line-height:1.5;letter-spacing:.04em;text-shadow:0 2px 16px #1f302a33;overflow-wrap:anywhere}.book-bottom-text{font-size:13px;letter-spacing:.15em;line-height:1.9}.book-page{padding:36px 49px 43px;background:#fffefa;border-top:1px solid #e9eee5;break-inside:avoid}.page-overline{font-size:10px;font-weight:800;letter-spacing:.18em;color:var(--orange)}.page-heading{font-family:Georgia,"Yu Mincho",serif;font-size:27px;margin:10px 0 24px;letter-spacing:.04em}.book-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;border-bottom:1px solid var(--line);padding-bottom:21px;margin-bottom:20px}.meta-label{display:block;font-size:10px;letter-spacing:.1em;color:var(--muted);margin-bottom:7px}.book-meta strong{font-size:14px}.book-day-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:10px 0 20px}.book-day-number{font-family:Georgia,serif;color:var(--orange);font-size:12px}.book-day-date{font-family:Georgia,"Yu Mincho",serif;font-size:22px}.book-step{display:grid;grid-template-columns:67px minmax(0,1fr);gap:16px;border-left:2px solid #d5dfd6;margin-left:20px;padding:0 0 29px 27px;position:relative}.book-step:last-child{padding-bottom:0}.book-step::before{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:var(--orange);left:-6px;top:4px;box-shadow:0 0 0 4px #fffefa}.book-step.travel::before{background:var(--green)}.book-step-time{font-size:13px;font-weight:800;color:var(--green)}.book-step-title{font-size:15px;font-weight:800;margin-bottom:7px;line-height:1.5}.book-step-description{color:#6c756d;font-size:12px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.book-step-detail{font-size:11px;color:var(--green);background:var(--sage);border-radius:8px;margin-top:9px;padding:9px 11px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.book-footnote{font-size:11px;color:var(--muted);line-height:1.8}.book-checklist{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check-item{display:flex;align-items:center;gap:9px;font-size:13px;padding:12px;border:1px solid var(--line);border-radius:10px;cursor:pointer;user-select:none}.check-item input{accent-color:var(--green);width:17px;height:17px}.check-item.is-checked span{text-decoration:line-through;color:var(--muted)}.packing-editor{display:flex;gap:8px;margin-top:15px}.packing-editor input{flex:1;min-width:0}.packing-remove{border:0;background:none;color:#a8aaa4;font-size:18px;margin-left:auto}.book-addendum{margin-top:16px;padding:15px;background:var(--sage);color:var(--green);font-size:12px;line-height:1.8;border-radius:12px}.book-notes{min-height:120px;white-space:pre-wrap;color:#57665a;line-height:1.9;font-size:13px;overflow-wrap:anywhere}.footer-mark{margin-top:30px;border-top:1px solid var(--line);padding-top:18px;text-align:center;color:#9aa39a;font:italic 16px Georgia,serif}
.modal-backdrop{position:fixed;inset:0;background:#1e3329aa;z-index:100;display:flex;align-items:flex-end;justify-content:center;padding:0}.modal-panel{width:min(100%,560px);background:var(--white);border-radius:25px 25px 0 0;max-height:95dvh;overflow-y:auto;padding:0 22px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -18px 55px #1a362922;animation:sheet-in .23s ease}@keyframes sheet-in{from{transform:translateY(30px);opacity:.8}to{transform:none;opacity:1}}.modal-head{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--white);z-index:2;padding:21px 0 13px;border-bottom:1px solid var(--line);margin-bottom:18px}.modal-head h2{margin:0;font-size:19px;letter-spacing:-.02em}.close{border:0;background:var(--sage);color:var(--green);border-radius:50%;width:38px;height:38px;display:grid;place-items:center;font-size:19px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field{margin-bottom:15px}.field>label,.field-label{display:block;font-size:12px;color:#536158;font-weight:800;margin-bottom:8px}.field input,.field textarea,.field select,.packing-editor input{width:100%;border:1px solid #dfe5dd;background:#fff;border-radius:11px;padding:12px 12px;color:var(--ink);font-size:16px;min-height:46px;outline:none}.field input:focus,.field textarea:focus,.field select:focus,.packing-editor input:focus{border-color:#79a38a;box-shadow:0 0 0 3px #dcece0}.field textarea{resize:vertical;min-height:85px;line-height:1.6}.field small{display:block;margin-top:6px;font-size:11px;color:var(--muted);line-height:1.5}.form-divider{height:1px;background:var(--line);margin:15px 0 20px}.form-subtitle{font-size:12px;letter-spacing:.08em;color:var(--orange);font-weight:800;margin:18px 0}.choice-row{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:17px}.choice{border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px 12px;font-size:12px;color:var(--muted);font-weight:750;min-height:44px}.choice.active{background:var(--green);border-color:var(--green);color:#fff}.modal-buttons{display:flex;gap:10px;justify-content:space-between;margin-top:18px}.modal-buttons .button.primary{flex:1}.mode-choices{display:flex;gap:8px}.upload-area{padding:15px;border:1px dashed #aebdaf;border-radius:13px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--green);background:var(--sage);margin:8px 0}.upload-area input{width:100%;min-width:0;font-size:11px}.menu-choice{width:100%;padding:17px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;margin-bottom:10px;color:var(--green);font-size:13px;font-weight:700}.menu-description{font-size:12px;line-height:1.8;color:var(--muted)}.toast{position:fixed;bottom:95px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:white;border-radius:10px;padding:13px 18px;z-index:200;font-size:12px;max-width:min(90vw,480px);opacity:0;pointer-events:none;transition:opacity .22s,transform .22s;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.desktop-hint{display:block}
@media(min-width:800px){.bottom-nav{position:sticky;bottom:0;max-width:440px;margin:0 auto;border:1px solid var(--line);border-radius:20px 20px 0 0;box-shadow:0 -10px 25px #2b493e0a}.modal-backdrop{align-items:center;padding:25px}.modal-panel{border-radius:25px;max-height:92vh;padding-bottom:22px}.trip-card:hover{transform:translateY(-2px);transition:transform .2s}.home-head h1{font-size:36px}.book-cover{min-height:555px}}
@media(max-width:750px){.trips-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.top-inner{padding:0 19px}.summary-card{grid-template-columns:130px 1fr}.summary-card .cover-visual{min-height:164px}.summary-info{padding:15px}.summary-info h1{font-size:20px}.summary-buttons .button{font-size:11px;padding:10px 12px}}
@media(max-width:490px){main{padding:23px 17px 130px}.home-head{align-items:flex-start}.home-head h1{font-size:26px}.home-head .button{padding:11px;font-size:11px}.trips-grid{grid-template-columns:1fr 1fr;gap:12px}.cover-visual{height:190px}.cover-title{font-size:19px;left:14px;bottom:15px}.cover-kicker{left:14px;top:14px}.card-details{padding:12px 13px 13px}.card-dest{font-size:11px}.card-bottom{margin-top:10px}.trip-new{min-height:257px}.summary-card{grid-template-columns:112px 1fr;min-height:150px;border-radius:17px}.summary-card .cover-visual{min-height:152px}.summary-card .cover-title{font-size:15px;left:10px;bottom:10px}.summary-card .cover-kicker{left:10px;top:10px;font-size:8px}.summary-info h1{font-size:18px}.summary-sub{font-size:11px}.summary-buttons{margin-top:10px}.summary-buttons .button{min-height:34px;padding:7px 9px}.timeline-row{grid-template-columns:51px 18px minmax(0,1fr);gap:6px}.timeline-time{font-size:13px;padding-top:19px}.timeline-card{padding:13px 12px}.item-title{font-size:14px}.item-actions{gap:0}.icon-btn{min-width:35px}.book-cover{min-height:410px;padding:34px 28px}.book-page{padding:29px 22px}.page-heading{font-size:22px}.book-step{grid-template-columns:48px minmax(0,1fr);gap:10px;margin-left:13px;padding-left:16px}.book-checklist{grid-template-columns:1fr}.book-intro h1{font-size:20px}.book-intro .button{min-height:40px;padding:10px;font-size:11px}.form-grid{gap:10px}.modal-panel{padding-left:18px;padding-right:18px}.desktop-hint{display:none}}
@media(max-width:355px){.header-tagline{display:none}.trips-grid{grid-template-columns:1fr}.cover-visual{height:215px}.trip-new{min-height:150px}.summary-card{grid-template-columns:1fr}.summary-card .cover-visual{height:120px}.summary-info{padding:15px 17px}.editor-toolbar{align-items:start}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{@page{size:A4;margin:0}html,body{background:white!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}#main-content{max-width:none!important;padding:0!important;margin:0!important}.app-header,.bottom-nav,.book-intro,#modal-root,.toast,.screen-only{display:none!important}.booklet{box-shadow:none;border-radius:0;max-width:none;width:100%}.book-cover{height:297mm;min-height:297mm;page-break-after:always;break-after:page;padding:22mm}.book-big-title{font-size:36pt}.book-page{padding:20mm 19mm;break-inside:auto;page-break-before:always;break-before:page}.book-page:first-of-type{page-break-before:auto}.book-step{break-inside:avoid}.book-checklist{grid-template-columns:1fr 1fr}.check-item input{appearance:none;border:1px solid #999;width:12px;height:12px}.check-item input:checked{background:var(--green)}.book-addendum,.book-step-detail{print-color-adjust:exact}.book-footnote{font-size:10px}.booklet .packing-editor,.packing-remove{display:none!important}}

/* v0.2.0 — photo-first extension */
.home-feature{position:relative;isolation:isolate;min-height:350px;margin:-8px 0 35px;border-radius:28px;overflow:hidden;background:radial-gradient(ellipse at 77% 24%,#e0caa3 0%,transparent 35%),linear-gradient(150deg,#7f9d91,#355f55 69%,#203e38);color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:25px 35px 26px;box-shadow:0 22px 48px rgba(28,52,43,.16)}
.home-feature::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,43,37,.35),transparent),linear-gradient(0deg,rgba(11,35,27,.4),transparent 80%);z-index:-1}
.home-feature:not(.has-photo)::after{content:"";position:absolute;width:110%;height:80%;bottom:-44%;right:-19%;background:linear-gradient(125deg,rgba(198,206,179,.7),#325c51 55%,#193b33);border-radius:48% 52% 0 0;transform:rotate(-14deg);box-shadow:-44px -58px 0 -15px rgba(218,218,191,.33);z-index:-1}
.home-feature-photo{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;z-index:-2}
.home-feature-overline{font-size:10px;letter-spacing:.26em;font-weight:750;opacity:.9}
.home-feature-copy{margin-top:37px;position:relative;z-index:2}.home-feature-copy>span{display:block;font-size:12px;letter-spacing:.13em;margin-bottom:8px;color:#f1efe1}.home-feature-copy h2{font-size:clamp(35px,5vw,64px);line-height:1.38;margin:0 0 18px;letter-spacing:.03em;text-shadow:0 3px 20px #192f2866}.home-feature-button{border:1px solid #ffffff8c;background:#f9f7f0f2;color:#2b5044;border-radius:99px;padding:11px 23px;font-weight:800;font-size:12px;min-height:44px;box-shadow:0 4px 15px #0002}.home-feature-foot{font-size:10px;letter-spacing:.33em;text-align:right;opacity:.8;align-self:flex-end;margin-top:-20px}
.item-photo-wrap{position:relative;overflow:hidden;height:195px;margin:12px -3px 13px;border-radius:12px;background:linear-gradient(120deg,#b9c8bc,#8fa49a)}.item-photo{display:block;height:100%;width:100%;object-fit:cover}.photo-corner{position:absolute;right:11px;bottom:12px;padding:5px 8px;background:#243b30a8;color:white;backdrop-filter:blur(5px);font-size:9px;letter-spacing:.16em;border-radius:4px}
.book-step-photo{display:block;object-fit:cover;width:100%;max-height:260px;aspect-ratio:16/9;border-radius:10px;margin:10px 0 12px;background:#aab9ae}
.entry-photo-preview{display:flex;align-items:center;gap:14px;margin-top:11px}.entry-photo-preview img{width:82px;height:64px;border-radius:8px;object-fit:cover}.entry-photo-preview label{font-size:12px;display:flex;align-items:center;gap:6px}
.album-page{max-width:900px;margin:auto}.album-heading{margin-bottom:23px}.album-heading h1{font-size:clamp(33px,5vw,49px);margin:11px 0 7px;line-height:1.25;letter-spacing:.045em}.album-heading .lede{max-width:520px}.film-counter{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid #dce3da;border-bottom:1px solid #dce3da;padding:14px 4px;margin:27px 0 24px}.film-counter>div{display:flex;flex-direction:column;gap:5px}.film-counter strong{font:700 28px Georgia,serif;letter-spacing:.04em}.film-counter strong small{font:700 10px sans-serif;letter-spacing:.18em;color:var(--muted)}
.album-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.album-shot{min-width:0;margin:0;background:#fff;border:1px solid #edf0e9;border-radius:14px;overflow:hidden;box-shadow:0 5px 22px #3044380b}.album-shot-photo{position:relative;aspect-ratio:4/5;background:linear-gradient(145deg,#b2bca8,#526b5d);overflow:hidden}.album-shot-photo img{width:100%;height:100%;object-fit:cover;display:block}.album-shot-count{position:absolute;bottom:12px;left:12px;font:700 10px/1.3 sans-serif;letter-spacing:.13em;background:#243f35ba;color:#fff;padding:6px 10px;border-radius:4px}.album-shot figcaption{padding:12px 14px 15px;display:flex;flex-direction:column;gap:5px}.album-shot figcaption span{font-size:10px;color:var(--muted)}.album-shot figcaption strong{font-size:13px;letter-spacing:-.02em;line-height:1.4;overflow-wrap:anywhere}
.album-empty{padding:50px 20px;text-align:center;background:#fffefa;border:1px dashed #b7c6bd;border-radius:20px}.album-empty-icon{display:grid;place-items:center;margin:0 auto 17px;color:#547665;width:67px;height:67px;border-radius:50%;background:#edf1e9}.album-empty h2{font-size:24px}.album-empty p{font-size:13px;color:var(--muted);line-height:1.9;max-width:380px;margin:0 auto 22px}.album-share{margin:34px 0 0;border-radius:22px;background:#e7e9de;position:relative;overflow:hidden;padding:32px 28px;text-align:center}.album-share::before{content:"";position:absolute;width:140px;height:140px;border:1px solid #c8d1c6;border-radius:50%;top:-63px;right:-39px}.album-share-symbol{font:32px Georgia,serif;color:#b87951;margin:0 auto 10px}.album-share h2{font-size:26px;margin:10px 0}.album-share p{font-size:13px;line-height:1.9;max-width:490px;margin:0 auto 22px}.album-disclaimer{font-size:11px;color:#65766a;margin-top:18px;line-height:1.7}
@media(max-width:750px){.album-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:490px){.home-feature{min-height:340px;margin:0 -3px 24px;padding:21px 22px 19px;border-radius:20px}.home-feature-copy{margin-top:52px}.home-feature-copy h2{font-size:42px;line-height:1.34}.home-feature-foot{font-size:8px;margin-top:-15px}.item-photo-wrap{height:178px}.album-grid{gap:9px}.album-shot figcaption{padding:10px}.album-shot figcaption strong{font-size:12px}.album-shot-photo{aspect-ratio:4/5}.album-heading h1{font-size:35px}.album-share{padding:30px 20px}}
@media print{.home-feature,.album-page{display:none!important}.book-step-photo{max-height:70mm;object-fit:cover;print-color-adjust:exact;-webkit-print-color-adjust:exact}}
.demo-photo-credit{font-size:10px;margin:-28px 0 25px;text-align:right;color:#748077;letter-spacing:.01em}.demo-photo-credit a,.sample-credit a,.demo-credit-book a{color:inherit;text-decoration:underline;text-underline-offset:2px}.sample-credit{font-size:9px;color:var(--muted);line-height:1.5}.demo-credit-book{font-size:11px;margin:14px 0 24px;color:#718074}@media(max-width:490px){.demo-photo-credit{margin:-17px 3px 22px;font-size:9px}}


/* v0.3 — Color themes. App palette does not change per-trip cover designs. */
:root{
  --top-bg:rgba(247,245,239,.96);--nav-bg:rgba(255,254,250,.97);
  --field-bg:#fffefa;--soft-border:#dfe5dd;--subtle-text:#57665a;
  --soft-panel:#f4f6ef;--section-bg:#edf1e9;--on-accent:#fff;
  --highlight:#e6eee5;--focus-ring:rgba(56,93,79,.22);
  --overlay:rgba(16,29,23,.6);
}
:root[data-app-theme="ocean"]{
  --paper:#eef6f8;--white:#fff;--ink:#243e48;--muted:#627b84;--line:#d9e8ed;
  --green:#266679;--green-d:#1b5062;--sage:#e0f0f3;--orange:#b77350;
  --top-bg:rgba(238,246,248,.96);--nav-bg:rgba(255,255,255,.96);
  --soft-panel:#e8f3f5;--section-bg:#e2eff0;--soft-border:#c8dce1;--subtle-text:#506b77;
  --focus-ring:rgba(38,102,121,.24);--highlight:#d8ecef;
  --shadow:0 14px 34px rgba(34,77,91,.07)
}
:root[data-app-theme="sunset"]{
  --paper:#fff5ee;--white:#fffdfa;--ink:#493a34;--muted:#857268;--line:#e9ddd4;
  --green:#9d583d;--green-d:#84442f;--sage:#f9eae1;--orange:#af6846;
  --top-bg:rgba(255,245,238,.96);--nav-bg:rgba(255,253,250,.96);
  --soft-panel:#fff0e5;--section-bg:#fae7db;--soft-border:#e3d0c1;--subtle-text:#765b4e;
  --focus-ring:rgba(157,88,61,.22);--highlight:#f7e2d3;
  --shadow:0 14px 34px rgba(116,57,34,.07)
}
:root[data-app-theme="sakura"]{
  --paper:#fff5f8;--white:#fffdfd;--ink:#493640;--muted:#866d7b;--line:#f0e0e8;
  --green:#925873;--green-d:#77455e;--sage:#f8e9f0;--orange:#b16b7f;
  --top-bg:rgba(255,245,248,.96);--nav-bg:rgba(255,253,253,.96);
  --soft-panel:#fff0f5;--section-bg:#f9e8ef;--soft-border:#ead5df;--subtle-text:#775965;
  --focus-ring:rgba(146,88,115,.22);--highlight:#f6dce8;
  --shadow:0 14px 34px rgba(109,57,84,.07)
}
:root[data-app-theme="midnight"]{
  --paper:#141c25;--white:#202b37;--ink:#f1f3f2;--muted:#a7b5c2;--line:#364657;
  --green:#9dc4d7;--green-d:#bbdce8;--sage:#2b4050;--orange:#e6b47f;
  --top-bg:rgba(20,28,37,.96);--nav-bg:rgba(32,43,55,.96);
  --field-bg:#1b2631;--soft-panel:#223240;--section-bg:#293b4b;
  --soft-border:#425567;--subtle-text:#b6c4ce;--on-accent:#122331;
  --focus-ring:rgba(157,196,215,.28);--highlight:#324a5a;
  --overlay:rgba(4,9,15,.8);--shadow:0 14px 32px rgba(0,0,0,.24);
  color-scheme:dark;
}
:root[data-app-theme="mono"]{
  --paper:#f5f3ee;--white:#fffefa;--ink:#302e2a;--muted:#77736e;--line:#e1ddd6;
  --green:#47443f;--green-d:#2c2b29;--sage:#ebe8e1;--orange:#837767;
  --top-bg:rgba(245,243,238,.96);--nav-bg:rgba(255,254,250,.96);
  --soft-panel:#eeeae4;--section-bg:#e9e5dd;--soft-border:#dad4c9;--subtle-text:#665f57;
  --focus-ring:rgba(71,68,63,.2);--highlight:#e8e3d9;
}
html,body{background:var(--paper);color:var(--ink)}
.app-header{background:var(--top-bg);border-color:var(--line)}
.bottom-nav{background:var(--nav-bg);border-color:var(--line)}
.header-action{margin-left:0}
.header-palette{margin-left:auto;width:40px;height:40px;display:grid;place-items:center;flex-shrink:0;background:var(--white);border:1px solid var(--line);border-radius:50%;color:var(--green)}
.header-palette:focus-visible,.header-action:focus-visible,button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}
.header-palette-icon{width:22px;height:20px;position:relative;display:block}
.header-palette-icon i{width:12px;height:12px;border:2px solid var(--white);display:block;position:absolute;border-radius:50%;background:var(--green)}
.header-palette-icon i:nth-child(1){left:0;bottom:0;background:var(--green)}
.header-palette-icon i:nth-child(2){right:0;bottom:0;background:var(--orange)}
.header-palette-icon i:nth-child(3){left:5px;top:0;background:var(--muted)}
.button.primary,.day-tab.active,.choice.active{color:var(--on-accent)}
.trip-new{background:var(--soft-panel);border-color:var(--soft-border)}
.tip-panel{background:var(--section-bg);border-color:var(--soft-border);color:var(--subtle-text)}
.mini-empty{background:var(--white);border-color:var(--soft-border)}
.timeline-rail::after,.book-step{border-color:var(--soft-border)}
.timeline-rail::after{background:var(--soft-border)}
.item-actions{border-color:var(--line)}
.kind-chip{background:var(--sage);color:var(--green)}
.kind-chip.transport{background:var(--sage);color:var(--green)}
.meta-pill{background:var(--sage);color:var(--green)}
.nav-item{color:var(--muted)}
.demo-photo-credit,.demo-credit-book,.footer-mark{color:var(--muted)}
.booklet,.book-page{background:var(--white);color:var(--ink)}
.book-page{border-color:var(--line)}
.book-step::before{box-shadow:0 0 0 4px var(--white)}
.book-step-description,.book-notes{color:var(--subtle-text)}
.field>label,.field-label{color:var(--ink)}
.field input,.field textarea,.field select,.packing-editor input{background:var(--field-bg);color:var(--ink);border-color:var(--soft-border)}
.field input:focus,.field textarea:focus,.field select:focus,.packing-editor input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--focus-ring)}
.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:.8}
.choice,.menu-choice{background:var(--white);color:var(--ink)}
.choice.active{color:var(--on-accent)}
.upload-area{border-color:var(--soft-border)}
.modal-backdrop{background:var(--overlay)}
.modal-panel,.modal-head{background:var(--white)}
.album-shot,.album-empty{background:var(--white);border-color:var(--line);color:var(--ink)}
.album-empty-icon{background:var(--sage);color:var(--green)}
.film-counter{border-color:var(--line)}
.album-share{background:var(--section-bg)}
.album-share::before{border-color:var(--soft-border)}
.album-share-symbol{color:var(--orange)}
.album-disclaimer{color:var(--muted)}
.home-feature:not(.has-photo){background:radial-gradient(ellipse at 76% 25%,#efd8a97a,transparent 35%),linear-gradient(150deg,var(--green),var(--green-d))}
.home-feature:not(.has-photo)::after{background:linear-gradient(145deg,var(--sage),var(--green-d) 60%,var(--ink))}
.home-feature-button{background:var(--white);color:var(--green);border-color:var(--white)}
.home-feature .home-feature-button:focus-visible{outline-color:#fff}
:root[data-app-theme="midnight"] .home-feature-button{background:#eff3f5;color:#1d3645;border-color:#eff3f5}
:root[data-app-theme="midnight"] .button.danger{background:#512d32;color:#ffcabf}
:root[data-app-theme="midnight"] .kind-chip.memo{background:#41374b;color:#e0cbec}
:root[data-app-theme="midnight"] .conflict-panel{background:#46342c;border-color:#805947;color:#ffe0b8}
:root[data-app-theme="midnight"] .demo-tag{background:#443830;color:#f5cca4}
:root[data-app-theme="midnight"] .book-step-time span{color:var(--muted)!important}
:root[data-app-theme="midnight"] .cover-title, :root[data-app-theme="midnight"] .book-cover{color:white}

/* Theme picker: card previews reflect what the selected palette will look like. */
.appearance-intro{margin:5px 0 19px}
.appearance-intro p{font-size:18px;font-weight:750;line-height:1.5;margin:7px 0 6px}
.appearance-intro small{color:var(--muted);font-size:12px;line-height:1.75}
.appearance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:19px}
.appearance-choice{position:relative;display:flex;align-items:flex-start;flex-direction:column;gap:4px;padding:9px 9px 12px;background:var(--white);color:var(--ink);border:2px solid var(--line);border-radius:17px;text-align:left;min-width:0;transition:border-color .15s,transform .15s;}
.appearance-choice.active{border-color:var(--green)}
.appearance-choice:active{transform:scale(.985)}
.appearance-card{position:relative;display:block;overflow:hidden;width:100%;height:92px;border-radius:10px;background:var(--swatch-bg);margin-bottom:5px;box-shadow:inset 0 0 0 1px #0000000b}
.appearance-sample-heading{position:absolute;left:12px;top:18px;width:60%;height:17px;border-radius:7px;background:var(--swatch-accent)}
.appearance-sample-block{position:absolute;left:12px;right:12px;top:48px;height:32px;border-radius:7px;background:var(--swatch-surface);box-shadow:0 3px 10px #00000012}
.appearance-sample-dot{position:absolute;left:24px;top:58px;width:11px;height:11px;border-radius:50%;background:var(--swatch-accent)}
.appearance-name{font-size:13px;font-weight:800;margin-left:2px}
.appearance-english{font-size:9px;letter-spacing:.16em;color:var(--muted);margin-left:2px}
.appearance-selected{position:absolute;right:14px;bottom:18px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--green);color:var(--on-accent);font-size:13px;font-weight:900;opacity:0;transform:scale(.8);transition:opacity .15s,transform .15s}
.appearance-choice.active .appearance-selected{opacity:1;transform:scale(1)}
.appearance-footer{border-top:1px solid var(--line);padding-top:16px}
.appearance-footer p{color:var(--muted);font-size:12px;line-height:1.85;margin:0 0 18px}
@media(max-width:355px){.header-palette{width:37px;height:37px}.header-action{width:37px;height:37px}.appearance-grid{gap:8px}.appearance-choice{padding:7px}}
@media print{
  .booklet,.book-page{background:#fffefa!important;color:#28332e!important}
  .book-page .book-step-description,.book-page .book-notes{color:#57665a!important}
  .book-page .meta-label,.book-page .book-footnote{color:#737e75!important}
  .book-page .book-step::before{box-shadow:0 0 0 4px #fffefa!important}
  .book-page .check-item{border-color:#d5dfd6!important}
}


/* Ver 0.4 — COLOR STUDIO / thumb-friendly color controls */
.appearance-entry{min-width:0;position:relative;display:flex;flex-direction:column}
.appearance-entry>.appearance-choice{flex:1;width:100%}
.appearance-entry>.appearance-choice:has(+.appearance-edit){padding-bottom:37px}
.appearance-edit{position:absolute;bottom:8px;left:10px;display:flex;align-items:center;gap:5px;min-height:27px;padding:2px 8px;border:1px solid var(--line);border-radius:50px;background:var(--white);color:var(--green);font-size:11px;font-weight:750}
.custom-section{border-top:1px solid var(--line);margin-top:6px;padding-top:20px;margin-bottom:22px}
.custom-section-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.custom-section-top h3{font-size:20px;letter-spacing:-.025em;margin:4px 0 0}
.custom-count{font:700 11px/1.3 -apple-system,BlinkMacSystemFont,sans-serif;letter-spacing:.12em;color:var(--muted)}
.custom-new{display:flex;align-items:center;gap:12px;text-align:left;width:100%;border:1px dashed var(--soft-border);background:var(--soft-panel);color:var(--ink);border-radius:15px;padding:14px 13px;min-height:80px}
.custom-new-icon{display:grid;place-items:center;flex:none;width:43px;height:43px;border-radius:50%;background:var(--white);color:var(--green)}
.custom-new>span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.custom-new strong{font-size:13px;line-height:1.5}
.custom-new small{font-size:11px;color:var(--muted);line-height:1.5}
.custom-new>svg{color:var(--muted)}
.custom-lead{padding:7px 0 11px}.custom-lead p{font-size:18px;font-weight:750;line-height:1.5;margin:8px 0 8px}
.custom-modes{display:flex;gap:9px;margin:12px 0 22px}.custom-modes .choice{flex:1;min-height:44px}
.custom-color-fields{display:grid;gap:11px;margin-top:8px}
.color-control{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--line);background:var(--white);border-radius:14px;padding:10px 14px;min-height:75px}
.color-control-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.color-control strong{font-size:13px;color:var(--ink)}.color-control small{font-size:11px;color:var(--muted)}
.color-control code{font-size:11px;letter-spacing:.08em;font-family:ui-monospace,Menlo,monospace;color:var(--green);margin-top:1px}
.color-native{appearance:none;-webkit-appearance:none;width:55px!important;height:50px!important;min-width:55px!important;border-radius:13px!important;padding:4px!important;border:1px solid var(--line)!important;background:var(--white)!important;cursor:pointer;box-shadow:0 4px 10px #00000011}
.color-native::-webkit-color-swatch-wrapper{padding:0}.color-native::-webkit-color-swatch{border-radius:9px;border:0}.color-native::-moz-color-swatch{border-radius:9px;border:0}
.custom-preview-heading{display:flex;align-items:center;justify-content:space-between;margin:24px 1px 10px}.custom-preview-heading>span:last-child{font-size:11px;color:var(--muted)}
.custom-live-sample{padding:17px 16px 20px;border-radius:16px;background:var(--swatch-bg);border:1px solid #80808030;box-shadow:0 5px 18px #0000000a;color:var(--swatch-text)}
.custom-live-kicker{font-size:9px;font-weight:800;letter-spacing:.19em;opacity:.62;margin-bottom:13px}
.custom-live-card{border-radius:14px;padding:20px 18px;background:var(--swatch-surface);box-shadow:0 4px 14px #0000000b;color:var(--swatch-text)}
.custom-live-text{display:flex;flex-direction:column;gap:8px}.custom-live-text strong{font-family:Georgia,'Yu Mincho',serif;font-weight:500;font-size:22px}.custom-live-text span{font-size:11px;opacity:.75}
.custom-live-action{display:inline-block;margin-top:17px;padding:10px 14px;border-radius:50px;background:var(--swatch-accent);color:var(--swatch-on-accent);font-size:11px;font-weight:800}
.custom-save-note{font-size:11px;line-height:1.8;color:var(--muted);margin:15px 0 18px}
.custom-editor-buttons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding-bottom:5px}.custom-editor-buttons button{padding:10px 13px;font-size:12px}.custom-editor-buttons .button.primary{flex:1}
@media(max-width:360px){.custom-editor-buttons .button.danger{flex-basis:100%}.color-control{padding:10px}.appearance-edit{font-size:10px}}
@media print{.custom-section,.custom-editor-buttons{display:none!important}}


/* shiori. v0.5.0 — mobile itinerary map */
.shiori-map-view{max-width:860px;margin:0 auto}
.shiori-map-heading h1{font-size:clamp(33px,6vw,48px);margin:9px 0 6px}
.shiori-map-trip{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:22px;background:var(--white);border:1px solid var(--line);border-radius:18px;padding:13px 16px}
.shiori-map-trip>div{min-width:0}.shiori-map-trip strong{display:block;font-size:14px;overflow-wrap:anywhere}.shiori-map-trip small{display:block;color:var(--muted);font-size:11px;margin-top:4px}
.shiori-map-frame{border-radius:22px;border:1px solid var(--line);overflow:hidden;background:var(--white);box-shadow:var(--shadow);margin-bottom:26px}
.shiori-map-frame-head{display:flex;justify-content:space-between;align-items:center;padding:10px 13px;font-size:11px;letter-spacing:.07em;font-weight:750;color:var(--muted)}
.shiori-my-location{border:0;background:var(--sage);border-radius:99px;color:var(--green);font-size:11px;font-weight:750;padding:8px 11px;min-height:35px}
.shiori-map-canvas{height:390px;width:100%;background:#d9e4e0;position:relative;z-index:0;touch-action:pan-x pan-y}
.shiori-map-loading{min-height:100%;display:flex;align-items:center;justify-content:center;text-align:center;color:#456156;font-size:12px;padding:20px;line-height:1.9}
.shiori-map-footnote{font-size:10px;color:var(--muted);line-height:1.65;padding:11px 13px}
.shiori-map-number{border:0;background:none}
.shiori-map-number span{display:grid;place-items:center;border:3px solid #fff;width:34px;height:34px;border-radius:50% 50% 50% 4px;background:#385d4f;color:white;box-shadow:0 3px 10px #20382c77;font-weight:900;font-size:14px}

.shiori-map-placement{padding:14px;background:var(--white);display:flex;gap:9px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line)}
.shiori-map-placement[hidden]{display:none}
.shiori-map-placement strong{font-size:13px;display:block;width:100%}
.shiori-map-placement span{font-size:12px;color:var(--muted);flex:1}
.shiori-map-placement small{font-size:11px;color:var(--muted)}
.shiori-map-subhead{display:flex;justify-content:space-between;align-items:end;margin:22px 3px 15px}
.shiori-map-subhead h2{margin:5px 0 0;font-size:20px}
.shiori-map-subhead>span{font-size:10px;color:var(--muted)}
.shiori-map-cards{display:grid;gap:11px}
.shiori-place{display:flex;gap:12px;align-items:flex-start;background:var(--white);border:1px solid var(--line);border-radius:19px;padding:14px;min-width:0}
.shiori-place-count{font:700 18px Georgia,serif;color:var(--orange);min-width:26px;padding-top:5px}
.shiori-place-image{width:65px;height:78px;object-fit:cover;border-radius:10px}
.shiori-place-body{min-width:0;flex:1}.shiori-place-time{font-size:11px;font-weight:750;color:var(--orange);display:block}
.shiori-place-body strong{font-size:14px;display:block;line-height:1.5;margin:5px 0;overflow-wrap:anywhere}
.shiori-place-body small{display:block;font-size:11px;color:var(--muted);overflow-wrap:anywhere;line-height:1.5}
.shiori-place-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:11px}
.shiori-place-actions .button{padding:8px 10px;min-height:34px;font-size:11px}
.shiori-map-empty{display:grid;justify-items:center;gap:15px;color:var(--muted);font-size:12px;padding:25px;border:1px dashed var(--line);border-radius:17px}
.shiori-map-tip{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:17px 20px;font-size:12px;line-height:1.9;color:var(--muted);margin:23px 0}
.shiori-map-tip strong{color:var(--ink)}.shiori-map-tip p{margin:8px 0}.shiori-map-tip a{color:var(--green)}
.shiori-map-frame .leaflet-container{font-family:inherit}
.bottom-nav{gap:7px}.nav-item{min-width:60px;flex:0 1 77px}
@media(max-width:490px){
  .bottom-nav{gap:0;justify-content:space-around;padding-left:5px;padding-right:5px}
  .nav-item{min-width:0;flex:1;font-size:10px}
  .shiori-map-canvas{height:350px}
  .shiori-map-trip{padding:10px 12px}
  .shiori-place{gap:8px;padding:12px}
  .shiori-place-image{width:52px;height:67px}
  .shiori-place-actions .button{padding:7px 9px;font-size:10px}
}
@media print{.shiori-map-view{display:none!important}}


/* shiori. v0.6 — per-leg route choices; respects user colour palette */
.shiori-route-section{margin:26px 0 18px}
.shiori-route-section .shiori-map-subhead{margin:0 3px 12px}
.shiori-route-list{display:grid;gap:11px}
.shiori-route-card{background:var(--white);border:1px solid var(--line);border-radius:19px;padding:16px;box-shadow:0 5px 18px rgba(24,44,38,.035)}
.shiori-route-index{font-size:10px;letter-spacing:.15em;color:var(--orange);font-weight:850;margin-bottom:9px}
.shiori-route-names{display:block;font-size:14px;line-height:1.7;overflow-wrap:anywhere;color:var(--ink)}
.shiori-route-names>span{color:var(--orange);white-space:nowrap}
.shiori-route-times{display:block;margin:5px 0;color:var(--muted);font-size:11px;line-height:1.6}
.shiori-route-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:15px 0 12px}
.shiori-route-choice{font-size:12px;min-height:44px;padding:7px 5px;border:1px solid var(--line);border-radius:12px;background:var(--white);color:var(--ink);font-weight:750}
.shiori-route-choice.active{background:var(--green);border-color:var(--green);color:var(--on-accent,#fff)}
.shiori-route-choice:focus-visible{outline:3px solid var(--focus-ring,rgba(70,120,90,.45));outline-offset:2px}
.shiori-route-open{display:flex;white-space:normal;text-align:center;line-height:1.35;width:100%}
.shiori-route-empty{padding:22px 15px;background:var(--white);border:1px dashed var(--line);border-radius:16px;color:var(--muted);font-size:12px;text-align:center;line-height:1.9}
.shiori-route-disclaimer{margin:11px 3px 18px;font-size:11px;line-height:1.75;color:var(--muted)}
@media(max-width:490px){.shiori-route-card{padding:13px}.shiori-route-choice{font-size:11px}}


/* shiori. v0.7 — dedicated transit lookup screen */
.tp-page{max-width:820px;margin:0 auto}
.tp-intro{padding:8px 0 13px}.tp-intro h1{font-size:clamp(32px,7vw,47px);margin:9px 0 10px}
.tp-panel{border:1px solid var(--line);border-radius:23px;padding:20px;background:var(--white);box-shadow:var(--shadow);margin:22px 0}
.tp-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.tp-beta{font-size:10px;font-weight:900;letter-spacing:.1em;padding:5px 10px;color:var(--green);border:1px solid var(--line);border-radius:99px}
.tp-panel .field>label{display:block;color:var(--ink)}
.tp-panel .field input,.tp-panel .field select{background:var(--field-bg,var(--white));color:var(--ink);border-color:var(--line);max-width:100%}
.tp-panel .field input:focus,.tp-panel .field select:focus{outline:2px solid var(--green);outline-offset:1px}
.tp-datetime{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.tp-gap{padding:11px 13px;background:var(--sage);border:1px solid var(--line);border-radius:13px;font-size:12px;line-height:1.8;color:var(--ink);margin:8px 0 19px}
.tp-gap .tp-warning{color:#b45d35}
.tp-help{color:var(--muted);font-size:11px;line-height:1.75;margin:5px 0 15px}
.tp-status{padding:13px;border:1px solid var(--line);background:var(--soft-panel,var(--paper));color:var(--muted);font-size:12px;line-height:1.8;border-radius:13px;margin:12px 0}
.tp-admin{padding:11px 12px;background:var(--white);border:1px solid var(--line);border-radius:12px;margin:12px 0}
.tp-admin[hidden]{display:none}.tp-admin summary{font-size:12px;cursor:pointer;color:var(--ink);font-weight:750}
.tp-admin p{font-size:11px;color:var(--muted);margin-bottom:3px}
.tp-admin .field{margin:13px 0}
.tp-search-button,.tp-external{width:100%;white-space:normal;line-height:1.4;min-height:48px}
.tp-external{margin:10px 0}
.tp-provider{font-size:12px;color:var(--muted);margin:17px 0}
.tp-provider span{font:400 13px Roboto,-apple-system,sans-serif;color:#1f1f1f;background:#fff;border:1px solid #dedede;border-radius:6px;padding:6px 8px}
.tp-results>h2{font-size:19px;margin:14px 0}
.tp-result-card{border-radius:19px;border:1px solid var(--line);background:var(--white);padding:17px;margin:10px 0}
.tp-result-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}
.tp-result-top strong{font:700 25px Georgia,sans-serif;color:var(--green)}
.tp-result-fare{font-size:12px;color:var(--orange);margin:9px 0 16px;font-weight:800}
.tp-step{border-left:2px solid var(--green);padding:4px 13px 15px;margin-left:3px;display:grid;gap:4px;font-size:13px;color:var(--ink)}
.tp-step strong{font-size:13px}.tp-step small{color:var(--muted);font-size:11px}
.tp-step-walk{border-color:var(--line);display:flex;gap:12px}
.tp-policy{color:var(--muted);font-size:11px;line-height:1.8;background:var(--soft-panel,var(--white));border-radius:18px;padding:17px 18px;margin:20px 0}
.tp-policy p{margin:5px 0 11px}
.tp-map-cta{border-radius:17px;padding:16px;margin:15px 0;background:var(--white);border:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}
.tp-map-cta strong{display:block;font-size:14px;line-height:1.5}.tp-map-cta small{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.tp-map-cta .button{font-size:11px;white-space:normal;text-align:center;max-width:180px}
.tp-message{background:var(--white);border-radius:15px;padding:18px;color:var(--muted);font-size:12px}
@media(max-width:490px){.tp-panel{padding:15px}.tp-datetime{grid-template-columns:1fr 1fr;gap:8px}.tp-map-cta{flex-wrap:wrap}.tp-map-cta .button{width:100%;max-width:none}.tp-intro h1{font-size:34px}}
@media print{.tp-page{display:none!important}}


/* shiori. v0.8 — private Places Library */
.pl-page{max-width:940px;margin:0 auto;padding-bottom:38px}
.pl-heading{padding:13px 0 17px}
.pl-heading h1{font-size:clamp(29px,5.2vw,42px);line-height:1.35;margin:9px 0}
.pl-privacy-banner{padding:12px 15px;background:var(--sage);border:1px solid var(--line);border-radius:13px;color:var(--ink);font-size:12px;line-height:1.65}
.pl-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:17px 0}
.pl-stats>div{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:12px 9px;text-align:center}
.pl-stats strong{display:block;color:var(--green);font-family:Georgia,serif;font-size:27px;font-weight:500}
.pl-stats small{display:block;font-size:10px;color:var(--muted);padding-top:4px}
.pl-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0 27px}
.pl-toolbar .button{min-height:44px}
.pl-headline{margin:20px 2px 12px}.pl-headline h2{margin:5px 0 0;font-size:19px}
.pl-collection-bar{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;scroll-snap-type:x proximity}
.pl-collection{border:1px solid var(--line);border-radius:100px;padding:10px 14px;white-space:nowrap;color:var(--ink);background:var(--white);font-size:12px;font-weight:750;scroll-snap-align:start}
.pl-collection.active{background:var(--green);border-color:var(--green);color:var(--on-accent,#fff)}
.pl-list-actions{display:flex;gap:6px;justify-content:flex-end;margin:1px 0 15px}
.pl-list-actions .button{font-size:11px}
.pl-filter-row{display:flex;align-items:end;gap:10px;justify-content:space-between;margin:8px 0 15px}
.pl-filter-row>label{font-size:11px;color:var(--muted);min-width:112px}
.pl-filter-row select,.pl-filter-row input{display:block;background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:11px;padding:11px 9px;width:100%;margin-top:5px;font-size:12px;min-height:43px}
.pl-filter-row form{display:flex;align-items:end;gap:6px;flex:1;min-width:0}
.pl-filter-row form input{min-width:0}
.pl-filter-row form .button{min-height:43px;padding:10px 13px}
.pl-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.pl-card{border:1px solid var(--line);border-radius:18px;background:var(--white);padding:15px;min-width:0;box-shadow:0 6px 24px rgba(30,47,39,.035)}
.pl-card-top{display:flex;gap:13px;align-items:flex-start}
.pl-cover{width:86px;height:105px;object-fit:cover;border-radius:11px;flex-shrink:0;background:var(--sage)}
.pl-cover-empty{display:grid;place-items:center;font-size:34px}
.pl-card-info{min-width:0;flex:1}
.pl-card-label{color:var(--orange);font-size:10px;letter-spacing:.06em;font-weight:800}
.pl-card-info h3{font-size:15px;line-height:1.5;margin:7px 0 5px;overflow-wrap:anywhere}
.pl-card-info p{font-size:11px;color:var(--muted);line-height:1.5;overflow-wrap:anywhere}
.pl-rating{font-size:13px;font-weight:800;color:var(--orange)}
.pl-rating small{font-size:10px;font-weight:500;color:var(--muted)}
.pl-review{font-size:12px;line-height:1.8;margin:12px 0 7px;white-space:pre-wrap;overflow-wrap:anywhere}
.pl-meta{font-size:11px;color:var(--muted);line-height:1.7;margin:8px 0;overflow-wrap:anywhere}
.pl-links{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;padding-bottom:11px;border-bottom:1px solid var(--line)}
.pl-link{font-size:11px;color:var(--green);font-weight:800;text-underline-offset:3px}
.pl-card-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pl-card-actions .button{font-size:11px;min-height:36px;padding:7px 9px}
.pl-empty{grid-column:1/-1;min-height:120px;background:var(--white);border:1px dashed var(--line);padding:24px;border-radius:16px;display:grid;place-items:center;text-align:center;color:var(--muted);font-size:13px;line-height:2}
.pl-bottom-help{color:var(--muted);font-size:11px;line-height:1.9;margin:21px 0}
.pl-editor{border:1px solid var(--line);background:var(--white);border-radius:22px;padding:21px;margin:18px 0 23px;box-shadow:var(--shadow);scroll-margin-top:86px}
.pl-editor-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:10px}
.pl-editor-head h2{font-size:20px;margin:0}
.pl-editor-head .button{font-size:12px}
.pl-field{display:block;font-size:12px;color:var(--ink);font-weight:700;margin:13px 0 15px}
.pl-field input:not([type=checkbox]),.pl-field select,.pl-field textarea{display:block;width:100%;background:var(--field-bg,var(--white));color:var(--ink);border:1px solid var(--line);border-radius:11px;padding:12px;margin-top:7px;min-height:44px;font-weight:400;font-size:14px;line-height:1.45}
.pl-field input[type=file]{font-size:11px}
.pl-field input:focus-visible,.pl-field textarea:focus-visible,.pl-field select:focus-visible{outline:2px solid var(--green);outline-offset:1px}
.pl-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:13px}
.pl-checks{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}
.pl-check{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink);font-weight:500}
.pl-checks .pl-check{background:var(--sage);border-radius:13px;padding:10px}
.pl-photo-edit{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.pl-photo-edit img{width:72px;height:72px;object-fit:cover;border-radius:12px}
.pl-private{font-size:11px;color:var(--green);line-height:1.8;background:var(--sage);padding:12px;border-radius:11px}
.pl-hint{color:var(--muted);font-size:11px;line-height:1.75}
.pl-editor-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
@media(max-width:620px){.pl-cards{grid-template-columns:1fr}.pl-page{max-width:550px}.pl-card{padding:13px}}
@media(max-width:450px){.pl-form-grid{grid-template-columns:1fr}.pl-toolbar .button{flex:1;font-size:12px}.pl-filter-row{flex-wrap:wrap}.pl-filter-row form{flex-basis:100%}.pl-cover{width:78px;height:92px}}
@media(max-width:490px){.bottom-nav{gap:0;padding-left:2px;padding-right:2px}.nav-item{min-width:0;flex:1;font-size:9px;letter-spacing:0}.nav-item .icon{width:21px;height:21px}}
@media print{.pl-page{display:none!important}}


/* shiori. v0.9: private visited map / stamps / Travel Mode */
.pl-display-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:20px 0 8px;padding:5px;border:1px solid var(--line);border-radius:16px;background:var(--white)}
.pl-display-mode{border:0;background:transparent;border-radius:11px;padding:12px 5px;color:var(--muted);font-weight:750;font-size:12px}
.pl-display-mode.active{background:var(--green);color:var(--on-accent,#fff)}
.pl-map-summary{padding:0 2px}.pl-map-summary h2,.pl-stamps-intro h2{font-size:27px;margin:9px 0 4px}
.pl-map-summary p{font-size:12px;color:var(--muted)}
.pl-map-frame{border:1px solid var(--line);border-radius:17px;overflow:hidden;background:var(--white)}
.pl-map-canvas{height:360px;background:var(--sage);display:grid;place-items:center;font-size:12px;color:var(--muted)}
.pl-map-frame .leaflet-container{font-family:inherit}
.pl-map-status{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:13px;min-height:59px;background:var(--white);color:var(--muted);font-size:12px;line-height:1.6}
.pl-map-status strong{color:var(--ink)}.pl-map-status small{font-size:10px}
.pl-map-stop{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 12px;background:var(--white);border:1px solid var(--line);border-radius:12px;margin:9px 0}
.pl-map-stop>div:first-child{min-width:0;flex:1}.pl-map-stop strong{display:block;font-size:13px;overflow-wrap:anywhere}.pl-map-stop small{display:block;color:var(--muted);font-size:11px;margin-top:6px;overflow-wrap:anywhere}
.pl-map-stop-buttons{display:flex;gap:5px;flex-shrink:0}.pl-map-stop-buttons .button{padding:7px 9px;font-size:11px;min-height:37px}
.pl-map-notice,.pl-stamp-note{font-size:11px;color:var(--muted);line-height:1.85;margin:18px 3px 24px}
.pl-stamps-intro{padding:4px 3px 18px}.pl-stamps-intro p{font-size:12px;line-height:1.8;color:var(--muted)}
.pl-stamp-collection{border:1px solid var(--line);border-radius:21px;background:var(--white);padding:15px;margin:0 0 16px}
.pl-stamp-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.pl-stamp-heading h3{font-size:18px;margin:6px 0 12px}
.pl-stamp-heading>strong{color:var(--green);font-family:Georgia,serif;font-size:23px}
.pl-stamp-progress{border-radius:99px;height:8px;background:var(--sage);overflow:hidden;margin:7px 0 17px}.pl-stamp-progress span{display:block;height:100%;border-radius:99px}
.pl-stamp-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px 8px}
.pl-stamp-tile{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;min-width:0}
.pl-stamp-symbol{width:min(100%,95px);aspect-ratio:1;border:3px double var(--pl-stamp-ink);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;color:var(--pl-stamp-ink);transform:rotate(-7deg);gap:2px;padding:4px}
.pl-stamp-circle{border-radius:50%}.pl-stamp-square{border-radius:10px}.pl-stamp-ticket{border-radius:3px;clip-path:polygon(0 0,100% 0,100% 34%,92% 50%,100% 66%,100% 100%,0 100%,0 66%,8% 50%,0 34%)}
.pl-stamp-symbol:after{content:"";position:absolute;inset:5px;border:1px dashed currentColor;border-radius:inherit;pointer-events:none}
.pl-stamp-symbol.is-waiting{opacity:.25;filter:grayscale(1);border-style:dashed;transform:none}
.pl-stamp-emblem{font-size:31px;line-height:1.15}.pl-stamp-symbol small{font-size:8px;letter-spacing:.08em;font-weight:900;text-transform:uppercase;max-width:100%;overflow:hidden}
.pl-stamp-tile>strong{font-size:11px;line-height:1.45;overflow-wrap:anywhere}
.pl-stamp-tile>small{font-size:10px;color:var(--muted)}.pl-stamp-hint,.pl-stamps-empty{font-size:11px;color:var(--muted);line-height:1.8}
.tv-page{max-width:830px;margin:0 auto;padding-bottom:38px}
.tv-intro h1{font-size:clamp(31px,6vw,43px);margin:10px 0}.tv-intro .lede{font-size:13px}
.tv-hero{background:var(--green);border-radius:23px;padding:24px;color:var(--on-accent,#fff);margin:17px 0 20px}
.tv-hero-label{font-size:10px;letter-spacing:.2em;opacity:.85;font-weight:850}
.tv-hero h2{font-size:24px;line-height:1.5;color:inherit;margin:10px 0}
.tv-hero>strong{font-size:23px;color:inherit}.tv-hero p{font-size:11px;line-height:1.85;color:inherit;opacity:.85;margin:11px 0}
.tv-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.tv-hero-actions .button.primary{background:var(--white);color:var(--green);border-color:var(--white)}
.tv-hero-actions .button.outline{border-color:currentColor;color:inherit}
.tv-list-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:19px 0}.tv-list-heading h2{font-size:20px;margin:5px 0}
.tv-list-heading .button{font-size:11px}.tv-entries{display:grid;gap:11px}
.tv-entry{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:15px 16px}
.tv-entry.tv-ongoing{border:2px solid var(--green)}.tv-entry-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:11px}
.tv-index{color:var(--orange);font-weight:850}.tv-entry-time{font-size:13px;font-weight:750;color:var(--ink)}
.tv-entry-status{margin-left:auto;color:var(--muted);font-size:10px;font-weight:750}
.tv-ongoing .tv-entry-status{color:var(--green)}.tv-entry h3{font-size:15px;margin:10px 0 7px;line-height:1.6}
.tv-entry-location,.tv-entry-notes{font-size:12px;color:var(--muted);line-height:1.7;overflow-wrap:anywhere;white-space:pre-wrap}
.tv-entry-links{display:flex;flex-wrap:wrap;gap:15px}
.tv-entry-links a{color:var(--green);font-size:11px;font-weight:800;text-underline-offset:3px}
.tv-note,.tv-empty{font-size:11px;line-height:1.85;color:var(--muted);margin:18px 0}
@media(max-width:570px){.pl-stamp-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.pl-map-canvas{height:340px}}
@media(max-width:380px){.pl-map-stop{flex-wrap:wrap}.pl-map-stop-buttons{width:100%}.pl-stamp-emblem{font-size:24px}}
@media print{.pl-map-section,.pl-stamps-page,.tv-page{display:none!important}}


/* shiori. v1.0 — private social story/post preview and export */
.sh-share{max-width:1020px;margin:0 auto;padding-bottom:50px}
.sh-share-header h1{font-size:clamp(30px,5.2vw,43px);line-height:1.3;margin:10px 0}
.sh-share-header .lede{font-size:13px}
.sh-share-banner{background:var(--sage);border:1px solid var(--line);border-radius:13px;padding:13px 16px;color:var(--ink);font-size:12px;line-height:1.7;margin:20px 0}
.sh-share-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
.sh-share-controls{background:var(--white);border:1px solid var(--line);border-radius:20px;padding:18px;min-width:0}
.sh-share-controls .pl-field{margin:9px 0 13px}
.sh-share-options{display:grid;gap:10px;padding:13px 4px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:10px 0}
.sh-share-options label,.sh-share-photo-choices label{display:flex;gap:9px;align-items:center;color:var(--ink);font-size:12px;line-height:1.6}
.sh-share-options input,.sh-share-photo-choices input{width:18px;height:18px;accent-color:var(--green);flex-shrink:0}
.sh-share-photo-choices{border:1px solid var(--line);padding:13px 14px;border-radius:12px;background:var(--sage);margin:12px 0}
.sh-share-photo-choices[hidden]{display:none}
.sh-share-photo-choices strong{display:block;font-size:12px;margin-bottom:11px;color:var(--ink)}
.sh-share-photo-choices label{margin:11px 0}
.sh-share-photo-choices p{font-size:11px;color:var(--muted);line-height:1.7}
.sh-share-privacy,.sh-share-help{font-size:11px;line-height:1.85;color:var(--muted);margin:13px 1px}
.sh-share-action{width:100%;margin:5px 0 9px;white-space:normal;min-height:45px}
.sh-share-preview{background:var(--white);border:1px solid var(--line);border-radius:20px;padding:17px;display:grid;gap:14px;justify-items:center;min-width:0}
.sh-share-preview .small-label{justify-self:start}
.sh-share-preview canvas{width:100%;max-width:370px;height:auto;display:block;border:1px solid var(--line);box-shadow:0 12px 35px rgba(0,0,0,.10)}
.sh-share-preview p{font-size:11px;color:var(--muted);line-height:1.7;text-align:center;margin:0}
@media(max-width:760px){.sh-share-layout{grid-template-columns:1fr}.sh-share-preview{grid-row:1}.sh-share-preview canvas{max-width:285px}.sh-share-controls{padding:14px}.sh-share-header h1{font-size:34px}}
@media print{.sh-share{display:none!important}}


/* shiori. v0.11 — fast input, assisted extraction, optional details */
.pl-smart-import{background:var(--sage);border:1px solid var(--line);border-radius:15px;padding:15px;margin:12px 0 18px}
.pl-smart-import .pl-field{margin:9px 0}.pl-smart-import textarea{min-height:95px;background:var(--white)!important;resize:vertical}
.pl-smart-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:5px 0}
.pl-smart-actions .button{font-size:12px;min-height:39px;padding:9px 13px}
.pl-smart-actions .button.text{color:var(--green)}
.pl-assist-preview{margin-top:14px;background:var(--white);border:1px solid var(--line);border-radius:13px;padding:14px;line-height:1.7}
.pl-assist-preview>strong{display:block;color:var(--ink);font-size:13px;margin-bottom:9px}
.pl-assist-preview dl{display:grid;gap:0;margin:0 0 10px}
.pl-assist-preview dl>div{display:grid;grid-template-columns:minmax(65px,95px) minmax(0,1fr);gap:8px;border-bottom:1px solid var(--line);padding:9px 1px;align-items:start}
.pl-assist-preview dt{font-size:11px;color:var(--muted)}.pl-assist-preview dd{font-size:12px;margin:0;color:var(--ink);overflow-wrap:anywhere}
.pl-assist-preview dd small{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.pl-assist-warning{color:var(--orange);font-size:11px;line-height:1.8}
.pl-optional{border:1px solid var(--line);border-radius:14px;background:var(--white);margin:15px 0;overflow:hidden}
.pl-optional>summary{list-style:none;cursor:pointer;padding:16px;font-size:12px;color:var(--green);font-weight:800;line-height:1.7}
.pl-optional>summary::-webkit-details-marker{display:none}
.pl-optional>summary:before{content:'＋';display:inline-block;padding-right:10px}
.pl-optional[open]>summary:before{content:'－'}
.pl-optional[open]{padding:0 15px 15px}.pl-optional[open]>summary{padding:16px 0 8px;border-bottom:1px solid var(--line)}
.pl-optional summary:focus-visible{outline:2px solid var(--green)}
@media(max-width:500px){.pl-smart-import{padding:11px}.pl-smart-actions .button{flex:1}.pl-assist-preview dl>div{grid-template-columns:70px minmax(0,1fr)}}


/* shiori. v0.12 — sharing inbox and explicit confirmation */
.pl-share-notice{font-size:11px;line-height:1.8;color:var(--green);background:var(--white);border:1px solid var(--line);border-radius:10px;padding:11px 13px;margin:12px 0 2px}
.pl-toolbar [data-places-action="clipboard"]{font-size:12px}
@media(max-width:580px){.pl-toolbar [data-places-action="clipboard"]{width:100%;flex:0 0 100%}}


/* shiori. v0.13 — quick bulk Places review (private, local-only) */
.pl-bulk .pl-field textarea{min-height:170px;resize:vertical;font-size:13px}
.pl-bulk-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 15px}
.pl-bulk-actions>.button{flex:1;min-height:44px;padding:11px}
.pl-bulk-panel{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:12px 13px;margin:12px 0}
.pl-bulk-summary{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 12px}
.pl-bulk-summary strong{color:var(--green)}
.pl-bulk-rows{display:grid;gap:7px;max-height:470px;overflow-y:auto}
.pl-bulk-row{display:flex;align-items:start;gap:10px;border:1px solid var(--line);padding:11px;border-radius:10px;cursor:pointer;line-height:1.65;min-width:0}
.pl-bulk-row input{accent-color:var(--green);margin-top:4px;width:18px;height:18px;flex:0 0 18px}
.pl-bulk-row>span{display:block;min-width:0;overflow-wrap:anywhere}
.pl-bulk-row strong{display:block;color:var(--ink);font-size:12px;font-weight:750}
.pl-bulk-row small{display:block;font-size:10px;color:var(--muted);overflow-wrap:anywhere}
.pl-bulk-skipped{opacity:.65;cursor:not-allowed;background:var(--sage)}
@media(max-width:500px){.pl-bulk-actions>.button{flex:1 1 100%}}


/* shiori. v0.14 — QUICK PLAN / responsive privacy-first itinerary drafting */
.qp-page{max-width:1120px;margin:auto;padding-bottom:56px}
.qp-intro{margin:14px 0 19px}.qp-intro h1{font-size:clamp(27px,5vw,39px);line-height:1.35;margin:9px 0}
.qp-intro .lede{font-size:13px;line-height:1.8;color:var(--muted)}
.qp-workspace{display:grid;grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr);gap:16px;align-items:start}
.qp-panel{min-width:0;background:var(--white);border:1px solid var(--line);border-radius:18px;padding:18px}
.qp-panel-heading{display:flex;justify-content:space-between;gap:9px;align-items:center;margin:6px 0 14px}
.qp-panel-heading h2{font-size:17px;margin:0;color:var(--ink)}.qp-panel-heading>span{color:var(--muted);font-size:10px;line-height:1.5;text-align:right}
.qp-search{display:block;font-size:12px;color:var(--muted);font-weight:700;margin-bottom:10px}
.qp-search input,.qp-settings select,.qp-settings input,.qp-draft-fields select{display:block;box-sizing:border-box;width:100%;border:1px solid var(--line);border-radius:9px;padding:10px 11px;min-height:44px;background:var(--field-bg,var(--white));color:var(--ink);font:inherit;font-size:13px;margin-top:5px}
.qp-settings input[readonly]{opacity:.74}
.qp-library{display:grid;gap:7px;overflow-y:auto;max-height:440px;margin:10px 0 15px}
.qp-place{display:flex;align-items:center;gap:12px;padding:12px 11px;border:1px solid var(--line);border-radius:11px;cursor:pointer}
.qp-place input{flex-shrink:0;width:20px;height:20px;accent-color:var(--green)}
.qp-place-detail{flex:1;min-width:0}.qp-place-detail strong{display:block;color:var(--ink);font-size:13px;overflow-wrap:anywhere}.qp-place-detail small{display:block;font-size:11px;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}
.qp-place-order{display:grid;place-items:center;border-radius:50%;min-width:26px;height:26px;background:var(--green);color:var(--on-accent,#fff);font-weight:850;font-size:12px}
.qp-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 12px}
.qp-settings>label{min-width:0;font-size:11px;color:var(--muted);font-weight:720}
.qp-advice{font-size:11px;line-height:1.8;color:var(--muted);margin:12px 0 20px}
.qp-draft{display:grid;gap:9px}
.qp-draft-item{background:var(--section-bg,var(--white));border:1px solid var(--line);border-radius:12px;padding:12px}
.qp-draft-item[draggable=true]{cursor:grab}.qp-draft-item[draggable=true]:active{cursor:grabbing}
.qp-draft-header{display:flex;align-items:center;gap:10px}
.qp-draft-number{font-family:Georgia,serif;font-size:22px;font-weight:700;color:var(--orange)}
.qp-draft-text{flex:1;min-width:0}.qp-draft-text strong{display:block;font-size:13px;color:var(--ink);overflow-wrap:anywhere}
.qp-draft-text small{display:block;font-size:10px;color:var(--muted);overflow-wrap:anywhere;margin-top:3px}
.qp-move{display:flex;gap:5px}.qp-move button{min-width:35px;min-height:35px;border-radius:8px;border:1px solid var(--line);color:var(--ink);background:var(--white);font-size:17px}
.qp-move button:disabled{opacity:.28;cursor:not-allowed}
.qp-draft-fields{display:flex;gap:9px;align-items:center;flex-wrap:wrap;justify-content:space-between;margin-top:10px}
.qp-clock{font-size:12px;font-weight:800;white-space:nowrap;color:var(--green)}
.qp-draft-fields>label{display:flex;gap:7px;align-items:center;font-size:10px;color:var(--muted)}
.qp-draft-fields select{width:auto;min-height:38px;margin:0;padding:5px 8px;font-size:11px}
.qp-draft-fields .button{padding:5px 8px;font-size:11px}
.qp-empty,.qp-draft-pending{border:1px dashed var(--line);border-radius:9px;padding:14px;font-size:12px;color:var(--muted);line-height:1.8}
.qp-summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:13px 14px;background:var(--sage);border-radius:10px;margin-top:15px;flex-wrap:wrap}
.qp-summary strong{font-size:13px;color:var(--ink)}.qp-summary span{font-size:11px;color:var(--muted)}
.qp-commit{width:100%;min-height:48px;margin:8px 0 12px;font-weight:800}
@media(max-width:860px){.qp-workspace{grid-template-columns:1fr}.qp-library{max-height:330px}}
@media(max-width:440px){.qp-panel{padding:13px}.qp-settings{grid-template-columns:1fr 1fr}.qp-settings select,.qp-settings input{font-size:12px}.qp-intro h1{font-size:27px}}
@media print{.qp-page{display:none!important}}


/* shiori. v0.16 — offline proximity hint: distances are straight line only */
.qp-route{border:1px solid var(--line);background:var(--sage);border-radius:14px;padding:14px;margin:2px 0 18px}
.qp-route-head{display:flex;gap:9px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:9px}
.qp-route-head>strong{font-size:13px;color:var(--ink)}
.qp-route-head .button{min-height:38px;padding:9px 12px;font-size:11px}
.qp-route-head .button:disabled{opacity:.45}
.qp-route-note,.qp-route-status,.qp-route-warning{font-size:11px;line-height:1.8;color:var(--muted);margin:9px 0;overflow-wrap:anywhere}
.qp-route-warning{color:var(--orange);font-weight:750}
.qp-route-distance{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;margin:15px 0 6px}
.qp-route-distance strong{font-size:21px;line-height:1.4;color:var(--green);font-variant-numeric:tabular-nums}
.qp-route-distance small{font-size:10px;line-height:1.6;color:var(--muted)}
.qp-route-proposal{color:var(--ink);background:var(--white);padding:13px;border:1px solid var(--line);border-radius:10px;font-size:12px;line-height:1.9;overflow-wrap:anywhere}
.qp-route>[data-qp-action="route-adopt"]{width:100%;min-height:45px;margin:8px 0}
@media(max-width:440px){.qp-route{padding:11px}.qp-route-distance strong{font-size:19px}}


/* shiori. v0.15 — quick plan existing-itinerary conflict review */
.qp-conflict-review{display:grid;gap:9px;margin:17px 0 14px}
.qp-existing-count{font-size:11px;color:var(--muted);line-height:1.7}
.qp-existing-count strong{color:var(--ink)}
.qp-no-overlap{font-size:12px;font-weight:750;color:var(--green);margin:0;line-height:1.6}
.qp-overlap-warning{background:var(--section-bg,var(--white));border:1.5px solid var(--orange);border-radius:12px;padding:14px}
.qp-overlap-warning>strong{font-size:12px;line-height:1.6;color:var(--ink)}
.qp-overlap-warning ul{padding-left:20px;margin:10px 0;font-size:11px;line-height:1.8;color:var(--ink)}
.qp-overlap-warning p,.qp-unchecked{font-size:11px;line-height:1.75;color:var(--muted);margin:8px 0}
.qp-overlap-warning button{margin-top:7px;min-height:42px;white-space:normal}
.qp-unchecked{border-left:3px solid var(--orange);padding:8px 11px;background:var(--sage)}
.qp-commit:disabled{opacity:.46;cursor:not-allowed}


/* shiori. v0.17 — explicit private itinerary draft saving */
.qp-draft-storage{background:var(--sage);border:1px solid var(--line);border-radius:13px;padding:14px;margin:8px 0 17px}
.qp-draft-storage>strong{display:block;color:var(--ink);font-size:13px;margin-bottom:6px}
.qp-draft-storage>p{font-size:11px;line-height:1.75;color:var(--muted);margin:5px 0 11px}
.qp-draft-storage .qp-saved-stamp{color:var(--green);font-weight:800}
.qp-draft-storage .qp-unsaved-stamp{font-size:11px}
.qp-draft-storage-actions{display:flex;flex-wrap:wrap;gap:7px}
.qp-draft-storage-actions button{flex:1 1 auto;padding:9px 12px;min-height:40px;font-size:11px;white-space:normal}
.qp-draft-storage-actions button:disabled{opacity:.5}
@media(max-width:440px){.qp-draft-storage-actions button{flex:1 1 calc(50% - 5px)}}


/* shiori. v0.18 — mobile-first, read-only ALL DAYS overview */
.to-page{max-width:1120px;margin:0 auto;padding-bottom:64px}
.to-hero{padding:8px 0 18px}.to-hero h1{font-size:clamp(27px,5vw,38px);margin:10px 0;color:var(--ink);line-height:1.35}
.to-hero p,.to-guidance{font-size:12px;color:var(--muted);line-height:1.85;margin:8px 0}
.to-overall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:5px 0 13px}
.to-overall>div{display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:76px;padding:10px;border-radius:13px;background:var(--sage);text-align:center;min-width:0}
.to-overall strong{font-family:Georgia,serif;color:var(--ink);font-size:25px;line-height:1.2}
.to-overall span{font-size:10px;color:var(--muted)}
.to-days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:13px;margin:20px 0}
.to-day{border:1px solid var(--line);background:var(--white);border-radius:15px;padding:15px;min-width:0;box-sizing:border-box}
.to-day-head{display:flex;justify-content:space-between;align-items:start;gap:8px}
.to-day-head h2{font-size:17px;color:var(--ink);margin:6px 0 0;line-height:1.45}
.to-day-status{flex-shrink:0;border:1px solid var(--line);border-radius:12px;padding:4px 8px;font-size:10px;color:var(--muted)}
.to-day-stats{display:flex;gap:5px 11px;flex-wrap:wrap;font-size:10px;color:var(--muted);margin:13px 0 10px}
.to-day-stats strong{color:var(--orange)}
.to-entries{padding:0;margin:0;list-style:none}
.to-entry{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);min-width:0}
.to-time{flex:0 0 94px;font-size:10px;color:var(--green);font-weight:800;font-variant-numeric:tabular-nums;line-height:1.8;overflow-wrap:anywhere}
.to-entry-description{flex:1;min-width:0}.to-entry-description strong{display:block;color:var(--ink);font-size:12px;overflow-wrap:anywhere;line-height:1.65}
.to-entry-description small{display:block;color:var(--muted);font-size:10px;margin-top:3px;overflow-wrap:anywhere}
.to-row-alert{font-size:9px;color:var(--orange);flex:0 0 auto;padding-top:2px}
.to-empty{font-size:11px;line-height:1.8;color:var(--muted);padding:11px 0}
.to-more summary{font-size:11px;color:var(--green);cursor:pointer;margin:11px 0;list-style:revert}
.to-day-actions{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 0}
.to-day-actions>.button{flex:1 1 auto;font-size:11px;padding:8px 9px;min-height:40px}
@media(max-width:760px){.to-days{grid-template-columns:1fr}}
@media(max-width:480px){.to-overall{grid-template-columns:repeat(2,minmax(0,1fr))}.to-day{padding:12px}.to-time{flex-basis:78px}.to-day-actions>.button{flex:1 1 calc(50% - 8px)}}


/* shiori. v0.19 — keep trip reuse discoverable without nested interactive cards */
.trip-reuse-trigger{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:42px;padding:7px 12px;margin-top:-1px;
  border:1px solid var(--line);border-radius:0 0 11px 11px;background:var(--white);color:var(--green);font-size:11px;cursor:pointer}
.trip-reuse-trigger svg{width:14px;height:14px}
.trip-reuse-trigger:hover{background:var(--sage)}
.reuse-description{font-size:12px;line-height:1.8;color:var(--muted);margin:0 0 17px}
.reuse-choices{margin:17px 0;padding:15px;border:1px solid var(--line);background:var(--sage);border-radius:13px}
.reuse-choices>strong{display:block;font-size:13px;margin-bottom:10px;color:var(--ink)}
.reuse-choice{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap;padding:11px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.6;color:var(--ink);cursor:pointer}
.reuse-choice:last-child{border-bottom:0}
.reuse-choice input{width:18px;height:18px;accent-color:var(--green);flex:0 0 auto;margin-top:2px}
.reuse-choice small{flex-basis:100%;padding-left:26px;font-size:10px;color:var(--muted)}
.reuse-note{font-size:11px;line-height:1.85;color:var(--muted)}
.reuse-preview{border:1px solid var(--line);border-radius:12px;padding:12px;margin:17px 0;background:var(--white);font-size:12px;line-height:1.8;overflow-wrap:anywhere}
.reuse-preview strong{display:block;margin-bottom:6px;color:var(--ink)}
.reuse-preview p{margin:4px 0}
@media(max-width:500px){.trip-reuse-trigger{min-height:44px}.reuse-choices{padding:10px}}

.trip-card-wrap{display:flex;flex-direction:column;min-width:0}
.trip-card-wrap>.trip-card{flex:1;border-radius:20px 20px 0 0}
.trip-card-wrap>.trip-reuse-trigger{border-radius:0 0 14px 14px}
