.entry{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 24px;max-width:420px;margin:0 auto}.entry-logo{font-size:54px;margin-bottom:14px}.entry h1{font-family:var(--font-head);font-size:30px;margin:0 0 10px}.entry p{color:var(--c-ink-soft);font-size:14px;line-height:1.6;margin:0 0 24px}.entry-input{width:100%;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-field);padding:13px 14px;font-size:15px;font-family:var(--font-body);text-align:center;margin-bottom:12px;color:var(--c-ink)}.entry-input:focus{outline:none;border-color:var(--c-primary-bar)}.entry-btn{width:100%;background:var(--c-primary);color:var(--c-cream);font-family:var(--font-num);font-weight:600;padding:14px;border:none;border-radius:var(--radius-pill);font-size:15.5px;cursor:pointer}.entry-btn:disabled{opacity:.5;cursor:default}.entry-note{font-size:12.5px;color:var(--c-ink-faint);margin-top:18px}.cd-chip{display:inline-block;font-family:var(--font-num);font-size:12.5px;font-weight:600;padding:4px 12px;border-radius:var(--radius-pill);white-space:nowrap;line-height:1.4;border:1px solid transparent}.cd-chip[data-tone=soon]{background:var(--c-accent-ter-faint);color:var(--c-accent-ter-ink)}.cd-chip[data-tone=upcoming]{background:var(--c-cream);color:var(--c-ink-2)}.cd-chip[data-tone=today],.cd-chip[data-tone=ongoing]{background:var(--c-primary-faint);color:var(--c-primary-ink)}.cd-chip[data-tone=past]{background:var(--c-track);color:var(--c-ink-soft)}.form{padding:4px 2px}.form-title{font-family:var(--font-head);font-weight:400;font-size:22px;margin-bottom:16px}.fld-label{font-size:12px;color:var(--c-ink-soft);font-weight:600;margin-bottom:7px}.fld{display:block;margin-bottom:12px}.fld>span{display:block;font-size:12px;color:var(--c-ink-soft);font-weight:600;margin-bottom:6px}.fld input,.fld textarea,.fld select{width:100%;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-field);padding:12px 13px;font-family:var(--font-body);font-size:14px;color:var(--c-ink)}.fld input:focus,.fld textarea:focus,.fld select:focus,.qa-mapinput:focus{outline:none;border-color:var(--c-primary-bar)}.fld textarea{min-height:72px;resize:vertical}.fld-hint{font-size:12px;color:var(--c-ink-2);background:var(--c-primary-faint);border-radius:12px;padding:9px 12px;margin-bottom:12px;line-height:1.5}.fld-row{display:flex;gap:10px}.fld-row .fld{flex:1}.time-pick{display:flex;align-items:center;gap:6px}.time-pick select{flex:1;min-width:0}.time-colon{font-weight:700;color:var(--c-ink-soft)}.links-edit{display:flex;flex-direction:column;gap:8px}.link-row{display:flex;gap:6px;align-items:center}.link-url{flex:1;min-width:0}.link-del{flex:none;width:36px;height:42px;border-radius:12px;border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-ink-soft);font-size:13px;cursor:pointer}.link-add{align-self:flex-start;background:none;border:none;color:var(--c-primary-ink);font-weight:600;font-size:13px;cursor:pointer;padding:2px 0}.icon-pick{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.icon-opt{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:20px;background:var(--c-surface);border:1px solid var(--c-border);cursor:pointer}.icon-opt.sel{border:2px solid var(--c-primary);background:var(--c-primary-faint)}.form-save{width:100%;margin-top:6px;background:var(--c-primary);color:var(--c-cream);border:none;font-family:var(--font-title);font-weight:600;padding:14px;border-radius:var(--radius-pill);font-size:14.5px;cursor:pointer}.form-save.sticky-save{position:sticky;bottom:0;margin-top:12px;box-shadow:0 0 0 10px var(--c-sheet),0 -12px 14px -12px #5c554240}.qa-picks{display:flex;flex-direction:column;gap:8px}.qa-pick{display:flex;align-items:center;gap:10px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:14px;padding:13px 15px;font-size:14px;font-weight:600;cursor:pointer}.qa-ic{font-size:20px}.qa-maprow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.qa-mapval{font-size:12.5px;color:var(--c-ink-soft)}.qa-small{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-pill);padding:7px 13px;font-size:12px;font-weight:600;color:var(--c-ink);cursor:pointer}.qa-mapinput{width:100%;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-field);padding:12px 13px;font:inherit;font-family:var(--font-body);font-size:14px}.slip-add{width:100%;border:2px dashed var(--c-border);background:var(--c-surface);color:var(--c-primary-ink);border-radius:14px;padding:13px;font-weight:600;font-size:13.5px;cursor:pointer;margin-bottom:12px}.slip-preview{position:relative;width:110px;margin-bottom:12px}.slip-preview img{width:110px;height:110px;object-fit:cover;border-radius:14px}.slip-remove{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;border:none;background:var(--c-accent-ter);color:var(--c-cream);font-size:12px;cursor:pointer}.form-delete{width:100%;margin-top:10px;background:none;border:none;color:var(--c-accent-ter);font-weight:600;font-size:13px;cursor:pointer;padding:8px}.del-confirm{margin-top:12px;background:var(--c-accent-ter-faint);border-radius:14px;padding:13px;font-size:12.5px;color:var(--c-accent-ter-ink)}.del-actions{display:flex;gap:8px;margin-top:10px}.btn-ghost,.btn-danger{flex:1;border:none;border-radius:var(--radius-pill);padding:11px;font-weight:600;font-size:13px;cursor:pointer}.btn-ghost{background:var(--c-surface);color:var(--c-ink);border:1px solid var(--c-border)}.btn-danger{background:var(--c-accent-ter);color:var(--c-cream)}@media (max-width: 760px){.fld input,.fld textarea,.fld select,.qa-mapinput{font-size:16px}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#362d156b;display:flex;align-items:center;justify-content:center;z-index:60;padding:16px}.modal-card{position:relative;background:var(--c-sheet);border-radius:var(--radius-card);padding:22px;width:440px;max-width:100%;max-height:90vh;overflow-y:auto}.modal-close{position:absolute;top:16px;right:16px;border:none;background:none;font-size:17px;cursor:pointer;color:var(--c-ink-soft)}.board-head h2,.list-head h2{font-family:var(--font-head);font-size:30px;font-weight:400;margin:0 0 18px}.back-btn{background:none;border:none;color:var(--c-ink-2);font-weight:600;font-size:15px;cursor:pointer;padding:0 0 12px}.board-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.detail-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.detail-topbar .back-btn{padding:0}.top-tools{display:flex;gap:8px;align-items:center;flex:0 0 auto}.add-actions{display:flex;gap:8px;align-items:center;margin-left:auto}.head-edit,.head-refresh{background:var(--c-surface);color:var(--c-ink);border:1px solid var(--c-border);font-weight:600;font-size:13px;padding:10px 15px;border-radius:var(--radius-pill);cursor:pointer}.head-refresh{padding:10px 13px;line-height:1;flex:0 0 auto}.head-refresh:disabled{opacity:.6;cursor:default}.head-refresh.spinning{animation:cd-spin .8s linear infinite}@keyframes cd-spin{to{transform:rotate(360deg)}}.head-quick{background:var(--c-primary-faint);color:var(--c-primary-ink);border:1px solid transparent;font-weight:600;font-size:13px;padding:10px 15px;border-radius:var(--radius-pill);cursor:pointer}.head-add{background:var(--c-primary);color:var(--c-cream);border:none;font-family:var(--font-title);font-weight:600;font-size:13.5px;padding:10px 18px;border-radius:var(--radius-pill);cursor:pointer}.board-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-family:var(--font-head);font-weight:400;font-size:30px;margin:0}.bh-ic{width:52px;height:52px;border-radius:50%;background:var(--c-rose-soft);display:inline-flex;align-items:center;justify-content:center;font-size:26px;flex:0 0 auto}.bh-name{line-height:1.1}.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.filter-pill{background:var(--c-surface);color:var(--c-ink-2);border:1px solid var(--c-border);font-size:13.5px;font-weight:600;padding:8px 15px;border-radius:var(--radius-pill);cursor:pointer}.filter-pill.on{background:var(--c-ink);color:var(--c-cream);border-color:var(--c-ink)}.sort-row{display:flex;align-items:center;gap:8px;margin:0 0 16px}.sort-label{font-size:13px;font-weight:600;color:var(--c-ink-soft)}.sort-select{flex:1;max-width:260px;font-size:13.5px;font-weight:600;font-family:var(--font-body);color:var(--c-ink);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-pill);padding:9px 14px;cursor:pointer}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(214px,1fr));gap:16px}.sortable-card{touch-action:manipulation}.sortable-card .item-card{width:100%;height:100%}.empty{background:var(--c-surface);border:1px dashed var(--c-border);border-radius:var(--radius-card);padding:34px;text-align:center;color:var(--c-ink-soft)}.loading{padding:34px;color:var(--c-ink-soft)}.tpl-intro{font-size:13px;color:var(--c-ink-2);background:var(--c-surface);border-radius:var(--radius-card);padding:13px 16px;margin:0 0 16px;line-height:1.55}.tpl-row{width:100%;border:none;text-align:left;cursor:pointer}.tpl-edit{margin-left:auto;color:var(--c-primary-ink);font-weight:600;font-size:12.5px}.tpl-link{color:var(--c-primary-ink);font-weight:600}.home-brand{display:none}.list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.list-head h2{margin:0}.list-refresh{background:var(--c-surface);color:var(--c-ink-2);border:1px solid var(--c-border);font-weight:600;font-size:13px;padding:9px 15px;border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;flex-shrink:0}.list-refresh:disabled{opacity:.6;cursor:default}.list-refresh.spinning{animation:cd-spin .8s linear infinite}.list-actions{display:flex;gap:12px;margin-top:4px}.list-add{background:var(--c-surface);border:1px solid var(--c-border);color:var(--c-ink);font-family:var(--font-title);font-weight:600;font-size:14px;cursor:pointer;padding:11px 20px;border-radius:var(--radius-pill)}.list-add.primary{background:var(--c-primary);color:var(--c-cream);border-color:transparent}.board-rows{display:flex;flex-direction:column;gap:14px;margin-bottom:20px}.board-row{display:flex;align-items:center;gap:13px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-card);padding:14px 16px;text-decoration:none;color:inherit;cursor:pointer;text-align:left;width:100%}.br-ic{width:46px;height:46px;border-radius:50%;background:var(--c-primary-soft);display:inline-flex;align-items:center;justify-content:center;font-size:23px;flex:0 0 auto}.br-name{font-family:var(--font-title);font-size:15px;font-weight:500}.entry-card{display:block;background:var(--c-surface-warm);border-radius:var(--radius-card-lg);padding:20px 24px;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}.entry-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-card)}.entry-card.past{opacity:.82}.ec-head{display:flex;align-items:center;gap:14px}.ec-ic{width:52px;height:52px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:26px;flex:0 0 auto}.ec-id{display:flex;flex-direction:column;gap:3px;min-width:0}.ec-name{font-family:var(--font-title);font-weight:500;font-size:22px;line-height:1.15}.ec-date{font-size:13px;color:var(--c-ink-soft);font-weight:600}.ec-count{margin-left:auto;text-align:right;display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto}.ec-count b{font-family:var(--font-num);font-size:40px;font-weight:700;line-height:1;color:var(--c-primary)}.ec-count small{font-size:12px;color:var(--c-ink-soft);font-weight:600;margin-top:2px}.ec-budget{margin-top:16px}.ec-bline{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;font-weight:600;color:var(--c-ink-2)}.ec-bline b{font-family:var(--font-num);color:var(--c-ink)}.ec-over{color:var(--c-accent-ter);font-family:var(--font-num);font-weight:700}.ec-bar{display:flex;height:9px;background:var(--c-track);border-radius:var(--radius-pill);overflow:hidden;margin:9px 0}.ec-bar>i{display:block;height:100%}.ec-bar>i.fill{background:var(--c-primary-bar)}.ec-bar>i.over{background:var(--c-accent-ter)}.ec-bstats{display:inline-flex;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--c-ink-2);font-weight:600;background:var(--c-cream);padding:6px 12px;border-radius:var(--radius-pill)}.ec-bstats b{font-family:var(--font-num);color:var(--c-ink)}@media (max-width: 560px){.card-grid{grid-template-columns:1fr;gap:10px}.board-head h2,.list-head h2{font-size:25px}.board-head-row{flex-wrap:wrap;gap:12px;margin-bottom:12px}.board-title{width:100%;font-size:24px}.bh-ic{width:44px;height:44px;font-size:22px}.back-btn{font-size:15px;padding:4px 0 12px}.entry-card{padding:18px;border-radius:var(--radius-card)}.ec-name{font-size:20px}.ec-count b{font-size:32px}}@media (max-width: 760px){.home-brand{display:block;font-family:var(--font-head);font-size:26px;line-height:1;color:var(--c-ink);margin:2px 0 14px}.detail-topbar .back-btn{padding:4px 0}.top-tools .head-refresh,.top-tools .head-edit{padding:9px 13px;font-size:13px}.add-actions{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));margin:0;z-index:45;gap:10px}.add-actions .head-quick,.add-actions .head-add{flex:1;text-align:center;padding:14px 10px;font-size:14px;box-shadow:0 8px 22px #362d1547}.sort-select{font-size:16px;max-width:none}}.summary{margin-bottom:20px}.sum-card{background:var(--c-surface-warm);border-radius:var(--radius-card-lg);padding:22px 26px}.sum-grid{display:flex;align-items:flex-start;justify-content:space-between;gap:40px;flex-wrap:wrap}.sum-main{flex:0 1 auto;min-width:240px}.sum-k{font-size:13px;color:var(--c-ink-soft);font-weight:600}.sum-spent{margin-top:4px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.sum-big{font-family:var(--font-num);font-size:40px;font-weight:700;line-height:1.05;color:var(--c-primary)}.sum-of{font-size:14px;color:var(--c-ink-soft);font-weight:600}.sum-bar{display:flex;height:10px;background:var(--c-track);border-radius:var(--radius-pill);overflow:hidden;margin-top:16px}.sum-bar>i{display:block;height:100%}.sum-bar>i.fill{background:var(--c-primary-bar)}.sum-bar>i.over{background:var(--c-accent-ter)}.sum-cols{display:flex;gap:40px;flex:0 0 auto;align-items:flex-start}.sum-col .sk{font-size:12.5px;color:var(--c-ink-soft);font-weight:600}.sum-col .sv{font-family:var(--font-num);font-size:20px;font-weight:700;margin-top:3px;color:var(--c-ink)}.sum-col.over .sv{color:var(--c-accent-ter)}@media (max-width: 560px){.sum-card{padding:18px;border-radius:var(--radius-card)}.sum-grid{flex-direction:column;gap:14px}.sum-main{width:100%;min-width:0}.sum-big{font-size:34px}.sum-cols{width:100%;gap:0;justify-content:space-between}}.item-card{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon pill" "name name" "amount amount" "bar bar" "foot foot" "note note";row-gap:0;column-gap:10px;min-height:172px;text-align:left;background:var(--c-surface);border:1.5px solid transparent;border-radius:var(--radius-card);padding:16px 17px;box-shadow:var(--shadow-card);cursor:pointer;font:inherit;color:inherit;transition:transform .15s,box-shadow .15s}.item-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-hover)}.ic-icon{grid-area:icon;width:46px;height:46px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-size:23px}.ic-pill{grid-area:pill;justify-self:end;align-self:start;font-size:11px;padding:4px 10px;border-radius:var(--radius-pill);font-weight:600;white-space:nowrap}.ic-name{grid-area:name;font-family:var(--font-title);font-size:15px;font-weight:500;line-height:1.3;margin-top:12px}.ic-amount{grid-area:amount;margin-top:10px}.ic-paidlabel{display:block;font-size:11px;color:var(--c-ink-soft)}.ic-money{display:block;margin-top:2px}.ic-paidnum{font-family:var(--font-num);font-size:21px;font-weight:700}.ic-of{font-size:12.5px;color:var(--c-ink-soft);font-weight:600}.ic-bar{grid-area:bar;height:7px;background:var(--c-track);border-radius:var(--radius-pill);margin-top:11px;overflow:hidden}.ic-bar>i{display:block;height:100%}.ic-foot{grid-area:foot;font-size:11.5px;color:var(--c-ink-soft);margin-top:8px}.ic-note{grid-area:note;font-size:11.5px;color:var(--c-ink-2);margin-top:8px;background:var(--c-track);border-radius:10px;padding:6px 9px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media (max-width: 560px){.item-card{grid-template-columns:auto 1fr auto;grid-template-areas:"icon name pill" "icon bar amount";column-gap:12px;row-gap:6px;align-items:center;min-height:0;padding:12px 14px}.ic-icon{align-self:center;width:42px;height:42px;border-radius:13px;font-size:21px}.ic-pill{align-self:center}.ic-name{align-self:center;margin-top:0}.ic-amount{justify-self:end;text-align:right;margin-top:0}.ic-paidlabel{display:none}.ic-money{margin-top:0;white-space:nowrap}.ic-paidnum{font-size:16px}.ic-of{font-size:11.5px}.ic-bar{align-self:center;margin-top:0}.ic-foot,.ic-note{display:none}}.item-card[data-status=deposit] .ic-paidnum,.item-card[data-status=partial] .ic-paidnum{color:var(--c-primary-ink)}.item-card[data-status=deposit] .ic-bar>i,.item-card[data-status=partial] .ic-bar>i{background:var(--c-primary-bar)}.item-card[data-status=deposit] .ic-pill,.item-card[data-status=partial] .ic-pill{background:var(--c-primary-faint);color:var(--c-primary-ink)}.item-card[data-status=paid] .ic-paidnum{color:var(--c-primary-ink)}.item-card[data-status=paid] .ic-bar>i{background:var(--c-primary)}.item-card[data-status=paid] .ic-pill{background:var(--c-primary-soft);color:var(--c-primary-ink)}.item-card[data-status=over] .ic-paidnum{color:var(--c-accent-ter)}.item-card[data-status=over] .ic-bar>i{background:var(--c-accent-ter)}.item-card[data-status=over] .ic-pill{background:var(--c-accent-ter-faint);color:var(--c-accent-ter-ink)}.item-card[data-status=none] .ic-paidnum{color:var(--c-ink-soft)}.item-card[data-status=none] .ic-bar>i{background:var(--c-track)}.item-card[data-status=none] .ic-pill{background:var(--c-track);color:var(--c-ink-2)}.tile-mint{background:var(--c-mint)}.tile-pink{background:var(--c-pink)}.tile-blue{background:var(--c-blue)}.tile-lav{background:var(--c-lav)}.tile-peach{background:var(--c-peach)}.tile-sky{background:var(--c-sky)}.tile-cream{background:var(--c-cream)}.photo-input{border:2px dashed var(--c-border);border-radius:16px;background:var(--c-surface);padding:18px;display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--c-primary-ink);cursor:pointer;text-align:center;margin-bottom:12px}.photo-input:focus{outline:2px solid var(--c-primary-bar)}.pi-icon{font-size:28px}.pi-title{font-size:12.5px;font-weight:600}.pi-opts{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.pi-opt{font-size:10.5px;background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--radius-pill);padding:4px 11px;font-weight:600;color:var(--c-primary-ink);font-family:inherit;line-height:1.4}button.pi-opt{cursor:pointer}button.pi-opt:active{background:var(--c-primary-faint)}.pi-opt.hot{background:var(--c-primary);color:var(--c-cream);border-color:transparent}.lb-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c10eb;z-index:80;display:flex;flex-direction:column}.lb-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;color:#fff}.lb-count{font-size:13px;opacity:.85}.lb-btn{background:#ffffff24;color:#fff;border:none;border-radius:10px;padding:8px 12px;font-size:13px;font-weight:700;cursor:pointer}.lb-stage{flex:1;position:relative;display:flex;align-items:center;justify-content:center;padding:0 12px 16px;min-height:0}.lb-img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:none;background:#ffffff2e;color:#fff;font-size:24px;cursor:pointer}.lb-nav.left{left:14px}.lb-nav.right{right:14px}.lb-delete{position:absolute;bottom:18px;left:50%;transform:translate(-50%);background:var(--c-red);color:#fff;border:none;border-radius:10px;padding:9px 16px;font-weight:700;font-size:13px;cursor:pointer}.lb-grid{flex:1;overflow-y:auto;padding:10px 16px 24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;align-content:start}.lb-grid-cell{border:none;padding:0;background:#ffffff0a;border-radius:12px;overflow:hidden;cursor:pointer;min-height:300px;display:flex;align-items:center;justify-content:center}.lb-grid-cell img{width:100%;height:100%;max-height:440px;object-fit:contain}@media (max-width: 640px){.lb-grid{grid-template-columns:1fr}}.photo-strip{margin-bottom:4px}.ps-thumbs{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.ps-thumb{position:relative;width:72px;height:72px}.photo-strip.compact .ps-thumb{width:48px;height:48px}.ps-open{width:100%;height:100%;border:none;padding:0;border-radius:12px;overflow:hidden;cursor:pointer;background:var(--c-track)}.ps-open img{width:100%;height:100%;object-fit:cover}.ps-del{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;border:none;background:var(--c-accent-ter);color:var(--c-cream);font-size:11px;line-height:1;cursor:pointer}.ps-add{width:72px;height:72px;border:2px dashed var(--c-border);background:var(--c-surface);color:var(--c-primary-ink);border-radius:14px;font-size:26px;cursor:pointer;flex:0 0 auto}.photo-strip.compact .ps-add{width:48px;height:48px;font-size:20px}.ps-all{border:1px solid var(--c-border);background:var(--c-surface);border-radius:12px;padding:8px 12px;font-size:12px;font-weight:600;color:var(--c-ink);cursor:pointer;height:72px}.ps-adder{margin-top:10px}.ps-cancel{display:block;margin:2px auto 0;background:none;border:none;color:var(--c-ink-soft);font-size:12px;cursor:pointer}.detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#362d156b;display:flex;justify-content:flex-end;z-index:50}.detail-panel{width:460px;max-width:calc(100% - 28px);margin:14px;height:calc(100vh - 28px);background:var(--c-sheet);border-radius:var(--radius-card-lg);display:flex;flex-direction:column;overflow:hidden}.d-scroll{flex:1 1 auto;overflow-y:auto;padding:18px 20px 8px}.detail-top{margin-bottom:10px}.d-close{border:none;background:var(--c-surface-warm);width:32px;height:32px;border-radius:50%;font-size:15px;cursor:pointer;color:var(--c-ink-2)}.d-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}.d-ic{width:46px;height:46px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:24px;font-family:var(--font-emoji);flex:0 0 auto}.d-title{font-family:var(--font-title);font-weight:500;font-size:21px}.d-pill{margin-left:auto;font-size:11.5px;padding:4px 11px;border-radius:var(--radius-pill);font-weight:600;background:var(--c-track);color:var(--c-ink-2);flex:0 0 auto}.d-pill.status-deposit,.d-pill.status-partial{background:var(--c-primary-faint);color:var(--c-primary-ink)}.d-pill.status-paid{background:var(--c-primary-soft);color:var(--c-primary-ink)}.d-pill.status-over{background:var(--c-accent-ter-faint);color:var(--c-accent-ter-ink)}.d-nums{display:grid;grid-template-columns:repeat(3,1fr)}.d-nums .k{font-size:11.5px;color:var(--c-ink-soft);font-weight:600}.d-nums .v{font-family:var(--font-num);font-size:22px;font-weight:700;margin-top:2px}.d-nums .v.y{color:var(--c-primary-ink)}.d-nums .v.r{color:var(--c-ink)}.d-bar{display:flex;height:8px;background:var(--c-track);border-radius:var(--radius-pill);overflow:hidden;margin:12px 0 4px}.d-bar>i{display:block;height:100%}.d-bar>i.fill{background:var(--c-primary-bar)}.d-bar>i.over{background:var(--c-accent-ter)}.d-block{margin-top:20px}.d-sec-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.d-sec{font-family:var(--font-title);font-weight:500;font-size:14.5px}.d-block>.d-sec{margin-bottom:10px}.d-muted{color:var(--c-ink-soft);font-size:13px}.d-payrow{display:flex;align-items:center;gap:12px;background:var(--c-surface-warm);border-radius:16px;padding:10px 12px;margin-bottom:8px}.d-pay-info{display:flex;flex-direction:column;min-width:0}.d-pay-label{font-size:13px;font-weight:600}.d-pay-date{color:var(--c-ink-soft);font-size:11.5px}.d-pay-amt{margin-left:auto;font-family:var(--font-num);font-weight:700;font-size:15px}.d-pay-del{border:none;background:none;cursor:pointer;font-size:13px;opacity:.6;flex:0 0 auto}.d-addpay{background:none;border:none;color:var(--c-primary-ink);font-weight:600;font-size:13px;cursor:pointer;padding:0}.d-payform{margin-top:8px}.d-contact-card{background:var(--c-surface-warm);border-radius:16px;padding:14px 15px}.d-vendor{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--c-ink);font-size:14.5px}.d-vendor-pin{display:inline-flex;align-items:center;text-decoration:none;color:var(--c-accent-ter-ink)}.d-contacts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.d-contacts:empty{display:none}.d-tel,.d-maplink,.d-shoplink{display:inline-flex;align-items:center;gap:5px;font-weight:600;font-size:12.5px;padding:7px 13px;border-radius:var(--radius-pill);text-decoration:none;background:var(--c-surface);border:1px solid var(--c-border);color:var(--c-ink-2)}.d-note{font-size:13px;color:var(--c-ink-2);line-height:1.6;background:var(--c-surface-warm);border-radius:16px;padding:14px 15px}.d-footer{flex:0 0 auto;padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));background:var(--c-sheet);box-shadow:0 -10px 16px -12px #5c554240}.d-foot-btns{display:flex;gap:10px}.d-delete{flex:1;background:var(--c-surface);border:1px solid var(--c-border);color:var(--c-ink);font-weight:600;padding:13px;border-radius:var(--radius-pill);font-size:14px;cursor:pointer}.d-edit{flex:2;background:var(--c-primary);color:var(--c-cream);border:none;font-family:var(--font-title);font-weight:500;padding:13px;border-radius:var(--radius-pill);font-size:14px;cursor:pointer}@media (max-width: 760px){.detail-panel{width:100%;max-width:100%;margin:0;height:100vh;border-radius:0}}.plan-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.plan-tools{flex:0 0 auto}.plan-days{display:flex;gap:8px;overflow-x:auto;padding:2px 0;flex:1;min-width:0}.plan-day{flex:0 0 auto;display:inline-flex;align-items:baseline;gap:7px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-pill);padding:9px 16px;cursor:pointer;color:var(--c-ink)}.plan-day b{font-family:var(--font-title);font-weight:500;font-size:14px}.plan-day span{font-size:11.5px;color:var(--c-ink-soft);font-weight:600}@media (max-width: 560px){.plan-topbar{flex-direction:column;align-items:stretch;gap:12px}.plan-tools{order:-1}.plan-day{flex-direction:column;align-items:flex-start;gap:2px;border-radius:16px;padding:10px 18px}.plan-day b{font-size:15px}}.plan-day.on{background:var(--c-primary);border-color:transparent}.plan-day.on b,.plan-day.on span{color:var(--c-cream)}.plan-list{padding-top:2px}.ev{display:flex;gap:11px}.ev-time{width:46px;flex:0 0 auto;text-align:right;font-family:var(--font-num);font-size:12.5px;font-weight:600;color:var(--c-ink-soft);padding-top:20px}.ev-line{display:flex;flex-direction:column;align-items:center}.ev-dot{width:11px;height:11px;border-radius:50%;background:var(--c-primary);margin-top:22px;border:3px solid var(--c-primary-faint)}.ev-rod{flex:1;width:2px;background:var(--c-border);min-height:12px}.ev-body{flex:1;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--c-surface);border-radius:var(--radius-card);padding:14px 16px;margin:8px 0;cursor:pointer}.ev-main{min-width:0}.ev-title{font-family:var(--font-title);font-size:15px;font-weight:500}.ev-desc{font-size:12px;color:var(--c-ink-soft);margin-top:3px}.ev-map{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;background:var(--c-bg);border:1px solid var(--c-border);color:var(--c-ink-2);border-radius:var(--radius-pill);padding:7px 13px;font-size:12.5px;font-weight:600;text-decoration:none}.plan-add{background:none;border:none;color:var(--c-primary-ink);font-weight:600;font-size:13px;cursor:pointer;padding:8px 0 8px 57px;display:block}.trip-head{margin-bottom:14px}.trip-head h2{font-family:var(--font-head);font-weight:400;font-size:30px;margin:0 0 6px}.trip-sub{color:var(--c-ink-soft);font-size:13px;font-weight:600}.seg{display:inline-flex;gap:4px;background:var(--c-track);border-radius:var(--radius-pill);padding:4px}.seg button{text-align:center;font-family:var(--font-title),var(--font-body);font-size:13.5px;font-weight:600;padding:9px 18px;border:none;background:none;border-radius:var(--radius-pill);color:var(--c-ink-2);cursor:pointer;white-space:nowrap}.seg button.on{background:var(--c-ink);color:var(--c-cream)}.expense-bar{display:flex;justify-content:flex-end;margin-bottom:14px}@media (max-width: 560px){.trip-head h2{font-size:24px}.seg{display:flex;width:100%}.seg button{flex:1}}.space-nav{display:flex;flex-direction:column;gap:4px}.sn-link{display:block;padding:11px 14px;border-radius:var(--radius-pill);font-size:14.5px;font-weight:600;color:var(--c-ink-2);text-decoration:none;transition:background .12s ease}.sn-link:hover{background:var(--c-surface)}.sn-link.on{background:var(--c-cream);color:var(--c-primary-ink)}@media (max-width: 760px){.space-nav{flex-direction:row;gap:6px}.sn-link{flex:1;text-align:center;font-size:13px;padding:10px 6px;border-radius:var(--radius-pill)}.sn-link:hover{background:transparent}}.app-loading{padding:48px 24px;text-align:center;color:var(--c-ink-soft);font-size:14px}.layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh;background:var(--c-bg)}.layout-side{background:var(--c-bg-deep);border-right:1px solid var(--c-border);padding:24px 16px}.layout-side .brand{font-family:var(--font-head);font-size:27px;line-height:1;color:var(--c-ink);padding:4px 10px 24px}.layout-main{padding:30px 34px 44px;overflow:auto;min-width:0}.main-inner{max-width:1040px}@media (max-width: 760px){.layout{display:block;min-height:100vh}.layout-side{position:fixed;left:0;right:0;bottom:0;z-index:40;border-right:none;border-top:1px solid var(--c-border);background:var(--c-bg-deep);padding:7px 10px calc(7px + env(safe-area-inset-bottom));box-shadow:0 -6px 20px #5c55421a}.layout-side .brand{display:none}.layout-main{padding:16px 16px 92px}.layout.no-mobnav .layout-side{display:none}.layout.no-mobnav .layout-main{padding-bottom:96px}}:root{--c-bg: oklch(.94 .018 90);--c-bg-deep: oklch(.9 .028 90);--c-surface: oklch(.96 .007 90);--c-surface-warm: oklch(.9 .028 90);--c-cream: oklch(.95 .02 90);--c-sheet: oklch(.975 .005 90);--c-track: oklch(.85 .012 90);--c-border: oklch(.86 .016 90);--c-ink: #201e1d;--c-ink-2: oklch(.45 .02 90);--c-ink-soft: oklch(.55 .02 90);--c-ink-faint: oklch(.65 .02 90);--c-primary: oklch(.45 .09 115);--c-primary-ink: oklch(.35 .09 115);--c-primary-bar: oklch(.55 .09 115);--c-primary-soft: oklch(.85 .054 115);--c-primary-faint: oklch(.92 .0315 115);--c-accent-ter: oklch(.45 .08 35);--c-accent-ter-ink: oklch(.35 .08 35);--c-accent-ter-deep: oklch(.26 .08 35);--c-accent-ter-soft: oklch(.85 .048 35);--c-accent-ter-faint: oklch(.92 .028 35);--c-rose-soft: oklch(.88 .04 0);--c-rose-faint: oklch(.93 .025 0);--c-accent: var(--c-primary);--c-accent-soft: var(--c-primary-faint);--c-yellow: var(--c-accent-ter);--c-yellow-soft: var(--c-accent-ter-faint);--c-yellow-ink: var(--c-accent-ter-ink);--c-green: var(--c-primary-bar);--c-green-soft: var(--c-primary-faint);--c-green-ink: var(--c-primary-ink);--c-red: var(--c-accent-ter);--c-red-soft: var(--c-accent-ter-faint);--c-grey: var(--c-track);--c-grey-soft: var(--c-track);--c-grey-ink: var(--c-ink-soft);--c-mint: var(--c-primary-soft);--c-pink: var(--c-rose-soft);--c-blue: var(--c-track);--c-lav: var(--c-rose-faint);--c-peach: var(--c-accent-ter-soft);--c-sky: var(--c-primary-faint);--font-head: "Caprasimo", "Mitr", serif;--font-title: "Mitr", "Sarabun", sans-serif;--font-num: "Figtree", "Sarabun", sans-serif;--font-body: "Sarabun", -apple-system, "Segoe UI", system-ui, sans-serif;--font-emoji: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;--radius-card: 24px;--radius-card-lg: 32px;--radius-pill: 999px;--radius-field: 14px;--shadow-card: 0 6px 18px oklch(.45 .03 90 / .08);--shadow-hover: 0 12px 26px oklch(.45 .03 90 / .14);--gap: 16px}*{box-sizing:border-box}body{margin:0;background:var(--c-bg);color:var(--c-ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:var(--font-head);font-weight:400;letter-spacing:.01em;color:var(--c-ink)}.ic-icon,.ec-ic,.bh-ic,.br-ic,.icon-opt,.qa-ic,.entry-logo{font-family:var(--font-emoji)}
