:root{--bg: #f5f5f5;--bg-card: #ffffff;--bg-modal: #ffffff;--bg-nav: #ffffff;--border: #e0e0e0;--text: #1a1a1a;--text-muted: #666666;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-light: #eff6ff;--danger: #dc2626;--danger-light: #fef2f2;--success: #16a34a;--success-light: #f0fdf4;--warning: #d97706;--warning-light: #fffbeb;--priority-high: #dc2626;--priority-med: #d97706;--priority-low: #16a34a;--shadow: 0 1px 3px rgba(0,0,0,.1);--shadow-modal: 0 20px 60px rgba(0,0,0,.15);--radius: 10px;--radius-sm: 6px;--nav-height: 64px}@media (prefers-color-scheme: dark){:root{--bg: #111111;--bg-card: #1e1e1e;--bg-modal: #1e1e1e;--bg-nav: #1a1a1a;--border: #333333;--text: #f0f0f0;--text-muted: #999999;--accent: #3b82f6;--accent-hover: #2563eb;--accent-light: #1e3a5f;--danger: #ef4444;--danger-light: #3b1111;--success: #22c55e;--success-light: #0f2e1a;--warning: #f59e0b;--warning-light: #2e1f07;--shadow: 0 1px 3px rgba(0,0,0,.4);--shadow-modal: 0 20px 60px rgba(0,0,0,.5)}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}#root{min-height:100vh;padding-bottom:var(--nav-height)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--nav-height);background:var(--bg-nav);border-top:1px solid var(--border);display:flex;z-index:100;box-shadow:0 -1px 8px #0000000f}.nav-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:11px;font-weight:500;padding:8px 4px;transition:color .15s;-webkit-tap-highlight-color:transparent}.nav-tab svg{width:22px;height:22px}.nav-tab.active{color:var(--accent)}.page{max-width:680px;margin:0 auto;padding:16px 16px 8px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.page-title{font-size:22px;font-weight:700}.add-btn{background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);padding:8px 16px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.add-btn:hover{background:var(--accent-hover)}.filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.filter-chip{background:var(--bg-card);border:1px solid var(--border);border-radius:20px;padding:4px 12px;font-size:13px;cursor:pointer;transition:all .15s;color:var(--text-muted);white-space:nowrap}.filter-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.card-project{border-left:3px solid var(--accent)}.card-place{border-left:3px solid var(--success)}.card-event{border-left:3px solid var(--warning)}.filter-chip-sub{font-size:12px;padding:3px 10px}.card-list{display:flex;flex-direction:column;gap:10px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.card-title{font-size:16px;font-weight:600;flex:1}.card-actions{display:flex;gap:6px;flex-shrink:0}.icon-btn{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;cursor:pointer;font-size:12px;color:var(--text-muted);transition:all .15s}.icon-btn:hover{background:var(--accent-light);color:var(--accent);border-color:var(--accent)}.icon-btn.delete:hover{background:var(--danger-light);color:var(--danger);border-color:var(--danger)}.card-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.badge{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:12px;text-transform:uppercase;letter-spacing:.03em}.badge-priority-high{background:var(--danger-light);color:var(--priority-high)}.badge-priority-med{background:var(--warning-light);color:var(--priority-med)}.badge-priority-low{background:var(--success-light);color:var(--priority-low)}.badge-status-todo{background:var(--bg);color:var(--text-muted);border:1px solid var(--border)}.badge-status-in-progress{background:var(--warning-light);color:var(--warning)}.badge-status-done{background:var(--success-light);color:var(--success)}.badge-status-want{background:var(--accent-light);color:var(--accent)}.badge-status-visited{background:var(--success-light);color:var(--success)}.badge-ticket-need{background:var(--danger-light);color:var(--danger)}.badge-ticket-bought{background:var(--success-light);color:var(--success)}.badge-ticket-free,.badge-past,.badge-type{background:var(--bg);color:var(--text-muted);border:1px solid var(--border)}.card-notes{font-size:13px;color:var(--text-muted);margin-top:6px;line-height:1.4}.card-cost{font-size:13px;color:var(--text-muted);margin-top:4px}.card-date{font-size:13px;font-weight:500;margin-top:6px;color:var(--text)}.card-location{font-size:13px;color:var(--text-muted);margin-top:4px}.empty{text-align:center;padding:48px 16px;color:var(--text-muted)}.empty-icon{font-size:40px;margin-bottom:12px}.empty p{font-size:15px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:200;display:flex;align-items:flex-end}@media (min-width: 480px){.modal-overlay{align-items:center;justify-content:center}}.modal{background:var(--bg-modal);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-height:90vh;overflow-y:auto;padding:20px 20px 32px;box-shadow:var(--shadow-modal);animation:slide-up .2s ease}@media (min-width: 480px){.modal{border-radius:var(--radius);max-width:480px;max-height:85vh}}@keyframes slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-title{font-size:18px;font-weight:700}.modal-close{background:none;border:none;font-size:22px;cursor:pointer;color:var(--text-muted);line-height:1;padding:2px}.form-group{margin-bottom:14px}.form-label{display:block;font-size:13px;font-weight:600;color:var(--text-muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em}.form-input,.form-select,.form-textarea{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 12px;font-size:15px;color:var(--text);font-family:inherit;transition:border-color .15s}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--accent)}.form-textarea{min-height:80px;resize:vertical}.form-row{display:flex;gap:10px}.form-row .form-group{flex:1}.ai-row{display:flex;gap:8px;align-items:flex-start;margin-bottom:14px}.ai-btn{background:none;border:1px solid var(--accent);color:var(--accent);border-radius:var(--radius-sm);padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s;flex-shrink:0}.ai-btn:hover:not(:disabled){background:var(--accent-light)}.ai-btn:disabled{opacity:.5;cursor:default}.ai-suggestion{flex:1;font-size:13px;color:var(--text-muted);background:var(--accent-light);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:8px 10px;line-height:1.4}.ai-error{flex:1;font-size:13px;color:var(--danger);background:var(--danger-light);border:1px solid var(--danger);border-radius:var(--radius-sm);padding:8px 10px}.modal-footer{display:flex;gap:10px;margin-top:20px}.btn-primary{flex:1;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);padding:11px;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 20px;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s}.btn-secondary:hover{background:var(--border)}.drag-handle{cursor:grab;color:var(--text-muted);font-size:16px;padding:0 6px 0 0;-webkit-user-select:none;user-select:none;flex-shrink:0;opacity:.4}.drag-handle:hover{opacity:.8}.card-dragging{opacity:.4}.card-drag-over{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.card-image{width:calc(100% + 32px);max-height:200px;object-fit:cover;border-radius:var(--radius-sm) var(--radius-sm) 0 0;margin:-14px -16px 12px;display:block}.photo-upload{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.photo-preview{width:72px;height:72px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border)}.photo-label{display:inline-flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;color:var(--text);transition:all .15s}.photo-label:hover{border-color:var(--accent);color:var(--accent)}.photo-remove{background:none;border:1px solid var(--danger);color:var(--danger);border-radius:var(--radius-sm);padding:6px 12px;font-size:12px;cursor:pointer}.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.calendar-nav-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 14px;cursor:pointer;font-size:18px;color:var(--text);line-height:1}.calendar-nav-btn:hover{border-color:var(--accent);color:var(--accent)}.calendar-month-label{font-size:18px;font-weight:700}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:12px}.calendar-dow{text-align:center;font-size:11px;font-weight:600;color:var(--text-muted);padding:4px 0;text-transform:uppercase}.calendar-cell{min-height:52px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px;cursor:pointer;transition:border-color .15s}.calendar-cell:hover{border-color:var(--accent)}.calendar-cell.empty{background:transparent;border-color:transparent;cursor:default}.calendar-cell.today .cal-day-num{background:var(--accent);color:#fff;border-radius:50%}.calendar-cell.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.cal-day-num{font-size:12px;font-weight:600;margin-bottom:3px;width:22px;height:22px;display:flex;align-items:center;justify-content:center}.cal-dots{display:flex;flex-wrap:wrap;gap:2px}.cal-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.cal-more{font-size:9px;color:var(--text-muted);line-height:1.6}.cal-detail{background:var(--bg-card);border:1px solid var(--accent);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}.cal-detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-weight:700;font-size:15px}.cal-detail-close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-muted);line-height:1}.cal-item{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border);font-size:14px}.cal-item:last-child{border-bottom:none}.cal-item-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.cal-type-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;font-weight:600;white-space:nowrap}.cal-legend{display:flex;gap:16px;flex-wrap:wrap;padding:8px 0}.cal-legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}.type-selector{display:flex;gap:8px;flex-wrap:wrap}.type-btn{display:flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;color:var(--text-muted);transition:all .15s}.type-btn:hover{border-color:var(--accent);color:var(--accent)}.type-btn.active{font-weight:700}
