/* 家庭生活旅遊 V1.3.10.3 — 固定 App 視覺語言，對照使用者提供的主設計圖。
   限縮在 app-look-13104 / app-look-frame；不改原始功能與 API。 */
html.app-look-13104,html.app-look-frame {
  --look-bg:#11101c;
  --look-card:#262238;
  --look-card-2:#302941;
  --look-border:#403753;
  --look-primary:#a38af8;
  --look-primary-text:#201832;
  --look-muted:#b0a8c4;
  --look-bright:#f8f4ff;
  --look-radius:19px;
  color-scheme:dark;
  -webkit-font-smoothing:antialiased;
}
html.app-look-13104 body,html.app-look-frame body {
  --bg:#11101c!important;
  --card:#262238!important;
  --panel:#262238!important;
  --ink:#f8f4ff!important;
  --muted:#b0a8c4!important;
  --accent:#a38af8!important;
  --line:#403753!important;
  --app-radius:19px!important;
  --app-shadow:0 9px 30px rgba(3,1,12,.20)!important;
  background:#11101c!important;
  color:#f8f4ff!important;
  font-family:system-ui,-apple-system,"Noto Sans TC","Microsoft JhengHei",sans-serif!important;
  font-size:16px!important;
  line-height:1.55;
}
html.app-look-13104,html.app-look-frame {font-size:16px!important;}
html.app-look-13104 body,html.app-look-frame body {accent-color:var(--look-primary);}
/* 固定字型：原有個人字體偏好仍留在資料庫，但新版外觀只用同一套圓潤無襯線字。 */
html.app-look-13104 body *,html.app-look-frame body *{
  font-family:"Noto Sans TC","Noto Sans CJK TC",system-ui,-apple-system,sans-serif!important;
}
html.app-look-13104 :is(.card,.banner,.item),html.app-look-frame :is(.card,.banner,.item) {color:var(--look-bright);}
html.app-look-13104 :is(.card,.gallery-panel,.note-panel,.crop-panel,.pretty-dialog,.ui-panel,.modal),
html.app-look-frame :is(.card,.gallery-panel,.note-panel,.crop-panel,.pretty-dialog,.ui-panel,.modal){
  background:var(--look-card)!important;
  color:var(--look-bright)!important;
  border:1px solid var(--look-border)!important;
  border-radius:22px!important;
  box-shadow:0 8px 26px #04020d28;
}
html.app-look-13104 :is(h1,h2,h3,strong,b),html.app-look-frame :is(h1,h2,h3,strong,b){letter-spacing:-.025em;}
html.app-look-13104 :is(p,small,.muted,.hint),html.app-look-frame :is(p,small,.muted,.hint){overflow-wrap:anywhere;}
html.app-look-13104 :is(input,textarea,select),html.app-look-frame :is(input,textarea,select){
  background:#29243b!important;color:var(--look-bright)!important;
  border:1px solid #4a405e!important;border-radius:15px!important;
  font-size:1rem!important;min-height:46px;
}
html.app-look-13104 :is(input,textarea,select)::placeholder,html.app-look-frame :is(input,textarea,select)::placeholder{color:#9890ad!important;opacity:1;}
html.app-look-13104 :is(input,textarea,select):focus-visible,html.app-look-frame :is(input,textarea,select):focus-visible{outline:2px solid var(--look-primary)!important;outline-offset:2px;}
html.app-look-13104 :is(button,.button),html.app-look-frame :is(button,.button){
  border-radius:15px;font-weight:750;transition:background .17s ease,filter .17s ease,transform .14s ease;
}
html.app-look-13104 button:not(.alt):not(.secondary):not(.danger):not(.shell-nav):not(.look-stat):not(.look-category-chip):not(.look-notify):not(.look-mode-item),
html.app-look-frame button:not(.alt):not(.secondary):not(.danger):not(.shell-nav):not(.look-stat):not(.look-category-chip):not(.look-notify):not(.look-mode-item){
  background:var(--look-primary);color:var(--look-primary-text);
}
html.app-look-13104 :is(button.alt,button.secondary),html.app-look-frame :is(button.alt,button.secondary){
  background:var(--look-card-2)!important;color:var(--look-bright)!important;border:1px solid var(--look-border)!important;
}
html.app-look-13104 :is(.card,.item) a,html.app-look-frame :is(.card,.item) a{color:#d1bbff;}
html.app-look-13104 .pretty-shade,html.app-look-frame .pretty-shade{background:rgba(5,4,14,.8)!important;backdrop-filter:blur(9px);}
html.app-look-13104 .pretty-dialog,html.app-look-frame .pretty-dialog{border-radius:27px!important;}
html.app-look-13104 .pretty-ok,html.app-look-frame .pretty-ok{background:#a38af8!important;color:#1c142e!important;}
html.app-look-13104 .pretty-cancel,html.app-look-frame .pretty-cancel{background:#302941!important;color:#fff!important;}
html.app-look-13104 :is(.gallery-backdrop,.overlay,.note-modal),html.app-look-frame :is(.gallery-backdrop,.overlay,.note-modal){backdrop-filter:blur(8px);}
/* 對照稿：上方品牌資訊（單行橫向，不保留舊版巨型頭像）。 */
html.app-look-13104 :is(#app.wrap,main:has(> .tabs)){max-width:1170px;}
html.app-look-13104 #app.wrap > .app-header,
html.app-look-13104 main > .app-header {
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;gap:10px!important;
  position:relative!important;background:transparent!important;
  border:0!important;border-radius:0!important;box-shadow:none!important;
  padding:8px 0 6px!important;margin:0 0 10px!important;min-height:66px!important;overflow:visible!important;
}
html.app-look-13104 .app-header::after {display:none!important;}
html.app-look-13104 .app-header .family-side{display:block!important;min-width:0!important;gap:0!important;text-align:left!important;}
html.app-look-13104 .app-header .brand-line {
  display:grid!important;grid-template-columns:44px minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;align-items:center!important;
  gap:1px 10px!important;min-width:0!important;text-align:left!important;width:auto!important;
}
html.app-look-13104 .app-header .brand-mark {
  width:44px!important;height:44px!important;aspect-ratio:1!important;
  grid-column:1;grid-row:1/3;flex:none!important;
  display:grid!important;place-items:center!important;
  border-radius:14px!important;
  font-size:1.65rem!important;background:linear-gradient(135deg,#d4a9ef,#966de6)!important;
  border:1px solid #c8a5ff!important;overflow:hidden!important;
}
html.app-look-13104 .app-header .brand-mark :is(img,.header-icon){width:100%!important;height:100%!important;object-fit:cover!important;border-radius:12px!important;}
html.app-look-13104 .app-header .look-eyebrow{display:none!important;}
html.app-look-13104 .app-header .brand-line h1 {
  grid-column:2;grid-row:1;font-size:16px!important;line-height:1.25!important;
  margin:0!important;padding:0!important;font-weight:850!important;min-width:0;
}
html.app-look-13104 .app-header .look-tagline{grid-column:2;grid-row:2;font-size:10px;font-family:inherit;font-weight:500;line-height:1.35;color:var(--look-muted);white-space:normal;overflow-wrap:anywhere;}
html.app-look-13104 .app-header .mode-switch{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;padding:0!important;border:0!important;min-height:0!important;}
html.app-look-13104 .app-header .profile-line{
  background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;
  display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-end!important;
  width:auto!important;max-width:none!important;min-width:0!important;gap:8px!important;margin:0!important;padding:0!important;
}
html.app-look-13104 .app-header .profile-info{display:none!important;}
html.app-look-13104 .app-header .profile-avatar{
  order:2;flex:0 0 42px!important;width:42px!important;height:42px!important;
  border:2px solid var(--look-primary)!important;border-radius:50%!important;
  aspect-ratio:1!important;outline:0!important;display:grid!important;place-items:center!important;
  background:#4c3d75!important;box-shadow:none!important;overflow:hidden!important;font-size:1.5rem!important;
}
html.app-look-13104 .app-header .profile-avatar :is(img,.small-avatar){width:100%!important;height:100%!important;object-fit:cover!important;border-radius:50%!important;}
html.app-look-13104 .app-header .look-notify{display:none!important;}
/* 雙管家膠囊分頁，位置與使用者附圖一致。 */
html.app-look-13104 .look-mode-tabs{
  display:grid;grid-template-columns:1fr 1fr;gap:5px;
  margin:0 0 14px!important;padding:5px;
  border:1px solid #403753;background:#262238;border-radius:17px;
  min-height:52px;box-shadow:0 5px 18px #09051426;
}
html.app-look-13104 .look-mode-item{
  display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;
  padding:8px 7px!important;min-height:40px!important;
  border:0!important;background:transparent!important;
  border-radius:12px!important;color:#c0b7d6!important;
  font-size:13px!important;font-weight:750!important;line-height:1.2!important;white-space:nowrap;cursor:pointer;
}
html.app-look-13104 .look-mode-item.is-active{
  background:#aa92ff!important;color:#251936!important;box-shadow:0 3px 10px #05031323;
}
html.app-look-13104 .look-mode-item:focus-visible{outline:2px solid #d0bcff!important;outline-offset:1px;}
/* 精準參照封面：左側漸層標語 + 右側海天插畫。 */
html.app-look-13104 .look-landing{margin:0 0 13px;min-width:0;}
html.app-look-13104 .look-adventure{
  display:grid;grid-template-columns:minmax(0,58%) minmax(0,42%);
  height:175px;overflow:hidden;border-radius:22px;
  background:linear-gradient(125deg,#7759d5,#af86d2);color:white;
  border:0;box-shadow:0 10px 27px #170d3423;cursor:pointer;
}
html.app-look-13104 .look-adventure:focus-visible{outline:3px solid #d3c1ff;outline-offset:3px;}
html.app-look-13104 .look-adventure-info{padding:20px 12px 16px 16px;min-width:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;}
html.app-look-13104 .look-adventure-eyebrow{font-weight:900;letter-spacing:.16em;font-size:10px;opacity:.84;white-space:nowrap;}
html.app-look-13104 .look-adventure-title{margin:0!important;line-height:1.18;font-size:21px!important;font-weight:880!important;letter-spacing:-.025em;max-width:100%;overflow-wrap:anywhere;}
html.app-look-13104 .look-adventure-sub{font-size:10px;line-height:1.55;opacity:.92;max-width:100%;}
html.app-look-13104 .look-adventure-badge{display:inline-flex;align-items:center;gap:4px;margin-top:3px;padding:6px 10px;border-radius:999px;border:1px solid #ffffff48;background:#ffffff1f;font-size:10px;max-width:100%;}
html.app-look-13104 .look-seascape{position:relative;overflow:hidden;background:linear-gradient(to bottom,#7ac9e7 0%,#7cc7e7 55%,#4dadd4 56%,#4dadd4 100%);}
html.app-look-13104 .look-seascape::before{content:"";position:absolute;inset:42% -40% -18%;background:#398fb6;border-radius:52% 55% 0 0 / 18% 26% 0 0;transform:rotate(-6deg);}
html.app-look-13104 .look-seascape::after{content:"";position:absolute;left:-30%;right:-40%;height:42%;bottom:-22%;border-radius:50% 49% 0 0;background:#f0c48d;transform:rotate(3deg);}
html.app-look-13104 .look-wave{position:absolute;width:30px;height:12px;border-top:3px solid #ffffff5c;border-radius:50%;top:35%;left:15%;transform:rotate(-5deg)}
html.app-look-13104 .look-wave.two{width:24px;top:34%;left:73%;opacity:.55;transform:rotate(5deg)}
html.app-look-13104 .look-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 16px;}
html.app-look-13104 .look-stat{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  padding:11px 5px 10px;min-height:94px;min-width:0;
  background:#272239;border:1px solid #403751;border-radius:18px;
  text-decoration:none;color:#fff;box-shadow:0 6px 15px #05020a1a;cursor:pointer;
}
html.app-look-13104 .look-stat-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:#4a3c70;font-size:19px;}
html.app-look-13104 .look-stat-number{font-size:17px;font-weight:850;line-height:1.1;color:#fff;}
html.app-look-13104 .look-stat-label{font-size:10px;color:#bfb5d2;white-space:nowrap;line-height:1.3;}
/* 景點收藏：標題/新增鈕/搜尋/分類 chips/雙欄封面，對照稿間距。 */
/* V1.3.10.11: 景點收藏操作列與標題分離。修正舊版的 icon-only/42px 和 flex:0 0 auto 衝突。 */
html.app-look-13104 #places > .card{
  display:block!important;min-width:0!important;
  background:transparent!important;border:0!important;box-shadow:none!important;
  padding:0!important;margin:0!important;border-radius:0!important;
}
html.app-look-13104 #places > .card > h2{
  display:block!important;width:100%!important;
  font-size:19px!important;margin:0 0 8px!important;line-height:1.3!important;letter-spacing:-.02em;
}
html.app-look-13104 #places > .card > p{display:none;}
html.app-look-13104 #places .place-create-actions{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
  align-items:stretch!important;justify-content:stretch!important;gap:10px!important;
  position:static!important;float:none!important;clear:both!important;
  width:100%!important;min-width:0!important;max-width:100%!important;
  margin:0 0 14px!important;padding:0!important;
}
html.app-look-13104 #places .place-create-actions > button,
html.app-look-13104 #places .place-create-actions > button.alt,
html.app-look-13104 #places .place-create-actions > #add{
  display:flex!important;flex:1 1 0!important;min-width:0!important;max-width:none!important;
  width:100%!important;min-height:48px!important;height:auto!important;
  align-items:center!important;justify-content:center!important;gap:7px!important;
  position:static!important;float:none!important;overflow:visible!important;
  padding:10px 8px!important;margin:0!important;
  font-size:14px!important;font-weight:750!important;line-height:1.35!important;
  white-space:nowrap!important;border:1px solid #9d86d1!important;
  border-radius:14px!important;box-sizing:border-box!important;
  background:#a68bf4!important;color:#24183c!important;
}
html.app-look-13104 #places .place-create-actions > #add{background:#413451!important;color:#f6f0ff!important;border-color:#625079!important;}
html.app-look-13104 #places .place-create-actions > button span{display:inline!important;flex:0 0 auto!important;white-space:nowrap!important}
html.app-look-13104 #places .place-create-actions > button::before{content:none!important;display:none!important}
@media(max-width:360px){html.app-look-13104 #places .place-create-actions{gap:7px!important}html.app-look-13104 #places .place-create-actions > button{font-size:13px!important;padding:9px 5px!important}}
html.app-look-13104 #places .travel-filter{
  display:flex;flex-direction:column;gap:9px;
  margin:10px 0 14px!important;min-width:0;
}
html.app-look-13104 #places .travel-filter label {display:none;}
html.app-look-13104 #places .travel-filter #placeKeywordFilter {
  order:1;width:100%;height:49px!important;min-height:49px!important;
  border-radius:15px!important;padding:9px 14px 9px 40px!important;
  background:#29243d!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23bdb2d3' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;background-position:13px center!important;
  margin:0!important;font-size:14px!important;
}
html.app-look-13104 #places .travel-filter #placeCategoryFilter{
  position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;
  pointer-events:none!important;overflow:hidden!important;padding:0!important;min-height:0!important;
}
html.app-look-13104 #places .look-category-chips{
  order:2;display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;
  scrollbar-width:none;padding:2px 0 4px;margin:0 -2px;
}
html.app-look-13104 #places .look-category-chips::-webkit-scrollbar{display:none;}
html.app-look-13104 #places .look-category-chip{
  flex:0 0 auto;border:1px solid #443b58!important;border-radius:999px!important;
  background:#29243d!important;color:#c0b6d2!important;
  padding:7px 13px!important;min-height:35px!important;font-size:12px!important;
  font-weight:800!important;white-space:nowrap;
}
html.app-look-13104 #places .look-category-chip.is-active{
  background:#ad92ff!important;border-color:#ad92ff!important;color:#1f1830!important;
}
html.app-look-13104 #places .travel-filter > .row{order:3;gap:6px;align-items:center;min-width:0;}
html.app-look-13104 #places .travel-filter > .row small{font-size:11px;line-height:1.5;}
html.app-look-13104 #places .travel-filter > .row button{flex:0 0 auto;min-height:37px;padding:7px 9px;font-size:11px;}
html.app-look-13104 #placeList{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;margin:0!important;
}
html.app-look-13104 #placeList > .card{
  position:relative;display:flex;flex-direction:column;align-items:stretch;
  padding:0 0 9px!important;margin:0!important;
  overflow:hidden;border-radius:20px!important;min-width:0;
}
html.app-look-13104 #placeList .place-cover{
  order:-3;aspect-ratio:16/11!important;width:100%!important;height:auto!important;
  max-height:none!important;object-fit:cover!important;border-radius:0!important;margin:0 0 8px!important;
}
html.app-look-13104 #placeList > .card > b{order:1;font-size:13px!important;line-height:1.35!important;margin:0 9px 5px;}
html.app-look-13104 #placeList > .card > small:first-of-type{
  position:absolute;top:8px;left:8px;z-index:2;
  padding:4px 9px;background:#181426c9;border-radius:999px;
  font-size:10px!important;color:white!important;border:1px solid #ffffff29;
}
html.app-look-13104 #placeList > .card > p{
  order:2;color:#afa6c1!important;font-size:11px!important;
  line-height:1.5!important;margin:0 9px 4px!important;display:-webkit-box;
  -webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;
}
html.app-look-13104 #placeList > .card > small:not(:first-of-type){order:3;margin:0 9px 5px;font-size:11px;}
html.app-look-13104 #placeList > .card > .row{
  order:4;margin:auto 7px 0;display:flex!important;flex-wrap:wrap!important;gap:5px!important;
}
html.app-look-13104 #placeList > .card > .row button{
  flex:1 1 48%;min-width:0!important;min-height:33px!important;
  padding:6px 5px!important;font-size:11px!important;
  border-radius:9px!important;
}
html.app-look-13104 #placeList > .card > .row button.danger{background:#653d53;color:#ffe9ef;}
html.app-look-13104 #placeList > .card:not(:has(> img.place-cover:not([hidden])))::before{
  content:"🌴";order:-4;display:grid;place-items:center;
  width:100%;aspect-ratio:16/11;font-size:33px;
  background:linear-gradient(160deg,#276a97 0%,#54bed1 60%,#efd3a2 100%);
}
html.app-look-13104 #placeList > .card:has(> img[hidden]){min-height:185px;}
/* 集點：不改任務及商城的既有操作，只統一大卡與節奏。 */
html.app-look-13104 #app > .app-main {min-width:0;}
html.app-look-13104 #app > .app-main .card{border-radius:20px!important;padding:17px!important;margin:11px 0;}
html.app-look-13104 #app > .app-main h2{font-size:19px!important;line-height:1.3;margin:18px 0 11px;}
html.app-look-13104 #app > .app-main .children-two > .card{background:#272239!important;}
html.app-look-13104 :is(.banner,.pill){border-radius:15px!important;}
/* App 底部導覽：線條圖示與實體 App 類似的紫色啟用底色。 */
@media(max-width:759px){
 html.app-look-13104 :is(#app.wrap:has(> .app-nav),main:has(> .tabs)){
   padding:10px 13px calc(104px + env(safe-area-inset-bottom,0px))!important;
 }
 html.app-look-13104 .shell-bottom-nav{
   gap:4px!important;padding:8px 7px calc(9px + env(safe-area-inset-bottom,0px))!important;
   background:#29233c!important;border-top:1px solid #3b3250!important;
   box-shadow:0 -8px 32px #0006!important;backdrop-filter:none!important;
 }
 html.app-look-13104 .shell-bottom-nav button{
   color:#c1b6d5!important;border-radius:14px!important;
   min-height:55px!important;background:transparent!important;
   padding:6px 1px!important;gap:4px!important;
 }
 html.app-look-13104 .shell-bottom-nav button.is-active{
   background:#594880!important;color:#fff!important;
 }
 html.app-look-13104 .shell-bottom-nav .shell-nav-icon{display:grid;place-items:center;width:24px;height:24px;font-size:0!important;}
 html.app-look-13104 .shell-bottom-nav .shell-nav-icon svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
 html.app-look-13104 .shell-bottom-nav .shell-nav-text{font-size:10px!important;line-height:1.2!important;}
 html.app-look-13104 .shell-more-panel{background:#29233c!important;border-radius:27px 27px 18px 18px!important;}
 html.app-look-13104 .shell-more-grid button{background:#352b4d!important;border-radius:17px!important;}
}
/* 更寬螢幕保持同一套語言；側邊導覽視為 App 工具列。 */
@media(min-width:760px){
 html.app-look-13104 .look-adventure{height:195px;}
 html.app-look-13104 .look-adventure-info{padding:22px 25px;}
 html.app-look-13104 .look-adventure-title{font-size:27px!important;}
 html.app-look-13104 .look-stats{gap:13px;}
 html.app-look-13104 .look-stat{min-height:100px;}
 html.app-look-13104 #placeList{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:14px!important;}
 html.app-look-13104 .look-mode-tabs{max-width:440px;margin-left:auto!important;margin-right:auto!important;}
 html.app-look-13104 :is(.app-nav,main > .tabs) {background:#272239!important;border:1px solid #403753!important;border-radius:20px!important;}
 html.app-look-13104 :is(.app-nav,main > .tabs) button{background:transparent!important;color:#c8bcda!important;border:1px solid transparent!important;}
 html.app-look-13104 :is(.app-nav,main > .tabs) button:is(.on,.active){background:#594880!important;color:white!important;}
}
@media(min-width:1080px){
 html.app-look-13104 #app.wrap:has(> .app-nav) > .look-mode-tabs,
 html.app-look-13104 main:has(> .tabs) > .look-mode-tabs{grid-column:1/-1;grid-row:2;}
 html.app-look-13104 #app.wrap:has(> .app-nav) > .app-nav,
 html.app-look-13104 main:has(> .tabs) > .tabs{grid-row:3;}
 html.app-look-13104 #app.wrap:has(> .app-nav) > .app-main,
 html.app-look-13104 main:has(> .tabs) > section{grid-row:3;}
 html.app-look-13104 main:has(> .tabs) > p{grid-column:2;}
}
@media(max-width:360px){
 html.app-look-13104 .app-header .look-notify{width:38px;height:38px;min-height:38px;}
 html.app-look-13104 .app-header .profile-avatar{width:38px!important;height:38px!important;flex-basis:38px!important;}
 html.app-look-13104 .look-adventure{height:164px;}
 html.app-look-13104 .look-adventure-title{font-size:19px!important;}
}
/* iframe 同風格：小管家、日誌、行事曆、留言與設定沿用原本功能及權限。 */
html.app-look-frame main{max-width:100%;padding:12px!important;}
html.app-look-frame body{background:#11101c!important;}
html.app-look-frame :is(.card,.item){box-shadow:0 6px 18px #03020b22;}
html.app-look-frame .switch{
  border:1px solid #443956!important;border-radius:17px!important;
  padding:5px!important;background:#29243d!important;gap:5px!important;
  margin:4px 0 14px!important;position:sticky;top:0;z-index:6;
}
html.app-look-frame .switch button{
  flex:1 1 0;min-width:0!important;padding:10px 4px!important;
  background:transparent!important;border:1px solid transparent!important;
  color:#bcb1d4!important;white-space:normal!important;font-size:12px!important;
  border-radius:12px!important;
}
html.app-look-frame .switch button.active{background:#a38af8!important;color:#211832!important;border-color:#a38af8!important;}
html.app-look-frame :is(.trip-card,.cat,.category-buttons button){background:#373049!important;border-radius:15px!important;}
html.app-look-frame .trip-card.active{background:#594681!important;}
html.app-look-frame :is(.ui-panel,.modal){background:#29233c!important;border-radius:24px!important;}
html.app-look-frame .ui-shade{backdrop-filter:blur(8px);}
html.app-look-frame .ui-actions button:not(.ui-cancel){background:#a38af8!important;color:#211832!important;}


/* V1.3.10.4 — high-legibility calendar, horizontal image-based nav and travel home. */
@media(max-width:759px){
 html.app-look-13104 .shell-bottom-nav{display:flex!important;align-items:stretch!important;position:fixed!important;grid-template-columns:none!important;padding:7px 0 calc(7px + env(safe-area-inset-bottom,0px))!important;gap:0!important;isolation:isolate;}
 html.app-look-13104 .shell-scrollport{width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y;}
 html.app-look-13104 .shell-scrollport::-webkit-scrollbar{display:none}
 html.app-look-13104 .shell-nav-track{width:max-content;display:flex;align-items:stretch;gap:4px;padding:0 16px;}
 html.app-look-13104 .shell-bottom-nav button[data-shell-key]{flex:0 0 74px;width:74px!important;min-width:74px!important;min-height:67px!important;padding:6px 2px!important;border-radius:16px!important;touch-action:manipulation;}
 html.app-look-13104 .shell-bottom-nav button[data-shell-key].is-active{background:#524171!important;color:#fff!important;box-shadow:inset 0 0 0 1px #8370ab66;}
 html.app-look-13104 .shell-bottom-nav .shell-nav-icon{width:34px!important;height:34px!important;display:grid;place-items:center;}
 html.app-look-13104 .shell-bottom-nav .shell-nav-icon img{width:32px;height:32px;object-fit:contain;display:block;filter:saturate(.88);}
 html.app-look-13104 .shell-bottom-nav .shell-nav-text{font-size:10px!important;color:#c2b7d0!important;line-height:1.15!important;white-space:nowrap;}
 html.app-look-13104 .shell-bottom-nav button.is-active .shell-nav-text{color:#fff!important;font-weight:800;}
 html.app-look-13104 .shell-edge-cue{position:absolute;top:0;bottom:env(safe-area-inset-bottom,0px);display:flex;align-items:center;justify-content:center;width:17px;font-size:27px;color:#d2b7fb;z-index:4;pointer-events:none;text-shadow:0 0 5px #20192a;}
 html.app-look-13104 .shell-cue-left{left:0;background:linear-gradient(90deg,#29233c 55%,transparent)}
 html.app-look-13104 .shell-cue-right{right:0;background:linear-gradient(270deg,#29233c 55%,transparent)}
 html.app-look-13104 .shell-edge-cue[hidden]{display:none!important;}
 html.app-look-13104 :is(#app.wrap:has(> .app-nav),main:has(> .tabs)){padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))!important;}
}
/* Inherited calendar.php is embedded in BOTH modes. No HTML/JS calendar feature is replaced. */
html.app-look-frame .day{background:#292536!important;border:1px solid #3a334b!important;color:#f0eafa!important;border-radius:13px!important;box-shadow:none!important;}
html.app-look-frame .day.on{background:#45365d!important;border:2px solid #b7a0e8!important;color:#fff!important;}
html.app-look-frame .day:hover{background:#383046!important;}
html.app-look-frame .days{gap:5px!important;}
html.app-look-frame .weekday{color:#b9b0c9!important;}
html.app-look-frame .category-legend{color:#cdc4d9!important;}
html.app-look-frame .day-dots i{width:7px!important;height:7px!important;}
html.app-look-frame .category-legend i{width:10px!important;height:10px!important;}
html.app-look-frame .category-item{background:#302b3f!important;}
html.app-look-frame .item{background:#302b3f!important;color:#f4edfc!important;}
html.app-look-frame :is(.day-dots i,.category-legend i)[style*="#f59e61"]{background:#e8aa73!important}
html.app-look-frame :is(.day-dots i,.category-legend i)[style*="#36b8a9"]{background:#72c5b7!important}
html.app-look-frame :is(.day-dots i,.category-legend i)[style*="#689bfa"]{background:#75a9e8!important}
html.app-look-frame :is(.day-dots i,.category-legend i)[style*="#e879bc"]{background:#d68cb6!important}
html.app-look-frame :is(.day-dots i,.category-legend i)[style*="#ad86f5"]{background:#b49ae5!important}
html.app-look-frame :is(.day-dots i,.category-legend i)[style*="#ed777b"]{background:#df858e!important}
html.app-look-frame :is(.day-dots i,.category-legend i)[style*="#eab308"]{background:#e8b95f!important}
html.app-look-frame :is(.day-dots i,.category-legend i)[style*="#a8adb9"]{background:#a5acb9!important}
html.app-look-frame .category-item[style*="#f59e61"]{border-left-color:#e8aa73!important}
html.app-look-frame .category-item[style*="#36b8a9"]{border-left-color:#72c5b7!important}
html.app-look-frame .category-item[style*="#689bfa"]{border-left-color:#75a9e8!important}
html.app-look-frame .category-item[style*="#e879bc"]{border-left-color:#d68cb6!important}
html.app-look-frame .category-item[style*="#ad86f5"]{border-left-color:#b49ae5!important}
html.app-look-frame .category-item[style*="#ed777b"]{border-left-color:#df858e!important}
html.app-look-frame .category-item[style*="#eab308"]{border-left-color:#e8b95f!important}
html.app-look-frame .category-item[style*="#a8adb9"]{border-left-color:#a5acb9!important}
/* Travel dashboard: friendly cards, compact mobile-first touch targets. */
html.app-look-13104 .travel-home{display:block;max-width:100%;min-width:0;}
html.app-look-13104 .travel-home-heading{padding:6px 3px 5px;}
html.app-look-13104 .travel-home-heading h2{margin:5px 0 6px;font-size:23px;}
html.app-look-13104 .travel-home-heading p{font-size:13px;color:#c6b9da;margin:0 0 10px;}
html.app-look-13104 .travel-home-kicker{font-size:10px;letter-spacing:.2em;color:#bfa5e9;font-weight:800;}
html.app-look-13104 .travel-home .card{background:#2e273f!important;border:1px solid #4a3d5e!important;}
html.app-look-13104 .travel-home-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:13px;}
html.app-look-13104 .travel-home-title h2{font-size:17px!important;margin:0!important;}
html.app-look-13104 .travel-home-title button{min-height:37px!important;font-size:12px;padding:7px 10px!important;background:#403451!important;}
html.app-look-13104 .travel-home-recent-card{display:flex!important;align-items:center;width:100%;text-align:left;gap:11px;border:1px solid #655179!important;background:#403351!important;color:#f5eeff!important;border-radius:15px!important;padding:10px!important;}
html.app-look-13104 .travel-home-cover,html.app-look-13104 .travel-home-cover-placeholder{display:grid;place-items:center;width:80px;height:76px;object-fit:cover;flex-shrink:0;border-radius:11px;background:#51406a;font-size:32px;}
html.app-look-13104 .travel-home-recent-info{flex:1;min-width:0;display:grid;gap:5px;}
html.app-look-13104 .travel-home-recent-info strong{font-size:16px;overflow-wrap:anywhere;}
html.app-look-13104 .travel-home-recent-info small{font-size:12px;color:#d4c8e3;line-height:1.35;}
html.app-look-13104 .travel-home-open{font-size:24px;color:#c5a5f8;}
html.app-look-13104 .travel-home-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:13px 0;}
html.app-look-13104 .travel-home-action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:116px;padding:12px 5px;border-radius:17px!important;border:1px solid #625178!important;background:#443655!important;color:#fff!important;}
html.app-look-13104 .travel-home-action img{width:37px;height:37px;object-fit:contain;}
html.app-look-13104 .travel-home-action strong{font-size:15px;}
html.app-look-13104 .travel-home-action small{font-size:11px;color:#d8cae7;}
html.app-look-13104 .travel-home-trip-name{font-size:11px;color:#c2acdf;text-align:right;max-width:48%;overflow-wrap:anywhere;}
html.app-look-13104 .travel-home-highlight-list{max-height:298px;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;display:block;}
html.app-look-13104 .travel-home-highlight{display:flex;gap:10px;align-items:flex-start;padding:12px 8px;border-bottom:1px solid #62547366;color:#f0e9fa;font-size:14px;min-height:57px;overflow-wrap:anywhere;}
html.app-look-13104 .travel-home-highlight:last-child{border-bottom:0;}
html.app-look-13104 .travel-home-highlight.is-done{opacity:.63;}
html.app-look-13104 .travel-home-index{display:grid;place-items:center;flex:0 0 22px;height:22px;background:#5e4b77;color:#f1eafa;border-radius:8px;font-size:11px;}
html.app-look-13104 .travel-home-done{margin-left:auto;color:#8bd6b3;font-weight:800;}

/* V1.3.10.13: four same-size controls, original order and side positions preserved.
   Two clusters use fixed visual size, separated with flexible middle space.
   Works down to 320px without wrapping or clipping the full labels. */
html.app-look-13104 #places .place-compact-toolbar{
  --place-action-w:clamp(58px,calc((100vw - 78px)/4),73px);
  --place-action-h:35px;
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  flex-wrap:nowrap!important;gap:4px!important;width:100%!important;min-width:0!important;
  margin:5px 0 10px!important;
}
html.app-look-13104 #places .place-compact-toolbar .place-create-actions,
html.app-look-13104 #places .place-compact-toolbar .place-filter-actions{
  display:flex!important;align-items:center!important;justify-content:flex-start!important;
  flex:0 0 auto!important;grid-template-columns:none!important;
  gap:4px!important;width:auto!important;max-width:none!important;min-width:0!important;
  margin:0!important;padding:0!important;
}
html.app-look-13104 #places .place-compact-toolbar .place-filter-actions{justify-content:flex-end!important;}
html.app-look-13104 #places .place-compact-toolbar button,
html.app-look-13104 #places .place-compact-toolbar .place-create-actions > button,
html.app-look-13104 #places .place-compact-toolbar .place-filter-actions > button,
html.app-look-13104 #places .place-compact-toolbar .place-create-actions > #add{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  flex:0 0 var(--place-action-w)!important;width:var(--place-action-w)!important;
  min-width:0!important;max-width:var(--place-action-w)!important;
  height:var(--place-action-h)!important;min-height:var(--place-action-h)!important;
  border-radius:10px!important;border:1px solid #66557d!important;
  box-sizing:border-box!important;gap:2px!important;padding:3px 2px!important;
  margin:0!important;white-space:nowrap!important;overflow:visible!important;
  font-size:11px!important;font-weight:700!important;line-height:1!important;
  letter-spacing:-.25px!important;
}
html.app-look-13104 #places .place-compact-toolbar .place-create-actions > button,
html.app-look-13104 #places .place-compact-toolbar .place-create-actions > #add{
  background:#a78bf4!important;color:#251934!important;border-color:#9d83e2!important;
}
html.app-look-13104 #places .place-compact-toolbar .place-filter-actions > button{
  background:#3b304c!important;color:#f1e9fc!important;
  font-size:10px!important;letter-spacing:-.2px!important;
}
html.app-look-13104 #places .place-compact-toolbar button span{flex:0 0 auto!important;white-space:nowrap!important;}
html.app-look-13104 #places .place-compact-toolbar .place-create-actions button::before{display:none!important;content:none!important;}
html.app-look-13104 #places .place-compact-toolbar .place-action-icon{width:12px;height:12px;flex:0 0 12px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
html.app-look-13104 #places .place-compact-toolbar #placeTermFilterBadge:not(:empty){position:absolute;right:-5px;top:-6px;font-size:9px;line-height:1;background:#a78bf4;color:#241638;border-radius:12px;padding:3px 4px;}
html.app-look-13104 #places .place-compact-toolbar #placeTermFilterBadge:empty{display:none!important;}
html.app-look-13104 #places .place-compact-toolbar .place-note-toggle{position:relative!important;}
@media(max-width:360px){
  html.app-look-13104 #places .place-compact-toolbar{--place-action-w:clamp(56px,calc((100vw - 78px)/4),70px);gap:3px!important;}
  html.app-look-13104 #places .place-compact-toolbar .place-create-actions,
  html.app-look-13104 #places .place-compact-toolbar .place-filter-actions{gap:3px!important;}
  html.app-look-13104 #places .place-compact-toolbar .place-filter-actions > button{font-size:9px!important;letter-spacing:-.35px!important;}
  html.app-look-13104 #places .place-compact-toolbar .place-action-icon{width:10px;height:10px;flex-basis:10px;}
}

/* V1.3.10.14 hotfix: restore full-width horizontal "新增支出" card.
   V1.3.10.4's 2-column grid/column button styling remained active after
   the second card was removed, leaving a half-width vertical button. */
html.app-look-13104 .travel-home-actions{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:0!important;
  width:100%!important;
  margin:14px 0!important;
}
html.app-look-13104 .travel-home-actions > .travel-home-action{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:14px!important;
  width:100%!important;
  min-width:0!important;
  min-height:94px!important;
  padding:16px 18px!important;
  text-align:left!important;
  border-radius:18px!important;
}
html.app-look-13104 .travel-home-actions .travel-home-action > img{
  width:48px!important;
  height:48px!important;
  object-fit:contain!important;
  flex:0 0 48px!important;
}
html.app-look-13104 .travel-home-actions .travel-expense-summary{
  display:flex!important;
  flex-direction:column!important;
  gap:5px!important;
  flex:1 1 auto!important;
  min-width:0!important;
  align-items:flex-start!important;
  justify-content:center!important;
}
html.app-look-13104 .travel-home-actions .travel-expense-summary strong{
  display:block!important;
  font-size:17px!important;
  line-height:1.35!important;
  color:#fff!important;
}
html.app-look-13104 .travel-home-actions .travel-expense-summary small{
  display:block!important;
  font-size:12px!important;
  line-height:1.5!important;
  color:#d8cae7!important;
}
html.app-look-13104 .travel-home-actions .travel-home-open{
  display:block!important;
  font-size:25px!important;
  color:#cdb3f4!important;
  flex:0 0 auto!important;
  margin-left:auto!important;
}

/* V1.3.10.17 — wide iOS/iPadOS bottom navigation visually matches Android.
   Do not touch the main tablet layout or the original desktop navigation. */
@media (min-width:760px){
 html.app-look-13104.shell-ios-touch .shell-bottom-nav{
   background:#29233c!important;border-top:1px solid #3b3250!important;
   box-shadow:0 -8px 32px #0006!important;
 }
 html.app-look-13104.shell-ios-touch .shell-bottom-nav button[data-shell-key]{
   color:#c1b6d5!important;background:transparent!important;
 }
 html.app-look-13104.shell-ios-touch .shell-bottom-nav button[data-shell-key].is-active{
   background:#524171!important;color:#fff!important;
   box-shadow:inset 0 0 0 1px #8370ab66!important;
 }
 html.app-look-13104.shell-ios-touch .shell-bottom-nav .shell-nav-icon img{filter:saturate(.88);}
 html.app-look-13104.shell-ios-touch .shell-bottom-nav .shell-nav-text{color:#c2b7d0!important;}
 html.app-look-13104.shell-ios-touch .shell-bottom-nav button.is-active .shell-nav-text{color:#fff!important;font-weight:800;}
 html.app-look-13104.shell-ios-touch .shell-edge-cue{color:#d2b7fb;text-shadow:0 0 5px #20192a;}
 html.app-look-13104.shell-ios-touch .shell-cue-left{background:linear-gradient(90deg,#29233c 55%,transparent);}
 html.app-look-13104.shell-ios-touch .shell-cue-right{background:linear-gradient(270deg,#29233c 55%,transparent);}
}
