:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:#193556;background:#f5f9ff;--muted:#60758f;--line:#dbe8f7;--accent:#2563eb;--primary:#2563eb}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}button,a,input,select,textarea,summary{outline-offset:4px;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.4;cursor:default}a{color:var(--primary);text-decoration:none}h1,h2,h3,p{margin:0}h1{font-size:30px;letter-spacing:-1px;line-height:1.2;font-weight:750}h2{font-size:20px;letter-spacing:-.5px;line-height:1.3}h3{font-size:15px;line-height:1.5}p{line-height:1.65}small{font-size:11px}.icon{width:22px;height:22px;flex-shrink:0;display:inline-block;vertical-align:middle}.app-shell,.auth-shell{max-width:960px;margin:auto;min-height:100vh;background:#fff}.app-header{height:78px;display:flex;justify-content:space-between;align-items:center;padding:0 28px;border-bottom:1px solid var(--line);background:#fff}.brand{display:flex;align-items:center;gap:10px;color:#193556;font-size:21px;font-weight:750;letter-spacing:-.7px}.brand img{width:35px;height:35px;border-radius:12px}.brand-light{font-weight:450}.header-actions{display:flex;gap:10px;align-items:center}.avatar{display:flex;align-items:center;justify-content:center;border-radius:50%;background:#eaf3ff;color:#214d92;width:38px;height:38px;font-size:12px;font-weight:700;flex-shrink:0}.language{display:flex;align-items:center;gap:5px;padding:8px;background:none;color:#60758f;font-size:12px;min-height:42px}.language .icon{width:18px}main{padding:28px 28px 115px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:960px;padding:8px 10px max(9px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);background:#fff;border-top:1px solid #dbe8f7;z-index:5;box-shadow:0 -6px 20px #19355604}.bottom-nav button{position:relative;display:flex;align-items:center;flex-direction:column;gap:5px;padding:7px 1px;background:transparent;color:#60758f;font-size:10px;min-height:54px}.bottom-nav .icon{width:24px;height:24px}.bottom-nav button.active{color:var(--accent);font-weight:700}.bottom-nav button.active:before{content:'';position:absolute;top:-8px;width:24px;height:3px;background:var(--accent);border-radius:0 0 3px 3px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.eyebrow{font-size:9px;letter-spacing:1.9px;font-weight:750;color:#60758f;display:block;margin-bottom:9px}.muted{font-size:13px;color:var(--muted);line-height:1.6}.tiny{font-size:10px;line-height:1.6;color:#60758f;margin-top:18px}.center{text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;background:var(--primary);color:#fff;padding:13px 18px;font-size:13px;font-weight:650;min-height:46px}.btn.secondary{background:#f5f9ff;color:#214d92;border:1px solid #dbe8f7}.full{width:100%}.text-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;background:transparent;color:var(--primary);font-size:12px;font-weight:600;padding:10px 0;min-height:40px}.text-btn .icon{width:17px;height:17px}.text-btn.small{font-size:10px;min-height:30px;padding:5px 0}.danger{color:#c26756}.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;border-radius:12px;background:transparent;color:#60758f}.icon-btn.soft{background:#f5f9ff;color:var(--primary)}.welcome{margin-bottom:24px}.welcome .muted{margin-top:9px}.hello-dot{color:var(--accent)}.trip-hero{position:relative;width:100%;height:265px;border-radius:19px;overflow:hidden;text-align:left;background:#b7d6f8;color:#fff;padding:0}.trip-hero>img{width:100%;height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,#19355610 15%,#102e59bb 100%)}.hero-content{position:absolute;bottom:26px;left:24px;right:50px;display:flex;align-items:start;flex-direction:column;gap:11px;font-size:12px}.hero-content>strong{font-size:35px;letter-spacing:-1px;font-weight:650}.pill{display:inline-flex;background:#ffffff26;backdrop-filter:blur(5px);padding:7px 9px;border-radius:5px;font-size:8px;font-weight:700;letter-spacing:1px}.hero-arrow{position:absolute;bottom:25px;right:20px;border:1px solid #ffffff88;border-radius:50%;padding:7px;display:flex}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:27px 0 17px}.section-head .eyebrow{margin-bottom:5px}.trip-list{display:grid;gap:12px}.trip-row{display:flex;align-items:center;gap:15px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px;text-align:left;color:#193556}.trip-row>img{width:90px;height:82px;object-fit:cover;border-radius:10px}.trip-row>span{flex:1;min-width:0}.trip-row strong{display:block;font-size:15px;margin-bottom:6px;overflow-wrap:anywhere}.trip-row small{display:block;color:var(--muted);line-height:1.7}.trip-row>.icon{color:#60758f}.download-banner{display:flex;align-items:center;gap:13px;background:#eaf3ff;border:1px solid #dbe8f7;border-radius:14px;padding:18px;margin-top:25px;color:#214d92}.download-banner>div{flex:1}.download-banner strong{font-size:13px;display:block}.download-banner small{font-size:11px;color:#60758f;display:block;margin-top:5px}.trip-header{margin-top:-12px;margin-bottom:22px}.trip-header h1{margin:15px 0 8px;font-size:29px;overflow-wrap:anywhere}.date-strip{display:flex;gap:10px;overflow-x:auto;padding:3px 0 12px;scrollbar-width:none}.date-strip::-webkit-scrollbar{display:none}.date-chip{min-width:74px;border-radius:14px;display:flex;align-items:center;flex-direction:column;gap:6px;padding:13px 8px;background:#f5f9ff;border:1px solid #dbe8f7;color:#60758f}.date-chip>span{font-size:9px}.date-chip strong{font-size:22px;color:#214d92}.date-chip small{font-size:9px}.date-chip.active{background:var(--primary);border-color:var(--primary);color:#e5f3ff;box-shadow:0 5px 12px #2563eb22}.date-chip.active strong{color:white}.subtle-pill{display:inline-block;padding:7px 10px;border-radius:7px;background:#f5f9ff;color:#60758f;font-size:10px;white-space:nowrap}.add-date{display:flex;align-items:center;justify-content:center;gap:9px;border:1px dashed #b7d6f8;background:#f5f9ff;width:100%;padding:13px 9px;border-radius:12px;color:#214d92;font-size:12px;min-height:48px;margin-bottom:20px}.timeline{display:grid;gap:17px}.event-card{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}.event-top{display:flex;align-items:center;padding:14px 15px;gap:11px}.type-icon{width:39px;height:39px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:#f5f9ff;color:#60758f;flex-shrink:0}.type-icon.flight{background:#eaf3ff;color:#60758f}.type-icon.stay{background:#eff7ff;color:#5681b5}.event-meta{display:flex;flex:1;flex-direction:column;gap:3px}.event-meta small{font-size:9px;color:#60758f}.event-meta strong{font-size:13px;font-weight:600}.event-top .icon-btn{height:35px;min-width:35px}.event-photo{display:block;width:100%;height:200px;position:relative;background:#dbe8f7;padding:0}.event-photo img{width:100%;height:100%;object-fit:cover}.event-photo>span{position:absolute;bottom:10px;right:10px;background:#ffffffdd;padding:7px 9px;font-size:9px;border-radius:7px;display:flex;align-items:center;gap:6px;color:#214d92}.event-photo .icon{width:13px;height:13px}.event-details{padding:15px}.event-details h3{font-size:15px;overflow-wrap:anywhere}.event-details p{font-size:12px;color:#60758f;margin-top:8px;white-space:pre-line;overflow-wrap:anywhere}.map-link{display:inline-flex;gap:5px;align-items:center;font-size:11px;color:#60758f;padding:8px 0;margin-top:3px}.map-link .icon{width:16px;height:16px}.day-controls{display:flex;justify-content:space-between;margin-top:24px;gap:15px}.day-controls .btn{font-size:11px;min-height:42px;padding:10px 13px}.day-controls .icon{width:15px;height:15px}.empty{border:1px dashed #dbe8f7;border-radius:16px;text-align:center;padding:35px 22px;background:#f5f9ff}.empty p{font-size:12px;color:var(--muted);margin:10px 0 15px}.empty.small{padding:28px 20px}.hotel-grid{display:grid;gap:20px}.hotel-card{border-radius:17px;overflow:hidden;border:1px solid var(--line)}.hotel-cover{position:relative;display:block;height:225px;width:100%;padding:0;background:#b7d6f8}.hotel-cover img{width:100%;height:100%;object-fit:cover}.photo-count{position:absolute;bottom:12px;right:12px;background:#f6fbffe6;border-radius:7px;padding:6px 9px;font-size:9px;color:#60758f}.hotel-body{padding:19px}.hotel-body h2{font-size:20px}.hotel-body p{font-size:12px;color:var(--muted);margin:10px 0}.photo-gallery{display:grid;gap:12px;margin-top:17px}.photo-gallery img{width:100%;border-radius:12px}.expense-summary{background:#eaf3ff;border:1px solid #dbe8f7;border-radius:19px;text-align:center;padding:27px 20px}.expense-summary .eyebrow{color:#60758f;margin-bottom:14px}.amount{display:inline-flex;flex-direction:column;gap:5px;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.amount strong{font-size:13px;font-weight:650;color:inherit}.amount small{font-size:10px;color:#60758f;font-weight:400}.amount.grand{text-align:center}.amount.grand strong{font-size:32px;letter-spacing:-1px}.amount.grand small{font-size:14px;color:#60758f}.expense-summary p{font-size:11px;color:#60758f;margin:14px 0 19px}.expense-summary .btn{width:100%;max-width:280px}.rate-note{font-size:9px;color:#60758f;line-height:1.6;padding:12px 5px}.people-expenses{display:grid;gap:14px}.person-expense{border:1px solid var(--line);border-radius:15px;overflow:hidden}.person-expense>.row{padding:16px 15px 13px}.person{display:flex;align-items:center;gap:10px;min-width:0}.person strong{font-size:13px;overflow-wrap:anywhere}.person strong small{font-size:10px;color:#60758f}.status{display:inline-block;background:#eaf3ff;color:#60758f;font-size:9px;border-radius:6px;padding:6px 8px;white-space:nowrap}.status.owes{color:#b68057;background:#fbf0e6}.status.gets{color:#60758f;background:#eaf3ff}.person-numbers{display:grid;grid-template-columns:1fr 1fr;padding:0 16px 16px;gap:15px}.person-numbers label{font-size:10px;font-weight:400;color:#60758f;margin-bottom:8px}.person-numbers .amount{text-align:left}.person-numbers .amount strong{font-size:16px}.person-balance{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#f5f9ff;color:#60758f;font-size:11px}.repayment-detail{padding:0 16px 13px;display:flex;justify-content:space-between;font-size:9px;color:#60758f;gap:10px}.expense-records{display:grid;gap:12px}.expense-row{display:flex;align-items:start;gap:10px;border:1px solid var(--line);border-radius:14px;padding:15px 12px}.expense-info{flex:1;min-width:0}.expense-info h3{font-size:13px;overflow-wrap:anywhere}.expense-info p{font-size:10px;color:#60758f;margin-top:4px}.expense-row>.amount{padding-top:3px}.expense-row>.amount strong{font-size:12px}.expense-row>.type-icon{width:32px;height:32px;border-radius:9px}.expense-row>.type-icon .icon{width:19px}.expense-row details{margin-top:9px;font-size:10px;color:#60758f}.expense-row summary{cursor:pointer;line-height:1.5}.split-line{display:flex;flex-direction:column;align-items:start;gap:4px;margin-top:10px}.split-line .amount{text-align:left}.split-line strong{font-size:11px}.card{border:1px solid var(--line);border-radius:15px;padding:17px;background:#fff}.settlement{display:flex;align-items:start;justify-content:space-between;gap:12px;font-size:12px;padding:13px 0;border-bottom:1px solid var(--line)}.settlement>span:first-child{overflow-wrap:anywhere;min-width:0}.settlement small{display:block;font-size:9px;margin-top:6px;color:#60758f}.member-list{display:grid;gap:13px;margin-top:19px}.member-list .email{font-size:11px;overflow-wrap:anywhere}.member-footer{margin-top:15px;border-top:1px solid var(--line);padding-top:10px}.check-list{display:grid;gap:10px;margin-top:22px}.check-row{display:flex;align-items:center;gap:12px;min-height:48px;padding:12px;border:1px solid var(--line);border-radius:10px;font-size:13px;font-weight:450;background:white}.check-row input{width:18px;height:18px;accent-color:var(--primary);margin:0;flex-shrink:0}.check-row.done span{text-decoration:line-through;color:#60758f}.auth-shell{max-width:520px}.auth-cover{position:relative;height:235px;color:#fff;overflow:hidden}.auth-cover>img{width:100%;height:100%;object-fit:cover;filter:brightness(.65)}.auth-cover>div{position:absolute;left:27px;bottom:25px}.auth-cover .eyebrow{color:#e5f3ff}.auth-cover h1{font-size:35px;font-weight:600}.auth-form{padding:27px}.auth-form>h2{margin-bottom:8px}.form{display:grid;gap:16px;margin-top:20px}label{display:block;font-size:12px;font-weight:550;color:#214d92}input,textarea,select{display:block;width:100%;padding:13px;border:1px solid #dbe8f7;border-radius:10px;font-size:14px;color:#214d92;background:white;margin-top:7px;min-height:45px}textarea{min-height:95px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid input{min-width:0}.error{font-size:12px;color:#c05c4c;line-height:1.5}.error:empty{display:none}.split-person{border:1px solid var(--line);border-radius:10px;padding:0 9px}.split-person .check-row{border:0;padding-left:2px;padding-right:2px}.custom-share{margin:0 0 10px}.split-preview{background:#f5f9ff;color:#60758f;font-size:11px;line-height:1.6;padding:12px;border-radius:9px}.conversion-preview{color:#60758f;font-size:12px;margin-top:-10px}.account-info{background:#f5f9ff;padding:17px;border-radius:12px;margin:18px 0}.account-info p{font-size:12px;color:#60758f;margin-top:6px;overflow-wrap:anywhere}dialog{border:0;border-radius:22px 22px 0 0;padding:14px 23px 28px;color:#193556;width:100%;max-width:520px;max-height:90dvh;margin:auto auto 0;background:#fff;box-shadow:0 -5px 30px #19355622}dialog::backdrop{background:#1935564f;backdrop-filter:blur(3px)}dialog h2{font-size:22px}.sheet-handle{width:35px;height:4px;background:#dbe8f7;border-radius:9px;margin:0 auto 12px}#toast{display:none;position:fixed;bottom:95px;left:50%;transform:translateX(-50%);max-width:90%;width:max-content;background:#193556;color:#fff;font-size:12px;border-radius:12px;padding:13px 17px;z-index:20;line-height:1.6}#toast.visible{display:block}[hidden]{display:none!important}
@media(min-width:700px){.app-shell{box-shadow:0 0 40px #19355610}.app-header{padding:0 40px}main{padding:32px 40px 115px}.welcome h1{font-size:35px}.trip-hero{height:310px}.hero-content>strong{font-size:43px}.trip-list,.hotel-grid,.people-expenses,.member-list{grid-template-columns:1fr 1fr}.timeline{grid-template-columns:1fr 1fr;align-items:start}.date-chip{min-width:100px}.event-photo{height:210px}.bottom-nav{padding-left:100px;padding-right:100px}.bottom-nav button{font-size:11px}.expense-records{grid-template-columns:1fr 1fr}dialog{border-radius:22px;margin:auto;max-height:85dvh;padding:24px}.sheet-handle{display:none}}
@media(max-width:420px){.app-header{height:69px;padding:0 19px}.brand{font-size:18px;gap:8px}.brand img{width:32px;height:32px}.header-actions{gap:5px}.avatar{width:33px;height:33px}.language{font-size:11px;padding:7px}.language .icon{width:16px}main{padding:23px 19px 110px}h1{font-size:29px}.trip-hero{height:238px}.hero-content{left:21px;bottom:23px}.hero-content>strong{font-size:33px}.trip-header h1{font-size:27px}.date-chip{min-width:63px;padding:12px 7px}.date-strip{gap:8px}.date-chip strong{font-size:21px}.event-photo{height:175px}.hotel-cover{height:210px}.amount.grand strong{font-size:29px}.expense-row>.amount strong{font-size:11px}.expense-row>.amount small{font-size:9px}.person-numbers .amount strong{font-size:14px}.auth-form{padding:24px}.form-grid{gap:9px}.form-grid input{padding:11px 8px;font-size:13px}}

.brand{color:#214d92}

/* Blue skies: shared brand surfaces */
.btn:not(.secondary){background:linear-gradient(135deg,#287cf0,#2459d6)}.date-chip.active{background:linear-gradient(160deg,#328ef5,#2459d6)}.expense-summary,.download-banner{background:linear-gradient(135deg,#eff8ff,#e5efff)}.bottom-nav button.active{color:#2459d6}.brand{color:#214d92}.status.gets{background:#eaf3ff;color:#315f99}

.invite-code{font-size:2rem;font-weight:800;letter-spacing:.25em;text-align:center;color:var(--primary)}

.check-entry{display:flex;align-items:center;gap:10px}.check-entry .check-row{flex:1;min-width:0}.check-entry .check-row span{overflow-wrap:anywhere}.member-footer{flex-wrap:wrap}

.check-visibility{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:4px}.attraction-info{margin-top:12px}.attraction-info .text-btn{display:flex;width:fit-content;text-align:left}.check-row.done .check-visibility{text-decoration:none}

.display-editor{border-top:1px solid var(--line);padding-top:15px}.display-editor summary{cursor:pointer;font-weight:650}.display-editor label{margin-top:14px}.display-editor .tiny{margin-top:10px}.editable-description{white-space:pre-line}.trip-hero{background:#2563eb}.hotel-body .attraction-info{margin-bottom:12px}
