@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Noto+Serif+SC:wght@500;600&display=swap";
:root{--paper:#f8f9f4;--surface:#fcfcf8;--green:#244f43;--green-deep:#183d33;--ink:#2b3933;--muted:#92978d;--text-secondary:#777f74;--line:#e6e8de;--soft:#eef2e8;--gold:#c9943c;--shadow:0 8px 30px #3445370b;--radius:12px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{width:100%;height:100%;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0;font-family:DM Sans,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.45}button{background:0 0;border:0}a{color:var(--green);text-decoration:none}input,select,textarea{min-width:0;color:var(--ink);background:0 0}input,textarea{outline:none}input::placeholder,textarea::placeholder{color:#9da196}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:3px;outline:2px solid #659687}input[type=checkbox]{accent-color:var(--green);cursor:pointer;flex-shrink:0;width:16px;height:16px}input[type=number]{appearance:textfield}input::-webkit-inner-spin-button{opacity:.3}h1,h2,h3,p{margin:0}button svg,a svg{flex-shrink:0}button{transition:background .15s,color .15s,box-shadow .15s,opacity .15s}::selection{background:#dce7c8}fieldset{border:0;margin:0;padding:0}small{font-size:12px}select{cursor:pointer}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.app-shell{flex-direction:column;height:100dvh;min-height:500px;display:flex;overflow:hidden}.app-header{background:var(--surface);border-bottom:1px solid var(--line);z-index:20;flex-shrink:0;align-items:center;gap:27px;height:86px;padding:0 30px;display:flex}.brand{text-align:left;flex-shrink:0;align-items:center;gap:12px;padding:0;display:flex}.brand-mark{background:var(--green);color:#f1f3de;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.brand-wordmark{letter-spacing:2px;font-family:Noto Serif SC,Songti SC,serif;font-size:23px;font-weight:600;line-height:1.3}.brand-wordmark small{letter-spacing:1.8px;color:#92988a;margin-top:5px;font-family:DM Sans,sans-serif;font-size:8px;font-weight:600;display:block}.header-divider{background:var(--line);width:1px;height:30px}.trip-selector{text-align:left;align-items:center;gap:10px;min-width:0;padding:8px 0;display:flex}.trip-title{white-space:nowrap;text-overflow:ellipsis;max-width:220px;font-size:18px;font-weight:650;overflow:hidden}.trip-selector>svg{color:var(--text-secondary);flex-shrink:0}.trip-dates{color:var(--text-secondary);letter-spacing:.2px;white-space:nowrap;margin-left:12px;font-size:12px}.header-actions{flex-shrink:0;align-items:center;gap:16px;margin-left:auto;display:flex}.save-indicator{color:var(--text-secondary);align-items:center;gap:6px;font-size:12px;display:flex}.save-error{color:#bb634f}.storage-mode{border:1px solid var(--line);border-radius:7px;align-items:center;gap:7px;padding:7px 10px;font-size:12px;display:flex}.storage-mode .tiny-dot{background:#c49b58}.storage-mode.connected{background:var(--soft);color:var(--green)}.avatar{background:var(--green);color:#fff;border:3px solid #e8edde;border-radius:50%;width:34px;height:34px;font-size:14px}.icon-button{width:32px;height:32px;color:var(--text-secondary);border-radius:7px;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button:hover{color:var(--green);background:#edf0e6}.icon-button.outlined{border:1px solid var(--line)}.button{white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:9px 16px;font-size:13px;font-weight:500;display:inline-flex}.button.primary{background:var(--green);color:#fff;box-shadow:0 3px 6px #244f430b}.button.primary:hover{background:var(--green-deep)}.button.secondary{background:var(--surface);color:var(--green);border:1px solid #d9ded1}.button.secondary:hover{background:var(--soft)}.button.danger{color:#fff;background:#b35446}.button.compact{min-height:34px;padding:7px 10px;font-size:12px}.text-button{color:var(--text-secondary);justify-content:center;align-items:center;gap:5px;padding:3px 0;font-size:12px;display:inline-flex}.text-button:hover{color:var(--green)}.global-error{color:#865828;z-index:25;background:#fff3e6;align-items:center;gap:15px;padding:10px 24px;font-size:12px;display:flex}.global-error>span{flex:1}.global-error button{flex-shrink:0;text-decoration:underline}.workspace{background:var(--paper);flex:1;grid-template-columns:320px minmax(0,1fr) 318px;gap:0;min-height:0;padding:16px 20px 0;display:grid}.workspace.no-detail{grid-template-columns:320px minmax(0,1fr)}.library-panel{background:var(--surface);border:1px solid var(--line);z-index:10;border-right:0;border-radius:14px 0 0 14px;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.library-heading{justify-content:space-between;align-items:flex-start;gap:12px;padding:24px 20px 16px;display:flex}.library-heading h1{letter-spacing:.2px;white-space:nowrap;align-items:center;gap:9px;font-size:18px;font-weight:600;display:flex}.library-heading h1>span{color:var(--text-secondary);background:#f0f2e9;border-radius:5px;padding:2px 6px;font-family:DM Sans,sans-serif;font-size:12px;font-weight:500}.library-heading p{color:var(--muted);white-space:nowrap;letter-spacing:.2px;margin-top:8px;font-size:11px}.desktop-add{margin-top:0}.library-search{border:1px solid var(--line);height:37px;color:var(--muted);background:#f9faf5;border-radius:8px;flex-shrink:0;align-items:center;gap:9px;margin:0 20px 17px;padding:0 11px;display:flex}.library-search input{border:0;width:100%;height:100%;font-size:12px}.library-search:focus-within{border-color:#7d9b8a}.category-filters{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:0 20px 18px;display:grid}.category-filters button{border:1px solid var(--line);white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;gap:4px;min-height:33px;padding:5px 3px;font-size:11px;display:flex}.category-filters button i{border-radius:50%;width:4px;height:4px}.category-filters button span{opacity:.65;margin-left:1px;font-size:10px}.category-filters button.active{background:var(--green);border-color:var(--green);color:#fff}.category-filters button:hover:not(.active){background:var(--soft)}.secondary-filters{border-top:1px solid var(--line);margin:0 20px;padding:14px 0 10px}.filter-selects{justify-content:space-between;align-items:center;gap:6px;display:flex}.filter-selects>label{color:var(--text-secondary);align-items:center;gap:3px;display:flex}.filter-selects select{outline-offset:0;background:var(--surface);color:var(--text-secondary);border:0;max-width:116px;padding:4px 0;font-size:11px}.checkbox-label{cursor:pointer;align-items:center;gap:7px;display:flex}.excluded-toggle{color:var(--muted);padding-top:12px;font-size:11px}.excluded-toggle input{width:13px;height:13px;margin:0}.excluded-toggle>span{margin-left:auto}.list-section-label{letter-spacing:.5px;color:#a0a595;justify-content:space-between;padding:14px 20px 10px;font-size:10px;display:flex}.poi-list{scrollbar-width:thin;scrollbar-color:#d9dece transparent;flex:1;min-height:0;padding:0 10px 16px;overflow-y:auto}.poi-row{border:1px solid #0000;border-bottom-color:var(--line);border-radius:0;align-items:center;gap:9px;min-height:81px;padding:11px 9px;display:flex}.poi-row.active{background:#edf2e6;border:1px solid #d8e2cf;border-radius:9px}.poi-row:not(.active):hover{background:#f4f6ee}.poi-checkbox{margin:0}.poi-row-main{text-align:left;flex:1;align-items:center;gap:10px;min-width:0;padding:0;display:flex}.category-icon{color:var(--category);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.category-icon.badge{background:color-mix(in srgb,var(--category) 12%,white);border:1px solid color-mix(in srgb,var(--category) 18%,white);width:35px;height:35px;color:var(--category);border-radius:9px}.poi-row-info{flex-direction:column;flex:1;gap:7px;min-width:0;display:flex}.poi-row-info strong{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:550;overflow:hidden}.poi-row-info small{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.meta-dot{color:#b0b3a7;padding:0 5px}.status-label{white-space:nowrap;color:var(--text-secondary);flex-shrink:0;align-items:center;gap:3px;font-size:10px;display:flex}.status-label>span{font-size:14px}.status-favorite>span{color:#a7833e}.status-confirmed>span{color:var(--green)}.excluded-row{opacity:.6}.library-footer{border-top:1px solid var(--line);background:var(--surface);flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:16px 18px;display:flex}.library-footer>span{color:var(--text-secondary);align-items:center;gap:5px;font-size:11px;display:flex}.library-footer strong{color:var(--ink);font-weight:600}.compare-button{min-height:32px;padding:6px 11px;font-size:11px}.compare-button.is-active{background:var(--green);color:#fff}.selection-checkbox{border:1px solid #abb3a3;border-radius:3px;width:12px;height:12px;margin-right:2px;display:inline-block}.clear-selection{margin-left:4px;font-size:10px}.list-empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:14px;padding:38px 20px;display:flex}.list-empty>svg{color:#a6b49a}.list-empty h3{color:var(--ink);font-size:14px;font-weight:500}.list-empty p{font-size:12px;line-height:1.8}.sheet-drag-handle,.mobile-filter-toggle,.mobile-add,.mobile-detail-back{display:none}.map-panel{isolation:isolate;border-top:1px solid #d9e0ce;border-bottom:1px solid #d9e0ce;min-width:0;min-height:0;position:relative;overflow:hidden}.no-detail .map-panel{border-right:1px solid #d9e0ce;border-radius:0 14px 14px 0}.travel-map,.baidu-map-host,.schematic-map{position:absolute;inset:0;overflow:hidden}.baidu-map-host{z-index:1}.schematic-map{touch-action:none;cursor:grab;background:#e4e8db}.schematic-map:active{cursor:grabbing}.schematic-canvas{transform-origin:50%;will-change:transform;position:absolute;inset:0}.cartography{width:100%;height:100%;position:absolute}.map-search{z-index:6;color:#65775f;background:#fdfefa;border:1px solid #dce1d2;border-radius:10px;align-items:center;gap:12px;height:47px;padding:0 15px;display:flex;position:absolute;top:23px;left:24px;right:140px;box-shadow:0 3px 14px #34453715}.map-search input{border:0;width:100%;height:100%;font-size:12px}.map-search>button{color:var(--green);padding:5px}.map-add-point{z-index:6;height:34px;color:var(--green);background:#fdfefaed;border:1px solid #dce1d2;border-radius:7px;align-items:center;gap:5px;padding:8px 10px;font-size:11px;display:flex;position:absolute;top:29px;right:20px}.map-location{z-index:3;color:#596650;align-items:center;gap:7px;font-size:11px;display:flex;position:absolute;top:88px;left:29px}.map-location .dot{background:#87917d;border-radius:50%;width:3px;height:3px;margin:0 2px}.map-demo-note{z-index:4;color:#73826b;background:#fbfcf4dd;border:1px solid #dce3d1;border-radius:6px;align-items:center;gap:6px;padding:7px 9px;font-size:10px;display:flex;position:absolute;bottom:24px;left:24px}.map-demo-note>button{padding:0;display:flex}.map-attribution{z-index:3;color:#7c8b72;font-size:8px;position:absolute;bottom:7px;left:26px}.map-pin{z-index:2;background:var(--pin-color);color:#fff;border:2px solid #fffdf8;border-radius:50% 50% 50% 5px;justify-content:center;align-items:center;min-width:35px;height:35px;padding:0;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 5px #253b4529}.map-pin .category-icon{color:#fff}.map-pin.price-pin{color:var(--pin-color);background:#fcfefa;border:1px solid #9aafd0;border-radius:9px;gap:7px;height:36px;padding:0 9px}.map-pin.price-pin .category-icon{color:var(--pin-color)}.map-pin strong{font-size:12px;font-weight:600}.map-pin.selected{outline:2px solid var(--pin-color);outline-offset:4px;z-index:5}.map-pin:hover{z-index:6;box-shadow:0 3px 10px #244f4340}.pin-label{color:#3c493d;white-space:nowrap;background:#fffef8;border:1px solid #dde2d7;border-radius:5px;padding:6px 10px;font-size:11px;font-weight:500;position:absolute;top:46px;left:50%;transform:translate(-50%);box-shadow:0 2px 6px #34453710}.pin-status{background:var(--green);color:#fff;border:1px solid #fff;border-radius:50%;width:14px;height:14px;font-size:9px;font-style:normal;position:absolute;top:-5px;right:-4px}.excluded-pin{opacity:.4}.map-controls{z-index:5;flex-direction:column;align-items:flex-end;gap:11px;display:flex;position:absolute;bottom:25px;right:20px}.zoom-buttons{box-shadow:var(--shadow);background:#fffffa;border:1px solid #dce3d1;border-radius:8px;flex-direction:column;display:flex;overflow:hidden}.zoom-buttons button{justify-content:center;align-items:center;width:36px;height:36px;display:flex}.zoom-buttons button+button{border-top:1px solid var(--line)}.map-controls button:hover{background:#edf2e7}.locate-button{width:38px;height:38px;box-shadow:var(--shadow);background:#fffffa;border:1px solid #dce3d1;border-radius:8px;justify-content:center;align-items:center;display:flex}.fit-button{box-shadow:var(--shadow);background:#fffffa;border:1px solid #dce3d1;border-radius:8px;align-items:center;gap:7px;padding:10px 12px;font-size:11px;display:flex}.map-legend{z-index:4;background:#fffff5e8;border:1px solid #dce3d1;border-radius:7px;gap:13px;padding:10px 12px;display:flex;position:absolute;bottom:73px;left:24px;box-shadow:0 2px 6px #34453708}.map-legend span{color:#67705e;align-items:center;gap:5px;font-size:10px;display:flex}.map-legend i{border-radius:50%;width:7px;height:7px}.example-map-tag{z-index:5;color:#7c8672;letter-spacing:.3px;font-size:9px;position:absolute;top:90px;right:22px}.example-map-tag>span{margin:0 5px}.comparison-note,.point-instruction{z-index:7;box-shadow:var(--shadow);background:var(--green);color:#fff;border-radius:8px;align-items:center;gap:8px;padding:10px 14px;font-size:11px;display:flex;position:absolute;top:121px;left:24px}.comparison-note>button{color:#fff;padding:0;display:flex}.point-instruction{color:#785c26;background:#fcf7e7;top:118px;left:20px;right:20px}.point-instruction .icon-button{margin-left:auto}.picking-point .baidu-map-host{cursor:crosshair}.baidu-pin{white-space:nowrap;background:var(--pin-color);color:#fff;border:2px solid #fff;border-radius:11px 11px 11px 3px;min-width:36px;height:36px;padding:0 9px;font-size:13px;position:absolute;transform:translate(-50%,-100%);box-shadow:0 2px 6px #244f4333}.baidu-pin.selected{outline:2px solid var(--pin-color);outline-offset:3px;z-index:20}.baidu-pin small{color:var(--ink);box-shadow:var(--shadow);background:#fffef8;border-radius:5px;padding:5px 8px;font-size:12px;display:block;position:absolute;top:44px;left:50%;transform:translate(-50%)}.detail-container{background:var(--surface);border:1px solid var(--line);border-radius:0 14px 14px 0;min-width:0;min-height:0;overflow:hidden}.detail-panel{flex-direction:column;height:100%;min-height:0;display:flex}.detail-top{color:var(--text-secondary);letter-spacing:.6px;flex-shrink:0;justify-content:space-between;align-items:center;padding:17px 21px 9px;font-size:11px;display:flex}.detail-top>div{gap:5px;display:flex}.detail-top .icon-button{width:25px;height:25px}.detail-scroll{scrollbar-width:thin;scrollbar-color:#d9dece transparent;flex:1;min-height:0;padding:6px 23px 15px;overflow-y:auto}.detail-title{align-items:center;gap:11px;padding:5px 0 10px;display:flex}.detail-title .badge{border-radius:10px;width:43px;height:43px}.detail-title>div{flex:1;min-width:0}.poi-name-input{letter-spacing:.2px;border:0;width:100%;padding:2px 0;font-size:19px;font-weight:600}.detail-title p{color:var(--muted);align-items:center;gap:3px;margin-top:7px;font-size:10px;line-height:1.5;display:flex}.detail-title p>svg{flex-shrink:0}.example-disclosure{color:#9d9c89;letter-spacing:.3px;margin:0 0 17px;font-size:9px}.inline-field{justify-content:space-between;align-items:center;margin-bottom:20px;font-size:12px;display:flex}.inline-field select{border:1px solid var(--line);background:var(--surface);border-radius:6px;width:56%;padding:7px 10px;font-size:12px}.status-field{margin-bottom:20px}.status-field legend,.detail-field>label,.detail-field{font-size:12px}.status-field legend{margin-bottom:10px}.status-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.status-options button{border:1px solid var(--line);background:var(--surface);border-radius:6px;justify-content:flex-start;align-items:center;gap:9px;min-height:33px;padding:7px 11px;font-size:11px;display:flex}.status-options button>span{color:var(--text-secondary);font-size:17px;line-height:1}.status-options button>svg{color:var(--green);margin-left:auto}.status-options button.active{border-color:var(--green);color:var(--green);background:#f0f4e9}.status-options button.active>span{color:var(--green)}.detail-field{flex-direction:column;gap:8px;margin-bottom:18px;line-height:1.5;display:flex}.detail-field input,.detail-field textarea,.detail-field select{border:1px solid var(--line);resize:vertical;background:#fafbf6;border-radius:7px;width:100%;padding:9px 10px;font-size:11px;line-height:1.8}.detail-field textarea{min-height:55px}.detail-field input:focus,.detail-field textarea:focus{background:#fff;border-color:#94aa85}.detail-field small{color:var(--muted);margin-top:-2px;font-size:9px}.price-field{align-items:center;gap:8px;display:flex}.price-field>span:first-child{color:var(--green);font-size:18px}.price-field>input{letter-spacing:1px;background:#fcfdf8;width:118px;padding:9px 10px;font-family:DM Sans,sans-serif;font-size:23px;font-weight:500;line-height:1}.price-field>input::placeholder{letter-spacing:0;font-size:15px}.price-field>span:last-child{color:var(--text-secondary);margin-left:3px;font-size:11px}.unit-input{align-items:center;gap:9px;display:flex}.unit-input>span{white-space:nowrap;color:var(--text-secondary);font-size:11px}.rating-stars{align-items:center;gap:9px;display:flex}.rating-stars button{color:var(--gold);justify-content:center;align-items:center;padding:2px;display:flex}.rating-stars button svg{stroke-width:1.4px}.rating-stars>span{color:var(--muted);margin-left:auto;font-size:10px}.field-label{align-items:center;gap:6px;display:flex}.tiny-dot{border-radius:50%;width:5px;height:5px;display:inline-block}.tiny-dot.green{background:#74917a}.tiny-dot.amber{background:#c7a268}.detail-field .notes-textarea{min-height:84px;line-height:1.9}.autosave-note{color:#a0a594;align-items:center;gap:5px;margin-bottom:5px;font-size:9px;display:flex}.detail-footer{border-top:1px solid var(--line);background:var(--surface);flex-direction:column;flex-shrink:0;align-items:center;gap:9px;padding:13px 22px 12px;display:flex}.navigation-button{width:100%;min-height:38px;font-size:12px}.navigation-button>svg{margin-left:auto}.delete-button{color:#a3a69b;font-size:10px}.delete-button:hover{color:#a7564a}.app-footer{color:#919886;flex-shrink:0;justify-content:space-between;align-items:center;height:38px;padding:0 27px;font-size:10px;display:flex}.app-footer>span,.app-footer>button{align-items:center;gap:6px;display:flex}.app-footer>span:first-child{letter-spacing:1px;font-family:Noto Serif SC,Songti SC,serif}.footer-divider{color:#b7bdac;margin:0 7px}.app-footer>button{color:#929984;font-size:10px}.modal-overlay{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1d302b45;animation:.18s ease-out fade-in;position:fixed;inset:0}.modal-content{z-index:61;background:var(--surface);scrollbar-width:thin;border:1px solid #e0e4d6;border-radius:19px;outline:none;width:min(480px,100vw - 36px);max-height:calc(100dvh - 60px);padding:27px;animation:.18s ease-out dialog-in;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 24px 100px #172f3429}.modal-content.wide{width:min(660px,100vw - 36px)}.modal-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.modal-heading h2{letter-spacing:.5px;font-family:Noto Serif SC,Songti SC,serif;font-size:21px;font-weight:500}.modal-description{color:var(--text-secondary);margin:9px 0 23px;font-size:12px;line-height:1.9}.modal-actions{justify-content:flex-end;align-items:center;gap:10px;margin-top:14px;display:flex}.form-stack{flex-direction:column;gap:18px;display:flex}.form-stack label,.confirm-name{flex-direction:column;gap:8px;font-size:12px;display:flex}.form-stack label small{color:var(--muted);font-size:10px;display:inline}.form-stack input,.form-stack textarea,.form-stack select,.confirm-name input{background:#f9faf5;border:1px solid #dee3d5;border-radius:8px;width:100%;min-height:42px;padding:10px 12px;font-size:13px;line-height:1.6}.form-stack input:focus,.form-stack textarea:focus{background:#fff;border-color:#749b87}.form-stack textarea{resize:vertical}.form-row{grid-template-columns:1fr 1fr;gap:15px;display:grid}.form-row label{min-width:0}.field-hint{color:var(--muted);font-size:11px;line-height:1.8}.coordinate-header{justify-content:space-between;align-items:center;font-size:12px;display:flex}.coordinate-header small{color:var(--muted);margin-left:5px;font-size:10px}.segmented-tabs{background:#eef1e7;border-radius:9px;gap:3px;margin-bottom:22px;padding:4px;display:flex}.segmented-tabs>button{color:var(--text-secondary);border-radius:7px;flex:1;justify-content:center;align-items:center;gap:8px;padding:10px;font-size:12px;display:flex}.segmented-tabs>button.active{background:var(--surface);color:var(--green);box-shadow:0 1px 5px #3445370b}.add-search{color:var(--green);border:1px solid #b9c8b0;border-radius:9px;align-items:center;gap:10px;margin-bottom:9px;padding:6px 7px 6px 13px;display:flex}.add-search input{border:0;width:100%;height:38px;font-size:13px}.add-search .button{min-height:35px;font-size:12px}.search-results{max-height:350px;margin-top:14px;overflow:auto}.search-result{border-bottom:1px solid var(--line);align-items:center;gap:13px;padding:17px 3px;display:flex}.search-result>div{flex:1;min-width:0}.search-result strong{font-size:14px;font-weight:500}.search-result p{color:var(--text-secondary);margin-top:5px;font-size:11px;line-height:1.6}.search-result small{color:var(--muted);font-size:10px}.connection-empty,.empty-results{text-align:center;color:var(--text-secondary);flex-direction:column;align-items:center;gap:15px;padding:30px 25px;display:flex}.connection-empty>svg,.empty-results>svg{color:#91a582}.connection-empty h3,.empty-results h3{color:var(--green);font-size:17px;font-weight:500}.connection-empty p,.empty-results p{font-size:12px;line-height:1.9}.connection-empty a,.setup-note a,.external-link{align-items:center;gap:5px;font-size:12px;display:inline-flex}.connection-empty .button{margin-top:10px}.inline-error{color:#ad5945;background:#fcf0e9;border-radius:7px;margin-top:14px;padding:10px 12px;font-size:12px;line-height:1.8}.trips-grid{grid-template-columns:1fr 1fr;gap:15px;display:grid}.trip-card{border:1px solid var(--line);background:#f9faf4;border-radius:12px;overflow:hidden}.trip-card.current{border-color:#afc29e}.trip-card-open{text-align:left;flex-direction:column;width:100%;padding:20px;display:flex}.trip-card-open:hover{background:#f0f3e8}.trip-card-icon{width:43px;height:43px;color:var(--green);background:#e9eedc;border-radius:10px;justify-content:center;align-items:center;margin-bottom:24px;display:flex}.trip-card-destination{color:#819372;letter-spacing:1px;margin-bottom:8px;font-size:10px}.trip-card h3{margin-bottom:12px;font-family:Noto Serif SC,Songti SC,serif;font-size:20px;font-weight:500}.trip-card p{color:var(--text-secondary);font-size:10px;line-height:1.7}.trip-card-meta{color:var(--green);flex-direction:column;gap:5px;margin-top:20px;font-size:11px;display:flex}.trip-card-meta>span{color:var(--muted);font-size:9px}.trip-card-actions{border-top:1px solid var(--line);color:var(--text-secondary);gap:14px;padding:9px 16px;font-size:10px;display:flex}.trip-card-actions>button,.trip-card-actions>span{align-items:center;gap:4px;padding:2px 0;display:flex}.trip-card-actions>span{color:var(--green);margin-left:auto}.new-trip-card{color:#9baa8c;border:1px dashed #c7d0ba;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:235px;display:flex}.new-trip-card strong{color:var(--green);font-size:15px;font-weight:500}.new-trip-card>span{font-size:11px}.new-trip-card:hover{background:var(--soft)}.settings-section+.settings-section{border-top:1px solid var(--line);margin-top:22px;padding-top:20px}.section-title{color:var(--green);align-items:center;gap:8px;margin-bottom:12px;display:flex}.section-title h3{font-size:14px;font-weight:550}.connection-status{color:#9b936e;background:#f0f0e6;border-radius:5px;margin-left:auto;padding:3px 7px;font-size:10px}.connection-status.on{color:var(--green);background:#e7efdf}.settings-section>p,.setup-note p{color:var(--text-secondary);margin-bottom:14px;font-size:12px;line-height:1.85}.setup-note{flex-direction:column;gap:8px;display:flex}.setup-note small{color:var(--muted);margin-top:7px;font-size:10px;line-height:1.8}.settings-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.settings-actions .button{min-height:35px;font-size:11px}.import-button{cursor:pointer;position:relative}.import-button input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.help-steps{flex-direction:column;gap:24px;margin:25px 0;padding:0;list-style:none;display:flex}.help-steps li{gap:17px;display:flex}.help-steps li>span{color:#a4b292;font-family:DM Sans,sans-serif;font-size:22px;font-weight:400}.help-steps h3{margin-bottom:6px;font-size:14px;font-weight:500}.help-steps p{color:var(--text-secondary);font-size:12px;line-height:1.8}.help-note{background:var(--soft);color:var(--text-secondary);border-radius:8px;padding:13px 15px;font-size:11px;line-height:1.9}.toast{z-index:100;color:#fffef3;background:#233f34;border:1px solid #49644c;border-radius:11px;align-items:center;gap:10px;max-width:min(620px,100vw - 32px);padding:14px 17px;font-size:13px;line-height:1.6;animation:.2s fade-in;display:flex;position:fixed;bottom:56px;left:50%;transform:translate(-50%);box-shadow:0 8px 40px #172f3430}.toast>svg{color:#b4c79b;flex-shrink:0}.toast>button{color:#c5d1b8;align-items:center;margin-left:7px;padding:3px;display:flex}.loading-screen,.no-trips,.fallback-page{text-align:center;background:var(--paper);flex-direction:column;justify-content:center;align-items:center;gap:20px;height:100dvh;padding:30px;display:flex}.loading-screen h1{letter-spacing:4px;font-family:Noto Serif SC,serif;font-size:25px;font-weight:500}.loading-screen p{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.no-trips{flex:1;height:auto;min-height:0}.no-trips h1{letter-spacing:1px;font-family:Noto Serif SC,serif;font-size:35px;font-weight:500;line-height:1.7}.no-trips>p:not(.eyebrow){color:var(--text-secondary);font-size:13px;line-height:1.8}.no-trips>.button{margin-top:10px}.empty-trip-art{color:#7e9770;margin-bottom:2px;padding:25px;position:relative}.empty-trip-art>span{background:var(--green);color:#fff;border:3px solid var(--paper);border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;display:flex;position:absolute;bottom:17px;right:13px}.eyebrow{letter-spacing:3px;color:#8b9c78;font-size:10px}.spin{animation:1s linear infinite spin}.pulsing{animation:1s ease-in-out infinite pulse}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-in{0%{opacity:0;transform:translate(-50%,-48%)}to{opacity:1;transform:translate(-50%,-50%)}}@media (min-width:1600px){.workspace{grid-template-columns:350px minmax(0,1fr) 340px;padding:20px 28px 0}.workspace.no-detail{grid-template-columns:350px minmax(0,1fr)}.app-header{height:92px;padding:0 38px}.library-heading{padding:27px 24px 20px}.library-search{margin-left:24px;margin-right:24px}.category-filters{padding-left:24px;padding-right:24px}.category-filters button{min-height:36px;font-size:12px}.poi-row{min-height:87px}.poi-row-info strong{font-size:14px}.poi-row-info small,.status-label{font-size:11px}.detail-scroll{padding-left:26px;padding-right:26px}.detail-field,.inline-field,.status-field legend{font-size:13px}.detail-field input,.detail-field textarea,.status-options button{font-size:12px}.map-search{height:50px;right:170px}.map-search input{font-size:14px}}@media (max-width:1250px) and (min-width:768px){.workspace{grid-template-columns:290px minmax(0,1fr) 280px;padding:12px 12px 0}.workspace.no-detail{grid-template-columns:290px minmax(0,1fr)}.app-header{gap:20px;height:74px;padding:0 20px}.trip-dates{display:none}.brand-wordmark{font-size:20px}.header-actions{gap:12px}.library-heading{gap:5px;padding:20px 15px 16px}.library-heading p{font-size:10px}.library-search{margin:0 15px 16px}.category-filters{gap:5px;padding:0 15px 16px}.secondary-filters{margin:0 15px}.poi-list{padding-left:6px;padding-right:6px}.poi-row{gap:7px;padding-left:7px;padding-right:7px}.poi-row-main{gap:8px}.poi-row-info strong{font-size:11px}.category-icon.badge{width:31px;height:33px}.status-label{font-size:9px}.detail-scroll,.detail-top{padding-left:18px;padding-right:18px}.map-search{left:16px;right:58px}.map-add-point{justify-content:center;width:32px;padding:6px;right:13px}.map-add-point>span{display:none}.map-location{left:21px}.example-map-tag{display:none}.map-controls{right:13px}.map-legend{gap:8px;padding:9px;left:15px}.map-demo-note{left:15px}.map-attribution{left:16px}.detail-title .poi-name-input{font-size:17px}.header-actions .save-indicator{display:none}}@media (min-width:768px) and (max-width:1023px){.workspace,.workspace.no-detail{grid-template-columns:300px minmax(0,1fr)}.detail-container{z-index:24;border-radius:13px;width:315px;position:fixed;top:86px;bottom:38px;right:13px;box-shadow:-8px 0 50px #244f4320}.map-panel{border-radius:0 14px 14px 0}.trip-title{max-width:150px}.brand-wordmark small{display:none}.header-actions,.brand{gap:9px}.header-divider{display:none}.app-header{gap:22px}}@media (max-width:767px){html,body{font-size:14px}.app-shell{height:100dvh;min-height:420px}.app-header{border-bottom:1px solid #e1e7d8;gap:13px;height:65px;padding:0 17px}.brand-mark{border-radius:9px;width:32px;height:32px}.brand-mark svg{width:20px}.brand-wordmark,.header-divider,.trip-dates,.help-button{display:none}.trip-selector{gap:6px}.trip-title{max-width:160px;font-size:16px}.trip-selector>svg{width:13px}.header-actions{gap:10px}.save-indicator{display:none}.storage-mode{background:#f0f1e7;border:0;padding:5px 7px;font-size:9px}.storage-mode>svg{width:11px}.avatar{border-width:2px;width:29px;height:29px;font-size:11px}.workspace,.workspace.no-detail{flex:1;min-height:0;padding:0;display:block;position:relative}.map-panel,.no-detail .map-panel{border:0;border-radius:0;position:absolute;inset:0}.map-search{border-radius:10px;gap:8px;height:44px;padding:0 12px;top:15px;left:17px;right:62px}.map-search input{font-size:13px}.map-search>svg{width:17px}.map-add-point{justify-content:center;width:32px;height:32px;padding:7px;top:21px;right:17px}.map-add-point span{display:none}.map-location{font-size:10px;top:74px;left:21px}.example-map-tag{font-size:9px;top:78px;right:18px}.map-demo-note{padding:5px 7px;font-size:9px;top:100px;bottom:auto;left:18px}.map-attribution,.map-legend{display:none}.map-controls{gap:8px;transition:bottom .2s;bottom:calc(43% + 19px);right:18px}.zoom-buttons{display:none}.fit-button{background:#fffef8;border-radius:50%;justify-content:center;width:36px;height:36px;padding:8px;font-size:10px}.fit-button>span{display:none}.locate-button{border-radius:50%;width:38px;height:38px}.schematic-canvas{top:0;bottom:25%}.map-pin{min-width:37px;height:37px}.map-pin.price-pin{height:38px}.pin-label{top:48px}.point-instruction,.comparison-note{justify-content:center;font-size:11px;top:128px;left:18px;right:18px}.comparison-note>button{margin-left:auto}.library-panel{z-index:11;background:var(--surface);border:1px solid #dee5d4;border-bottom:0;border-radius:22px 22px 0 0;height:43%;transition:height .25s;position:absolute;bottom:0;left:0;right:0;overflow:hidden;box-shadow:0 -5px 28px #3445370a}.sheet-full .library-panel{height:85%}.sheet-peek .library-panel{height:132px}.sheet-peek .map-controls{bottom:150px}.sheet-full .map-controls{bottom:calc(85% + 14px)}.sheet-drag-handle{touch-action:none;flex-shrink:0;justify-content:center;align-items:center;width:100%;min-height:21px;padding:7px;display:flex}.sheet-drag-handle>span{background:#d0d4c6;border-radius:4px;width:33px;height:4px;display:block}.library-heading{flex-shrink:0;align-items:center;padding:3px 20px 13px}.library-heading h1{gap:8px;font-size:16px}.library-heading h1>span{background:0 0;padding:1px 4px;font-size:11px}.library-heading p,.desktop-add{display:none}.mobile-filter-toggle{width:28px;height:26px;display:inline-flex}.library-search{flex-shrink:0;height:36px;margin:0 20px 13px;display:none}.category-filters{scrollbar-width:none;flex-wrap:nowrap;flex-shrink:0;gap:8px;padding:0 20px 13px;display:flex;overflow-x:auto}.category-filters button{flex-shrink:0;gap:5px;min-height:29px;padding:5px 12px;font-size:11px}.category-filters button>span,.category-filters button>i,.secondary-filters,.list-section-label{display:none}.poi-list{border-top:1px solid var(--line);min-height:0;padding:3px 11px 8px}.poi-row{gap:12px;min-height:72px;padding:10px 9px}.poi-row-main{gap:12px}.category-icon.badge{border-radius:8px;width:35px;height:35px}.poi-row-info{gap:6px}.poi-row-info strong{font-size:13px}.poi-row-info small{font-size:10px}.status-label{font-size:11px}.status-label>span{font-size:15px}.poi-checkbox{width:17px!important;height:17px!important}.library-footer{display:none}.sheet-full .library-footer{padding:10px 20px;display:flex}.mobile-add{padding:9px 20px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);flex-shrink:0;display:block}.mobile-add>.button{border-radius:8px;width:100%;min-height:39px;font-size:13px}.sheet-peek .mobile-add,.sheet-peek .poi-list{display:none}.sheet-peek .library-heading{padding-top:5px;padding-bottom:13px}.sheet-peek .category-filters{padding-bottom:14px}.filters-expanded .library-search{display:flex}.filters-expanded .secondary-filters{flex-shrink:0;margin:0 20px;padding-top:8px;display:block}.filters-expanded .filter-selects select{max-width:150px;font-size:12px}.filters-expanded .excluded-toggle{padding:10px 0;font-size:11px}.filters-expanded .category-filters button>span{display:inline}.detail-container{z-index:15;border:1px solid #dce3d2;border-bottom:0;border-radius:22px 22px 0 0;flex-direction:column;width:auto;display:none;position:absolute;inset:18% 0 0;box-shadow:0 -6px 35px #34453712}.show-mobile-detail .detail-container{display:flex}.show-mobile-detail .map-controls{display:none}.mobile-detail-back{z-index:1;color:var(--green);align-items:center;gap:4px;padding:5px 0;font-size:12px;display:flex;position:absolute;top:14px;left:19px}.detail-panel{flex:1;min-height:0}.detail-top{justify-content:flex-end;min-height:50px;padding:10px 20px 8px}.detail-top>span,.detail-top>div>.icon-button:first-child{display:none}.detail-top .icon-button{width:30px;height:30px}.detail-scroll{padding:4px 24px 18px}.detail-title{gap:12px}.detail-title .badge{width:43px;height:43px}.poi-name-input{font-size:22px}.detail-title p{font-size:11px}.example-disclosure{font-size:10px}.inline-field,.status-field legend,.detail-field{font-size:13px}.inline-field select{min-height:36px;font-size:13px}.status-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.status-options button{gap:7px;min-height:38px;padding:8px 10px;font-size:12px}.status-options button>svg{display:none}.detail-field input,.detail-field textarea,.detail-field select{padding:10px 12px;font-size:14px}.detail-field small{font-size:10px}.price-field>input{font-size:24px}.rating-stars{gap:16px}.rating-stars>button{min-width:28px;min-height:30px}.rating-stars>span{font-size:11px}.detail-footer{padding:12px 24px calc(9px + env(safe-area-inset-bottom));gap:8px}.navigation-button{min-height:42px;font-size:13px}.delete-button{min-height:24px;font-size:11px}.app-footer{display:none}.global-error{flex-wrap:wrap;gap:6px 13px;padding:8px 13px;font-size:11px}.global-error>span{flex-basis:100%}.modal-content,.modal-content.wide{border-radius:17px;width:calc(100vw - 24px);max-height:calc(100dvh - 28px);padding:23px 20px}.modal-heading h2{font-size:20px}.modal-description{margin-bottom:20px;font-size:12px;line-height:1.8}.form-stack input,.form-stack textarea,.form-stack select,.confirm-name input{font-size:16px}.form-row{gap:10px}.form-stack label{font-size:12px}.coordinate-header{align-items:flex-start}.coordinate-header small{margin-top:4px;margin-left:0;display:block}.modal-actions{gap:8px}.modal-actions .button{min-height:41px;padding:10px 12px;font-size:12px}.add-search input{font-size:16px}.search-result{gap:10px}.connection-empty{padding:25px 10px}.toast{bottom:calc(22px + env(safe-area-inset-bottom));width:max-content;max-width:calc(100vw - 30px);padding:12px 14px;font-size:12px}.trips-grid{gap:12px}.trip-card-open{padding:15px}.trip-card h3{font-size:17px}.trip-card p{font-size:9px}.trip-card-meta{font-size:10px}.trip-card-actions{gap:10px;padding:9px 12px}.trip-card-actions>span{font-size:9px}.new-trip-card{min-height:230px}.no-trips{padding:25px}.no-trips h1{font-size:27px}.no-trips>p:not(.eyebrow){font-size:12px}.button{min-height:42px}.settings-actions .button{min-height:39px}.section-title h3{font-size:14px}.settings-section>p{font-size:12px}.map-search input:focus{font-size:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
