:root{color:#191f28;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;background:#f5f6f8;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Apple SD Gothic Neo,Noto Sans KR,system-ui,sans-serif}*{box-sizing:border-box}html{background:#f5f6f8}body{overscroll-behavior-y:none;min-width:320px;min-height:100svh;margin:0}button,input,textarea{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.35}input,textarea{color:#191f28;background:#f2f4f6;border:0;border-radius:18px;outline:none;width:100%;padding:15px 16px;font-size:16px}textarea{resize:vertical;min-height:96px}a{color:inherit}#root{min-height:100svh}.app-shell{--bg:#f5f6f8;--surface:#fff;--surface-soft:#f9fafb;--text:#191f28;--muted:#6b7684;--muted-strong:#4e5968;--line:#e5e8eb;--line-strong:#d1d6db;--primary:#3182f6;--primary-strong:#1b64da;--primary-soft:#edf6ff;--success:#00a881;--success-soft:#e6f8f3;--danger:#e5484d;--danger-soft:#fff1f2;--warning:#f59f00;background:var(--bg);min-height:100svh;color:var(--text)}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f5f6f8f0;justify-content:space-between;align-items:flex-start;gap:20px;padding:18px clamp(18px,4vw,36px) 14px;display:flex}.trip-title-group{flex:1;gap:8px;min-width:0;display:grid}.trip-title-input,.trip-subtitle-input{background:0 0;border:0;border-radius:0;width:100%;padding:0}.trip-title-input{max-width:760px;color:var(--text);letter-spacing:0;font-size:clamp(26px,3.2vw,36px);font-weight:900;line-height:1.16}.trip-title-text{max-width:760px;color:var(--text);letter-spacing:0;margin:0;font-size:clamp(26px,3.2vw,36px);font-weight:900;line-height:1.16}.trip-subtitle-input{max-width:760px;color:var(--muted);font-size:15px;line-height:1.45}.trip-subtitle-text{max-width:760px;color:var(--muted);margin:0;font-size:15px;line-height:1.45}.metadata-editor{flex-wrap:wrap;gap:8px;max-width:760px;display:flex}.metadata-editor label{min-width:160px;color:var(--muted);gap:6px;font-size:12px;font-weight:900;display:grid}.trip-summary-strip{flex-wrap:wrap;gap:6px;padding-top:2px;display:flex}.trip-summary-strip span{border:1px solid var(--line);background:var(--surface);min-height:28px;color:var(--muted-strong);border-radius:999px;align-items:center;gap:4px;padding:4px 9px;font-size:12px;font-weight:800;display:inline-flex}.trip-summary-strip strong{color:var(--text);font-weight:900}.sync-cluster{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;padding-top:8px;display:flex}.sync-pill{border:1px solid var(--line);background:var(--surface);min-width:72px;color:var(--muted-strong);text-align:center;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800}.sync-pill.saving,.sync-pill.loading{color:#8a5a00;background:#fff8e1;border-color:#ffe08a}.sync-pill.saved{color:#007f5f;background:var(--success-soft);border-color:#9be8d1}.sync-pill.error{color:#b42318;background:var(--danger-soft);border-color:#ffc9cc}.icon-button,.row-actions a,.row-actions button,.map-link-row button,.place-schedule-row button{border:1px solid var(--line-strong);background:var(--surface);min-width:38px;min-height:38px;color:var(--text);border-radius:8px;justify-content:center;align-items:center;gap:6px;font-weight:800;text-decoration:none;transition:border-color .12s,background .12s,transform .12s;display:inline-flex}.icon-button:hover,.row-actions a:hover,.row-actions button:hover,.map-link-row button:hover,.place-schedule-row button:hover{border-color:var(--primary);background:var(--primary-soft)}.icon-button.active{border-color:var(--primary);background:var(--primary);color:#fff}.icon-button:active,.row-actions a:active,.row-actions button:active,.map-link-row button:active,.place-schedule-row button:active,.wide-command:active,.primary-command:active{transform:translateY(1px)}.icon-button.danger,.danger-link{color:var(--danger)}.conflict-banner{background:#fff8e1;border:1px solid #f5c451;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin:12px clamp(18px,4vw,36px) 0;padding:12px;display:flex}.conflict-banner div{gap:4px;min-width:0;display:grid}.conflict-banner strong{color:var(--text);font-size:14px}.conflict-banner span{color:var(--muted-strong);font-size:13px}.conflict-banner button{white-space:nowrap;min-height:38px}.tabbar{z-index:19;padding:9px clamp(18px, 4vw, 36px) max(9px, env(safe-area-inset-bottom));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f5f6f8f0;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 30px #191f2814}.tabbar button{min-height:42px;color:var(--muted);background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:7px;font-weight:900;transition:background .12s,color .12s;display:inline-flex}.tabbar button:hover{color:var(--text);background:#eef1f4}.tabbar button.active{background:var(--text);color:#fff}.workspace{grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:20px;max-width:1500px;margin:0 auto;padding:22px clamp(18px,4vw,36px) 112px;display:grid}.sidebar{align-self:start;gap:14px;display:grid;position:sticky;top:18px}.date-range,.tool-surface,.list-surface,.map-surface{background:var(--surface);border:1px solid var(--line);border-radius:8px}.date-range,.tool-surface{box-shadow:0 1px 2px #191f280a}.date-range{gap:10px;padding:14px;display:grid}.date-range label{color:var(--muted);gap:6px;font-size:12px;font-weight:900;display:grid}.date-range input,.metadata-editor input,.inline-fields input,.stacked-form input,.stacked-form textarea,.stacked-form select,.search-form input,.map-link-row input,.saved-place textarea,.place-schedule-row select,.comment-form textarea,.timeline-title-row input,.timeline-body textarea,.check-title-input,.note-row input,.note-row textarea,.expense-row input,.expense-row select,.expense-row textarea,.tool-surface select{border:1px solid var(--line-strong);background:var(--surface-soft);width:100%;min-height:46px;color:var(--text);border-radius:8px;outline:none;padding:12px 13px;transition:border-color .12s,background .12s,box-shadow .12s}.date-range input:hover,.metadata-editor input:hover,.inline-fields input:hover,.stacked-form input:hover,.stacked-form textarea:hover,.stacked-form select:hover,.search-form input:hover,.map-link-row input:hover,.saved-place textarea:hover,.place-schedule-row select:hover,.comment-form textarea:hover,.timeline-title-row input:hover,.timeline-body textarea:hover,.check-title-input:hover,.note-row input:hover,.note-row textarea:hover,.expense-row input:hover,.expense-row select:hover,.expense-row textarea:hover,.tool-surface select:hover{background:#fff;border-color:#b8c0cc}.date-range input:focus,.metadata-editor input:focus,.inline-fields input:focus,.stacked-form input:focus,.stacked-form textarea:focus,.stacked-form select:focus,.search-form input:focus,.map-link-row input:focus,.saved-place textarea:focus,.place-schedule-row select:focus,.comment-form textarea:focus,.timeline-title-row input:focus,.timeline-body textarea:focus,.check-title-input:focus,.note-row input:focus,.note-row textarea:focus,.expense-row input:focus,.expense-row select:focus,.expense-row textarea:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px #3182f624}.day-list{gap:8px;display:grid}.day-list button{text-align:left;background:var(--surface);border:1px solid var(--line);min-height:62px;color:var(--text);border-radius:8px;gap:4px;padding:13px;display:grid}.day-list button.selected{border-color:var(--primary);background:var(--primary-soft)}.day-list small,.section-heading p,.saved-place small,.place-result small,.route-row small,.expense-row small{color:var(--muted)}.wide-command,.primary-command{background:var(--primary);color:#fff;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:46px;font-weight:900;text-decoration:none;transition:background .12s,transform .12s;display:inline-flex}.wide-command:hover,.primary-command:hover{background:var(--primary-strong)}.content-panel{min-width:0}.root-landing{align-content:center;gap:24px;max-width:680px;min-height:100svh;margin:0 auto;padding:48px 20px;display:grid}.root-landing h1{color:var(--text);letter-spacing:0;margin:0 0 10px;font-size:34px;line-height:1.15}.root-landing p{color:var(--muted-strong);margin:0;font-size:16px;line-height:1.6}.root-actions{flex-wrap:wrap;gap:10px;display:flex}.panel-grid{grid-template-columns:minmax(320px,420px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.single-panel{max-width:960px}.tool-surface,.list-surface{gap:14px;padding:17px;display:grid}.list-surface.compact{align-self:stretch}.section-heading{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;display:flex}.section-heading h2{color:var(--text);margin:0;font-size:21px;font-weight:900;line-height:1.25}.section-heading p{margin:4px 0 0;font-size:13px;font-weight:700}.inline-fields,.search-form,.map-link-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.inline-fields{grid-template-columns:minmax(0,1fr) minmax(140px,180px)}.stacked-form{gap:10px;display:grid}.segmented{background:#eef1f4;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:3px;display:grid}.segmented button{min-height:36px;color:var(--muted-strong);background:0 0;border-radius:7px;font-weight:900}.segmented button.active{background:var(--surface);color:var(--primary-strong);box-shadow:0 1px 2px #191f2814}.timeline-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.timeline-item{border-bottom:1px solid var(--line);grid-template-columns:34px minmax(0,1fr);gap:10px;padding:14px 0;display:grid}.timeline-item:first-child{padding-top:0}.timeline-item:last-child{border-bottom:0;padding-bottom:0}.route-index{background:var(--primary);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:30px;height:30px;font-weight:900;display:inline-flex}.timeline-body{gap:8px;min-width:0;display:grid}.timeline-title-row{grid-template-columns:minmax(0,1fr) 120px;gap:8px;display:grid}.timeline-body textarea,.note-row textarea{resize:vertical;min-height:72px}.subtle-link{color:var(--success);font-size:13px;font-weight:800;text-decoration:none}.subtle-link:hover{text-decoration:underline}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row-actions button,.row-actions a{min-height:34px;padding:0 10px}.danger-link{background:0 0;font-weight:900}.map-panel{grid-template-columns:minmax(0,1fr) minmax(260px,360px)}.itinerary-panel{grid-template-columns:minmax(0,1fr) minmax(320px,420px)}.itinerary-main-stack,.itinerary-place-search{gap:14px;min-width:0;display:grid}.itinerary-panel .map-surface{min-height:430px}.itinerary-tools{align-self:start;position:sticky;top:18px}.compact-heading{padding-top:4px}.compact-heading h3{color:var(--text);margin:0;font-size:16px;font-weight:900}.map-surface{min-height:560px;position:relative;overflow:hidden}.kakao-map-canvas,.fallback-map-layer{position:absolute;inset:0}.kakao-map-canvas{background-color:#eef6ff;background-image:linear-gradient(90deg,#3182f617 1px,#0000 1px),linear-gradient(0deg,#3182f617 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:36px 36px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box}.fallback-map-layer{z-index:2}.real-map-pin{background:var(--primary);color:#fff;border-radius:999px;width:34px;height:34px;font-weight:900;position:absolute;transform:translate(-50%,-50%);box-shadow:0 10px 22px #191f2838}.fallback-map-pin.selected,.real-map-pin:focus-visible{outline:3px solid #f59f006b}.map-place-callout{border:1px solid var(--line-strong);background:var(--surface);min-width:150px;color:var(--text);text-align:left;border-radius:8px;gap:2px;padding:10px 12px;text-decoration:none;display:grid;position:absolute;transform:translate(-50%,calc(-100% - 28px));box-shadow:0 16px 28px #191f2829}.map-place-callout span{color:var(--primary);font-size:12px;font-weight:900}.current-location-pin{background:var(--primary);border:3px solid #fff;border-radius:999px;width:18px;height:18px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 6px #3182f62e}.map-status,.empty-map{z-index:3;border:1px solid var(--line-strong);max-width:min(420px,100% - 28px);color:var(--muted-strong);background:#fffffff0;border-radius:8px;padding:9px 11px;font-size:13px;font-weight:800;position:absolute;bottom:14px;left:14px}.map-status.error{color:#b42318;background:var(--danger-soft)}.empty-map{top:14px;bottom:auto}.map-controls{z-index:4;gap:8px;display:grid;position:absolute;top:14px;right:14px}.route-row{border-bottom:1px solid var(--line);color:inherit;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:4px 8px;padding:12px 0;text-decoration:none;display:grid}.route-row:last-child{border-bottom:0}.route-row:hover strong{color:var(--primary)}.route-row span{background:var(--primary-soft);width:28px;height:28px;color:var(--primary-strong);border-radius:999px;grid-row:span 2;justify-content:center;align-items:center;font-weight:900;display:inline-flex}.search-results,.checklist,.notes-list{gap:0;display:grid}.place-result,.saved-place,.expense-row,.note-row{border-bottom:1px solid var(--line);gap:10px;padding:14px 0;display:grid}.place-result:first-child,.saved-place:first-child,.expense-row:first-child,.note-row:first-child{padding-top:0}.place-result:last-child,.saved-place:last-child,.expense-row:last-child,.note-row:last-child{border-bottom:0;padding-bottom:0}.saved-place p{color:var(--muted-strong);margin:0}.saved-place{gap:12px}.saved-place-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.saved-place-header a{color:var(--primary);font-size:13px;font-weight:900;text-decoration:none}.saved-place textarea,.comment-form textarea{resize:vertical;min-height:72px}.place-schedule-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.place-comments{border-top:1px solid var(--line);gap:9px;padding-top:10px;display:grid}.place-comments-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.place-comments-heading h3{margin:0;font-size:15px}.place-comments-heading span{color:var(--muted);font-size:12px;font-weight:900}.place-comment{background:var(--surface-soft);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;padding:10px;display:grid}.place-comment strong{color:var(--muted);margin-bottom:4px;font-size:12px;display:block}.comment-form{gap:8px;display:grid}.form-message{color:var(--muted-strong);margin:0;font-weight:800}.empty-state{border:1px dashed var(--line-strong);background:var(--surface-soft);color:var(--muted);border-radius:8px;margin:0;padding:16px;font-weight:800}.check-row{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:54px;padding:12px 0;display:grid}.check-row:last-child{border-bottom:0}.check-row>input[type=checkbox]{width:20px;height:20px;accent-color:var(--primary)}.check-row.done .check-title-input{color:var(--muted);text-decoration:line-through}.participant-pills,.split-list{flex-wrap:wrap;gap:8px;display:flex}.participant-pills span,.split-list label{min-height:34px;color:var(--muted-strong);background:#eef1f4;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-weight:900;display:inline-flex}.split-list input{width:16px;height:16px;accent-color:var(--primary)}.settlement-box{background:var(--success-soft);border:1px solid #9be8d1;border-radius:8px;padding:14px}.settlement-box h3{color:#007f5f;margin:0 0 8px}.settlement-box p{margin:6px 0}.expense-row{grid-template-columns:minmax(0,1fr) auto;align-items:start}.expense-edit-grid{gap:8px;display:grid}.compact-split{gap:6px}.admin-shell{min-height:100vh}.admin-topbar h1{margin:0;font-size:32px;line-height:1.05}.admin-topbar p{color:#64748b;margin:6px 0 0}.admin-workspace{grid-template-columns:minmax(280px,420px) minmax(0,1fr);gap:18px;padding:18px clamp(16px,3vw,32px) 40px;display:grid}.admin-create-panel{align-self:start;position:sticky;top:18px}.admin-trip-list{gap:12px;display:grid}.admin-trip-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;gap:12px;padding:16px;display:grid}.admin-trip-card.archived{opacity:.68}.admin-trip-main{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.admin-trip-main strong{margin-bottom:6px;font-size:18px;display:block}.admin-trip-main small{color:#64748b;align-items:center;gap:5px;display:flex}.admin-trip-card textarea{min-height:84px}.primary-command.secondary{background:#0f172a;justify-self:start}button:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #3182f638}@media (width<=980px){.workspace,.admin-workspace,.panel-grid,.map-panel,.itinerary-panel{grid-template-columns:1fr}.sidebar{grid-template-columns:1fr;position:static}.admin-create-panel,.itinerary-tools{position:static}.day-list{grid-auto-columns:minmax(132px,1fr);grid-auto-flow:column;padding-bottom:4px;overflow-x:auto}.map-surface{min-height:460px}}@media (width<=720px){.topbar{gap:12px;padding:16px 16px 12px;display:grid}.sync-cluster{justify-content:flex-start;padding-top:0}.trip-title-input{font-size:26px}.tabbar{padding:8px 10px max(8px, env(safe-area-inset-bottom));grid-template-columns:repeat(5,minmax(0,1fr))}.tabbar button{gap:3px;min-width:0;font-size:12px;display:grid}.workspace{padding:14px 12px 104px}.tool-surface,.list-surface{padding:16px}.inline-fields,.timeline-title-row,.search-form,.map-link-row,.place-schedule-row{grid-template-columns:1fr}.map-surface{min-height:420px}}@media print{.tabbar,.sidebar,.sync-cluster,.trip-summary-strip,.tool-surface form,.row-actions,.map-controls{display:none!important}.workspace,.panel-grid{padding:0;display:block}.topbar,.content-panel,.tool-surface,.list-surface,.map-surface{box-shadow:none;border:0;position:static}.map-surface{min-height:320px;margin-bottom:16px}}
