:root{--hour:48px}.topbar{position:sticky;top:0;background:#f7f5f0ed;backdrop-filter:blur(12px);z-index:15;gap:10px}.topbar select{width:215px;background:transparent;font-size:12px;margin-left:25px;padding:8px}.topbar>button{white-space:nowrap}.masthead{padding:26px 0 25px}.masthead p{max-width:70vw;overflow-wrap:anywhere}.layout{grid-template-columns:220px minmax(0,1fr);gap:28px}.rail-note{margin-top:19px}.rail-note textarea{font-size:11px;line-height:1.8;resize:vertical;min-height:80px}.day-summary{line-height:1.9}.weather-panel{padding:17px 0 13px;margin-top:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.weather-panel .weather-edit{font-size:14px;padding:3px 6px}.weather-panel a{font-size:8px;color:#9c929e;text-decoration:none}.weather-inline{font-size:10px;color:#948795;display:inline-block;max-width:100%;line-height:1.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weather-panel .weather-inline{font-size:14px;color:#6c5d7b}.weather-panel small{font-size:9px;margin:5px 0}.calendar-toolbar{padding:25px 0 16px}.month-heading h1{font-size:29px}.month-heading h1 small{font-size:10px}.viewbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:15px;align-items:center}.view-tabs{display:flex;gap:3px;background:#ede9e3;padding:4px;border-radius:8px;flex:none}.view-tabs button{font-size:11px;padding:8px 17px;border:0;white-space:nowrap}.view-tabs .active{background:#fffdfa;color:#675189;box-shadow:0 2px 6px #44334b0c}.search-box{display:flex;align-items:center;border:1px solid var(--line);border-radius:7px;background:#fffdfa;padding:0 9px;max-width:300px;flex:1}.search-box input{margin:0;padding:9px;border:0;background:transparent;min-width:0;font-size:11px;outline:none}.search-box span{font-size:18px;color:#9e92ab}.quick-capture{display:flex;border:1px solid var(--line);background:#fffdfa;border-radius:7px;margin-bottom:15px;align-items:center}.quick-capture select{width:87px;border:0;border-right:1px solid var(--line);background:transparent;font-size:11px;border-radius:0;padding:10px}.quick-capture input{flex:1;min-width:0;border:0;background:transparent;font-size:11px;padding:11px}.quick-capture button{border:0;font-size:20px;padding:4px 13px}.calendar-scroll{max-height:90vh}.week-board .day-column{width:180px;flex:1 0 180px}.day-header{height:105px;flex-wrap:wrap;gap:3px 7px;padding:12px}.date-select{border:0;padding:0;text-align:left;display:flex;gap:8px;align-items:center;flex:1;min-width:0;background:transparent}.date-select:hover{background:transparent}.day-heading-meta b{font-size:9px;white-space:nowrap}.day-heading-meta span{font-size:9px}.date-number{font-size:32px}.day-weather{width:100%;height:18px;overflow:hidden}.gutter-head{height:105px}.event{padding:9px 10px 8px 20px;gap:3px;touch-action:pan-y;min-width:0}.event .drag-grip{position:absolute;left:2px;top:8px;padding:0;font-size:13px;line-height:17px}.event-name{font-size:12px}.event-time{font-size:9px}.event.compact{padding-left:18px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:1px}.event.compact .event-name{margin:0;font-size:10px;max-width:100%}.event.compact .event-time{font-size:8px}.event.compact .event-note{display:none}.drag-grip{touch-action:none;cursor:grab;display:inline-block;color:inherit;opacity:.55;letter-spacing:-3px;padding:3px 9px 3px 3px;user-select:none;flex:none}.drag-grip:focus-visible{outline:2px solid #9783bb;opacity:1}.drag-grip:hover{opacity:1}.drop-hover{outline:2px dashed #9b82bd!important;outline-offset:-3px;background-color:#f0eaf880!important}.search-results{font-size:11px;color:#8c7b99;margin-bottom:12px;line-height:2}.search-results button{font-size:10px;margin:2px;padding:3px 7px}.month-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:9px}.month-board{min-width:770px;background:#fffdfa}.month-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#eeebe5}.month-weekdays span{text-align:center;font-size:10px;color:#968b99;padding:13px;border-right:1px solid var(--line)}.month-cells{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.month-cell{min-width:0;min-height:150px;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:8px 6px 12px}.month-cell:nth-child(7n){border-right:0}.month-cell.active{background:#f4effa}.month-cell.outside{background:#f6f4ef}.month-cell.outside .month-cell-head{opacity:.5}.month-cell-head{display:flex;justify-content:space-between;align-items:center}.month-cell-head button{border:0;padding:3px 6px;color:#8d7e9a;font-size:13px}.month-cell-head button:first-child{font-family:Georgia,serif;font-size:19px;color:#62516f}.month-weather{height:20px;overflow:hidden}.month-weather .weather-inline{font-size:8px}.month-event{display:flex;align-items:center;background:#eee8f5;border-radius:4px;margin:4px 0;color:#7e6797;min-width:0}.month-event[data-kind="餐饮"]{background:#f7ecdf;color:#9a7547}.month-event[data-kind="休息"]{background:#e9eee4;color:#748466}.month-event[data-kind="航班"],.month-event[data-kind="火车"],.month-event[data-kind="交通"],.month-event[data-kind="自驾"],.month-event[data-kind="住宿"]{background:#e6eef2;color:#678596}.month-event .drag-grip{padding:2px 5px 2px 1px;font-size:11px}.month-event>button{border:0;padding:5px 3px;font-size:9px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.month-note{width:100%;border:0;font-size:9px;text-align:left;padding:5px;color:#a79375;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.agenda-day{border:1px solid var(--line);border-radius:10px;background:#fffdfa;padding:22px;margin-bottom:20px}.agenda-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px}.agenda-date{border:0;padding:0;font-size:20px;font-weight:500}.agenda-buttons{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.agenda-buttons button{font-size:10px;padding:7px}.agenda-note{font-size:12px;padding:13px 16px;background:#f5f0e6;border-left:2px solid #d6bd94;white-space:pre-wrap;overflow-wrap:anywhere}.detail-row{display:grid;grid-template-columns:52px minmax(0,1fr);gap:15px;margin-bottom:14px;border-radius:8px}.detail-time{font-size:12px;padding-top:20px;color:#73627d}.detail-time small{font-size:10px;margin-top:5px}.detail-card{border:1px solid var(--line);border-radius:8px;padding:15px 18px;border-left:3px solid #b29cd4;min-width:0}.detail-card[data-kind="餐饮"]{border-left-color:#d6ae7b}.detail-card[data-kind="休息"]{border-left-color:#a3b792}.detail-card[data-kind="住宿"],.detail-card[data-kind="交通"],.detail-card[data-kind="航班"],.detail-card[data-kind="火车"],.detail-card[data-kind="自驾"]{border-left-color:#94b1c1}.detail-card-head{display:flex;gap:8px;align-items:center;margin-bottom:8px}.kind-label{font-size:9px;background:#f0ebf5;color:#8e7b9f;border-radius:4px;padding:3px 7px;white-space:nowrap}.detail-meta{font-size:9px;color:#9c929f;flex:1}.icon-btn{border:0;padding:0;font-size:18px;color:#9883b0}.detail-title{border:0;padding:0;text-align:left;font-size:16px;font-weight:500;overflow-wrap:anywhere}.detail-card p{font-size:11px;margin:9px 0;color:#94889b;overflow-wrap:anywhere}.detail-notes{white-space:pre-wrap}.detail-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;font-size:9px;color:#b0a5b7}.detail-actions button{border:0;padding:0;color:#9f8aaf;font-size:10px}.drop-tail{display:block;width:100%;border-style:dashed;color:#ab9bb3;font-size:10px;padding:12px}.empty-day{padding:35px;text-align:center;color:#b1a5b9;font-size:12px}.ack{display:flex;align-items:flex-start;gap:8px;line-height:1.8;font-size:11px;margin-top:15px}.ack input{width:16px;height:16px;flex:none;margin:2px 0}.ack[hidden]{display:none}.city-search{display:flex;gap:8px}.city-search input{min-width:0}.city-search button{white-space:nowrap}#city-results>button{width:100%;font-size:11px;text-align:left;margin-top:7px}#weather-dialog h3{font-size:14px;font-weight:500}hr{border:0;border-top:1px solid var(--line);margin:20px 0}#drag-ghost{position:fixed;z-index:100;max-width:250px;padding:12px 17px;background:#71608e;color:white;border-radius:8px;box-shadow:0 10px 30px #39244c33;pointer-events:none;font-size:11px;white-space:pre-line}#drag-ghost[hidden]{display:none}.dragging{cursor:grabbing!important;user-select:none}.dialog-actions .danger{margin-right:auto}#print-content{display:none}.day-grid{cursor:crosshair}.day-grid .event{cursor:pointer}.warning summary{cursor:pointer}.topbar select:focus{outline:2px solid #c8b6da}.network-error{color:#ae7e61}.month-heading{min-width:0}.month-heading h1{overflow-wrap:anywhere}.event[data-kind="航班"],.event[data-kind="火车"],.event[data-kind="自驾"]{background:#e5edf1;border-color:#94b1c1;color:#5d7989}
@media(max-width:1100px){.topbar select{margin-left:0;width:160px}.topbar{gap:6px}.topbar .local-tag{display:none}.layout{grid-template-columns:185px minmax(0,1fr);gap:20px}.view-tabs button{padding:8px 12px}.month-heading h1{font-size:24px}.toolbar-actions{gap:4px}.toolbar-actions button{padding:8px}.search-box{max-width:220px}}
@media(max-width:700px){.topbar{flex-wrap:wrap;padding:10px 16px}.topbar .brand{font-size:20px}.topbar select{flex:1;max-width:calc(100% - 110px);width:auto}.topbar>button{font-size:9px;padding:6px 8px}.topbar>#new-trip{margin-right:0}.topbar>#trip-manage{margin-left:auto}.layout{display:flex;gap:0}.rail-note textarea{margin-bottom:0}.viewbar{flex-direction:column;align-items:stretch;gap:9px}.view-tabs{justify-content:space-between}.view-tabs button{flex:1;font-size:11px;padding:8px 10px}.search-box{max-width:none}.calendar-toolbar{gap:8px;padding:20px 0 14px}.month-heading h1{font-size:20px}.month-heading h1 small{font-size:8px}.toolbar-actions{max-width:185px}.toolbar-actions button{font-size:9px;padding:6px 7px}.calendar-scroll{max-height:65vh}.week-board .day-column{width:175px;flex-basis:175px}.agenda-day{padding:14px 12px}.agenda-heading{flex-direction:column;gap:10px}.agenda-date{font-size:17px}.agenda-buttons{justify-content:flex-start}.agenda-buttons button{font-size:9px}.detail-row{grid-template-columns:40px minmax(0,1fr);gap:8px}.detail-card{padding:12px}.detail-title{font-size:14px}.detail-card-head{gap:5px}.detail-meta{font-size:8px}.detail-time{font-size:11px}.detail-actions{flex-direction:column;align-items:flex-start}.month-board{min-width:735px}.month-cell{min-height:135px}.quick-capture input{font-size:10px}.trip-stamp{display:none}.masthead p{max-width:none}.title-input{max-width:100%}.calendar-caption{font-size:9px}.view-tabs{width:100%}.calendar-section{width:100%}}
.event .drag-grip{width:20px;height:26px;top:3px;left:0;line-height:26px;text-align:center}.detail-card .drag-grip{min-width:22px;min-height:24px}.month-event .drag-grip{min-width:16px;min-height:24px;line-height:20px;text-align:center}.preview-day h3{font-size:13px;margin:20px 0 8px}.day-summary{overflow-wrap:anywhere}.download-link{display:inline-block;padding:10px 14px;border-radius:7px;text-decoration:none;font-size:11px}#export-data{font:11px/1.7 Consolas,monospace;white-space:pre;resize:vertical}#export-filename{font-size:12px;overflow-wrap:anywhere}
@media print{body{background:white;color:#222}body>header,body>main,dialog,.toast,#drag-ghost{display:none!important}#print-content{display:block!important;padding:10mm;font-size:11pt}#print-content h1{font-size:24pt}#print-content h2{font-size:17pt;border-bottom:1px solid #ccc;padding-bottom:8pt;margin-top:22pt}#print-content article{break-inside:avoid;margin:12pt 0;border-bottom:1px solid #eee;padding-bottom:8pt}#print-content p{white-space:pre-wrap;color:#444;font-size:10pt}#print-content .print-meta{font-size:10pt;color:#666}@page{margin:14mm}}

.calendar-toolbar{scroll-margin-top:96px}

/* Resize edges are independent of whole-card dragging. */
.resize-handle{position:absolute;left:0;right:0;height:7px;z-index:4;cursor:ns-resize;touch-action:none;user-select:none;outline-offset:-1px}
.resize-start{top:0}.resize-end{bottom:0}
.resize-handle:after{content:'';position:absolute;left:calc(50% - 12px);width:24px;height:2px;background:var(--intent-line,var(--muted));opacity:0;transition:opacity .12s}
.resize-start:after{top:1px}.resize-end:after{bottom:1px}
.event:hover .resize-handle:after,.resize-handle:focus-visible:after,.resizing .resize-handle:after{opacity:1}
.event.micro .resize-handle{height:4px}.event.sliver .resize-handle{height:3px}
.resizing,.resizing *{cursor:ns-resize!important;user-select:none!important}
.resizing-source{opacity:.35}
.resize-preview{position:absolute;z-index:6;border:1px dashed var(--text);background:color-mix(in srgb,var(--panel) 80%,transparent);color:var(--text);padding:5px;font:11px/1.5 Consolas,monospace;pointer-events:none;overflow:visible;min-height:12px;white-space:nowrap;box-shadow:0 2px 10px #0001}
@media(pointer:coarse){.event:not(.micro) .resize-handle{height:12px}.resize-handle:after{opacity:.7}}


/* Search outlines do not change layout, colors or visibility of other cards. */
body :is(.event,.detail-card,.month-event,.idea-card)[data-search-match="true"],body[data-theme] :is(.event,.detail-card,.month-event,.idea-card)[data-search-match="true"]{box-shadow:inset 0 0 0 2px #12827a!important;outline:1px solid #12827a;outline-offset:-1px}
body[data-theme="ink"] :is(.event,.detail-card,.month-event,.idea-card)[data-search-match="true"]{box-shadow:inset 0 0 0 2px #65d7c1!important;outline-color:#65d7c1}
