
:root{font-family:'Malgun Gothic','Apple SD Gothic Neo',sans-serif;color:#183c35;background:#f4f5ef;font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}header,footer{max-width:1180px;margin:auto;padding:30px 40px;display:flex;align-items:center;justify-content:space-between}.brand{font-size:24px;font-weight:900;letter-spacing:-1px}.brand span{display:inline-block;font-size:12px;font-weight:400;letter-spacing:0;margin-left:16px;color:#5c7068}.badge{border:1px solid #cbd7cc;border-radius:30px;font-size:10px;letter-spacing:2px;padding:9px 14px}.layout{max-width:1180px;margin:65px auto 100px;padding:0 40px;display:grid;grid-template-columns:1.2fr 1fr;gap:85px;align-items:center}.eyebrow,.card-label{font-size:11px;letter-spacing:2px;font-weight:700;color:#577c62}h1{font-size:54px;line-height:1.28;letter-spacing:-2.5px;margin:24px 0}h2{font-size:27px;letter-spacing:-1px;margin:22px 0 14px}.description,.card>p{font-size:15px;line-height:1.9;color:#60716a}.card{background:white;padding:42px;border-radius:24px;border:1px solid #e0e7dc;box-shadow:0 20px 60px #183c3508}.kakao{margin-top:32px;display:flex;justify-content:center;align-items:center;gap:10px;background:#fee500;color:#191919;min-height:52px;width:100%;border:0;border-radius:9px;font-weight:700;font-size:15px;cursor:pointer}.kakao svg{width:21px;height:21px}.kakao:disabled{opacity:.65;cursor:not-allowed}.kakao:hover:not(:disabled){background:#f4db00}.card .privacy{font-size:11px;line-height:1.9;color:#66776e;margin-top:24px}.card .setup{font-size:12px;color:#6c6543}.notice{background:#eef5ed;padding:12px;border-radius:8px}.card .error{color:#9b332c;background:#fff1ed;font-size:13px}.journey{margin-top:52px;padding:24px 0;display:flex;align-items:center;gap:16px;font-size:12px;color:#497158}.route{flex:1;border-top:2px dashed #b6c9af;position:relative}.route:before,.route:after{content:'';position:absolute;width:8px;height:8px;border-radius:50%;background:#75986a;top:-5px}.route:after{right:0}.caption{font-size:11px;color:#738276}footer{border-top:1px solid #dce3d7;font-size:11px;letter-spacing:1px;color:#758274}.account{max-width:680px;margin:45px auto 80px;padding:0 24px}.account h1{font-size:38px}.member{padding:24px 0;margin:15px 0;border-top:1px solid #e0e7dc;border-bottom:1px solid #e0e7dc;display:flex;justify-content:space-between;align-items:center}.member strong{font-size:28px}.secondary{width:100%;padding:15px;border:1px solid #cbd7cc;border-radius:9px;background:white;color:#183c35;cursor:pointer;font:inherit}a:focus-visible,button:focus-visible{outline:3px solid #487c63;outline-offset:4px}@media(max-width:800px){header,footer{padding:24px}.brand span{display:none}.layout{grid-template-columns:1fr;gap:35px;margin:30px auto 50px;padding:0 24px}.intro h1{font-size:40px}.journey,.caption{display:none}.card{padding:30px}.badge{font-size:9px}footer span{letter-spacing:0}}
.planner{max-width:1180px;margin:35px auto 70px;padding:0 40px}
.planner>h1{font-size:40px;margin-bottom:12px}
.planner-grid{display:grid;grid-template-columns:380px 1fr;gap:40px;align-items:start;margin-top:32px}
.planner .card{padding:28px}.planner h2{margin-top:0}
.planner label{display:block;font-size:13px;font-weight:700;margin:18px 0 8px}
.planner input,.planner select,.planner textarea{width:100%;border:1px solid #b9c9bf;border-radius:8px;padding:12px;background:#fff;color:#183c35;font:inherit;font-size:14px}
.planner textarea{resize:vertical}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.primary{display:block;text-align:center;width:100%;margin:24px 0 16px;padding:15px;background:#235645;color:white;border:0;border-radius:9px;font:inherit;cursor:pointer}
.primary:disabled{opacity:.5;cursor:not-allowed}.field-help{font-size:12px;line-height:1.7;color:#60716a;margin-top:8px}
.empty-result{padding-top:50px!important;padding-bottom:50px!important}.empty-result h2{margin-top:20px}
.day-card{margin:20px 0}.day-card h3{letter-spacing:2px;font-size:13px;margin:0 0 20px}
.activity{display:grid;grid-template-columns:75px 1fr;gap:15px;border-top:1px solid #e2e8e1;padding:18px 0}
.activity h4{margin:0 0 8px}.activity p{margin:0;color:#60716a;font-size:14px;line-height:1.8}
.time{font-size:12px;font-weight:700;color:#52775c}.plan-notes{font-size:14px;line-height:1.9}.results{min-width:0;overflow-wrap:anywhere}.results .error{color:#9b332c}
@media(max-width:850px){.planner{padding:0 24px}.planner-grid{grid-template-columns:1fr;gap:24px}.planner>h1{font-size:30px}.activity{grid-template-columns:60px 1fr}}

nav{display:flex;gap:22px;font-size:13px;flex-wrap:wrap}nav a:hover,.text-link:hover{text-decoration:underline}
.edit-item{margin-top:14px}.edit-item summary{font-size:12px;font-weight:400}.edit-item[open]{padding:14px;background:#f7f9f3;border-radius:8px}
.workspace{max-width:1180px;margin:35px auto 70px;padding:0 40px}.workspace.narrow{max-width:760px}
.workspace h1{font-size:38px;overflow-wrap:anywhere}.workspace h2{font-size:23px}.page-top{display:flex;justify-content:space-between;align-items:center;gap:24px}
.compact{width:auto;min-width:140px;margin:0;display:inline-block}.trip-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:30px}
.trip-tile{padding:28px}.trip-tile h2{overflow-wrap:anywhere}.tile-top,.section-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.destination{font-size:13px;color:#60716a}.text-link{display:inline-block;margin-top:16px;font-size:14px;font-weight:700}
.notice-link{display:block;margin:24px 0}.facts{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 32px}.facts span{padding:10px 16px;background:#e7eee3;border-radius:30px;font-size:13px}
.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:28px;align-items:start}.detail-grid .card{padding:26px}.trip-sidebar{display:grid;gap:20px;min-width:0}.detail-grid section{min-width:0}
.workspace label{display:block;font-size:13px;font-weight:700;margin:18px 0 8px}.workspace input,.workspace select,.workspace textarea{width:100%;padding:12px;border:1px solid #b9c9bf;border-radius:8px;background:#fff;color:#183c35;font:inherit;font-size:14px}.workspace textarea{resize:vertical}
.workspace input:focus-visible,.workspace textarea:focus-visible,.workspace select:focus-visible{outline:2px solid #487c63;outline-offset:2px}.workspace .secondary{margin-top:16px;display:block;text-align:center}
.row-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:16px}.small-button{background:#f4f6f0;border:1px solid #dce5d8;padding:8px 12px;border-radius:7px;color:#305b45;font:inherit;font-size:12px;cursor:pointer}.small-button.checked{background:#dceedd}.small-button.danger{color:#9b332c;background:#fff8f6}.preserve{white-space:pre-wrap;overflow-wrap:anywhere}.member-list{padding:0;list-style:none;font-size:13px}.member-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #edf0e8}.review-card,.reminder-card{margin-top:24px}summary{cursor:pointer;font-size:17px;font-weight:700}.check-label{font-weight:400!important;line-height:1.7}.check-label input{width:auto!important;margin-right:8px}.save-plan{margin-top:24px}.error{color:#9b332c}.workspace .field-help{font-size:12px;line-height:1.8}.workspace .badge{letter-spacing:0}.section-heading{margin-top:28px}
@media(max-width:950px){.trip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:1fr}.trip-sidebar{grid-template-columns:1fr 1fr}}
@media(max-width:600px){header{flex-wrap:wrap;gap:20px}nav{gap:18px}.workspace{padding:0 20px;margin-top:20px}.workspace h1{font-size:29px}.page-top{align-items:flex-start;flex-direction:column;gap:12px}.trip-grid,.trip-sidebar{grid-template-columns:1fr}.workspace .card{padding:23px}.section-heading{align-items:flex-start;flex-direction:column;gap:0}.form-pair{gap:10px}.facts{gap:8px}.facts span{padding:8px 12px}.workspace.narrow .card h1{font-size:27px}}
/* v2 기본 스타일(React 화면을 불러오지 못했을 때) */
.verify-badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:10px;background:#eef0e9}.verify-badge.ok{background:#e2efc9}.verify-badge.warn{background:#fdeedd}
.trip-map{width:100%;height:320px;background:#e9eee0}.place-results{list-style:none;padding:0}.place-results button{display:block;width:100%;text-align:left;padding:8px}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.stat{border:1px solid #ddd;padding:14px;display:flex;flex-direction:column}.data-table{width:100%;border-collapse:collapse}.data-table td,.data-table th{padding:6px;border-bottom:1px solid #eee;text-align:left}.table-wrap{overflow-x:auto}.bar-chart{width:100%;height:160px}.bar-ok{fill:#7f9d45}.bar-fail{fill:#e3a77c}.bar-label{font-size:7px}
.map-pin{min-width:24px;height:24px;border-radius:12px;color:#fff;background:#2f6b4f;display:flex;align-items:center;justify-content:center;font-size:12px;border:2px solid #fff}

/* First-paint gate lives in the base CSS so it works even if React CSS fails. */
.ui-loading-screen{display:none}
html.ui-loading body>header,html.ui-loading body>main,html.ui-loading body>footer,html.ui-loading #tripnote-app{display:none!important}
html.ui-loading .ui-loading-screen{display:flex;min-height:100svh;align-items:center;justify-content:center;flex-direction:column;gap:18px;background:#f8f9f4;color:#283b30}
.ui-loading-screen strong{font:800 32px system-ui,sans-serif;letter-spacing:-1.5px}
.ui-loading-screen span{font-size:13px;color:#77816f}

/* Compact travel utilities: detail on demand, comfortable touch targets. */
.trip-page details.card>summary {font-size:1.05rem;font-weight:700;cursor:pointer;min-height:32px}
.trip-page details.card>summary small {font-size:.8rem;font-weight:400;color:#64756b;margin-left:8px}
.trip-page details.card[open]>summary {margin-bottom:20px}
.assignment,.candidate-schedule {display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.assignment select {min-width:95px;width:auto;margin:0}
.packing-list li {flex-wrap:wrap}
.share-people {border:1px solid #dfe6df;border-radius:12px;padding:12px;display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}
.share-people label {display:flex;align-items:center;gap:6px;margin:0}
.share-people input {width:auto;margin:0}
.settlement-box {background:#f3f7f3;border-radius:12px;padding:16px;margin:16px 0}
.settlement-box ul,.candidate-list {list-style:none;padding:0}
.settlement-box li {padding:6px 0}
.expense-list li {flex-wrap:wrap}
.expense-list li>details {flex-basis:100%}
.candidate-list li {padding:16px 0;border-bottom:1px solid #e1e6df}
.candidate-schedule select,.candidate-schedule input {width:auto;flex:1;min-width:80px}
.export-menu {position:relative}
.export-menu summary {cursor:pointer;padding:10px 12px;font-size:.85rem}
.export-links {position:absolute;right:0;top:100%;z-index:50;background:white;border:1px solid #dfe6df;border-radius:14px;padding:16px;min-width:210px;box-shadow:0 12px 36px #203b3220;display:grid;gap:14px}
.export-links small {font-size:.75rem;color:#66756d}
@media(max-width:600px){.budget-grid{grid-template-columns:1fr 1fr}.budget-grid>div:last-child{grid-column:1/-1}.assignment{width:100%}.assignment select{flex:1}.trip-quick-nav{overflow-x:auto;white-space:nowrap}}
@media print{details.card>summary{list-style:none}.export-menu,.trip-quick-nav{display:none}}
