@font-face{font-family:Trip Sans;src:url("/fonts/trip-sans.woff2") format("woff2");font-style:normal;font-weight:400 800;font-display:swap;unicode-range:U+20-024F,U+2000-206F,U+3000-30FF,U+3400-9FFF,U+FF00-FFEF}
:root{color-scheme:light;--ink:#1c3645;--muted:#4e6977;--navy:#173e54;--navy-deep:#133548;--teal:#136574;--teal-bg:#e1f0f0;--sky:#eef5f6;--sheet:#fcfefe;--white:#fff;--line:#d3e2e6;--line-deep:#a7c3ca;--amber:#805018;--amber-bg:#f9eddb;--rose:#8c3d54;--rose-bg:#f8edf0;--radius:15px;--type:"Trip Sans",-apple-system,BlinkMacSystemFont,"PingFang TC","Microsoft JhengHei",sans-serif;--ease:cubic-bezier(.16,1,.3,1);--width:1216px}
*{box-sizing:border-box}
body{margin:0;background:var(--sky);color:var(--ink);font:400 15px/1.6 var(--type);min-width:280px;caret-color:var(--teal);scrollbar-color:var(--line-deep) var(--sky)}
::selection{color:var(--navy-deep);background:#b8e4e8}
:focus-visible{outline:2px solid #0c7182;outline-offset:3px}
[hidden]{display:none!important}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button:disabled{cursor:default;opacity:.62}
a{color:var(--teal);text-underline-offset:.2em}
a:hover{color:var(--navy-deep)}
h1,h2,h3,p{margin:0}
h1,h2,h3{text-wrap:balance;line-height:1.26}
small{font-size:.83em}
strong{font-weight:740}
.icon{display:inline-block;flex:none;vertical-align:middle}
.shell{width:min(calc(100% - 72px),var(--width));margin-inline:auto}
.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip:focus{position:fixed;z-index:10;top:10px;left:12px;background:var(--white);padding:10px;border-radius:8px}
.top{background:var(--sheet);border-bottom:1px solid var(--line)}
.top-inner{min-height:70px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.brand{display:flex;align-items:center;gap:10px;color:var(--navy-deep);white-space:nowrap;text-decoration:none}
.brand>span{display:flex;align-items:center;gap:10px}
.brand strong{font-size:19px;font-weight:800;letter-spacing:-.03em}
.brand img{display:block}
.brand-sep{width:1px;height:17px;background:var(--line-deep)}
.brand-app{font-size:14px;font-weight:650}
.top-actions{display:flex;align-items:center;gap:9px}
.top-state{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:12px;white-space:nowrap;margin-inline-end:7px}
.top-state .icon{width:15px;height:15px}
.btn{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:8px;padding:7px 13px;line-height:1.3;font-size:13px;font-weight:690;background:transparent;text-decoration:none;white-space:nowrap}
.btn .icon{width:17px;height:17px}
.btn-primary{background:var(--teal);color:white}
.btn-primary:hover{background:var(--navy-deep);color:white}
.btn-outline{background:var(--sheet);color:var(--ink);border-color:var(--line-deep)}
.btn-outline:hover,.btn-subtle:hover{background:var(--teal-bg);color:var(--navy-deep)}
.btn-subtle{color:var(--teal)}
.btn-line{background:#17683d;color:white}
.btn-line:hover{background:#104e2c;color:white}
.hero{position:relative;display:flex;align-items:center;overflow:hidden;min-height:220px;margin-top:28px;background:var(--navy);color:var(--white);border-radius:18px;isolation:isolate}
.hero-copy{position:relative;z-index:1;padding:29px 45px 34px}
.hero h1{font-size:clamp(37px,4.4vw,62px);letter-spacing:-.035em;font-weight:800;line-height:1.19}
.trip-date{font-size:clamp(16px,2vw,23px);font-weight:690;font-variant-numeric:tabular-nums;letter-spacing:.015em;color:#dcf1f3;margin-top:12px}
.trip-date>span:not(.sr-only){color:#8bc5cd}
.hero-places{font-size:14px;color:#c2e1e6;margin-top:5px}
.hero-places span{color:#90bcc6;margin-inline:3px}
.hero-plate{position:absolute;inset:0 0 0 42%;overflow:hidden}
.contours{position:absolute;inset:0;width:100%;height:100%}
.plate-label{position:absolute;right:38px;bottom:28px;display:grid;gap:2px;text-align:right;color:#e2f4f3;font-size:24px;font-weight:750;letter-spacing:.09em;line-height:1.25}
.plate-label small{font-size:10px;letter-spacing:.15em;color:#b3dde2}
.date-section{margin-top:19px}
.dates{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding:7px;background:var(--sheet);border:1px solid var(--line);border-radius:var(--radius)}
.date-btn{background:none;border:1px solid transparent;border-radius:9px;text-align:left;padding:7px 14px 9px;min-height:70px;color:var(--navy-deep);min-width:0}
.date-btn:hover{background:var(--sky)}
.date-btn[aria-pressed=true]{color:white;background:var(--teal);border-color:var(--teal)}
.date-main{display:flex;align-items:baseline;gap:7px;line-height:1.2}
.date-num{font-size:22px;font-weight:760;letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.date-week{font-size:12px;font-weight:620;color:var(--muted)}
.date-label{display:block;font-size:12px;margin-top:4px;color:var(--muted);white-space:nowrap}
.date-btn[aria-pressed=true] :is(.date-week,.date-label){color:#e6f5f6}
.room-notice{display:flex;align-items:center;gap:9px;margin-top:14px;background:var(--teal-bg);padding:9px 13px;border-radius:9px;color:var(--navy-deep);font-size:13px}
.room-notice .icon{width:17px;height:17px}
.room-notice .btn{margin-inline-start:auto}
.layout{display:grid;grid-template-columns:minmax(0,1.95fr) minmax(296px,1fr);gap:24px;align-items:start;margin-top:25px}
.agenda{min-width:0;scroll-margin-top:12px}
.agenda-tools{display:flex;align-items:center;justify-content:space-between;gap:12px}
.view-switch{display:flex;gap:3px;background:#e1edef;border-radius:10px;padding:4px}
.view-switch .btn{min-height:34px;padding:5px 12px;color:var(--muted);border-radius:7px}
.view-switch .btn[aria-pressed=true]{background:var(--sheet);color:var(--navy-deep);border-color:#bed4d9}
.export-btn{padding-inline:9px}
.day-heading{margin:22px 0 13px;display:flex;align-items:end;justify-content:space-between;gap:8px 16px;flex-wrap:wrap}
.day-kicker{display:flex;align-items:center;gap:8px;margin-bottom:5px;font-size:12px;font-weight:680;color:var(--muted)}
.day-kicker span:first-child{border-radius:5px;background:var(--teal-bg);color:var(--teal);padding:2px 6px;font-variant-numeric:tabular-nums}
.day-heading h2{font-size:clamp(22px,2.8vw,34px);font-weight:800;letter-spacing:-.026em}
.day-meta{color:var(--muted);font-size:12px;padding-bottom:3px}
.events{list-style:none;margin:0;padding:0;background:var(--sheet);border:1px solid var(--line);border-radius:var(--radius)}
.event:not(:last-child){border-bottom:1px solid var(--line)}
.event{min-width:0;scroll-margin-top:18px}
.event-grid{display:grid;grid-template-columns:86px 36px minmax(0,1fr) auto;gap:12px;align-items:start;padding:16px}
.event-time{display:grid;align-content:start;min-height:36px;padding-top:2px;font-variant-numeric:tabular-nums}
.event-time strong{font-size:16px;line-height:1.35;white-space:nowrap}
.event-time small{color:var(--muted);font-size:11px;line-height:1.45;white-space:nowrap}
.event-symbol,.panel-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:var(--teal-bg);color:var(--teal)}
.event-symbol[data-type=flight]{color:#244e78;background:#e6effa}
.event-symbol[data-type=food]{color:#805018;background:var(--amber-bg)}
.event-symbol[data-type=stay]{color:#64517f;background:#f0eaf6}
.event-symbol[data-type=transport]{color:#265773;background:#e6f0f4}
.event-copy h3{font-size:17px;font-weight:760;overflow-wrap:anywhere}
.event-copy p{color:var(--muted);font-size:13px;margin-top:4px;display:flex;gap:4px;align-items:baseline}
.event-copy p .icon{width:13px;height:13px;align-self:center}
.event-titles{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.tag{display:inline-block;padding:1px 6px;border-radius:5px;font-size:11px;font-weight:680;white-space:nowrap}
.tag-tentative{background:var(--amber-bg);color:var(--amber)}
.tag-option{background:var(--teal-bg);color:var(--teal)}
.event-details{padding:0 16px 13px 124px}
.event-details summary{display:inline-flex;align-items:center;gap:4px;list-style:none;color:var(--teal);font-size:12px;font-weight:690;cursor:pointer;padding:5px 0;min-height:32px}
.event-details summary::-webkit-details-marker,.resource summary::-webkit-details-marker{display:none}
.event-details summary .icon{width:15px;height:15px;transition:transform .2s var(--ease)}
.event-details[open] summary .icon{transform:rotate(180deg)}
.event-detail-body{border-top:1px solid var(--line);padding-top:9px;margin-top:3px;font-size:13px;overflow-wrap:anywhere}
.event-detail-body p{max-width:70ch}
.event-links{display:flex;align-items:center;gap:5px 13px;flex-wrap:wrap;margin-top:5px}
.text-link{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:680}
.text-link .icon{width:13px;height:13px}
.event-actions{display:flex;gap:4px;align-items:center}
.chip{display:inline-flex;align-items:center;justify-content:center;gap:4px;background:transparent;border:1px solid var(--line);border-radius:7px;padding:4px 6px;min-height:34px;min-width:37px;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.chip .icon{width:16px;height:16px}
.chip:hover,.chip[aria-pressed=true]{background:var(--teal-bg);border-color:var(--line-deep);color:var(--teal)}
.chip[data-reaction=heart][aria-pressed=true]{color:var(--rose);background:var(--rose-bg)}
.chip[aria-pressed=true] .icon{fill:currentColor;fill-opacity:.16}
.comment-list{margin-top:11px}
.comment{border-top:1px solid var(--line);padding:8px 0;overflow-wrap:anywhere}
.comment-head{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}
.comment-text{white-space:pre-wrap;margin-top:4px}
.form-actions{display:flex;gap:8px;flex-wrap:wrap}
.inline-comment{display:grid;gap:7px;margin-top:9px}
.field{display:grid;gap:4px;font-size:13px;font-weight:680}
input,textarea,select{width:100%;min-width:0;border:1px solid var(--line-deep);background:var(--white);border-radius:8px;padding:9px 10px;font-size:16px}
input::placeholder,textarea::placeholder{color:var(--muted)}
textarea{resize:vertical;min-height:68px}
.empty{padding:18px;background:var(--sheet);border-radius:var(--radius);border:1px solid var(--line);color:var(--muted)}
.sidebar{min-width:0;display:grid;gap:16px}
.panel{background:var(--sheet);border:1px solid var(--line);border-radius:var(--radius);padding:17px 18px}
.panel-heading{display:flex;align-items:center;gap:9px}
.panel-heading h2{font-size:19px;letter-spacing:-.016em}
.panel-icon{width:33px;height:33px}
.panel-icon .icon{width:18px;height:18px}
.panel-count{margin-inline-start:auto;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.poll{padding:14px 0;border-bottom:1px solid var(--line)}
.poll h3{font-size:15px;font-weight:780}
.poll-desc{font-size:12px;color:var(--muted);margin-top:4px}
.poll-options{margin:9px 0 0;padding:0;list-style:none;display:grid;gap:5px}
.poll-option{position:relative;isolation:isolate;overflow:hidden;width:100%;min-height:37px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--sheet);border:1px solid var(--line);border-radius:7px;padding:5px 9px;text-align:left;font-size:13px;font-weight:690}
.poll-option::before{content:"";position:absolute;inset:0 auto 0 0;width:var(--result,0%);background:#e4f1f1;z-index:-1}
.poll-option:hover{border-color:var(--line-deep)}
.poll-option[aria-pressed=true]{border-color:var(--teal);color:var(--teal)}
.poll-option .icon{width:14px;height:14px}
.poll-option .option-text{min-width:0;overflow-wrap:anywhere}
.poll-option small{font-size:11px;color:var(--muted);font-weight:450;margin-inline-start:6px}
.poll-votes{flex:none;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.panel-end{padding-top:12px;display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:12px}
.panel-end .btn{padding-inline:7px}
.resource{border-bottom:1px solid var(--line);padding:9px 0}
.resource:last-child{border-bottom:0;padding-bottom:2px}
.resource summary{display:flex;align-items:center;justify-content:space-between;gap:8px;list-style:none;cursor:pointer;font-size:13px;font-weight:690;padding:3px 0}
.resource summary .icon{width:16px;height:16px;color:var(--teal)}
.resource[open] summary .icon{transform:rotate(180deg)}
.resource p{font-size:12px;color:var(--muted);margin-top:5px}
.calendar-panel{margin-top:14px;padding:14px;background:var(--sheet);border:1px solid var(--line);border-radius:var(--radius)}
.month-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}
.month-head h2{font-size:17px;font-variant-numeric:tabular-nums}
.month-head .btn{padding:5px;min-width:36px;min-height:36px}
.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center;font-variant-numeric:tabular-nums}
.month-week{font-size:11px;color:var(--muted);padding:4px 0}
.month-day{min-height:40px;display:grid;place-content:center;gap:1px;justify-items:center;color:var(--muted);font-size:13px;border:1px solid transparent;border-radius:7px;background:transparent}
button.month-day{color:var(--teal);font-weight:750;background:var(--teal-bg)}
button.month-day:hover{border-color:var(--teal)}
button.month-day[aria-pressed=true]{background:var(--teal);color:white}
.month-day .dot{width:4px;height:4px;background:currentColor;border-radius:50%}
.footer{border-top:1px solid var(--line-deep);display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 18px;margin:30px 0 0;padding:17px 0 22px;color:var(--muted);font-size:12px}
.dialog{width:min(100% - 26px,470px);max-height:calc(100% - 32px);border:1px solid var(--line-deep);border-radius:16px;background:var(--sheet);color:var(--ink);padding:20px;box-shadow:0 18px 48px rgb(0 0 0 / .17)}
.dialog::backdrop{background:#102e45a0}
.dialog-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:8px}
.dialog-head h2{font-size:23px;margin-top:5px}
.dialog-head .btn{min-height:34px;padding:5px}
.dialog-intro{font-size:14px;color:var(--muted);margin:0 0 11px}
.dialog-body{display:grid;gap:9px}
.dialog-body .btn{min-height:44px}
.dialog-body .form-actions{justify-content:flex-end}
.dialog-error{color:var(--rose);font-size:13px}
.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 26px);padding:11px 16px;background:var(--navy-deep);color:white;border-radius:10px;font-size:13px;z-index:5;box-shadow:0 7px 22px rgb(0 0 0 / .16)}
@media(max-width:1050px){.event-grid{grid-template-columns:65px 34px minmax(0,1fr);gap:9px}.event-actions{grid-column:3}.event-details{padding-left:99px}.event-symbol{width:34px;height:34px}.date-btn{padding-inline:9px}}
@media(max-width:800px){.shell{width:calc(100% - 34px)}.layout{grid-template-columns:minmax(0,1fr);gap:18px}.sidebar{grid-template-columns:1fr 1fr;align-items:start}.event-grid{grid-template-columns:72px 34px minmax(0,1fr) auto}.event-actions{grid-column:auto}.event-details{padding-left:106px}.hero{min-height:181px}.hero-copy{padding-inline:27px}.hero-plate{inset-inline-start:37%}.hero h1{font-size:clamp(34px,7vw,53px)}}
@media(max-width:560px){.shell{width:calc(100% - 28px)}.top-inner{min-height:58px;gap:6px}.brand{gap:6px}.brand>span{gap:6px}.brand img{width:29px;height:29px}.brand strong{font-size:16px}.brand-app,.top-state{display:none}.brand-sep{display:none}.top-actions{gap:5px}.top-actions .btn{min-height:36px;padding:5px 7px;font-size:12px;gap:4px}.top-actions .btn .icon{width:14px;height:14px}.hero{margin-top:15px;min-height:157px;border-radius:14px}.hero-copy{padding:17px 16px 20px}.hero h1{font-size:clamp(31px,8.6vw,45px)}.hero-places{font-size:12px}.trip-date{font-size:16px;margin-top:8px}.hero-plate{inset-inline-start:36%;opacity:.7}.plate-label{display:none}.date-section{margin-top:13px}.dates{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;padding:5px}.date-btn{min-height:60px;padding:4px 5px 5px;text-align:center}.date-main{justify-content:center;gap:4px}.date-num{font-size:17px}.date-week{font-size:10px}.date-label{font-size:11px;margin-top:2px}.layout{margin-top:14px}.agenda-tools{gap:4px}.view-switch .btn{min-height:36px;padding-inline:7px}.btn{font-size:12px}.btn .icon{width:15px;height:15px}.export-btn{padding-inline:4px;gap:5px}.day-heading{margin:15px 0 10px}.day-heading h2{font-size:23px}.day-meta{font-size:11px}.event-grid{grid-template-columns:57px 30px minmax(0,1fr);gap:8px;padding:12px 10px 6px}.event-time strong{font-size:13px}.event-time small{font-size:10px}.event-symbol{width:30px;height:30px}.event-symbol .icon{width:17px;height:17px}.event-copy h3{font-size:15px}.event-copy p{font-size:12px}.event-actions{grid-column:3;gap:5px}.chip{min-height:36px;min-width:36px}.event-details{padding:0 10px 9px 105px}.event-details summary{min-height:34px}.event-details[open]{padding-left:12px}.sidebar{grid-template-columns:1fr}.panel{padding:14px}.room-notice{padding-inline:8px}}
@media(max-width:340px){.date-main{gap:3px}.date-num{font-size:16px}.event-grid{grid-template-columns:52px 27px minmax(0,1fr);gap:6px}.event-details{padding-left:91px}.hero-places{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
.plain-link{padding:0;background:none;border:0;color:var(--teal);text-decoration:underline;text-underline-offset:.2em}
.discussion-hint,.login-status{color:var(--muted);font-size:13px}
.login-status{padding:8px 10px;background:var(--sky);border-radius:7px}
.login-status .icon{width:16px;height:16px;margin-inline-end:3px}
.poll{scroll-margin-top:12px}
