/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.contents{display:contents}}:root{--ink:#26241f;--muted:#777268;--paper:#f4f1e9;--card:#fffdf8;--line:#ded9cd;--orange:#e75c2f;--orange-dark:#bd3e1d;--green:#236c4c;--yellow:#f2c84b;--font-sans:system-ui, -apple-system, "Segoe UI", "PingFang TC", "Microsoft JhengHei", "Noto Sans CJK TC", sans-serif;--font-serif:Georgia, "Songti TC", "Microsoft JhengHei", serif}*{box-sizing:border-box}html{background:#d8d4ca}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans), sans-serif;margin:0}button,input,textarea{font:inherit}button,a,label{-webkit-tap-highlight-color:transparent}button{color:inherit}.app-shell{background:radial-gradient(circle at 90% 0%, #f2c84b29, transparent 260px), var(--paper);width:min(100%,760px);min-height:100vh;margin:0 auto;position:relative;overflow:hidden;box-shadow:0 0 60px #26241f21}.topbar{border-bottom:1px solid #26241f17;align-items:center;min-height:72px;padding:14px 20px;display:flex}.brand-mark{background:var(--orange);color:#fff;width:42px;height:42px;font-family:var(--font-serif), serif;border-radius:14px 14px 14px 4px;place-items:center;margin-right:11px;font-size:23px;font-weight:700;display:grid;transform:rotate(-2deg)}.brand-copy{flex-direction:column;line-height:1.2;display:flex}.brand-copy strong{font-family:var(--font-serif), serif;letter-spacing:.08em;font-size:18px}.brand-copy span{color:var(--muted);margin-top:3px;font-size:11px}.icon-button{border:1px solid var(--line);cursor:pointer;background:#ffffff8c;border-radius:50%;width:40px;height:40px;margin-left:auto;font-size:21px}.topbar-actions{gap:8px;margin-left:auto;display:flex}.topbar-actions .icon-button{margin-left:0}.secondary-button{background:var(--ink);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:13px;font-weight:700}.location-strip{color:#5e5a51;background:#fffdf8ad;border:1px solid #d8d0bf;border-radius:11px;align-items:center;gap:8px;margin:17px 20px;padding:10px 12px;font-size:12px;display:flex}.location-strip small{color:#999287;margin-left:auto}.location-dot{background:#aaa398;border-radius:50%;width:7px;height:7px}.location-dot.active{background:var(--green);box-shadow:0 0 0 4px #236c4c1c}.search-panel{border:1px solid var(--line);background:#fffdf8ed;border-radius:18px;margin:0 14px;padding:13px;box-shadow:0 14px 34px #3e35260f}.search-box{background:#fff;border:1px solid #ccc6ba;border-radius:12px;align-items:center;min-height:48px;padding:0 13px;display:flex}.search-box>span{color:var(--orange-dark);margin-right:9px;font-size:26px;line-height:1}.search-box input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:15px}.search-box button{color:var(--muted);background:0 0;border:0;font-size:20px}.quick-filters{scrollbar-width:none;gap:7px;padding:11px 1px 5px;display:flex;overflow-x:auto}.quick-filters::-webkit-scrollbar{display:none}.filter-chip{cursor:pointer;background:0 0;border:1px solid #d3cdc0;border-radius:999px;flex:none;padding:8px 11px;font-size:13px;font-weight:600}.filter-chip.active{border-color:var(--ink);background:var(--ink);color:#fff}.pulse{background:#53b985;border-radius:50%;width:7px;height:7px;margin-right:2px;display:inline-block}.service-row{min-height:38px;color:var(--muted);border-top:1px dashed #ddd7cb;align-items:center;gap:13px;padding:5px 2px 0;font-size:12px;display:flex}.category-row{margin-top:5px}.text-filter-scroll{scrollbar-width:none;gap:13px;min-width:0;padding:7px 0;display:flex;overflow-x:auto}.text-filter-scroll::-webkit-scrollbar{display:none}.text-filter,.clear-filter{color:var(--muted);cursor:pointer;background:0 0;border:0;font-weight:700}.manage-types{color:var(--orange-dark);cursor:pointer;background:#fff;border:1px solid #d3cdc0;border-radius:7px;flex:none;margin-left:auto;padding:5px 8px;font-size:10px;font-weight:800}.text-filter.active{color:var(--orange-dark);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:2px}.clear-filter{color:var(--orange-dark);margin-left:auto}.results-heading{justify-content:space-between;align-items:flex-end;padding:25px 20px 12px;display:flex}.results-heading p{color:var(--muted);letter-spacing:.08em;margin:0 0 3px;font-size:11px}.results-heading strong{font-family:var(--font-serif), serif;font-size:18px}.results-heading>span{color:var(--muted);padding-bottom:2px;font-size:11px}.restaurant-list{gap:11px;padding:0 14px;display:grid}.restaurant-card{background:var(--card);border:1px solid #d8d2c6;border-radius:16px;overflow:hidden;box-shadow:0 6px 18px #3b34280d}.card-content:has(.card-map){grid-template-columns:minmax(0,1.35fr) minmax(300px,.9fr);align-items:stretch;display:grid}.card-map{background:#e7e3da;border:1px solid #d8d2c6;border-radius:12px;min-height:218px;margin:12px 12px 12px 0;overflow:hidden}.card-map iframe{border:0;width:100%;height:100%;min-height:218px;display:block}.card-main{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;min-height:218px;padding:22px 22px 18px}.card-topline,.title-row,.status-line,.tag-row,.card-actions{align-items:center;display:flex}.card-topline{justify-content:space-between;gap:12px}.title-row{gap:8px;min-width:0}.restaurant-card h2{font-family:var(--font-serif), serif;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:20px;overflow:hidden}.try-badge{color:#8b6409;background:#fff5c9;border:1px solid #d9a62c;border-radius:5px;flex:none;padding:3px 7px;font-size:10px;font-weight:800}.distance{color:var(--muted);flex:none;font-size:12px;font-weight:700}.status-line{gap:9px;margin-top:10px}.status-badge{color:var(--muted);align-items:center;gap:6px;font-size:13px;font-weight:700;display:inline-flex}.status-badge i{background:var(--green);border-radius:50%;width:7px;height:7px}.status-badge.open{color:var(--green)}.status-badge.urgent{color:#a93619;background:#fbe2d6;border-radius:7px;padding:5px 8px}.status-badge.urgent i{background:var(--orange)}.status-badge.upcoming{color:#806412}.status-badge.unknown{color:#837d74}.reopen{color:var(--muted);font-size:12px}.tag-row{flex-wrap:wrap;gap:6px;margin-top:13px}.tag-row span{color:#5d594f;background:#eee9df;border-radius:6px;padding:4px 8px;font-size:11px;font-weight:700}.tag-row .service-tag{background:0 0;border:1px solid #d7d0c4}.address,.phone,.note{color:var(--muted);margin:10px 0 0;font-size:12px;line-height:1.5}.phone{color:#4f6b5d}.note{border-left:3px solid var(--yellow);color:#665b3e;background:#faf6e9;padding:8px 10px}.card-actions{border-top:1px dashed #ded8cc;justify-content:flex-start;gap:20px;min-height:43px;padding:0 22px}.card-actions a,.card-actions button{color:var(--orange-dark);cursor:pointer;background:0 0;border:0;font-size:12px;font-weight:700;text-decoration:none}.card-actions button{color:#989187}.card-actions .share-action{color:var(--orange-dark)}.card-actions .delete-action{margin-left:auto}.share-url-field{margin-top:15px}.empty-state{color:var(--muted);text-align:center;border:1px dashed #c9c1b2;border-radius:16px;padding:54px 24px}.empty-state h2{color:var(--ink);font-family:var(--font-serif), serif;margin:11px 0 6px;font-size:21px}.empty-state p{max-width:330px;margin:0 auto;font-size:13px;line-height:1.7}.empty-icon{color:var(--orange);font-size:35px}.secondary-button{margin-top:18px;padding:10px 18px}.load-more{cursor:pointer;background:#ffffff73;border:1px solid #cfc8bb;border-radius:12px;width:calc(100% - 28px);margin:13px auto 0;padding:13px;font-weight:700;display:block}.data-tools{background:#e8e2d7;border-radius:15px;justify-content:space-between;align-items:center;gap:20px;margin:32px 14px 0;padding:17px;display:flex}.data-tools p{margin:0 0 3px;font-weight:800}.data-tools span{color:var(--muted);font-size:11px}.tool-actions{flex:none;gap:7px;display:flex}.tool-actions button,.tool-actions label{cursor:pointer;background:#fff;border:1px solid #c7bfb1;border-radius:8px;padding:8px 10px;font-size:11px;font-weight:700}.tool-actions button:disabled{cursor:not-allowed;opacity:.45}.tool-actions input{display:none}footer{color:#958e83;justify-content:flex-end;padding:20px 18px 92px;font-size:10px;display:flex}.floating-add{z-index:20;border:3px solid var(--paper);background:var(--orange);color:#fff;cursor:pointer;border-radius:50%;place-items:center;width:58px;height:58px;font-size:29px;display:grid;position:fixed;bottom:22px;right:max(20px,50vw - 360px);box-shadow:0 10px 25px #86361d4d}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#23201a94;justify-content:center;align-items:flex-end;padding-top:30px;display:flex;position:fixed;inset:0}.editor-sheet{background:var(--paper);border-radius:24px 24px 0 0;width:min(100%,760px);max-height:calc(100vh - 24px);animation:.24s ease-out slide-up;overflow:hidden;box-shadow:0 -20px 60px #00000038}@keyframes slide-up{0%{opacity:0;transform:translateY(30px)}}.editor-sheet>header{border-bottom:1px solid var(--line);text-align:center;background:#fffdf8f5;grid-template-columns:44px 1fr 44px;align-items:center;padding:15px 17px;display:grid}.editor-sheet>header button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:50%;width:38px;height:38px;font-size:22px}.editor-sheet>header p{color:var(--muted);letter-spacing:.12em;margin:0;font-size:10px}.editor-sheet>header h2{font-family:var(--font-serif), serif;text-overflow:ellipsis;white-space:nowrap;margin:3px 0 0;font-size:18px;overflow:hidden}.editor-sheet form{max-height:calc(100vh - 100px);padding:14px 14px 120px;overflow-y:auto}.form-section{border:1px solid var(--line);background:var(--card);border-radius:15px;margin-bottom:12px;padding:15px}.form-section>label{color:#59554d;margin-bottom:13px;font-size:12px;font-weight:700;display:block}.form-section>label:last-child{margin-bottom:0}.form-section input:not([type=checkbox]),.form-section textarea{width:100%;color:var(--ink);background:#fffefb;border:1px solid #d5cec2;border-radius:9px;outline:0;margin-top:6px;padding:11px 12px;font-size:14px;display:block}.form-section input:focus,.form-section textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px #e75c2f1a}.form-section label small{color:#958e83;margin-top:5px;font-size:10px;font-weight:500;line-height:1.5;display:block}.maps-import{width:100%;color:var(--orange-dark);cursor:pointer;background:#fff5ef;border:1px solid #c8512b;border-radius:9px;margin:-3px 0 5px;padding:11px 12px;font-size:12px;font-weight:800}.import-section{display:block}.import-fields>label{color:#59554d;margin:14px 0 0;font-size:12px;font-weight:700;display:block}.maps-import-label{color:#59554d;margin-bottom:7px;font-size:12px;font-weight:800}.maps-import-row{grid-template-columns:minmax(0,1fr) auto;gap:7px;display:grid}.maps-import-row input{min-width:0;margin:0!important}.maps-import-row .maps-import{width:auto;min-width:76px;margin:0}.maps-help{color:#958e83;margin-top:6px;font-size:10px;line-height:1.5;display:block}.maps-import:disabled{cursor:not-allowed;opacity:.45}.form-error{color:#9d321c;background:#fbe2dc;border-radius:8px;margin:8px 0 0;padding:9px 10px;font-size:11px;font-weight:700}.section-title{justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;font-weight:800;display:flex}.section-title.spaced{margin-top:18px}.section-title small{color:var(--muted);font-size:10px;font-weight:500}.section-title button{color:var(--orange-dark);cursor:pointer;background:0 0;border:0;font-size:10px;font-weight:700}.choice-grid{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.choice-grid.two{grid-template-columns:repeat(2,1fr)}.choice{cursor:pointer;background:0 0;border:1px solid #d7d0c4;border-radius:8px;padding:9px 5px;font-size:12px;font-weight:700}.choice.active{border-color:var(--ink);background:var(--ink);color:#fff}.check-row{cursor:pointer;background:#f7f0d3;border-radius:10px;align-items:center;gap:10px;padding:12px;margin-top:17px!important;display:flex!important}.check-row input{width:19px;height:19px;accent-color:var(--orange)}.check-row span{flex-direction:column;display:flex}.check-row small{margin:2px 0 0!important}.hours-list{display:grid}.day-row{border-top:1px dashed #e0dace;grid-template-columns:42px 1fr;gap:8px;padding:9px 0;display:grid}.day-row>strong{padding-top:8px;font-size:12px}.periods{gap:6px;display:grid}.period{grid-template-columns:1fr 13px 1fr 28px;align-items:center;gap:4px;display:grid}.period input{margin:0!important;padding:7px 5px!important;font-size:12px!important}.period span{color:var(--muted);text-align:center}.period button,.add-period{color:var(--muted);cursor:pointer;background:0 0;border:0}.period button{font-size:18px}.add-period{color:var(--orange-dark);text-align:left;padding:7px 0;font-size:11px;font-weight:700}.coordinate-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.coordinate-grid label{color:var(--muted);font-size:10px;font-weight:700}.coordinate-grid input{margin-top:4px!important}.use-location{color:var(--green);cursor:pointer;background:#fff;border:1px solid #d2cabe;border-radius:8px;margin-top:9px;padding:8px 10px;font-size:11px;font-weight:700}.editor-actions{grid-template-columns:1fr 2fr;gap:8px;margin-top:18px;padding:12px 0 0;display:grid;position:sticky;bottom:-120px}.editor-actions button{cursor:pointer;background:#fff;border:1px solid #ccc5b8;border-radius:10px;padding:13px;font-weight:800}.editor-actions button[type=submit]{border-color:var(--orange);background:var(--orange);color:#fff}.editor-actions button:disabled{opacity:.5}.toast{z-index:200;background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:999px;max-width:calc(100% - 32px);padding:11px 17px;font-size:12px;font-weight:700;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 25px #00000040}.compact-sheet{max-width:560px}.type-manager-body{max-height:calc(100vh - 100px);padding:20px;overflow-y:auto}.manager-help{color:var(--muted);margin:0 0 16px;font-size:12px;line-height:1.7}.managed-types{flex-wrap:wrap;gap:8px;min-height:44px;display:flex}.managed-types>div{background:var(--card);border:1px solid #d3cdc0;border-radius:999px;align-items:center;gap:5px;padding:8px 8px 8px 12px;font-size:13px;font-weight:700;display:inline-flex}.managed-types button{width:22px;height:22px;color:var(--muted);cursor:pointer;background:#ebe5da;border:0;border-radius:50%;place-items:center;display:grid}.managed-types>p{color:var(--muted);margin:8px 0;font-size:12px}.new-type-row{grid-template-columns:1fr auto;gap:8px;margin-top:18px;display:grid}.new-type-row input{background:#fff;border:1px solid #d3cdc0;border-radius:9px;outline:0;min-width:0;padding:11px 12px}.new-type-row input:focus{border-color:var(--orange)}.new-type-row button,.manager-actions button{cursor:pointer;background:#fff;border:1px solid #ccc5b8;border-radius:9px;padding:10px 15px;font-weight:800}.new-type-row button{border-color:var(--ink);background:var(--ink);color:#fff}.new-type-row button:disabled{opacity:.4}.manager-actions{grid-template-columns:1fr 2fr;gap:8px;margin-top:24px;display:grid}.manager-actions button:last-child{border-color:var(--orange);background:var(--orange);color:#fff}.taiwan-map{grid-template-columns:repeat(5,1fr);grid-auto-rows:minmax(50px,auto);gap:6px;margin:4px 0 14px;display:grid}.county-block{background:var(--card);color:var(--ink);cursor:pointer;border:1px solid #d3cdc0;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 4px;font-size:11px;font-weight:700;display:flex}.county-block.empty{color:var(--muted);background:#f1ede4}.county-block.active{border-color:var(--ink);box-shadow:0 0 0 2px var(--ink) inset}.county-name{white-space:nowrap}.county-count{font-size:13px;font-weight:800}.county-block.empty .county-count{color:#aaa398}.county-detail{border-top:1px dashed #ddd7cb;margin-top:10px;padding-top:14px}.county-restaurant-list{gap:8px;margin-top:10px;display:grid}.county-restaurant-item{background:var(--card);text-align:left;cursor:pointer;border:1px solid #d8d2c6;border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.county-restaurant-item small{color:var(--muted);font-size:11px}@media (width>=680px){.topbar{padding-left:34px;padding-right:34px}.search-panel,.restaurant-list,.data-tools{margin-left:28px;margin-right:28px}.restaurant-list{padding:0}.results-heading{padding-left:34px;padding-right:34px}.location-strip{margin-left:34px;margin-right:34px}}@media (width<=480px){.data-tools{flex-direction:column;align-items:flex-start}.tool-actions{width:100%}.tool-actions button,.tool-actions label{text-align:center;flex:1}}@media (width<=720px){.card-content:has(.card-map){grid-template-columns:1fr}.card-main{min-height:0}.card-map{min-height:210px;margin:0 12px 12px}.card-map iframe{min-height:210px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important}}
