:root{--bg-body: #f5f3f0;--text-primary: #333;--text-secondary: #555;--text-tertiary: #777;--text-muted: #888;--text-faint: #999;--text-placeholder: #aaa;--text-ghost: #bbb;--card-bg: white;--card-shadow: rgba(0, 0, 0, .1);--card-shadow-hover: rgba(0, 0, 0, .15);--card-border: #ff8a65;--card-match-bg: #f9fff9;--card-match-border: #4caf50;--column-bg: white;--column-header-bg: #fafafa;--column-border: #eee;--zone-morning: #fff8e1;--zone-afternoon: #fff3e0;--zone-evening: #ede7f6;--zone-flexible: #e8f5e9;--zone-empty-border: #ddd;--pool-bg: #efe8df;--pool-border: #e0d5c8;--pool-hover: #e8ddd0;--btn-bg: rgba(0, 0, 0, .06);--btn-border: #bbb;--swap-border: #ddd;--swap-hover-bg: #ff8a65;--input-bg: #fafafa;--input-border: #ddd;--input-focus: #ff8a65;--input-focus-bg: white;--modal-overlay: rgba(0, 0, 0, .5);--modal-bg: white;--modal-shadow: rgba(0, 0, 0, .25);--modal-btn-cancel-bg: #f5f5f5;--modal-btn-cancel-hover: #e0e0e0;--comment-border: #e0e0e0;--accent: #ff8a65;--accent-hover: #ff7043;--scrollbar: #ccc}[data-theme=dark]{--bg-body: #1a1a2e;--text-primary: #e0e0e0;--text-secondary: #c0c0c0;--text-tertiary: #a0a0a0;--text-muted: #909090;--text-faint: #808080;--text-placeholder: #707070;--text-ghost: #606060;--card-bg: #2a2a42;--card-shadow: rgba(0, 0, 0, .3);--card-shadow-hover: rgba(0, 0, 0, .45);--card-border: #e07050;--card-match-bg: #1e3a1e;--card-match-border: #66bb6a;--column-bg: #222240;--column-header-bg: #2e2e4a;--column-border: #3a3a55;--zone-morning: #252035;--zone-afternoon: #2a2040;--zone-evening: #2a2820;--zone-flexible: #1e2a1e;--zone-empty-border: #444;--pool-bg: #1e1e32;--pool-border: #333355;--pool-hover: #282848;--btn-bg: rgba(255, 255, 255, .08);--btn-border: #555;--swap-border: #555;--swap-hover-bg: #e07050;--input-bg: #333350;--input-border: #555;--input-focus: #e07050;--input-focus-bg: #2a2a42;--modal-overlay: rgba(0, 0, 0, .7);--modal-bg: #2a2a42;--modal-shadow: rgba(0, 0, 0, .5);--modal-btn-cancel-bg: #333350;--modal-btn-cancel-hover: #444460;--comment-border: #444;--accent: #e07050;--accent-hover: #d05535;--scrollbar: #555}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans TC,sans-serif;background:var(--bg-body);color:var(--text-primary);min-height:100vh;transition:background .3s,color .3s}#root{min-height:100vh;display:flex;flex-direction:column}.app{display:flex;flex-direction:column;min-height:100vh}.theme-toggle{background:#ffffff26;border:none;border-radius:8px;cursor:pointer;font-size:18px;padding:6px 10px;transition:background .2s;line-height:1}.theme-toggle:hover{background:#ffffff4d}.header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-hover) 100%);color:#fff;box-shadow:0 2px 8px #00000026;position:sticky;top:0;z-index:100;flex-wrap:wrap;gap:12px}.header-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.header-icon{font-size:28px}.trip-name{font-size:22px;font-weight:700;cursor:pointer;border-bottom:2px dashed rgba(255,255,255,.5);padding-bottom:2px}.trip-name:hover{border-bottom-color:#fff}.trip-name-input{font-size:22px;font-weight:700;background:#fff3;border:2px solid white;border-radius:6px;color:#fff;padding:2px 8px;outline:none;min-width:200px}.date-range{font-size:14px;opacity:.9;background:#ffffff26;padding:4px 10px;border-radius:12px}.header-title-row,.header-date-row{display:flex;align-items:center;gap:12px}.header-actions{display:flex;gap:8px}.btn{padding:8px 16px;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}.btn-export{background:#fff3;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.btn-export:hover{background:#ffffff59}.btn-reset{background:#ffffff1a;color:#fff}.btn-reset:hover{background:#ff000040}.plan-selector{display:flex;align-items:center;gap:8px;margin-left:12px}.plan-selector-label{font-size:13px;font-weight:600;color:#fffc;white-space:nowrap}.plan-selector-dropdown{position:relative}.plan-selector-trigger{display:flex;align-items:center;gap:6px;padding:4px 12px;background:#fff3;border:1.5px solid rgba(255,255,255,.4);border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;color:#fff;min-width:100px;transition:all .2s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.plan-selector-trigger:hover{background:#ffffff59;border-color:#ffffffb3}.plan-selector-name{flex:1;text-align:left}.plan-selector-arrow{font-size:10px;opacity:.6}.plan-selector-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:220px;background:var(--bg-primary);border:2px solid var(--border);border-radius:10px;box-shadow:0 4px 16px #00000026;z-index:200;overflow:hidden}.plan-selector-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;cursor:pointer;transition:background .15s;gap:8px}.plan-selector-item:hover{background:var(--bg-secondary)}.plan-selector-item.active{background:var(--accent);color:#fff}.plan-selector-item.active:hover{background:var(--accent-hover)}.plan-item-name{flex:1;font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-item-actions{display:flex;gap:2px;opacity:0;transition:opacity .15s}.plan-selector-item:hover .plan-item-actions{opacity:1}.plan-selector-item.active .plan-item-actions{opacity:.8}.plan-item-btn{background:none;border:none;cursor:pointer;font-size:13px;padding:2px 4px;border-radius:4px;transition:background .15s}.plan-item-btn:hover{background:#0000001a}.plan-rename-input{flex:1;font-size:14px;font-weight:500;padding:2px 6px;border:2px solid var(--accent);border-radius:4px;outline:none;background:var(--bg-primary);color:var(--text-primary);min-width:0}.btn-clone{background:#ffffff26;border:1.5px solid rgba(255,255,255,.3);color:#fff;padding:4px 10px;font-size:12px;border-radius:8px;cursor:pointer;transition:all .2s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.btn-clone:hover{background:#ffffff59;border-color:#ffffffb3}.plan-count{font-size:11px;color:#ffffffb3}.days-container{display:flex;gap:16px;padding:20px;overflow-x:auto;flex:1;align-items:flex-start;scroll-behavior:smooth}.days-container::-webkit-scrollbar{height:8px}.days-container::-webkit-scrollbar-track{background:transparent}.days-container::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:4px}.day-column{min-width:260px;max-width:280px;flex-shrink:0;background:var(--column-bg);border-radius:12px;box-shadow:0 1px 4px var(--card-shadow);overflow:hidden}.day-header{padding:8px;font-size:16px;font-weight:700;text-align:center;background:var(--column-header-bg);border-bottom:1px solid var(--column-border);color:var(--text-secondary);display:flex;align-items:center;justify-content:space-between;gap:4px}.day-date{flex:1}.swap-btn{background:none;border:1px solid var(--swap-border);border-radius:6px;cursor:pointer;font-size:12px;color:var(--text-muted);padding:4px 8px;transition:all .2s;line-height:1}.swap-btn:hover:not(:disabled){background:var(--swap-hover-bg);color:#fff;border-color:var(--swap-hover-bg)}.swap-btn:disabled{opacity:.2;cursor:default}.day-label{padding:6px 10px;text-align:center;background:var(--bg-secondary);border-bottom:1px solid var(--border);cursor:pointer;min-height:32px;display:flex;align-items:center;justify-content:center}.day-label-text{font-size:13px;font-weight:600;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.day-label-text:not(:empty){cursor:pointer}.day-label-input{width:100%;border:1.5px solid var(--accent);border-radius:6px;padding:3px 8px;font-size:13px;font-weight:600;text-align:center;background:var(--bg-primary);color:var(--text-primary);outline:none}.day-zones{display:flex;flex-direction:column;gap:2px}.drop-zone{padding:8px;min-height:80px;transition:background-color .2s}.drop-zone-over{outline:2px dashed var(--accent-hover);outline-offset:-2px}.zone-label{font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:6px;padding-left:4px}.zone-cards{display:flex;flex-direction:column;gap:6px;min-height:40px}.zone-empty{font-size:12px;color:var(--text-ghost);text-align:center;padding:10px;border:1px dashed var(--zone-empty-border);border-radius:8px}.card{background:var(--card-bg);border-radius:10px;padding:10px 12px;box-shadow:0 1px 3px var(--card-shadow);cursor:grab;transition:box-shadow .2s,transform .15s;border-left:3px solid var(--card-border);-webkit-user-select:none;user-select:none;touch-action:none}.card:hover{box-shadow:0 3px 8px var(--card-shadow-hover);transform:translateY(-1px)}.card:active{cursor:grabbing}.card-overlay{box-shadow:0 8px 24px #00000040;transform:rotate(2deg) scale(1.05);opacity:.95}.card-zone-match{border-left-color:var(--card-match-border);background:var(--card-match-bg)}.card-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}.card-compact{padding:6px 10px}.card-compact-row{display:flex;align-items:center;gap:8px}.card-compact-title{font-size:13px;font-weight:700;color:var(--text-primary);flex:1}.card-compact-duration{font-size:11px;color:var(--text-faint);white-space:nowrap}.card-expand-btn{background:none;border:none;cursor:pointer;font-size:10px;color:var(--text-placeholder);padding:2px 4px;border-radius:4px;transition:all .2s;line-height:1;flex-shrink:0}.card-expand-btn:hover{background:var(--btn-bg);color:var(--text-secondary)}.card-title{font-size:14px;font-weight:700;color:var(--text-primary);margin-bottom:2px}.card-subtitle{font-size:11px;color:var(--text-faint);margin-bottom:4px}.card-meta{font-size:11px;color:var(--text-tertiary);margin-bottom:2px}.card-area{font-size:11px;color:var(--text-muted);margin-bottom:3px}.card-note{font-size:11px;color:var(--text-secondary);margin-bottom:3px;line-height:1.3}.card-tags{font-size:10px;color:var(--text-placeholder)}.candidate-pool{background:var(--pool-bg);border-top:2px solid var(--pool-border);padding:16px 20px;position:sticky;bottom:0;z-index:50}.candidate-pool-over{background:var(--pool-hover)}.pool-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.pool-icon{font-size:20px}.pool-title{font-size:16px;font-weight:700;color:var(--text-secondary)}.pool-count{font-size:12px;color:var(--text-faint);background:var(--btn-bg);padding:2px 8px;border-radius:10px}.pool-cards{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px;min-height:60px;max-height:220px;align-items:flex-start}.pool-cards::-webkit-scrollbar{height:6px}.pool-cards::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:3px}.pool-cards .card{min-width:200px;max-width:220px;flex-shrink:0;max-height:200px;overflow:hidden;position:relative}.pool-cards .card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:24px;background:linear-gradient(transparent,var(--bg-primary));pointer-events:none}.pool-empty{font-size:13px;color:var(--text-placeholder);padding:16px;text-align:center;width:100%}.card-header-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.card-edit-btn{background:none;border:none;cursor:pointer;font-size:14px;padding:2px 4px;border-radius:4px;transition:all .2s;line-height:1}.card-edit-btn:hover{background:var(--btn-bg)}.card-delete-btn:hover{background:#ff000026}.card-comments{margin-top:6px;padding-top:6px;border-top:1px dashed var(--comment-border)}.card-comment{font-size:11px;color:var(--text-secondary);line-height:1.4;margin-bottom:3px;display:flex;align-items:flex-start;gap:4px}.comment-text{flex:1}.comment-actions{display:none;gap:2px;flex-shrink:0}.card-comment:hover .comment-actions{display:flex}.comment-action-btn{background:none;border:none;cursor:pointer;font-size:11px;padding:0 2px;opacity:.6;transition:opacity .2s}.comment-action-btn:hover{opacity:1}.comment-edit-row{display:flex;gap:4px;width:100%}.comment-edit-input{flex:1;border:1px solid var(--accent);border-radius:4px;padding:2px 6px;font-size:11px;background:var(--bg-primary);color:var(--text-primary);outline:none}.comment-save-btn,.comment-cancel-btn{background:none;border:1px solid var(--border);border-radius:4px;cursor:pointer;font-size:11px;padding:1px 6px;color:var(--text-secondary)}.comment-save-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.comment-cancel-btn:hover{background:var(--bg-tertiary)}.card-compact-comments{font-size:11px;color:var(--text-faint);white-space:nowrap}.card-comment-input{display:flex;gap:4px;margin-top:6px}.card-comment-input input{flex:1;font-size:11px;padding:4px 8px;border:1px solid var(--input-border);border-radius:6px;outline:none;background:var(--input-bg);color:var(--text-primary)}.card-comment-input input:focus{border-color:var(--input-focus);background:var(--input-focus-bg)}.card-comment-input button{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:4px 8px;font-size:11px;cursor:pointer;transition:background .2s}.card-comment-input button:disabled{background:var(--input-border);cursor:default}.card-comment-input button:hover:not(:disabled){background:var(--accent-hover)}.btn-add-card{margin-left:auto;background:var(--btn-bg);color:var(--text-secondary);padding:6px 14px;border-radius:8px;font-size:13px;font-weight:600;border:1px dashed var(--btn-border);cursor:pointer;transition:all .2s}.btn-add-card:hover{background:#0000001a;border-color:var(--text-muted)}.btn-ai-generate{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:6px 14px;border-radius:8px;font-size:13px;font-weight:600;border:none;cursor:pointer;transition:all .2s}.btn-ai-generate:hover{transform:translateY(-1px);box-shadow:0 3px 10px #667eea66}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--modal-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-card{background:var(--modal-bg);border-radius:16px;box-shadow:0 12px 40px var(--modal-shadow);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;animation:modalSlideIn .2s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{padding:20px 24px 0}.modal-header h2{font-size:20px;font-weight:700;color:var(--text-primary);margin:0}.modal-body{padding:16px 24px;display:flex;flex-direction:column;gap:14px}.modal-field{display:flex;flex-direction:column;gap:4px}.modal-label{font-size:13px;font-weight:600;color:var(--text-secondary)}.modal-field input,.modal-field select,.modal-field textarea{font-size:14px;padding:8px 12px;border:1px solid var(--input-border);border-radius:8px;outline:none;background:var(--input-bg);color:var(--text-primary);font-family:inherit;transition:border-color .2s}.modal-field input:focus,.modal-field select:focus,.modal-field textarea:focus{border-color:var(--input-focus);background:var(--input-focus-bg)}.modal-field textarea{resize:vertical;min-height:60px}.modal-actions{display:flex;gap:10px;padding:16px 24px 20px;justify-content:flex-end}.modal-btn-save{background:var(--accent);color:#fff;padding:10px 20px;font-size:14px;font-weight:600;border-radius:8px}.modal-btn-save:hover{background:var(--accent-hover)}.modal-btn-cancel{background:var(--modal-btn-cancel-bg);color:var(--text-secondary);padding:10px 20px;font-size:14px;font-weight:600;border-radius:8px}.modal-btn-cancel:hover{background:var(--modal-btn-cancel-hover)}@media(max-width:768px){.header{padding:12px 16px}.trip-name{font-size:18px}.days-container{padding:12px;gap:12px}.day-column{min-width:240px}.candidate-pool{padding:12px}.pool-cards .card{min-width:180px}}@media(max-width:480px){.header{flex-direction:column;gap:8px}.header-left{flex-direction:column;align-items:flex-start;gap:4px;width:100%}.header-title-row{display:flex;align-items:center;gap:8px}.header-icon{font-size:22px}.trip-name{font-size:16px}.header-date-row{display:flex;align-items:center;justify-content:space-between;width:100%}.date-range{font-size:12px}.header-actions{gap:4px}.header-actions .btn{padding:4px 8px;font-size:12px}.header-actions .theme-toggle{font-size:16px;padding:2px}.candidate-pool{padding:10px 12px}.pool-cards{max-height:300px;overflow-y:auto;flex-wrap:nowrap}.pool-cards .card{min-width:160px;max-width:180px;max-height:240px;overflow:hidden;position:relative;font-size:12px}.pool-cards .card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:24px;background:linear-gradient(transparent,var(--bg-primary));pointer-events:none}.pool-header{margin-bottom:8px}.pool-title{font-size:14px}.day-column{min-width:220px;max-width:260px}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.nickname-modal{background:var(--bg-primary);border-radius:16px;padding:32px;max-width:400px;width:100%;text-align:center;box-shadow:0 12px 40px #0000004d}.nickname-modal h2{margin:0 0 20px;font-size:22px;color:var(--text-primary)}.nickname-input{width:100%;padding:12px 16px;font-size:16px;border:2px solid var(--border);border-radius:10px;background:var(--bg-secondary);color:var(--text-primary);text-align:center;outline:none;box-sizing:border-box}.nickname-input:focus{border-color:var(--accent)}.nickname-input::placeholder{color:var(--text-muted)}.nickname-hint{font-size:13px;color:var(--text-secondary);margin:10px 0 20px}.nickname-btn{background:linear-gradient(135deg,var(--accent),var(--accent-hover));color:#fff;border:none;border-radius:10px;padding:12px 32px;font-size:16px;font-weight:700;cursor:pointer;transition:transform .2s,box-shadow .2s}.nickname-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.ai-modal{background:linear-gradient(135deg,#f0ecff,#e8e0ff);border:2px solid #9b7eea;border-radius:16px;padding:28px;max-width:500px;width:100%;box-shadow:0 20px 60px #667eea66;position:relative;z-index:2001}[data-theme=dark] .ai-modal{background:linear-gradient(135deg,#2d2250,#1e1540);border-color:#7c5cbf}.ai-modal h2{margin:0 0 8px;font-size:22px;color:var(--text-primary)}.ai-modal-desc{font-size:14px;color:var(--text-secondary);margin:0 0 16px}.ai-count-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}.ai-count-label{font-size:15px;font-weight:600;color:var(--text-primary)}.ai-count-options{display:flex;gap:4px}.ai-count-btn{width:36px;height:36px;border-radius:50%;border:2px solid #b8a4e8;background:#fff;color:#5b3e9e;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s}[data-theme=dark] .ai-count-btn{background:#ffffff14;border-color:#7c5cbf;color:#c9b8f0}.ai-count-btn.active{background:#7c5cbf;color:#fff;border-color:#7c5cbf}.ai-count-btn:hover:not(.active):not(:disabled){background:#e8e0ff}[data-theme=dark] .ai-count-btn:hover:not(.active):not(:disabled){background:#7c5cbf4d}.ai-prompt-input{width:100%;padding:12px 14px;font-size:14px;border:2px solid #b8a4e8;border-radius:10px;background:#fff;color:var(--text-primary);resize:vertical;min-height:70px;outline:none;box-sizing:border-box;font-family:inherit}[data-theme=dark] .ai-prompt-input{background:#ffffff14;border-color:#7c5cbf}.ai-prompt-input:focus{border-color:#7c5cbf;box-shadow:0 0 0 3px #7c5cbf33}.ai-suggestions{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.ai-suggestion-chip{background:#fff;border:1.5px solid #b8a4e8;border-radius:16px;padding:5px 14px;font-size:12px;color:#5b3e9e;cursor:pointer;transition:all .2s;font-weight:500}[data-theme=dark] .ai-suggestion-chip{background:#ffffff1a;border-color:#7c5cbf;color:#c9b8f0}.ai-suggestion-chip:hover{background:#7c5cbf;color:#fff;border-color:#7c5cbf}.ai-suggestion-chip:disabled{opacity:.5;cursor:default}.ai-error{color:#e74c3c;font-size:13px;margin:8px 0}.ai-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.ai-btn-cancel{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border)}.ai-btn-generate{background:linear-gradient(135deg,var(--accent),var(--accent-hover));color:#fff;font-weight:700}.ai-btn-generate:disabled{opacity:.5;cursor:default}
