.itinerary-canvas{min-width:0}
.canvas-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:6px 0 18px}
.canvas-heading .eyebrow{font-size:8px;letter-spacing:1.8px;margin-bottom:5px}
.canvas-heading h2{font-family:"Noto Serif TC",serif;font-size:23px;letter-spacing:1px}
.canvas-heading>div>p:last-child{margin-top:8px;font-size:11px;color:var(--muted);line-height:1.9}
.canvas-count{flex-shrink:0;min-width:71px;font:32px/1.3 Georgia,serif;text-align:center;color:var(--orange)}
.canvas-count small{display:block;font:10px/1.7 "Noto Sans TC",sans-serif;color:var(--muted)}
.canvas-toolbar{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:8px}
.canvas-toolbar .button{font-size:10px;padding:8px 12px;min-height:36px;gap:6px}
.canvas-storage-note,.canvas-travel-note{font-size:10px;color:#8a937d;line-height:1.85}
.canvas-travel-note{margin:11px 2px 0}
.canvas-tray{margin:19px 0 15px;padding:15px;background:#f0f2e7;border:1px solid #dfe5d3;border-radius:12px}
.canvas-tray-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:11px}
.canvas-tray-heading h3{font-size:12px;font-weight:600}
.canvas-tray-heading h3 span{display:inline-block;margin-left:4px;background:#dfe7d3;min-width:22px;text-align:center;border-radius:5px;font-size:10px;color:#738460}
.canvas-tray-heading>span{font-size:9px;color:#859373}
.canvas-tray-list{display:flex;flex-wrap:wrap;gap:8px;max-height:220px;overflow:auto;scrollbar-width:thin}
.canvas-tray-card{display:flex;align-items:center;gap:8px;min-width:230px;flex:1 1 260px;background:var(--white);padding:10px 11px;border:1px solid #dce4cf;border-radius:8px;cursor:grab;transition:box-shadow .15s,border-color .15s}
.canvas-tray-card:hover{border-color:#aabb95;box-shadow:0 3px 12px #263d3109}
.canvas-tray-card.is-pending{border-color:#a9794e;background:#fbf4e6}
.canvas-drag-grip{color:#91a07e;font-size:20px;line-height:1}
.canvas-tray-card>div{min-width:0;flex:1}
.canvas-place-name{display:block;background:transparent;padding:0;text-align:left;font-size:11px;font-weight:600;line-height:1.7;overflow-wrap:anywhere}
.canvas-place-name:hover{text-decoration:underline;text-underline-offset:3px;color:var(--orange)}
.canvas-tray-card p{font-size:9px;color:#8c957e;margin-top:3px}
.canvas-stars{margin-left:3px;color:#b58242;white-space:nowrap}
.canvas-add-button{background:#edf1e3;font-size:9px;color:#71845e;border-radius:5px;padding:6px 8px;min-height:32px;white-space:nowrap;flex-shrink:0}
.canvas-add-button:hover{background:#dde6cc}
.canvas-tray-empty{font-size:11px;color:#7f8e70;line-height:1.9;padding:3px 0}
.canvas-editor{padding:18px;border:1px solid #d9c5a7;border-radius:11px;margin:15px 0;background:#fbf6e9}
.canvas-editor-heading{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}
.canvas-small-label{font-size:9px;color:#a08359;letter-spacing:1px}
.canvas-editor h3{font-size:15px;margin:3px 0 0;font-weight:600}
.canvas-icon-button{border:1px solid #e8ddc8;background:transparent;font-size:22px;line-height:28px;min-width:32px;height:32px;border-radius:7px;color:#a08d6f}
.canvas-editor>p{font-size:10px;color:#9b8c74;margin-top:7px}
.canvas-editor-form{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;margin-top:14px}
.canvas-editor-form label{display:grid;gap:5px;font-size:10px;color:#887f6b}
.canvas-editor-form input,.canvas-editor-form select{border:1px solid #dcd3bd;border-radius:6px;background:#fffdf5;color:var(--ink);padding:8px;min-height:38px;font-size:11px;max-width:180px}
.canvas-editor-form input[type=number]{width:90px}
.canvas-editor-form .button{font-size:10px;min-height:38px;padding:8px 13px}
.canvas-view-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:19px 0 10px}
.canvas-view-controls>p{font-size:10px;color:var(--muted);line-height:1.8}
.canvas-layout-toggle{display:flex;padding:3px;gap:3px;border:1px solid #d8e0ce;border-radius:9px;background:#edf1e4;flex-shrink:0}
.canvas-layout-toggle>button{min-height:38px;padding:8px 15px;border-radius:6px;background:transparent;color:#77866a;font-size:11px;white-space:nowrap}
.canvas-layout-toggle>button[aria-pressed=true]{background:#fffef8;color:#38543b;box-shadow:0 1px 4px #29432c18;font-weight:600}
.canvas-layout-toggle>button:focus-visible,.canvas-date-tab:focus-visible{outline:2px solid #47683e;outline-offset:2px}
.canvas-date-tabs{position:relative;display:flex;gap:5px;overflow-x:auto;max-width:100%;padding:4px 3px 0;border-bottom:1px solid #d4ddca;scrollbar-width:thin;scrollbar-color:#becaac #eff2e8}
.canvas-date-tab{display:flex;align-items:center;gap:12px;flex:0 0 auto;min-height:47px;padding:9px 14px 10px;border:1px solid #dce3d3;border-top:3px solid var(--canvas-day-color);border-bottom:0;border-radius:8px 8px 0 0;background:#f0f2e9;color:#77836d;text-align:left;white-space:nowrap}
.canvas-date-tab-title{font-size:11px;font-weight:500}
.canvas-date-tab>small{font-size:9px;color:#8c977e}
.canvas-date-tab:hover{background:#fffef8;color:var(--ink)}
.canvas-date-tab.is-active{background:#fffef8;box-shadow:inset 0 -3px var(--canvas-day-color);color:var(--ink)}
.canvas-date-tab.is-active .canvas-date-tab-title{font-weight:700}
.canvas-grid-intro{display:flex;justify-content:space-between;gap:14px;color:#8a947d;font-size:9px;margin:16px 2px 8px;line-height:1.8}
.canvas-grid-intro>span:last-child{white-space:nowrap;color:#a1a98f}
.canvas-scroll{max-height:650px;overflow:auto;position:relative;border:1px solid #dce3cf;border-radius:12px;background:var(--white);scrollbar-width:thin;scrollbar-color:#becaac #eff2e8;overscroll-behavior:contain}
.canvas-calendar{display:grid;grid-template-columns:49px repeat(var(--canvas-days),minmax(176px,1fr));min-width:calc(49px + 176px * var(--canvas-days));align-items:start}
.canvas-time-rail{position:sticky;left:0;z-index:5;background:#f7f7ef;border-right:1px solid var(--line)}
.canvas-time-heading{position:sticky;top:0;z-index:8;height:64px;display:flex;align-items:center;justify-content:center;font-size:9px;color:#8c987b;background:#edf1e4;border-bottom:1px solid #d7e0ca}
.canvas-time-rail>div:last-child{position:relative}
.canvas-time-rail>div>span{position:absolute;left:7px;font-size:9px;color:#8b9979;transform:translateY(-50%);line-height:18px}
.canvas-time-rail>div>span:first-child{transform:translateY(1px)}
.canvas-time-rail>div>span.canvas-end-time{bottom:0;transform:none}
.canvas-day{min-width:0;border-right:1px solid #e1e7d7;position:relative}
.canvas-day:last-child{border-right:0}
.canvas-day-heading{height:64px;position:sticky;top:0;z-index:6;background:#edf1e4;border-top:3px solid var(--canvas-day-color,#7b9761);border-bottom:1px solid #d7e0ca;padding:10px 10px 9px}
.canvas-day.is-active-day .canvas-day-heading{background:#f5f7ed}
.canvas-day-heading h3{font-size:12px;font-weight:600;white-space:nowrap}
.canvas-day-heading p{font-size:9px;color:#849370;margin-top:3px;white-space:nowrap}
.canvas-day-grid{position:relative;isolation:isolate;background:#fffefa;transition:background .15s}
.canvas-time-slot{display:block;position:absolute;left:0;right:0;width:100%;padding:0;border-bottom:1px dashed #e8ecdf;border-radius:0;background:transparent;text-align:right;cursor:crosshair;z-index:0}
.canvas-time-slot.hour{border-top:1px solid #e6ebdb}
.canvas-time-slot>span{display:none;font-size:8px;color:#91a07f;padding:1px 5px}
.canvas-time-slot:hover:not(:disabled){background:#edf3e2}
.canvas-time-slot:hover:not(:disabled)>span,.canvas-time-slot:focus-visible>span{display:block}
.canvas-time-slot:focus-visible{outline:2px solid #a77a44;outline-offset:-2px;z-index:1;background:#f6eedc}
.canvas-day.is-locked .canvas-day-heading{background:#f0eadd;border-bottom-color:#e3d9c6}
.canvas-day.is-locked .canvas-day-heading p{color:#ab9270}
.canvas-day.is-locked .canvas-day-grid{background:repeating-linear-gradient(135deg,#f7f5ed,#f7f5ed 7px,#f1efe6 7px,#f1efe6 8px)}
.canvas-time-slot:disabled{opacity:1;cursor:default;border-color:#ebe7dc}
.canvas-locked-note{position:absolute;z-index:1;left:12px;right:12px;border:1px solid #e7dfcc;background:#faf6ebed;border-radius:10px;padding:17px 12px;color:#a18c68;pointer-events:none}
.canvas-locked-note>span{display:block;font-size:23px;color:#b89b69;margin-bottom:6px}
.canvas-locked-note strong{display:block;font-size:11px;font-weight:500;line-height:1.9}
.canvas-locked-note p{font-size:10px;line-height:1.9;margin-top:7px}
.canvas-locked-note small{display:block;font-size:8px;line-height:1.9;color:#b0a183;margin-top:12px}
.canvas-event{position:absolute;z-index:2;background:#e5ecd9;border:1px solid #c9d8b5;border-left:3px solid #7b9761;border-radius:6px;padding:7px 7px 6px;overflow:hidden;cursor:grab;box-shadow:0 2px 3px #263d3107;min-width:0;transition:box-shadow .15s}
.canvas-event:hover{z-index:3;box-shadow:0 4px 10px #263d3115}
.canvas-event.is-editing{border-color:#bc975e;border-left-color:#ae7d3e;background:#f1e7d0}
.canvas-event.has-warning{border-left-color:#b98552}
.canvas-event.is-dragging,.canvas-tray-card.is-dragging{opacity:.4}
.canvas-event-top{display:flex;align-items:center;justify-content:space-between;gap:3px;min-height:15px}
.canvas-event-top>span{font-size:9px;color:#7b8d66;white-space:nowrap}
.canvas-event-top>button{font-size:14px;width:24px;height:23px;line-height:18px;background:#f4f7ed;border-radius:4px;color:#76905c;flex-shrink:0;padding:0}
.canvas-event-name{display:block;background:transparent;padding:0;text-align:left;font-size:11px;font-weight:600;line-height:1.6;margin-top:3px;width:100%;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.canvas-event-name:hover{color:#9a6e39;text-decoration:underline;text-underline-offset:3px}
.canvas-event>p{font-size:9px;color:#8a9978;margin-top:5px}
.canvas-event-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}
.canvas-event-actions>button{font-size:8px;padding:4px 5px;min-height:26px;border:1px solid #cfdbbd;background:#f3f6e9;border-radius:4px;color:#758964}
.canvas-event-actions>button:hover{background:#fffef7}
.canvas-event.is-short{display:flex;align-items:center;gap:4px;padding:2px 4px}
.canvas-event.is-short .canvas-event-top{display:contents}
.canvas-event.is-short .canvas-event-top>span{font-size:8px}
.canvas-event.is-short .canvas-event-top>button{order:3;width:24px;height:24px;margin-left:auto}
.canvas-event.is-short .canvas-event-name{font-size:9px;margin:0;line-height:1.4;-webkit-line-clamp:2}
.canvas-day-grid.is-drop-target{background:#f4f8ed}
.canvas-drop-hint{position:absolute;left:0;right:0;border-top:2px solid #a9773d;z-index:4;color:#95672d;font-size:10px;font-weight:600;padding:2px 6px;background:#f9efdcde;pointer-events:none;min-height:25px}
.canvas-warnings{margin-top:17px;padding:15px 18px;background:#f7eddf;border:1px solid #ecdec9;border-radius:10px}
.canvas-warnings h3{font-size:11px;color:#9e7c4f;font-weight:600}
.canvas-warnings h3 span{font-size:9px;margin-left:5px}
.canvas-warnings ul{padding-left:16px;margin:8px 0 0;color:#aa8a61;font-size:10px;line-height:1.9}
.canvas-warnings li+li{margin-top:5px}
.canvas-warnings li>button{background:none;padding:0;text-align:left;text-decoration:underline;text-underline-offset:3px;font-size:inherit;color:#947044}
@media(min-width:1400px){.canvas-calendar{grid-template-columns:49px repeat(var(--canvas-days),minmax(180px,1fr))}}
.canvas-layout-single .canvas-calendar{grid-template-columns:49px minmax(0,1fr);min-width:0}
.canvas-layout-single .canvas-event-name{font-size:12px;-webkit-line-clamp:2}
.canvas-layout-single .canvas-event.is-short .canvas-event-name{font-size:10px}
@media(max-width:1100px){.canvas-heading h2{font-size:20px}.canvas-toolbar .button{padding:8px 10px;font-size:9px}.canvas-tray-card{flex-basis:230px}}
@media(max-width:760px){.canvas-heading{gap:10px;margin-top:3px}.canvas-heading h2{font-size:20px;letter-spacing:.4px}.canvas-heading>div>p:last-child{font-size:10px;line-height:1.9}.canvas-count{min-width:51px;font-size:28px}.canvas-count small{font-size:8px}.canvas-toolbar{gap:6px}.canvas-toolbar .button{padding:8px 10px;min-height:38px;font-size:9px}.canvas-tray{padding:13px;margin-top:16px}.canvas-tray-list{max-height:204px}.canvas-tray-card{min-width:100%;padding:9px}.canvas-add-button{min-height:36px}.canvas-grid-intro{display:block;font-size:9px;margin-top:13px}.canvas-grid-intro>span:last-child{display:block;font-size:8px;margin-top:4px}.canvas-editor{padding:14px}.canvas-editor-form{gap:9px}.canvas-editor-form label{flex:1 1 25%;min-width:75px}.canvas-editor-form input,.canvas-editor-form select{width:100%;max-width:none;min-width:0;padding:8px 6px}.canvas-editor-form input[type=number]{width:100%}.canvas-editor-form .button{flex:1 1 40%;min-height:40px}.canvas-scroll{max-height:600px}.canvas-calendar{grid-template-columns:44px repeat(var(--canvas-days),minmax(183px,1fr));min-width:calc(44px + 183px * var(--canvas-days))}.canvas-time-rail>div>span{left:5px;font-size:8px}.canvas-day-heading{padding-left:11px}.canvas-event-top>button{width:30px;min-height:26px}.canvas-event.is-short .canvas-event-top>button{width:26px}.canvas-event-actions>button{min-height:30px}.canvas-storage-note,.canvas-travel-note{font-size:9px}.canvas-warnings{padding:14px}.canvas-warnings ul{font-size:9px}}
@media(max-width:760px){.canvas-view-controls{display:block;margin-top:15px}.canvas-view-controls>p{margin-top:8px;font-size:9px}.canvas-layout-toggle{width:max-content;max-width:100%}.canvas-layout-toggle>button{min-height:40px;font-size:11px}.canvas-date-tab{min-height:49px;gap:7px;padding:9px 11px;flex-direction:column;align-items:flex-start}.canvas-date-tab-title{font-size:10px}.canvas-date-tab>small{font-size:8px}.canvas-layout-single .canvas-calendar{grid-template-columns:44px minmax(0,1fr)}}
@media print{#canvas-view{display:none!important}}
