@layer theme{@theme default{--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --color-red-50: oklch(97.1% .013 17.38); --color-red-100: oklch(93.6% .032 17.717); --color-red-200: oklch(88.5% .062 18.334); --color-red-300: oklch(80.8% .114 19.571); --color-red-400: oklch(70.4% .191 22.216); --color-red-500: oklch(63.7% .237 25.331); --color-red-600: oklch(57.7% .245 27.325); --color-red-700: oklch(50.5% .213 27.518); --color-red-800: oklch(44.4% .177 26.899); --color-red-900: oklch(39.6% .141 25.723); --color-red-950: oklch(25.8% .092 26.042); --color-orange-50: oklch(98% .016 73.684); --color-orange-100: oklch(95.4% .038 75.164); --color-orange-200: oklch(90.1% .076 70.697); --color-orange-300: oklch(83.7% .128 66.29); --color-orange-400: oklch(75% .183 55.934); --color-orange-500: oklch(70.5% .213 47.604); --color-orange-600: oklch(64.6% .222 41.116); --color-orange-700: oklch(55.3% .195 38.402); --color-orange-800: oklch(47% .157 37.304); --color-orange-900: oklch(40.8% .123 38.172); --color-orange-950: oklch(26.6% .079 36.259); --color-amber-50: oklch(98.7% .022 95.277); --color-amber-100: oklch(96.2% .059 95.617); --color-amber-200: oklch(92.4% .12 95.746); --color-amber-300: oklch(87.9% .169 91.605); --color-amber-400: oklch(82.8% .189 84.429); --color-amber-500: oklch(76.9% .188 70.08); --color-amber-600: oklch(66.6% .179 58.318); --color-amber-700: oklch(55.5% .163 48.998); --color-amber-800: oklch(47.3% .137 46.201); --color-amber-900: oklch(41.4% .112 45.904); --color-amber-950: oklch(27.9% .077 45.635); --color-yellow-50: oklch(98.7% .026 102.212); --color-yellow-100: oklch(97.3% .071 103.193); --color-yellow-200: oklch(94.5% .129 101.54); --color-yellow-300: oklch(90.5% .182 98.111); --color-yellow-400: oklch(85.2% .199 91.936); --color-yellow-500: oklch(79.5% .184 86.047); --color-yellow-600: oklch(68.1% .162 75.834); --color-yellow-700: oklch(55.4% .135 66.442); --color-yellow-800: oklch(47.6% .114 61.907); --color-yellow-900: oklch(42.1% .095 57.708); --color-yellow-950: oklch(28.6% .066 53.813); --color-lime-50: oklch(98.6% .031 120.757); --color-lime-100: oklch(96.7% .067 122.328); --color-lime-200: oklch(93.8% .127 124.321); --color-lime-300: oklch(89.7% .196 126.665); --color-lime-400: oklch(84.1% .238 128.85); --color-lime-500: oklch(76.8% .233 130.85); --color-lime-600: oklch(64.8% .2 131.684); --color-lime-700: oklch(53.2% .157 131.589); --color-lime-800: oklch(45.3% .124 130.933); --color-lime-900: oklch(40.5% .101 131.063); --color-lime-950: oklch(27.4% .072 132.109); --color-green-50: oklch(98.2% .018 155.826); --color-green-100: oklch(96.2% .044 156.743); --color-green-200: oklch(92.5% .084 155.995); --color-green-300: oklch(87.1% .15 154.449); --color-green-400: oklch(79.2% .209 151.711); --color-green-500: oklch(72.3% .219 149.579); --color-green-600: oklch(62.7% .194 149.214); --color-green-700: oklch(52.7% .154 150.069); --color-green-800: oklch(44.8% .119 151.328); --color-green-900: oklch(39.3% .095 152.535); --color-green-950: oklch(26.6% .065 152.934); --color-emerald-50: oklch(97.9% .021 166.113); --color-emerald-100: oklch(95% .052 163.051); --color-emerald-200: oklch(90.5% .093 164.15); --color-emerald-300: oklch(84.5% .143 164.978); --color-emerald-400: oklch(76.5% .177 163.223); --color-emerald-500: oklch(69.6% .17 162.48); --color-emerald-600: oklch(59.6% .145 163.225); --color-emerald-700: oklch(50.8% .118 165.612); --color-emerald-800: oklch(43.2% .095 166.913); --color-emerald-900: oklch(37.8% .077 168.94); --color-emerald-950: oklch(26.2% .051 172.552); --color-teal-50: oklch(98.4% .014 180.72); --color-teal-100: oklch(95.3% .051 180.801); --color-teal-200: oklch(91% .096 180.426); --color-teal-300: oklch(85.5% .138 181.071); --color-teal-400: oklch(77.7% .152 181.912); --color-teal-500: oklch(70.4% .14 182.503); --color-teal-600: oklch(60% .118 184.704); --color-teal-700: oklch(51.1% .096 186.391); --color-teal-800: oklch(43.7% .078 188.216); --color-teal-900: oklch(38.6% .063 188.416); --color-teal-950: oklch(27.7% .046 192.524); --color-cyan-50: oklch(98.4% .019 200.873); --color-cyan-100: oklch(95.6% .045 203.388); --color-cyan-200: oklch(91.7% .08 205.041); --color-cyan-300: oklch(86.5% .127 207.078); --color-cyan-400: oklch(78.9% .154 211.53); --color-cyan-500: oklch(71.5% .143 215.221); --color-cyan-600: oklch(60.9% .126 221.723); --color-cyan-700: oklch(52% .105 223.128); --color-cyan-800: oklch(45% .085 224.283); --color-cyan-900: oklch(39.8% .07 227.392); --color-cyan-950: oklch(30.2% .056 229.695); --color-sky-50: oklch(97.7% .013 236.62); --color-sky-100: oklch(95.1% .026 236.824); --color-sky-200: oklch(90.1% .058 230.902); --color-sky-300: oklch(82.8% .111 230.318); --color-sky-400: oklch(74.6% .16 232.661); --color-sky-500: oklch(68.5% .169 237.323); --color-sky-600: oklch(58.8% .158 241.966); --color-sky-700: oklch(50% .134 242.749); --color-sky-800: oklch(44.3% .11 240.79); --color-sky-900: oklch(39.1% .09 240.876); --color-sky-950: oklch(29.3% .066 243.157); --color-blue-50: oklch(97% .014 254.604); --color-blue-100: oklch(93.2% .032 255.585); --color-blue-200: oklch(88.2% .059 254.128); --color-blue-300: oklch(80.9% .105 251.813); --color-blue-400: oklch(70.7% .165 254.624); --color-blue-500: oklch(62.3% .214 259.815); --color-blue-600: oklch(54.6% .245 262.881); --color-blue-700: oklch(48.8% .243 264.376); --color-blue-800: oklch(42.4% .199 265.638); --color-blue-900: oklch(37.9% .146 265.522); --color-blue-950: oklch(28.2% .091 267.935); --color-indigo-50: oklch(96.2% .018 272.314); --color-indigo-100: oklch(93% .034 272.788); --color-indigo-200: oklch(87% .065 274.039); --color-indigo-300: oklch(78.5% .115 274.713); --color-indigo-400: oklch(67.3% .182 276.935); --color-indigo-500: oklch(58.5% .233 277.117); --color-indigo-600: oklch(51.1% .262 276.966); --color-indigo-700: oklch(45.7% .24 277.023); --color-indigo-800: oklch(39.8% .195 277.366); --color-indigo-900: oklch(35.9% .144 278.697); --color-indigo-950: oklch(25.7% .09 281.288); --color-violet-50: oklch(96.9% .016 293.756); --color-violet-100: oklch(94.3% .029 294.588); --color-violet-200: oklch(89.4% .057 293.283); --color-violet-300: oklch(81.1% .111 293.571); --color-violet-400: oklch(70.2% .183 293.541); --color-violet-500: oklch(60.6% .25 292.717); --color-violet-600: oklch(54.1% .281 293.009); --color-violet-700: oklch(49.1% .27 292.581); --color-violet-800: oklch(43.2% .232 292.759); --color-violet-900: oklch(38% .189 293.745); --color-violet-950: oklch(28.3% .141 291.089); --color-purple-50: oklch(97.7% .014 308.299); --color-purple-100: oklch(94.6% .033 307.174); --color-purple-200: oklch(90.2% .063 306.703); --color-purple-300: oklch(82.7% .119 306.383); --color-purple-400: oklch(71.4% .203 305.504); --color-purple-500: oklch(62.7% .265 303.9); --color-purple-600: oklch(55.8% .288 302.321); --color-purple-700: oklch(49.6% .265 301.924); --color-purple-800: oklch(43.8% .218 303.724); --color-purple-900: oklch(38.1% .176 304.987); --color-purple-950: oklch(29.1% .149 302.717); --color-fuchsia-50: oklch(97.7% .017 320.058); --color-fuchsia-100: oklch(95.2% .037 318.852); --color-fuchsia-200: oklch(90.3% .076 319.62); --color-fuchsia-300: oklch(83.3% .145 321.434); --color-fuchsia-400: oklch(74% .238 322.16); --color-fuchsia-500: oklch(66.7% .295 322.15); --color-fuchsia-600: oklch(59.1% .293 322.896); --color-fuchsia-700: oklch(51.8% .253 323.949); --color-fuchsia-800: oklch(45.2% .211 324.591); --color-fuchsia-900: oklch(40.1% .17 325.612); --color-fuchsia-950: oklch(29.3% .136 325.661); --color-pink-50: oklch(97.1% .014 343.198); --color-pink-100: oklch(94.8% .028 342.258); --color-pink-200: oklch(89.9% .061 343.231); --color-pink-300: oklch(82.3% .12 346.018); --color-pink-400: oklch(71.8% .202 349.761); --color-pink-500: oklch(65.6% .241 354.308); --color-pink-600: oklch(59.2% .249 .584); --color-pink-700: oklch(52.5% .223 3.958); --color-pink-800: oklch(45.9% .187 3.815); --color-pink-900: oklch(40.8% .153 2.432); --color-pink-950: oklch(28.4% .109 3.907); --color-rose-50: oklch(96.9% .015 12.422); --color-rose-100: oklch(94.1% .03 12.58); --color-rose-200: oklch(89.2% .058 10.001); --color-rose-300: oklch(81% .117 11.638); --color-rose-400: oklch(71.2% .194 13.428); --color-rose-500: oklch(64.5% .246 16.439); --color-rose-600: oklch(58.6% .253 17.585); --color-rose-700: oklch(51.4% .222 16.935); --color-rose-800: oklch(45.5% .188 13.697); --color-rose-900: oklch(41% .159 10.272); --color-rose-950: oklch(27.1% .105 12.094); --color-slate-50: oklch(98.4% .003 247.858); --color-slate-100: oklch(96.8% .007 247.896); --color-slate-200: oklch(92.9% .013 255.508); --color-slate-300: oklch(86.9% .022 252.894); --color-slate-400: oklch(70.4% .04 256.788); --color-slate-500: oklch(55.4% .046 257.417); --color-slate-600: oklch(44.6% .043 257.281); --color-slate-700: oklch(37.2% .044 257.287); --color-slate-800: oklch(27.9% .041 260.031); --color-slate-900: oklch(20.8% .042 265.755); --color-slate-950: oklch(12.9% .042 264.695); --color-gray-50: oklch(98.5% .002 247.839); --color-gray-100: oklch(96.7% .003 264.542); --color-gray-200: oklch(92.8% .006 264.531); --color-gray-300: oklch(87.2% .01 258.338); --color-gray-400: oklch(70.7% .022 261.325); --color-gray-500: oklch(55.1% .027 264.364); --color-gray-600: oklch(44.6% .03 256.802); --color-gray-700: oklch(37.3% .034 259.733); --color-gray-800: oklch(27.8% .033 256.848); --color-gray-900: oklch(21% .034 264.665); --color-gray-950: oklch(13% .028 261.692); --color-zinc-50: oklch(98.5% 0 0); --color-zinc-100: oklch(96.7% .001 286.375); --color-zinc-200: oklch(92% .004 286.32); --color-zinc-300: oklch(87.1% .006 286.286); --color-zinc-400: oklch(70.5% .015 286.067); --color-zinc-500: oklch(55.2% .016 285.938); --color-zinc-600: oklch(44.2% .017 285.786); --color-zinc-700: oklch(37% .013 285.805); --color-zinc-800: oklch(27.4% .006 286.033); --color-zinc-900: oklch(21% .006 285.885); --color-zinc-950: oklch(14.1% .005 285.823); --color-neutral-50: oklch(98.5% 0 0); --color-neutral-100: oklch(97% 0 0); --color-neutral-200: oklch(92.2% 0 0); --color-neutral-300: oklch(87% 0 0); --color-neutral-400: oklch(70.8% 0 0); --color-neutral-500: oklch(55.6% 0 0); --color-neutral-600: oklch(43.9% 0 0); --color-neutral-700: oklch(37.1% 0 0); --color-neutral-800: oklch(26.9% 0 0); --color-neutral-900: oklch(20.5% 0 0); --color-neutral-950: oklch(14.5% 0 0); --color-stone-50: oklch(98.5% .001 106.423); --color-stone-100: oklch(97% .001 106.424); --color-stone-200: oklch(92.3% .003 48.717); --color-stone-300: oklch(86.9% .005 56.366); --color-stone-400: oklch(70.9% .01 56.259); --color-stone-500: oklch(55.3% .013 58.071); --color-stone-600: oklch(44.4% .011 73.639); --color-stone-700: oklch(37.4% .01 67.558); --color-stone-800: oklch(26.8% .007 34.298); --color-stone-900: oklch(21.6% .006 56.043); --color-stone-950: oklch(14.7% .004 49.25); --color-mauve-50: oklch(98.5% 0 0); --color-mauve-100: oklch(96% .003 325.6); --color-mauve-200: oklch(92.2% .005 325.62); --color-mauve-300: oklch(86.5% .012 325.68); --color-mauve-400: oklch(71.1% .019 323.02); --color-mauve-500: oklch(54.2% .034 322.5); --color-mauve-600: oklch(43.5% .029 321.78); --color-mauve-700: oklch(36.4% .029 323.89); --color-mauve-800: oklch(26.3% .024 320.12); --color-mauve-900: oklch(21.2% .019 322.12); --color-mauve-950: oklch(14.5% .008 326); --color-olive-50: oklch(98.8% .003 106.5); --color-olive-100: oklch(96.6% .005 106.5); --color-olive-200: oklch(93% .007 106.5); --color-olive-300: oklch(88% .011 106.6); --color-olive-400: oklch(73.7% .021 106.9); --color-olive-500: oklch(58% .031 107.3); --color-olive-600: oklch(46.6% .025 107.3); --color-olive-700: oklch(39.4% .023 107.4); --color-olive-800: oklch(28.6% .016 107.4); --color-olive-900: oklch(22.8% .013 107.4); --color-olive-950: oklch(15.3% .006 107.1); --color-mist-50: oklch(98.7% .002 197.1); --color-mist-100: oklch(96.3% .002 197.1); --color-mist-200: oklch(92.5% .005 214.3); --color-mist-300: oklch(87.2% .007 219.6); --color-mist-400: oklch(72.3% .014 214.4); --color-mist-500: oklch(56% .021 213.5); --color-mist-600: oklch(45% .017 213.2); --color-mist-700: oklch(37.8% .015 216); --color-mist-800: oklch(27.5% .011 216.9); --color-mist-900: oklch(21.8% .008 223.9); --color-mist-950: oklch(14.8% .004 228.8); --color-taupe-50: oklch(98.6% .002 67.8); --color-taupe-100: oklch(96% .002 17.2); --color-taupe-200: oklch(92.2% .005 34.3); --color-taupe-300: oklch(86.8% .007 39.5); --color-taupe-400: oklch(71.4% .014 41.2); --color-taupe-500: oklch(54.7% .021 43.1); --color-taupe-600: oklch(43.8% .017 39.3); --color-taupe-700: oklch(36.7% .016 35.7); --color-taupe-800: oklch(26.8% .011 36.5); --color-taupe-900: oklch(21.4% .009 43.1); --color-taupe-950: oklch(14.7% .004 49.3); --color-black: #000; --color-white: #fff; --spacing: .25rem; --breakpoint-sm: 40rem; --breakpoint-md: 48rem; --breakpoint-lg: 64rem; --breakpoint-xl: 80rem; --breakpoint-2xl: 96rem; --container-3xs: 16rem; --container-2xs: 18rem; --container-xs: 20rem; --container-sm: 24rem; --container-md: 28rem; --container-lg: 32rem; --container-xl: 36rem; --container-2xl: 42rem; --container-3xl: 48rem; --container-4xl: 56rem; --container-5xl: 64rem; --container-6xl: 72rem; --container-7xl: 80rem; --text-xs: .75rem; --text-xs--line-height: calc(1 / .75); --text-sm: .875rem; --text-sm--line-height: calc(1.25 / .875); --text-base: 1rem; --text-base--line-height: calc(1.5 / 1); --text-lg: 1.125rem; --text-lg--line-height: calc(1.75 / 1.125); --text-xl: 1.25rem; --text-xl--line-height: calc(1.75 / 1.25); --text-2xl: 1.5rem; --text-2xl--line-height: calc(2 / 1.5); --text-3xl: 1.875rem; --text-3xl--line-height: calc(2.25 / 1.875); --text-4xl: 2.25rem; --text-4xl--line-height: calc(2.5 / 2.25); --text-5xl: 3rem; --text-5xl--line-height: 1; --text-6xl: 3.75rem; --text-6xl--line-height: 1; --text-7xl: 4.5rem; --text-7xl--line-height: 1; --text-8xl: 6rem; --text-8xl--line-height: 1; --text-9xl: 8rem; --text-9xl--line-height: 1; --font-weight-thin: 100; --font-weight-extralight: 200; --font-weight-light: 300; --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; --font-weight-extrabold: 800; --font-weight-black: 900; --tracking-tighter: -.05em; --tracking-tight: -.025em; --tracking-normal: 0em; --tracking-wide: .025em; --tracking-wider: .05em; --tracking-widest: .1em; --leading-tight: 1.25; --leading-snug: 1.375; --leading-normal: 1.5; --leading-relaxed: 1.625; --leading-loose: 2; --radius-xs: .125rem; --radius-sm: .25rem; --radius-md: .375rem; --radius-lg: .5rem; --radius-xl: .75rem; --radius-2xl: 1rem; --radius-3xl: 1.5rem; --radius-4xl: 2rem; --shadow-2xs: 0 1px #0000000d; --shadow-xs: 0 1px 2px 0 #0000000d; --shadow-sm: 0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a; --shadow-md: 0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a; --shadow-lg: 0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a; --shadow-xl: 0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a; --shadow-2xl: 0 25px 50px -12px #00000040; --inset-shadow-2xs: inset 0 1px #0000000d; --inset-shadow-xs: inset 0 1px 1px #0000000d; --inset-shadow-sm: inset 0 2px 4px #0000000d; --drop-shadow-xs: 0 1px 1px #0000000d; --drop-shadow-sm: 0 1px 2px #00000026; --drop-shadow-md: 0 3px 3px #0000001f; --drop-shadow-lg: 0 4px 4px #00000026; --drop-shadow-xl: 0 9px 7px #0000001a; --drop-shadow-2xl: 0 25px 25px #00000026; --text-shadow-2xs: 0px 1px 0px #00000026; --text-shadow-xs: 0px 1px 1px #0003; --text-shadow-sm: 0px 1px 0px #00000013, 0px 1px 1px #00000013, 0px 2px 2px #00000013; --text-shadow-md: 0px 1px 1px #0000001a, 0px 1px 2px #0000001a, 0px 2px 4px #0000001a; --text-shadow-lg: 0px 1px 2px #0000001a, 0px 3px 2px #0000001a, 0px 4px 8px #0000001a; --ease-in: cubic-bezier(.4, 0, 1, 1); --ease-out: cubic-bezier(0, 0, .2, 1); --ease-in-out: cubic-bezier(.4, 0, .2, 1); --animate-spin: spin 1s linear infinite; --animate-ping: ping 1s cubic-bezier(0, 0, .2, 1) infinite; --animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite; --animate-bounce: bounce 1s infinite; @keyframes spin { to { transform: rotate(360deg); } } @keyframes ping { 75%, 100% { transform: scale(2); opacity: 0; } } @keyframes pulse { 50% { opacity: .5; } } @keyframes bounce { 0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(.8, 0, 1, 1); } 50% { transform: none; animation-timing-function: cubic-bezier(0, 0, .2, 1); } } --blur-xs: 4px; --blur-sm: 8px; --blur-md: 12px; --blur-lg: 16px; --blur-xl: 24px; --blur-2xl: 40px; --blur-3xl: 64px; --perspective-dramatic: 100px; --perspective-near: 300px; --perspective-normal: 500px; --perspective-midrange: 800px; --perspective-distant: 1200px; --aspect-video: 16 / 9; --default-transition-duration: .15s; --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1); --default-font-family: --theme(--font-sans, initial); --default-font-feature-settings: --theme(--font-sans--font-feature-settings, initial); --default-font-variation-settings: --theme(--font-sans--font-variation-settings, initial); --default-mono-font-family: --theme(--font-mono, initial); --default-mono-font-feature-settings: --theme(--font-mono--font-feature-settings, initial); --default-mono-font-variation-settings: --theme(--font-mono--font-variation-settings, initial);}@theme default inline reference{--blur: 8px; --shadow: 0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a; --shadow-inner: inset 0 2px 4px 0 #0000000d; --drop-shadow: 0 1px 2px #0000001a, 0 1px 1px #0000000f; --radius: .25rem; --max-width-prose: 65ch;}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:--theme(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:--theme(--default-font-feature-settings, normal);font-variation-settings:--theme(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:--theme(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:--theme(--default-mono-font-feature-settings, normal);font-variation-settings:--theme(--default-mono-font-variation-settings, normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{@tailwind utilities;}@theme{ --color-cream: #faf7f2; --color-sage: #7ba05b; --color-forest: #4a7c59; --color-terracotta: #c17a5e; --color-sky: #a8c5d9; --color-blush: #f2d6d0; --color-text: #3d3530; --color-text-light: #7a6e68; --color-border: #e8e0d5;  --font-display: "Inter", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif; --font-body: "Inter", "Noto Sans SC", "PingFang SC", -apple-system, BlinkMacSystemFont, sans-serif;}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background-color:var(--color-cream);color:var(--color-text);-webkit-font-smoothing:antialiased;min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d4c8bc;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#b8a99a}::selection{color:#3d3530;background:#f2d6d0}.page-container{max-width:none;margin:0;padding:0 48px}.card{border:1px solid var(--color-border);background:#fff;border-radius:16px;overflow:hidden}.card-hover{transition:transform .2s,box-shadow .2s}.card-hover:hover{transform:translateY(-2px);box-shadow:0 8px 24px #3d35301a}.btn-primary{color:#fff;cursor:pointer;background:#7ba05b;border:none;border-radius:9999px;align-items:center;gap:6px;padding:10px 20px;font-family:inherit;font-size:15px;font-weight:500;text-decoration:none;transition:background .15s,transform .1s;display:inline-flex}.btn-primary:hover{background:#6a8e4e}.btn-primary:active{transform:scale(.97)}.btn-secondary{color:#3d3530;cursor:pointer;background:#fff;border:1.5px solid #e8e0d5;border-radius:9999px;align-items:center;gap:6px;padding:9px 20px;font-family:inherit;font-size:15px;font-weight:500;text-decoration:none;transition:border-color .15s,background .15s;display:inline-flex}.btn-secondary:hover{background:#faf7f2;border-color:#7ba05b}.btn-ghost{color:#7a6e68;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:4px;padding:6px 12px;font-family:inherit;font-size:14px;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.btn-ghost:hover{color:#3d3530;background:#7ba05b14}.btn-danger{color:#c97c5d;cursor:pointer;background:#fff;border:1.5px solid #c97c5d4d;border-radius:9999px;align-items:center;gap:6px;padding:9px 20px;font-family:inherit;font-size:15px;font-weight:500;transition:all .15s;display:inline-flex}.btn-danger:hover{background:#c97c5d14;border-color:#c97c5d}.input-field{color:#3d3530;background:#fff;border:1.5px solid #e8e0d5;border-radius:12px;outline:none;width:100%;padding:12px 16px;font-family:inherit;font-size:15px;transition:border-color .15s}.input-field:focus{border-color:#7ba05b}.input-field::placeholder{color:#b0a49c}textarea.input-field{resize:vertical;min-height:100px}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.animate-fade-up{animation:.5s forwards fadeUp}.animate-slide-down{animation:.3s forwards slideDown}.animate-float{animation:3s ease-in-out infinite float}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.app-layout{min-height:100vh;display:flex}.sidebar{background:#faf7f2;border-right:1.5px solid #e8e0d5;flex-direction:column;flex-shrink:0;width:220px;height:100vh;padding:0;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-logo{border-bottom:1px solid #e8e0d5;align-items:center;gap:12px;padding:20px 18px 18px;text-decoration:none;display:flex;position:relative;overflow:hidden}.sidebar-logo:before{content:"";pointer-events:none;background:radial-gradient(circle,#7ba05b1f 0%,#0000 70%);width:80px;height:80px;position:absolute;top:-20px;right:-20px}.sidebar-logo-badge{color:#fff;letter-spacing:-.5px;background:linear-gradient(135deg,#7ba05b 0%,#c97c5d 100%);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-family:Inter,system-ui,sans-serif;font-size:15px;font-weight:800;display:flex;box-shadow:0 3px 10px #7ba05b59}.sidebar-logo-text-wrap{flex-direction:column;gap:1px;display:flex}.sidebar-logo-text{letter-spacing:-.3px;background:linear-gradient(135deg,#7ba05b 0%,#3d3530 60%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-family:Inter,system-ui,sans-serif;font-size:15px;font-weight:800;line-height:1.2}.sidebar-logo-sub{color:#c97c5d;letter-spacing:.5px;font-size:11px;font-weight:500}.sidebar-nav{flex-direction:column;flex:1;gap:4px;padding:16px 12px;display:flex}.sidebar-link{color:#7a6e68;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.sidebar-link:hover{color:#3d3530;background:#7ba05b14}.sidebar-link.active{color:#7ba05b;background:#7ba05b24;font-weight:600}.sidebar-link-icon{flex-shrink:0;font-size:16px}.sidebar-link-label{font-size:14px}.sidebar-footer{border-top:1.5px solid #e8e0d5;flex-direction:column;gap:10px;padding:16px 12px;display:flex}.sidebar-user{background:#7ba05b0f;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.sidebar-avatar{color:#fff;background:linear-gradient(135deg,#7ba05b,#a8c686);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:15px;font-weight:700;display:flex;box-shadow:0 2px 6px #7ba05b4d}.sidebar-user-info{flex:1;min-width:0}.sidebar-nickname{color:#3d3530;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.sidebar-user-sub{color:#7ba05b;margin-top:1px;font-size:11px}.sidebar-logout{color:#7a6e68;cursor:pointer;background:0 0;border:1.5px solid #e8e0d5;border-radius:10px;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.sidebar-logout:hover{color:#c97c5d;background:#c97c5d0f;border-color:#c97c5d}.sidebar-login-btn{color:#7ba05b;text-align:center;background:linear-gradient(135deg,#7ba05b1f,#a8c5d91f);border:1.5px solid #7ba05b4d;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s;display:flex}.sidebar-login-btn:hover{background:#7ba05b2e;border-color:#7ba05b}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:40;background:#faf7f2cc;border-bottom:1px solid #e8e0d5;align-items:center;height:56px;padding:0 40px;display:flex;position:sticky;top:0}.topbar-title{font-family:var(--font-display);color:#3d3530;margin:0;font-size:20px;font-weight:700}.app-content{flex:1;padding:0 40px 60px}.hero-section{text-align:center;padding:60px 16px 48px}.hero-title{font-family:var(--font-display);color:#3d3530;letter-spacing:-1px;margin-bottom:12px;font-size:42px;font-weight:700;line-height:1.2}.hero-title em{color:#7ba05b;font-style:normal}.hero-sub{color:#7a6e68;margin-bottom:32px;font-size:16px}.hero-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.stat-card{text-align:center;opacity:0;background:#fff;border:1px solid #e8e0d5;border-radius:16px;padding:20px;animation:.5s forwards fadeUp}.stat-icon{border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;margin:0 auto 10px;font-size:20px;display:flex}.stat-value{font-family:var(--font-display);color:#3d3530;margin-bottom:4px;font-size:32px;font-weight:700;line-height:1}.stat-label{color:#7a6e68;font-size:13px}.section-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.page-container>section{margin-bottom:40px}.page-container>section:last-child{margin-bottom:0}.section-title{font-family:var(--font-display);color:#3d3530;font-size:24px;font-weight:700}.trips-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:48px;display:grid}.trip-card{cursor:pointer;opacity:0;color:inherit;background:#fff;border:1px solid #e8e0d5;border-radius:16px;text-decoration:none;transition:transform .2s,box-shadow .2s;animation:.5s forwards fadeUp;display:block;overflow:hidden}.trip-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px #3d35301f}.trip-card-cover{background:linear-gradient(135deg,#f2d6d0 0%,#a8c5d9 100%);justify-content:center;align-items:center;width:100%;height:160px;font-size:48px;display:flex;overflow:hidden}.trip-card-cover img{object-fit:cover;width:100%;height:100%;display:block}.trip-card-body{padding:16px}.trip-card-status{border-radius:9999px;align-items:center;gap:4px;margin-bottom:8px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.status-planning{color:#5a8fad;background:#a8c5d933}.status-ongoing{color:#c17a5e;background:#c17a5e26}.status-completed{color:#5a8a3a;background:#7ba05b1f}.trip-card-title{font-family:var(--font-display);color:#3d3530;margin-bottom:4px;font-size:18px;font-weight:600}.trip-card-dest{color:#7a6e68;margin-bottom:8px;font-size:13px}.trip-card-date{color:#a09890;font-size:12px}.empty-state{text-align:center;opacity:0;padding:60px 16px;animation:.5s forwards fadeUp}.empty-icon{opacity:.5;margin-bottom:16px;font-size:64px}.empty-title{font-family:var(--font-display);color:#3d3530;margin-bottom:8px;font-size:22px;font-weight:600}.empty-sub{color:#7a6e68;margin-bottom:24px;font-size:14px}.dest-tags{flex-wrap:wrap;gap:8px;margin-bottom:48px;display:flex}.dest-tag{color:#7a6e68;opacity:0;background:#fff;border:1px solid #e8e0d5;border-radius:9999px;align-items:center;gap:4px;padding:6px 14px;font-size:13px;animation:.4s forwards fadeUp;display:inline-flex}.dest-tag-count{color:#5a8a3a;background:#7ba05b1f;border-radius:9999px;padding:1px 7px;font-size:12px;font-weight:600}@media (width<=640px){.hero-title{font-size:32px}.trips-grid{grid-template-columns:1fr}.navbar-links{gap:0}.navbar-link span{display:none}.edit-layout{flex-direction:column}.edit-form{max-width:100%}.form-row{flex-direction:column;gap:12px}.stats-grid{grid-template-columns:repeat(2,1fr)!important}}.page-header{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.page-title{font-family:var(--font-display);color:#3d3530;font-size:32px;font-weight:700}.tab-bar{background:#fff9;border:1px solid #e8e0d5;border-radius:9999px;gap:4px;padding:4px;display:flex}.tab-btn{color:#7a6e68;cursor:pointer;background:0 0;border:none;border-radius:9999px;padding:8px 18px;font-family:inherit;font-size:14px;font-weight:500;transition:all .15s}.tab-btn:hover{background:#7ba05b14}.tab-active{background:#7ba05b;color:#fff!important}.tab-active:hover{background:#6a8e4e!important}.tab-content{opacity:0;animation:.3s forwards fadeUp}.edit-layout{gap:32px;display:flex}.edit-form{flex:1;max-width:none}.form-section{background:#fff;border:1px solid #e8e0d5;border-radius:16px;margin-bottom:24px;padding:28px}.form-label{color:#3d3530;margin-bottom:10px;font-size:15px;font-weight:600;display:block}.form-row{gap:24px;margin-top:16px;display:flex}.cover-uploader{cursor:pointer;border:2px dashed #e8e0d5;border-radius:12px;width:100%;height:280px;transition:border-color .15s;overflow:hidden}.cover-uploader:hover{border-color:#7ba05b}.cover-placeholder{flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.status-selector{gap:8px;display:flex}.status-btn{cursor:pointer;background:#fff;border:1.5px solid #e8e0d5;border-radius:9999px;padding:8px 16px;font-family:inherit;font-size:14px;transition:all .15s}.status-btn:hover{border-color:#7ba05b}.status-btn-active{color:#fff;background:#7ba05b;border-color:#7ba05b}.day-block{background:#faf7f2;border-radius:32px;margin-bottom:48px;padding:48px}.day-block-header{color:#3d3530;border-bottom:1px solid #e8e0d5;margin-bottom:32px;padding-bottom:20px;font-size:36px;font-weight:600}.event-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.add-event-btn{color:#7a6e68;cursor:pointer;background:0 0;border:1.5px dashed #e8e0d5;border-radius:8px;width:100%;margin-top:8px;padding:10px;font-family:inherit;font-size:14px;transition:all .15s;display:block}.add-event-btn:hover{color:#5a8a3a;border-color:#7ba05b}.form-actions{justify-content:flex-end;gap:24px;margin-top:48px;display:flex}.day-block-v2{background:#fff;border:1px solid #e8e0d5;border-radius:16px;width:100%;margin-bottom:20px;transition:box-shadow .2s;overflow:hidden}.day-block-v2:hover{box-shadow:0 4px 16px #3d35300f}.day-header-v2{background:linear-gradient(135deg,#faf7f2 0%,#f5f0e8 100%);border-bottom:1px solid #e8e0d5;justify-content:space-between;align-items:center;padding:20px 28px;display:flex}.day-number{color:#fff;background:#7ba05b;border-radius:9999px;justify-content:center;align-items:center;min-width:52px;height:28px;padding:0 12px;font-size:13px;font-weight:700;display:inline-flex}.day-date{color:#3d3530;font-size:15px;font-weight:600}.day-route{color:#7a6e68;background:#a8c5d933;border-radius:9999px;padding:4px 10px;font-size:13px}.day-content-v2{padding:32px}.day-row{flex-wrap:wrap;gap:20px;margin-bottom:24px;display:flex}.day-field{flex:1 1 0;min-width:180px}.day-field label{color:#7a6e68;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.day-field input,.day-field select{background:#fff;border:1.5px solid #e8e0d5;border-radius:12px;width:100%;padding:12px 14px;font-size:15px;transition:border-color .15s}.day-field input:focus,.day-field select:focus{border-color:#7ba05b;outline:none}.day-section-title{color:#3d3530;border-bottom:1px dashed #e8e0d5;margin:24px 0 14px;padding-bottom:8px;font-size:15px;font-weight:600}.event-row-v2{align-items:center;gap:12px;margin-bottom:14px;display:flex}.event-row-v2 select{background:#fff;border:1.5px solid #e8e0d5;border-radius:8px;width:100px;padding:8px 10px;font-size:13px}.event-row-v2 input[type=time]{border:1.5px solid #e8e0d5;border-radius:8px;width:90px;padding:8px 10px;font-size:13px}.event-row-v2 input[type=text]{border:1.5px solid #e8e0d5;border-radius:8px;flex:1;padding:8px 10px;font-size:14px}.event-row-v2 button{color:#c0624a;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:16px;transition:background .15s}.event-row-v2 button:hover{background:#c0624a1a}.add-event-btn-v2{color:#c17a5e;cursor:pointer;background:#c17a5e0a;border:1.5px dashed #c17a5e;border-radius:10px;width:100%;margin-top:12px;padding:12px;font-family:inherit;font-size:14px;font-weight:500;transition:all .15s;display:block}.add-event-btn-v2:hover{background:#c17a5e1a;border-color:#a85d42}.event-row-simple{align-items:center;gap:10px;margin-bottom:10px;display:flex}.event-row-simple input[type=time]{background:#fff;border:1.5px solid #e8e0d5;border-radius:10px;width:90px;padding:10px 12px;font-size:14px}.event-row-simple input[type=text]{background:#fff;border:1.5px solid #e8e0d5;border-radius:10px;padding:10px 12px;font-size:14px;transition:border-color .15s}.event-row-simple input:focus{border-color:#7ba05b;outline:none}.event-delete-btn{color:#c0624a;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px 10px;font-size:16px;transition:background .15s}.event-delete-btn:hover{background:#c0624a1a}.detail-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.trip-hero{background:linear-gradient(135deg,#f2d6d0 0%,#a8c5d9 100%);border-radius:20px;width:100%;height:340px;margin-bottom:28px;position:relative;overflow:hidden}.trip-hero-cover{object-fit:cover;width:100%;height:100%}.trip-hero-placeholder{background:linear-gradient(135deg,#f2d6d0 0%,#a8c5d9 100%);justify-content:center;align-items:center;width:100%;height:100%;font-size:80px;display:flex}.trip-hero-overlay{background:linear-gradient(#0000 0%,#0000008c 100%);padding:32px 32px 24px;position:absolute;bottom:0;left:0;right:0}.trip-hero-title{font-family:var(--font-display);color:#fff;text-shadow:0 1px 4px #0000004d;margin-bottom:8px;font-size:32px;font-weight:700}.trip-hero-meta{color:#ffffffe6;flex-wrap:wrap;gap:20px;font-size:14px;display:flex}.detail-tabs{border-bottom:2px solid #e8e0d5;gap:8px;margin-bottom:28px;padding-bottom:0;display:flex}.detail-tab{color:#7a6e68;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;border-radius:8px 8px 0 0;align-items:center;gap:6px;margin-bottom:-2px;padding:10px 20px;font-family:inherit;font-size:15px;font-weight:500;transition:all .2s;display:flex}.detail-tab:hover{color:#3d3530;background:#7ba05b0f}.detail-tab.active{color:#7ba05b;background:#7ba05b0f;border-bottom-color:#7ba05b}.detail-content{padding-top:4px}.overview-grid{flex-direction:column;gap:28px;display:flex}.overview-stats{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.stat-mini-card{text-align:center;background:#fff;border:1px solid #e8e0d5;border-radius:16px;padding:20px 12px;box-shadow:0 2px 8px #3d35300f}.stat-mini-value{color:#3d3530;font-size:28px;font-weight:700;font-family:var(--font-display)}.detail-cover{background:linear-gradient(135deg,#f2d6d0 0%,#a8c5d9 100%);border-radius:16px;width:100%;height:280px;overflow:hidden}.detail-meta{padding:20px 0}.detail-title{font-family:var(--font-display);color:#3d3530;font-size:28px;font-weight:700}.itinerary-day{margin-bottom:24px}.itinerary-day-header{color:#3d3530;border-bottom:1px solid #e8e0d5;margin-bottom:12px;padding-bottom:8px;font-size:16px;font-weight:600}.timeline{padding-left:24px;position:relative}.timeline:before{content:"";background:#e8e0d5;width:2px;position:absolute;top:0;bottom:0;left:7px}.timeline-item{align-items:flex-start;gap:10px;margin-bottom:16px;display:flex;position:relative}.timeline-dot{background:#7ba05b;border:2px solid #fff;border-radius:50%;width:10px;height:10px;position:absolute;top:6px;left:-20px}.timeline-item.type-transport .timeline-dot{background:#5a8fad}.timeline-item.type-hotel .timeline-dot{background:#7b8ec7}.timeline-item.type-food .timeline-dot{background:#d4956a}.timeline-item.type-attraction .timeline-dot{background:#e8b86d}.timeline-item.type-shopping .timeline-dot{background:#c17a5e}.timeline-item.type-other .timeline-dot{background:#b0a49c}.timeline-time{color:#7a6e68;min-width:44px;font-size:13px;font-weight:600}.timeline-icon{font-size:16px}.timeline-body{flex:1}.timeline-title{color:#3d3530;font-size:15px;font-weight:500}.timeline-location{color:#7a6e68;margin-top:2px;font-size:13px}.timeline-note{color:#b0a49c;margin-top:2px;font-size:12px}.photo-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.photo-item{aspect-ratio:1;cursor:pointer;border-radius:12px;transition:transform .2s;position:relative;overflow:hidden}.photo-item:hover{transform:scale(1.02)}.photo-item:hover .photo-delete{opacity:1}.photo-delete{color:#fff;cursor:pointer;opacity:0;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;transition:opacity .15s;display:flex;position:absolute;top:6px;right:6px}.lightbox{z-index:100;cursor:pointer;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.expense-summary{background:linear-gradient(135deg,#faf7f2 0%,#f2d6d0 100%);border-radius:16px;margin-bottom:24px;padding:32px}.expense-total{font-family:var(--font-display);color:#3d3530;font-size:42px;font-weight:700}.expense-chart{background:#fff;border:1px solid #e8e0d5;border-radius:16px;margin-bottom:20px;padding:20px}.expense-bar-row{align-items:center;gap:12px;margin-bottom:12px;display:flex}.expense-bar-track{background:#f2eee8;border-radius:6px;flex:1;height:12px;overflow:hidden}.expense-bar-fill{background:linear-gradient(90deg,#7ba05b,#e8b86d);border-radius:6px;height:100%;transition:width .4s}.expense-form{background:#fff;border:1px solid #e8e0d5;border-radius:16px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px;padding:16px;display:flex}.expense-item{background:#fff;border:1px solid #e8e0d5;border-radius:12px;align-items:center;gap:12px;margin-bottom:8px;padding:14px 16px;display:flex}.modal-overlay{z-index:90;background:#3d353066;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:20px;width:100%;overflow:hidden;box-shadow:0 24px 64px #00000026}.modal-header{justify-content:space-between;align-items:center;padding:20px 24px 0;display:flex}.modal-title{font-family:var(--font-display);color:#3d3530;font-size:20px;font-weight:600}.modal-close{color:#7a6e68;cursor:pointer;background:0 0;border:none;padding:4px;font-size:18px}.modal-body{padding:20px 24px 24px}.settings-card{background:#fff;border:1px solid #e8e0d5;border-radius:16px;margin-bottom:16px;padding:24px}.settings-section-title{font-family:var(--font-display);color:#3d3530;margin-bottom:16px;font-size:18px;font-weight:600}.settings-row{border-bottom:1px solid #f2eee8;justify-content:space-between;align-items:center;padding:12px 0;display:flex}.settings-row:last-child{border-bottom:none}.settings-label{color:#3d3530;font-size:14px}.settings-value{color:#7a6e68;font-size:14px}.settings-btn{cursor:pointer;text-align:left;background:#faf7f2;border:none;border-radius:12px;align-items:center;gap:14px;width:100%;margin-bottom:8px;padding:16px;font-family:inherit;transition:background .15s;display:flex}.settings-btn:hover{background:#f2eee8}.settings-btn-danger{background:#c0624a0f}.settings-btn-danger:hover{background:#c0624a1f}.settings-btn-title{color:#3d3530;font-size:15px;font-weight:500}.settings-btn-desc{color:#7a6e68;margin-top:2px;font-size:13px}.cloud-notice{text-align:center;background:linear-gradient(135deg,#a8c5d926,#f2d6d026);border:1px dashed #e8e0d5;border-radius:16px;padding:24px}.version-card{background:#fff;border:1px solid #e8e0d5;border-radius:12px;padding:16px 20px;transition:box-shadow .15s}.version-card:hover{box-shadow:0 4px 12px #3d353014}.version-badge{color:#5a8a3a;background:#7ba05b1a;border-radius:9999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}@media (width<=480px){.photo-grid{grid-template-columns:repeat(2,1fr)}.expense-form{flex-direction:column}.expense-form select,.expense-form input{width:100%!important}}.stats-grid-v2{grid-template-columns:1.4fr 1fr 1fr 1fr;align-items:stretch;gap:16px;margin-bottom:48px;display:grid}.stat-card-main{cursor:default;opacity:0;background:linear-gradient(145deg,#fdfaf5,#f7f2e8);border:1.5px solid #c17a5e33;border-radius:16px;padding:28px;transition:all .25s cubic-bezier(.34,1.56,.64,1);animation:.5s cubic-bezier(.34,1.56,.64,1) forwards cardIn;position:relative;overflow:hidden;box-shadow:0 4px 20px #3d342814}.stat-card-main:hover{transform:translateY(-4px);box-shadow:0 8px 32px #3d342824}.stat-card-main:before{content:"";pointer-events:none;background-image:repeating-linear-gradient(0deg,#0000,#0000 12px,#c17a5e08 12px 13px);position:absolute;inset:0}.stat-card-main .stat-icon-wrap{background:#c17a5e1a;border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:16px;font-size:24px;display:flex}.stat-card-main .stat-value{font-family:var(--font-display);color:#c17a5e;letter-spacing:-2px;margin-bottom:6px;font-size:52px;font-weight:800;line-height:1}.stat-card-main .stat-label{color:#7a6e68;letter-spacing:.5px;margin-bottom:16px;font-size:14px;font-weight:600}.stat-progress{margin-top:12px}.stat-progress-track{background:#c17a5e1f;border-radius:3px;height:6px;margin-bottom:6px;overflow:hidden}.stat-progress-fill{background:linear-gradient(90deg,#c17a5e,#e8b4a0);border-radius:3px;height:100%;transition:width 1s cubic-bezier(.34,1.56,.64,1)}.stat-progress-label{color:#7a6e68;justify-content:space-between;font-size:11px;display:flex}.stat-progress-label strong{color:#c17a5e;font-weight:600}.stat-card-sec{cursor:default;opacity:0;background:#fff;border:1px solid #d4c5b033;border-radius:16px;padding:24px;transition:all .25s cubic-bezier(.34,1.56,.64,1);animation:.5s cubic-bezier(.34,1.56,.64,1) forwards cardIn;box-shadow:0 4px 20px #3d342814}.stat-card-sec:hover{transform:translateY(-4px);box-shadow:0 8px 32px #3d342824}.stat-card-sec .stat-icon-wrap{border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:12px;font-size:20px;display:flex}.stat-card-sec .stat-value{font-family:var(--font-display);color:#3d3530;letter-spacing:-1px;margin-bottom:4px;font-size:36px;font-weight:700;line-height:1}.stat-card-sec .stat-label{color:#7a6e68;font-size:13px;font-weight:500}.stat-card-days .stat-icon-wrap{background:#a8c5d933}.stat-card-money .stat-icon-wrap{background:#c17a5e1f}.stat-card-done .stat-icon-wrap{background:#7ba05b26}.stat-card-days .stat-value{color:#a8c5d9}.stat-card-money .stat-value{color:#c17a5e}.stat-card-done .stat-value{color:#7ba05b}@keyframes cardIn{0%{opacity:0;transform:scale(.85)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}.stamp-grid{scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;gap:14px;margin-bottom:48px;padding-bottom:8px;display:flex;overflow-x:auto}.stamp-grid::-webkit-scrollbar{display:none}.stamp-card{text-align:center;cursor:default;scroll-snap-align:start;opacity:0;background:#fff;border:1.5px dashed #d4c5b0;border-radius:14px 18px 12px 16px;flex:none;width:130px;padding:18px 14px;transition:all .25s cubic-bezier(.34,1.56,.64,1);animation:.4s cubic-bezier(.34,1.56,.64,1) forwards stampIn;position:relative;box-shadow:0 4px 20px #3d342814}.stamp-card:hover{border-color:#7ba05b;transform:translateY(-6px)rotate(-1.5deg);box-shadow:0 8px 32px #3d342824}@keyframes stampIn{0%{opacity:0;transform:scale(.7)rotate(-5deg)}to{opacity:1;transform:scale(1)rotate(0)}}.stamp-icon{margin-bottom:10px;font-size:36px;line-height:1;display:block}.stamp-divider{background:linear-gradient(90deg,#0000,#d4c5b0,#0000);height:1.5px;margin:8px 0}.stamp-city{color:#3d3530;font-size:15px;font-weight:700;font-family:var(--font-display);margin-bottom:4px}.stamp-count{color:#7ba05b;margin-bottom:8px;font-size:12px;font-weight:600}.stamp-date{color:#7a6e68;font-size:11px;font-family:var(--font-display);opacity:.8}.stamp-card:after{content:"";background:#7ba05b26;border:1px solid #7ba05b4d;border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:6px}@media (width<=768px){.stats-grid-v2{grid-template-columns:1fr 1fr}.stat-card-main{grid-column:1/-1}.stat-card-main .stat-value{font-size:64px}}@media (width<=480px){.stats-grid-v2{grid-template-columns:1fr 1fr;gap:12px}.stat-card-main{padding:20px}.stat-card-main .stat-value{font-size:56px}.stat-card-sec .stat-value{font-size:28px}.stamp-card{width:110px}}.anniversary-card{background:linear-gradient(135deg,#fdf9f5 0%,#f8f3ed 100%);border:1.5px solid #e8e0d5;border-radius:20px;max-width:480px;padding:32px;position:relative;overflow:hidden;box-shadow:0 4px 20px #3d35300f}.anniversary-card:before{content:"💕";opacity:.06;font-size:120px;position:absolute;top:-20px;right:-20px;transform:rotate(-15deg)}.anniversary-today{background:linear-gradient(135deg,#7ba05b14,#e8b4a814)}.anniversary-icon{margin-bottom:8px;font-size:32px}.anniversary-name{font-family:var(--font-display);color:#3d3530;margin-bottom:16px;font-size:18px;font-weight:600}.anniversary-label{color:#7a6e68;margin-bottom:4px;font-size:14px}.anniversary-countdown{align-items:baseline;gap:8px;margin-bottom:16px;display:flex}.anniversary-days{font-family:var(--font-display);color:#7ba05b;font-size:56px;font-weight:700;line-height:1}.anniversary-unit{color:#7a6e68;font-size:18px}.anniversary-years{color:#7a6e68;border-top:1px dashed #e8e0d5;padding-top:12px;font-size:13px}.lunar-tag{color:#5a8fad;background:#a8c5d926;border-radius:4px;margin-left:8px;padding:2px 6px;font-size:11px;display:inline-block}.anniversary-celebrate{color:#7ba05b;margin-bottom:12px;font-size:15px;font-weight:600}.anniversary-date-big{font-family:var(--font-display);color:#7ba05b;margin-bottom:8px;font-size:32px;font-weight:700}.anniversary-together{color:#7a6e68;font-size:14px}.badge-wall{background:#fff;border:1.5px solid #e8e0d5;border-radius:20px;padding:28px}.badge-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.badge-title{font-family:var(--font-display);font-size:16px;font-weight:600}.badge-count{color:#7a6e68;font-size:13px}.badge-grid{grid-template-columns:repeat(4,1fr);gap:24px;display:grid}.badge-item{background:#fff;border:1px solid #e8e0d5;border-radius:16px;flex-direction:column;align-items:center;gap:12px;padding:20px 12px;display:flex}.badge-icon{cursor:default;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;font-size:36px;transition:transform .2s;display:flex;position:relative}.badge-icon:hover{transform:scale(1.1)}.badge-icon.unlocked{background:linear-gradient(135deg,#7ba05b1f,#a8c5d926);box-shadow:0 0 20px #7ba05b33}.badge-icon.locked{filter:grayscale();opacity:.5;background:#f2eee8}.badge-icon.progress{background:linear-gradient(135deg,#7ba05b1f,#e8b4a826)}.badge-icon.progress:after{content:"";background:#e8e0d5;border-radius:2px;width:40px;height:4px;position:absolute;bottom:-4px;left:50%;transform:translate(-50%)}.badge-name{color:#3d3530;text-align:center;font-size:14px;font-weight:600}.badge-status{border-radius:6px;padding:4px 10px;font-size:12px}.badge-status.unlocked{color:#7ba05b;background:#7ba05b1f}.badge-status.locked{color:#7a6e68;background:#f2eee8}.badge-status.progress{color:#c17a5e;background:#e8b4a826}.badge-unlock-overlay{z-index:9999;background:#0009;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.badge-unlock-card{text-align:center;background:#fff;border-radius:24px;padding:48px;animation:.5s cubic-bezier(.34,1.56,.64,1) unlockPop}.badge-unlock-icon{background:linear-gradient(135deg,#7ba05b1f,#a8c5d933);border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;margin:0 auto 24px;font-size:64px;animation:2s ease-in-out infinite unlockPulse;display:flex;box-shadow:0 0 40px #7ba05b4d}@keyframes unlockPulse{0%,to{transform:scale(1);box-shadow:0 0 40px #7ba05b4d}50%{transform:scale(1.05);box-shadow:0 0 60px #7ba05b80}}@keyframes unlockPop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.badge-unlock-title{font-family:var(--font-display);color:#3d3530;margin-bottom:8px;font-size:20px;font-weight:600}.badge-unlock-name{color:#7ba05b;margin-bottom:16px;font-size:16px;font-weight:600}.badge-unlock-desc{color:#7a6e68;font-size:14px}.report-screen{text-align:center;background:linear-gradient(#fdf9f5 0%,#f8f3ed 50%,#f5efe8 100%);border:1.5px solid #e8e0d5;border-radius:24px;flex-direction:column;justify-content:center;min-height:500px;padding:48px 32px;display:flex;position:relative;overflow:hidden}.report-screen:before{content:"✈️";opacity:.3;font-size:24px;position:absolute;top:30px;left:20px}.report-screen:after{content:"🌍";opacity:.3;font-size:24px;position:absolute;bottom:30px;right:20px}.report-year{font-family:var(--font-display);color:#7ba05b;opacity:.9;margin-bottom:24px;font-size:72px;font-weight:700;line-height:1}.report-title{font-family:var(--font-display);color:#3d3530;margin-bottom:8px;font-size:22px;font-weight:600}.report-subtitle{color:#7a6e68;margin-bottom:32px;font-size:16px}.report-icons{letter-spacing:8px;margin-bottom:40px;font-size:32px}.report-stats{flex-direction:column;gap:20px;margin-bottom:32px;display:flex}.report-stat-item{justify-content:center;align-items:baseline;gap:8px;display:flex}.report-stat-value{font-family:var(--font-display);color:#7ba05b;font-size:36px;font-weight:700}.report-stat-label{color:#7a6e68;font-size:16px}.report-fav-city{margin-bottom:16px;font-size:48px}.report-city-name{font-family:var(--font-display);color:#3d3530;margin-bottom:12px;font-size:28px;font-weight:700}.report-city-desc{color:#7a6e68;font-size:14px;font-style:italic}.report-ending{font-family:var(--font-display);color:#3d3530;margin-bottom:8px;font-size:24px;font-weight:600}.report-ending-heart{margin-bottom:32px;font-size:28px}.report-share-btns{justify-content:center;gap:12px;display:flex}.report-share-btn{cursor:pointer;border:none;border-radius:9999px;padding:10px 20px;font-size:13px;font-weight:500;transition:all .2s}.report-share-btn.primary{color:#fff;background:#7ba05b}.report-share-btn.secondary{color:#3d3530;background:#fff;border:1.5px solid #e8e0d5}.detail-hero{background:linear-gradient(135deg,#a8c5d9 0%,#f2d6d0 100%);height:380px;position:relative;overflow:hidden}.detail-hero-img{object-fit:cover;width:100%;height:100%}.detail-hero-gradient{background:linear-gradient(#0000,#000000b3);height:180px;position:absolute;bottom:0;left:0;right:0}.detail-hero-content{color:#fff;position:absolute;bottom:32px;left:48px;right:48px}.detail-hero-title{text-shadow:0 2px 12px #0000004d;margin-bottom:10px;font-size:36px;font-weight:700}.detail-hero-meta{flex-wrap:wrap;align-items:center;gap:14px;font-size:14px;display:flex}.detail-hero-tag{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff3;border-radius:9999px;align-items:center;gap:6px;padding:5px 12px;display:flex}.detail-hero-status{color:#7ba05b;background:#fffffff2;border-radius:9999px;padding:7px 18px;font-size:13px;font-weight:600;position:absolute;top:72px;right:48px}.detail-top-bar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:100;background:#fffffff2;border-bottom:1px solid #e8e0d5;justify-content:space-between;align-items:center;height:56px;padding:0 32px;display:flex;position:fixed;top:0;left:0;right:0}.detail-top-left{align-items:center;gap:16px;display:flex}.detail-top-right{gap:8px;display:flex}.back-btn{color:#3d3530;cursor:pointer;background:#fff;border:1.5px solid #e8e0d5;border-radius:9999px;align-items:center;gap:6px;padding:8px 16px;font-family:inherit;font-size:14px;transition:all .2s;display:flex}.back-btn:hover{background:#7ba05b0d;border-color:#7ba05b}.edit-btn{cursor:pointer;color:#3d3530;background:#fff;border:1.5px solid #e8e0d5;border-radius:9999px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s}.edit-btn:hover{border-color:#7ba05b}.delete-btn-top{color:#c0624a;cursor:pointer;background:0 0;border:none;padding:8px 12px;font-size:13px}.delete-btn-top:hover{opacity:.8}.detail-tabs-v2{z-index:50;background:#fff;border-bottom:1px solid #e8e0d5;padding:0 48px;position:sticky;top:56px}.detail-tabs-inner{justify-content:center;align-items:center;gap:16px;padding:14px 0;display:flex}.tab-group{background:#faf7f2;border-radius:12px;gap:4px;padding:4px;display:flex}.tab-item-v2{color:#7a6e68;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:8px;padding:10px 20px;font-family:inherit;font-size:15px;font-weight:500;transition:all .2s;display:flex}.tab-item-v2:hover{background:#7ba05b14}.tab-item-v2.active{color:#fff;background:#7ba05b}.tab-icon{font-size:16px}.detail-main-content{max-width:1400px;margin:0 auto;padding:32px 48px 100px}.overview-section{margin-bottom:40px}.section-title-v2{color:#3d3530;align-items:center;gap:10px;margin-bottom:20px;font-size:18px;font-weight:600;display:flex}.section-title-v2:before{content:"";background:#7ba05b;border-radius:2px;width:4px;height:22px}.stats-bar{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:40px;display:grid}.stat-mini{text-align:center;background:#fff;border:1px solid #e8e0d5;border-radius:16px;padding:20px 16px}.stat-mini-icon{margin-bottom:8px;font-size:28px}.stat-mini-value{color:#3d3530;font-size:28px;font-weight:700}.stat-mini-label{color:#7a6e68;margin-top:4px;font-size:13px}.day-cards-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.day-mini-card{cursor:pointer;background:#fff;border:1px solid #e8e0d5;border-radius:16px;padding:20px;transition:all .2s}.day-mini-card:hover{border-color:#7ba05b;transform:translateY(-2px);box-shadow:0 4px 20px #7ba05b1f}.day-mini-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.day-mini-num{color:#7ba05b;font-size:16px;font-weight:700}.day-mini-date{color:#7a6e68;font-size:12px}.day-mini-events{color:#7a6e68;font-size:13px;line-height:1.8}.day-mini-event{align-items:center;gap:6px;display:flex}.two-cols{grid-template-columns:1fr 1fr;gap:24px;display:grid}.journal-box{background:#fff;border:1px solid #e8e0d5;border-radius:16px;padding:24px}.journal-text{color:#3d3530;margin-bottom:16px;font-size:15px;line-height:1.8}.journal-more{color:#7ba05b;cursor:pointer;font-size:14px;font-weight:500}.journal-more:hover{opacity:.8}.expense-box{background:linear-gradient(135deg,#f2d6d0 0%,#f8e8e4 100%);border-radius:16px;justify-content:space-between;align-items:center;padding:24px;display:flex}.expense-info{text-align:center;flex:1}.expense-label{color:#7a6e68;margin-bottom:4px;font-size:13px}.expense-value{color:#c17a5e;font-size:36px;font-weight:700}.expense-sub{color:#7a6e68;margin-top:4px;font-size:13px}.expense-chart-mini{width:100px;height:100px}.itinerary-layout{grid-template-columns:200px 1fr;gap:32px;display:grid}.day-nav-sidebar{background:#fff;border:1px solid #e8e0d5;border-radius:16px;height:fit-content;padding:16px 12px;position:sticky;top:140px}.day-nav-title{color:#7a6e68;margin-bottom:12px;padding-left:8px;font-size:14px;font-weight:600}.day-nav-list{flex-direction:column;gap:4px;display:flex}.day-nav-item{color:#7a6e68;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px;font-weight:500;transition:all .2s;display:flex}.day-nav-item:hover{background:#faf7f2}.day-nav-item.active{color:#fff;background:#7ba05b}.day-nav-num{font-size:15px;font-weight:600}.day-nav-date-sm{opacity:.7;font-size:12px}.timeline-area{padding-top:0}.day-timeline-card{background:#fff;border:1px solid #e8e0d5;border-radius:20px;margin-bottom:24px;padding:28px}.day-timeline-header{border-bottom:1px solid #e8e0d5;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:20px;display:flex}.day-timeline-title{color:#3d3530;font-size:20px;font-weight:700}.day-timeline-tags{gap:8px;display:flex}.day-timeline-tag{color:#7a6e68;background:#faf7f2;border-radius:6px;padding:4px 10px;font-size:12px}.day-info-bar{background:#faf7f2;border-radius:12px;gap:16px;margin-bottom:20px;padding:16px 20px;display:flex}.day-info-item{align-items:center;gap:8px;display:flex}.weather-icon{font-size:24px}.weather-text{color:#3d3530;font-size:14px;font-weight:500}.temperature{color:#7a6e68;margin-left:4px;font-size:14px}.budget-icon{font-size:20px}.budget-label{color:#7a6e68;font-size:13px}.budget-value{color:#c17a5e;font-size:15px;font-weight:600}.transport-card{background:linear-gradient(135deg,#e8f4f0 0%,#f0f7f4 100%);border:1px solid #d4e8e0;border-radius:16px;margin-bottom:16px;padding:20px}.transport-header{align-items:center;gap:12px;margin-bottom:16px;display:flex}.transport-icon{font-size:28px}.transport-type{color:#3d3530;font-size:15px;font-weight:600}.transport-route{color:#7a6e68;margin-left:auto;font-size:14px}.transport-details{flex-wrap:wrap;gap:12px;display:flex}.detail-item{background:#fff;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;display:flex}.detail-label{color:#7a6e68}.detail-value{color:#3d3530;font-weight:500}.detail-value.highlight{color:#5a8fad;font-weight:600}.hotel-card{background:linear-gradient(135deg,#f5f0e8 0%,#faf7f2 100%);border:1px solid #e8e0d5;border-radius:16px;margin-bottom:16px;padding:20px}.hotel-header{align-items:center;gap:12px;margin-bottom:10px;display:flex}.hotel-icon{font-size:24px}.hotel-name{color:#3d3530;flex:1;font-size:16px;font-weight:600}.hotel-cost{color:#c17a5e;font-size:15px;font-weight:600}.hotel-address{color:#7a6e68;align-items:flex-start;gap:6px;font-size:13px;display:flex}.address-icon{flex-shrink:0;font-size:14px}.address-text{line-height:1.5}.events-section{margin-top:8px}.events-title{color:#3d3530;margin-bottom:16px;padding-left:4px;font-size:14px;font-weight:600}.timeline-v2{padding-left:32px;position:relative}.timeline-v2:before{content:"";background:#e8e0d5;border-radius:1px;width:2px;position:absolute;top:8px;bottom:8px;left:9px}.timeline-v2-item{padding-bottom:24px;position:relative}.timeline-v2-dot{background:#7ba05b;border:3px solid #fff;border-radius:50%;width:14px;height:14px;position:absolute;top:6px;left:-26px;box-shadow:0 2px 8px #0000001a}.timeline-v2-time{color:#7a6e68;margin-bottom:6px;font-size:13px}.timeline-v2-title{color:#3d3530;margin-bottom:4px;font-size:16px;font-weight:600}.timeline-v2-location{color:#7a6e68;align-items:center;gap:4px;font-size:13px;display:flex}.timeline-v2-note{color:#7a6e68;margin-top:4px;font-size:13px;font-style:italic}.photo-header-v2{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.photo-count{color:#7a6e68;font-size:15px}.upload-btn-v2{color:#fff;cursor:pointer;background:#7ba05b;border:none;border-radius:9999px;align-items:center;gap:8px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:500;transition:all .2s;display:flex}.upload-btn-v2:hover{background:#6a8e4e}.photo-date-group{margin-bottom:32px}.photo-date-label{color:#3d3530;align-items:center;gap:12px;margin-bottom:16px;font-size:14px;font-weight:600;display:flex}.photo-date-label:after{content:"";background:#e8e0d5;flex:1;height:1px}.masonry-grid{column-count:4;column-gap:16px}.masonry-item{break-inside:avoid;cursor:pointer;border-radius:16px;margin-bottom:16px;transition:transform .2s;position:relative;overflow:hidden}.masonry-item:hover{transform:scale(1.02)}.masonry-item img{width:100%;display:block}.photo-overlay{opacity:0;background:linear-gradient(#0000,#0009);padding:40px 12px 12px;transition:opacity .2s;position:absolute;bottom:0;left:0;right:0}.masonry-item:hover .photo-overlay{opacity:1}.photo-caption{color:#fff;font-size:12px}.photo-delete-btn{color:#fff;cursor:pointer;opacity:0;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;transition:opacity .2s;display:flex;position:absolute;top:10px;right:10px}.masonry-item:hover .photo-delete-btn{opacity:1}.expense-hero-card{text-align:center;color:#fff;background:linear-gradient(135deg,#c17a5e 0%,#d4956a 100%);border-radius:24px;margin-bottom:32px;padding:48px}.expense-hero-label{opacity:.9;margin-bottom:8px;font-size:15px}.expense-hero-value{font-size:56px;font-weight:700}.expense-hero-sub{opacity:.85;margin-top:12px;font-size:15px}.expense-stats-grid{grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:32px;display:grid}.expense-stat-item{text-align:center;background:#fff;border:1px solid #e8e0d5;border-radius:16px;padding:20px}.expense-stat-icon{margin-bottom:8px;font-size:24px}.expense-stat-label{color:#7a6e68;margin-bottom:4px;font-size:12px}.expense-stat-value{color:#3d3530;font-size:18px;font-weight:700}.chart-section{background:#fff;border:1px solid #e8e0d5;border-radius:20px;margin-bottom:32px;padding:32px}.chart-title{text-align:center;margin-bottom:24px;font-size:16px;font-weight:600}.donut-chart-wrap{justify-content:center;padding:20px 0;display:flex}.donut-chart{width:240px;height:240px}.legend-grid{flex-wrap:wrap;justify-content:center;gap:16px;margin-top:24px;display:flex}.legend-item{color:#7a6e68;align-items:center;gap:8px;font-size:13px;display:flex}.legend-dot{border-radius:50%;width:12px;height:12px}.legend-value{color:#3d3530;margin-left:4px;font-weight:600}.daily-section{margin-bottom:32px}.daily-title{margin-bottom:20px;font-size:16px;font-weight:600}.daily-cards-scroll{gap:16px;padding-bottom:8px;display:flex;overflow-x:auto}.daily-cards-scroll::-webkit-scrollbar{height:0}.daily-card{text-align:center;cursor:pointer;background:#fff;border:1px solid #e8e0d5;border-radius:16px;flex-shrink:0;width:140px;padding:20px 16px;transition:all .2s}.daily-card:hover{border-color:#7ba05b;box-shadow:0 4px 16px #7ba05b1a}.daily-card-day{color:#7a6e68;margin-bottom:8px;font-size:13px}.daily-card-amount{color:#c17a5e;font-size:20px;font-weight:700}.detail-section{background:#fff;border:1px solid #e8e0d5;border-radius:20px;padding:28px}.detail-title{margin-bottom:20px;font-size:16px;font-weight:600}.expense-list{max-height:400px;overflow-y:auto}.expense-row{border-bottom:1px solid #e8e0d5;align-items:center;gap:16px;padding:16px 0;display:flex}.expense-row:last-child{border-bottom:none}.expense-info-row{flex:1}.expense-category{color:#3d3530;font-size:15px;font-weight:500}.expense-note-row{color:#7a6e68;margin-top:2px;font-size:13px}.expense-amount{color:#c17a5e;font-size:17px;font-weight:700}.expense-delete-row{color:#c0624a;cursor:pointer;opacity:0;background:0 0;border:none;padding:4px 8px;font-size:14px;transition:opacity .2s}.expense-row:hover .expense-delete-row{opacity:1}.fab-expense{color:#fff;cursor:pointer;z-index:200;background:#c17a5e;border:none;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:32px;transition:all .2s;display:flex;position:fixed;bottom:32px;right:48px;box-shadow:0 8px 24px #c17a5e66}.fab-expense:hover{background:#a86a50;transform:scale(1.08)}.expense-modal-overlay{z-index:300;background:#0006;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.expense-modal-overlay.show{display:flex}.expense-modal-box{background:#fff;border-radius:20px;width:480px;max-width:90vw;padding:32px}.expense-modal-title{margin-bottom:24px;font-size:20px;font-weight:700}.expense-modal-row{margin-bottom:20px}.expense-modal-label{color:#3d3530;margin-bottom:8px;font-size:14px;font-weight:500;display:block}.category-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.category-btn{cursor:pointer;background:#fff;border:1.5px solid #e8e0d5;border-radius:10px;padding:10px;font-family:inherit;font-size:13px;transition:all .2s}.category-btn:hover{border-color:#7ba05b}.category-btn.active{color:#7ba05b;background:#7ba05b1a;border-color:#7ba05b}.expense-modal-input{border:1.5px solid #e8e0d5;border-radius:12px;width:100%;padding:12px 16px;font-family:inherit;font-size:15px}.expense-modal-input:focus{border-color:#7ba05b;outline:none}.expense-modal-actions{gap:12px;margin-top:28px;display:flex}.expense-modal-btn{cursor:pointer;border-radius:10px;flex:1;padding:12px;font-family:inherit;font-size:15px;font-weight:500}.expense-modal-cancel{color:#3d3530;background:#faf7f2;border:none}.expense-modal-save{color:#fff;background:#7ba05b;border:none}@media (width<=1024px){.day-cards-grid{grid-template-columns:repeat(2,1fr)}.masonry-grid{column-count:3}.expense-stats-grid{grid-template-columns:repeat(3,1fr)}.itinerary-layout{grid-template-columns:160px 1fr}}@media (width<=768px){.detail-hero{height:280px}.detail-hero-content{bottom:20px;left:20px;right:20px}.detail-hero-title{font-size:24px}.detail-hero-status{top:60px;right:20px}.detail-main-content{padding:20px}.stats-bar{grid-template-columns:repeat(2,1fr)}.day-cards-grid,.two-cols{grid-template-columns:1fr}.masonry-grid{column-count:2}.expense-stats-grid{grid-template-columns:repeat(2,1fr)}.itinerary-layout{grid-template-columns:1fr}.day-nav-sidebar{display:none}.fab-expense{width:56px;height:56px;bottom:20px;right:20px}}.stats-strip{background:#fff;border:1.5px solid #e8e0d5;border-radius:16px;gap:0;margin-bottom:32px;display:flex;overflow:hidden;box-shadow:0 4px 20px #3d34280f}.stats-strip-item{text-align:center;cursor:default;border-right:1px solid #e8e0d5;flex:1;padding:18px 16px;transition:background .15s}.stats-strip-item:last-child{border-right:none}.stats-strip-item:hover{background:#7ba05b0a}.stats-strip-value{color:#3d3530;letter-spacing:-.5px;margin-bottom:2px;font-family:Inter,sans-serif;font-size:26px;font-weight:700}.stats-strip-label{color:#7a6e68;font-size:12px;font-weight:500}.control-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:32px;display:flex}.search-box{flex:1;min-width:220px;position:relative}.search-icon{pointer-events:none;font-size:15px;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.status-tabs{background:#fff;border:1.5px solid #e8e0d5;border-radius:12px;flex-shrink:0;gap:2px;padding:4px;display:flex}.status-tab{color:#7a6e68;cursor:pointer;background:0 0;border:none;border-radius:9px;align-items:center;gap:5px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s;display:flex}.status-tab:hover{color:#3d3530;background:#7ba05b0f}.status-tab.active{color:#fff;background:#7ba05b;font-weight:600}.tab-count{background:#ffffff59;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}.status-tab:not(.active) .tab-count{color:#7a6e68;background:#3d353014}.view-toggle{background:#fff;border:1.5px solid #e8e0d5;border-radius:10px;flex-shrink:0;gap:2px;padding:3px;display:flex}.view-btn{color:#7a6e68;cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:4px;padding:7px 12px;font-family:inherit;font-size:13px;transition:all .15s;display:flex}.view-btn.active{color:#fff;background:#7ba05b;font-weight:600}.btn-new{color:#fff;cursor:pointer;white-space:nowrap;background:#7ba05b;border:none;border-radius:12px;flex-shrink:0;align-items:center;gap:8px;padding:12px 24px;font-family:inherit;font-size:15px;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 4px 12px #7ba05b4d}.btn-new:hover{background:#6a8e4e;transform:translateY(-1px);box-shadow:0 6px 16px #7ba05b59}.section-head{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.section-head-title{color:#3d3530;align-items:center;gap:8px;font-family:Inter,Noto Sans SC,sans-serif;font-size:20px;font-weight:700;display:flex}.section-head-link{color:#7ba05b;cursor:pointer;font-size:13px;font-weight:500;text-decoration:none}.section-head-link:hover{text-decoration:underline}.trip-scroll{scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none;gap:20px;padding-bottom:16px;display:flex;overflow-x:auto}.trip-scroll::-webkit-scrollbar{display:none}.completed-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;display:grid}.section-divider{color:#d4c5b0;align-items:center;gap:12px;margin:48px 0;display:flex}.section-divider:before,.section-divider:after{content:"";background:#e8e0d5;flex:1;height:1px}.trip-card-new{cursor:pointer;color:inherit;opacity:0;background:#fff;border:1.5px solid #e8e0d5;border-radius:20px;text-decoration:none;transition:all .25s;animation:.4s forwards cardIn;display:block;overflow:hidden}.trip-card-new:hover{border-color:#7ba05b4d;transform:translateY(-4px);box-shadow:0 16px 40px #3d35301a}.trip-card-scroll{scroll-snap-align:start;flex-shrink:0;width:320px}.card-new-cover{background:linear-gradient(135deg,#f2d6d0,#a8c5d9);height:175px;position:relative;overflow:hidden}.card-new-cover img{object-fit:cover;width:100%;height:100%}.card-cover-placeholder{justify-content:center;align-items:center;width:100%;height:100%;font-size:52px;display:flex}.card-status-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600;position:absolute;top:14px;left:14px}.badge-planning{color:#3a6a85;background:#a8c5d9e0}.badge-ongoing{color:#c17a5e;background:#ffffffe6}.badge-completed{color:#5a8a3a;background:#ffffffe6}.card-new-body{padding:18px 20px 20px}.card-dest-label{color:#c97c5d;text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:4px;margin-bottom:6px;font-size:12px;font-weight:600;display:flex}.card-new-title{color:#3d3530;margin-bottom:8px;font-family:Inter,Noto Sans SC,sans-serif;font-size:17px;font-weight:700;line-height:1.35}.card-new-meta{color:#7a6e68;flex-wrap:wrap;align-items:center;gap:12px;font-size:13px;display:flex}.card-new-meta span{align-items:center;gap:4px;display:flex}.card-new-divider{background:#f2eee8;width:100%;height:1px;margin:14px 0}.card-new-footer{justify-content:space-between;align-items:center;display:flex}.card-budget-label{color:#3d3530;font-size:13px;font-weight:600}.card-budget-label span{color:#c97c5d;margin-left:4px;font-size:17px;font-weight:700}.card-progress{color:#7a6e68;align-items:center;gap:6px;font-size:12px;display:flex}.progress-bar-bg{background:#e8e0d5;border-radius:999px;width:60px;height:4px;overflow:hidden}.progress-bar-fill{background:#7ba05b;border-radius:999px;height:100%;transition:width .4s}.page-subtitle{color:#7a6e68;margin-top:2px;font-size:14px}@media (width<=768px){.stats-strip{flex-wrap:wrap}.stats-strip-item{border-bottom:1px solid #e8e0d5;min-width:50%}.stats-strip-item:nth-child(2n){border-right:none}.stats-strip-item:last-child{border-bottom:none}.control-bar{flex-direction:column;align-items:stretch}.status-tabs{-ms-overflow-style:none;scrollbar-width:none;overflow-x:auto}.status-tabs::-webkit-scrollbar{display:none}.view-toggle{align-self:flex-end}.completed-grid{grid-template-columns:1fr}}.overview-section-title{color:#3d3530;align-items:center;gap:8px;margin-bottom:14px;font-size:16px;font-weight:600;display:flex}.day-mini-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.day-title{color:#3d3530;align-items:baseline;gap:10px;margin-bottom:8px;font-size:15px;font-weight:600;display:flex}.day-num{color:#7ba05b;font-size:12px;font-weight:600}.day-date{color:#b0a49c;letter-spacing:.5px;font-size:13px;font-weight:400}.day-content{color:#7a6e68;font-size:13px;line-height:1.6}.day-header{color:#3d3530;align-items:center;gap:10px;margin-bottom:12px;font-size:15px;font-weight:600;display:flex}.itinerary-section{flex-direction:column;gap:32px;display:flex}.transport-info{color:#5a8fad;background:#5a8fad14;border-radius:8px;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;font-size:13px;display:flex}.hotel-info{color:#7b8ec7;background:#7b8ec714;border-radius:8px;align-items:center;gap:8px;margin-top:6px;padding:8px 12px;font-size:13px;display:flex}.weather-badge{color:#7a6e68;background:#faf7f2;border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-size:12px;display:inline-flex}.journal-section{flex-direction:column;gap:16px;display:flex}.journal-hint{color:#b0a49c;font-size:12px}.journal-editor{resize:vertical;color:#3d3530;background:#fff;border:1.5px solid #e8e0d5;border-radius:12px;width:100%;min-height:200px;padding:16px;font-family:inherit;font-size:15px;line-height:1.8;transition:border-color .2s}.journal-editor:focus{border-color:#7ba05b;outline:none}.journal-preview{color:#3d3530;white-space:pre-wrap;background:#faf7f2;border-radius:12px;padding:16px;font-size:15px;line-height:1.8}.photos-section{flex-direction:column;gap:20px;display:flex}.photos-toolbar{justify-content:flex-end;display:flex}.photos-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.expenses-section{flex-direction:column;gap:16px;display:flex}.expenses-toolbar{justify-content:space-between;align-items:center;display:flex}.expenses-total{color:#c97c5d;font-size:18px;font-weight:700;font-family:var(--font-display)}.expenses-list{flex-direction:column;gap:10px;display:flex}.expense-summary-item{background:#fff;border:1px solid #e8e0d5;border-radius:10px;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.expense-note{color:#7a6e68;font-size:13px}.expense-delete{color:#c97c5d;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:14px;transition:background .2s}.expense-delete:hover{background:#c97c5d1a}.form-group{flex-direction:column;gap:6px;display:flex}.modal-actions{justify-content:flex-end;gap:12px;margin-top:16px;display:flex}.annual-report-page{z-index:1000;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);flex-direction:column;justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0}.report-toolbar{z-index:1100;gap:8px;display:flex;position:fixed;top:16px;right:16px}.report-toolbar-btn{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fffc;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;transition:all .2s;display:flex}.report-toolbar-btn:hover{color:#fff;background:#ffffff40}.report-toolbar-btn.export:disabled{opacity:.5;cursor:not-allowed}.report-toolbar-btn.export{font-size:16px}.annual-report-loading,.annual-report-error{color:#fff;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.loading-spinner{border:3px solid #fff3;border-top-color:#fff;border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.report-progress{z-index:10;background:#ffffff1a;height:3px;position:absolute;top:0;left:0;right:0}.report-progress-bar{background:#fff;height:100%;transition:width .3s}.report-nav-arrows{pointer-events:none;z-index:20;justify-content:space-between;padding:0 12px;display:flex;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.report-nav-arrow{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;cursor:pointer;pointer-events:auto;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;transition:all .3s;display:flex}.report-nav-arrow:hover:not(:disabled){background:#fff3}.report-nav-arrow:disabled{opacity:.2;cursor:default}.report-nav-dots{justify-content:center;gap:8px;margin-top:16px;display:flex}.report-nav-dot{cursor:pointer;background:#ffffff4d;border:none;border-radius:50%;width:8px;height:8px;padding:0;transition:all .3s}.report-nav-dot.active{background:#fff;border-radius:4px;width:24px}.report-slider-container{border-radius:28px;width:100%;max-width:400px;overflow:hidden;box-shadow:0 25px 80px #0006}.report-slider{transition:transform .6s cubic-bezier(.4,0,.2,1);display:flex}.report-slide{flex-direction:column;min-width:100%;min-height:620px;padding:36px 28px;display:flex;position:relative;overflow:hidden}.slide-content{flex-direction:column;flex:1;display:flex}.slide-intro{background:linear-gradient(145deg,#f2d6d0 0%,#e8b86d 25%,#a8c5d9 50%,#7ba05b 75%,#4a7c59 100%) 0 0/300% 300%;animation:8s infinite gradientShift}@keyframes gradientShift{0%,to{background-position:0%}50%{background-position:100%}}.year-badge{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;letter-spacing:3px;text-align:center;background:#fff3;border-radius:9999px;margin:0 auto 24px;padding:8px 20px;font-size:13px;font-weight:600}.year-number{color:#fff;text-shadow:0 8px 32px #00000026;text-align:center;margin-bottom:12px;font-size:100px;font-weight:900;line-height:1}.year-subtitle{color:#fffffff2;text-align:center;margin-bottom:36px;font-size:20px;font-weight:500}.intro-stats{text-align:center;flex-direction:column;gap:10px;margin-bottom:36px;display:flex}.intro-stats p{color:#ffffffe6;font-size:15px}.intro-stats strong{font-size:20px;font-weight:700}.intro-cta{color:var(--color-terracotta);cursor:pointer;background:#fff;border:none;border-radius:9999px;margin:0 auto;padding:16px 40px;font-size:16px;font-weight:600;transition:all .3s;display:block;box-shadow:0 8px 24px #00000026}.intro-cta:hover{transform:translateY(-2px)scale(1.02);box-shadow:0 12px 32px #0003}.intro-quote{text-align:center;color:#ffffffb3;font-size:12px;font-style:italic;position:absolute;bottom:28px;left:28px;right:28px}.slide-stats{background:linear-gradient(#faf7f2 0%,#f2eee8 100%)}.stats-header{text-align:center;margin-bottom:28px}.stats-label{color:var(--color-text-light);margin-bottom:4px;font-size:14px}.stats-big-number{color:var(--color-terracotta);font-size:72px;font-weight:900;line-height:1}.stats-unit{color:var(--color-text-light);font-size:18px;font-weight:500}.stats-grid{grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:24px;display:grid}.stat-card{text-align:center;background:#fff;border:1px solid #e8e0d599;border-radius:16px;padding:18px 16px;box-shadow:0 2px 12px #3d35300f}.stat-icon{margin-bottom:8px;font-size:28px}.stat-value{color:var(--color-text);font-size:28px;font-weight:700}.stat-label{color:var(--color-text-light);margin-top:2px;font-size:12px}.stats-extra{background:linear-gradient(135deg,#7ba05b1a 0%,#4a7c591a 100%);border-radius:14px;align-items:center;gap:14px;padding:16px;display:flex}.extra-icon{font-size:36px}.extra-text{flex:1}.extra-title{color:var(--color-text);margin-bottom:4px;font-size:14px;font-weight:600}.extra-desc{color:var(--color-text-light);font-size:12px;line-height:1.5}.slide-map{background:linear-gradient(160deg,#a8c5d9 0%,#4a7c59 100%)}.map-header{text-align:center;color:#fff;margin-bottom:24px}.map-icon{margin-bottom:12px;font-size:64px}.map-title{margin-bottom:6px;font-size:22px;font-weight:700}.map-subtitle{opacity:.85;font-size:13px}.map-cities{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:20px;display:flex}.city-tag{color:var(--color-text);background:#fffffff2;border-radius:9999px;padding:10px 18px;font-size:14px;font-weight:500;box-shadow:0 4px 12px #0000001a}.map-stats{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px;display:grid}.map-stat{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center;color:#fff;background:#ffffff26;border-radius:12px;padding:14px 10px}.map-stat-value{font-size:24px;font-weight:700}.map-stat-label{opacity:.85;margin-top:2px;font-size:11px}.map-highlight{background:#fffffff2;border-radius:16px;align-items:center;gap:14px;padding:18px;display:flex}.highlight-icon{font-size:40px}.highlight-text{flex:1}.highlight-label{color:var(--color-text-light);text-transform:uppercase;letter-spacing:1px;font-size:11px}.highlight-value{color:var(--color-text);margin-top:4px;font-size:18px;font-weight:700}.slide-timeline{background:var(--color-cream)}.timeline-header{text-align:center;margin-bottom:28px}.timeline-year{color:var(--color-sage);margin-bottom:6px;font-size:48px;font-weight:900;line-height:1}.timeline-title{color:var(--color-text-light);font-size:16px}.timeline-list{padding-left:20px;position:relative}.timeline-list:before{content:"";background:linear-gradient(to bottom, var(--color-sage), var(--color-blush));border-radius:1px;width:2px;position:absolute;top:8px;bottom:8px;left:5px}.timeline-item{margin-bottom:20px;padding-left:16px;position:relative}.timeline-item:before{content:"";background:var(--color-sage);border:3px solid var(--color-cream);border-radius:50%;width:12px;height:12px;position:absolute;top:6px;left:-19px}.timeline-item:last-child:before{background:#e8b86d}.timeline-content{flex-direction:column;gap:4px;display:flex}.timeline-month{color:var(--color-sage);font-size:12px;font-weight:600}.timeline-trip{color:var(--color-text);font-size:16px;font-weight:600}.timeline-meta{color:var(--color-text-light);font-size:12px}.timeline-tags{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.timeline-tag{color:var(--color-sage);background:#7ba05b1f;border-radius:9999px;padding:3px 10px;font-size:11px;font-weight:500}.slide-highlight{background:linear-gradient(#faf7f2 0%,#f2d6d0 50%,#e8d5cf 100%)}.highlight-badge-top{text-align:center;margin-bottom:16px}.highlight-badge-top span{color:#fff;background:#e8b86d;border-radius:9999px;padding:8px 20px;font-size:13px;font-weight:600}.highlight-photo{aspect-ratio:4/3;background:linear-gradient(135deg, var(--color-sage) 0%, var(--color-forest) 100%);border-radius:20px;justify-content:center;align-items:center;width:100%;margin-bottom:20px;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 32px #4a7c5940}.highlight-photo img{object-fit:cover;width:100%;height:100%}.highlight-photo-placeholder{font-size:72px}.highlight-photo-count{color:var(--color-text-light);background:#ffffffe6;border-radius:8px;padding:6px 12px;font-size:11px;position:absolute;bottom:12px;right:12px}.highlight-content{text-align:center}.highlight-trip-name{color:var(--color-text);margin-bottom:4px;font-size:24px;font-weight:700}.highlight-trip-date{color:var(--color-text-light);margin-bottom:16px;font-size:13px}.highlight-quote{color:var(--color-text-light);background:#ffffffb3;border-radius:12px;margin-bottom:16px;padding:16px 24px;font-size:15px;font-style:italic;line-height:1.7;position:relative}.highlight-quote:before{content:"\"";color:var(--color-terracotta);opacity:.3;font-size:32px;position:absolute;top:8px;left:12px}.highlight-features{justify-content:center;gap:16px;display:flex}.feature-item{text-align:center}.feature-icon{margin-bottom:4px;font-size:24px}.feature-text{color:var(--color-text-light);font-size:11px}.slide-expenses{background:var(--color-cream)}.expenses-header{text-align:center;margin-bottom:24px}.expenses-label{color:var(--color-text-light);margin-bottom:4px;font-size:14px}.expenses-total{color:var(--color-terracotta);font-size:44px;font-weight:900;line-height:1}.expenses-compare{color:var(--color-sage);margin-top:8px;font-size:12px}.compare-badge{color:var(--color-sage);font-weight:500}.expenses-chart{flex-direction:column;gap:12px;margin-bottom:20px;display:flex}.expense-row{align-items:center;gap:12px;display:flex}.expense-icon{text-align:center;width:28px;font-size:20px}.expense-label{width:48px;color:var(--color-text);font-size:13px;font-weight:500}.expense-bar-wrap{background:#e8e0d5;border-radius:5px;flex:1;height:10px;overflow:hidden}.expense-bar{border-radius:5px;height:100%;transition:width .6s}.expense-value{text-align:right;width:64px;color:var(--color-text);font-size:13px;font-weight:600}.expense-percent{text-align:right;width:36px;color:var(--color-text-light);font-size:12px}.expenses-insight{background:linear-gradient(135deg,#c97c5d1a 0%,#e8b86d1a 100%);border-radius:14px;align-items:center;gap:12px;padding:16px;display:flex}.insight-icon{font-size:28px}.insight-text{color:var(--color-text);flex:1;font-size:13px;line-height:1.6}.slide-keyword{background:linear-gradient(145deg,#f2d6d0 0%,#c97c5d 60%,#a86850 100%)}.keyword-top{text-align:center;margin-bottom:28px}.keyword-label{color:#ffffffb3;letter-spacing:4px;text-transform:uppercase;margin-bottom:16px;font-size:12px}.keyword-word{color:#fff;text-shadow:0 6px 24px #0003;margin-bottom:8px;font-size:52px;font-weight:900}.keyword-word-en{color:#ffffffb3;letter-spacing:6px;font-size:14px}.keyword-traits{flex-direction:column;gap:14px;margin-bottom:28px;display:flex}.trait-item{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff26;border-radius:12px;align-items:center;gap:14px;padding:14px 18px;display:flex}.trait-icon{font-size:28px}.trait-text{color:#fff;font-size:14px;line-height:1.5}.keyword-footer{text-align:center;color:#ffffffd9;font-size:14px;line-height:1.8}.slide-ending{background:linear-gradient(#1a1a2e 0%,#3d3530 50%,#4a423d 100%)}.ending-content{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.ending-thanks{color:#fff9;letter-spacing:2px;margin-bottom:24px;font-size:14px}.ending-main-text{color:#fff;margin-bottom:28px;font-size:22px;line-height:1.8}.ending-main-text strong{color:#e8b86d}.ending-heart{font-size:48px;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.ending-buttons{flex-direction:column;gap:12px;width:100%;margin-bottom:16px;display:flex}.ending-btn{cursor:pointer;border:none;border-radius:14px;padding:16px;font-size:16px;font-weight:600;transition:all .3s}.ending-btn.primary{background:linear-gradient(135deg, var(--color-sage) 0%, #4a7c59 100%);color:#fff}.ending-btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px #4a7c5966}.ending-btn.secondary{color:#ffffffb3;background:0 0;border:1.5px solid #ffffff40}.ending-btn.secondary:hover{background:#ffffff14}.ending-btn:disabled{opacity:.6;cursor:not-allowed}.ending-footer{text-align:center;color:#fff6;font-size:11px;line-height:1.6}.annual-report-section{margin-bottom:32px}.annual-report-card{background:linear-gradient(135deg,#f2d6d0 0%,#e8b86d 50%,#a8c5d9 100%);border-radius:20px;align-items:center;gap:16px;padding:20px 24px;text-decoration:none;transition:all .3s;display:flex;box-shadow:0 4px 20px #e8b86d40}.annual-report-card:hover{transform:translateY(-3px);box-shadow:0 8px 32px #e8b86d59}.annual-report-icon{flex-shrink:0;font-size:40px}.annual-report-content{flex:1}.annual-report-title{color:#fff;text-shadow:0 1px 4px #0000001a;margin-bottom:4px;font-size:17px;font-weight:700}.annual-report-desc{color:#ffffffd9;font-size:13px}.annual-report-arrow{color:#fff;opacity:.8;font-size:20px}.map-page{gap:24px;height:calc(100vh - 140px);min-height:600px;display:flex}.map-container{background:#fff;border-radius:20px;flex:1;justify-content:center;align-items:center;padding:24px;display:flex;overflow:hidden;box-shadow:0 2px 12px #3d35300f}.map-stats-panel{background:#fff;border-radius:20px;flex-direction:column;flex-shrink:0;gap:20px;width:280px;padding:24px;display:flex;overflow-y:auto;box-shadow:0 2px 12px #3d35300f}.map-stats-hero{text-align:center;border-bottom:1px solid var(--color-border);padding:20px 0}.map-stats-number{color:var(--color-sage);margin-bottom:8px;font-size:48px;font-weight:800;line-height:1}.map-stats-label{color:var(--color-text);margin-bottom:4px;font-size:14px;font-weight:600}.map-stats-sub{color:var(--color-text-light);font-size:12px}.map-stats-list{flex:1;overflow-y:auto}.map-stats-list-title{color:var(--color-text);border-bottom:1px solid var(--color-border);margin-bottom:12px;padding-bottom:8px;font-size:13px;font-weight:600}.map-stats-empty{color:var(--color-text-light);text-align:center;padding:24px 0;font-size:13px;line-height:1.6}.map-province-item{background:var(--color-cream);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:10px 12px;transition:all .2s;display:flex}.map-province-item:hover{background:#e8e0d5}.map-province-item.selected{background:var(--color-sage);color:#fff}.map-province-item.selected .map-province-cities,.map-province-item.selected .map-province-count{color:#fffc}.map-province-left{flex:1;min-width:0}.map-province-name{margin-bottom:2px;font-size:14px;font-weight:600}.map-province-cities{color:var(--color-text-light);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.map-province-right{flex-shrink:0;margin-left:12px}.map-province-count{color:var(--color-sage);font-size:12px;font-weight:600}.map-stats-footer{border-top:1px solid var(--color-border);padding-top:12px}.map-stats-tip{color:var(--color-text-light);text-align:center;font-size:11px;line-height:1.5}.map-page-loading{height:60vh;color:var(--color-text-light);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.map-loading-spinner{border:3px solid var(--color-border);border-top-color:var(--color-sage);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@media (width<=768px){.map-page{flex-direction:column;height:auto}.map-container{min-height:400px;padding:16px}.map-stats-panel{width:100%;max-height:300px}}.destination-picker-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#3d353080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.destination-picker-modal{background:var(--color-cream);border-radius:16px;flex-direction:column;width:90%;max-width:900px;max-height:85vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #3d35304d}.picker-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.picker-header h3{color:var(--color-text);font-size:18px;font-weight:600}.picker-close{cursor:pointer;width:32px;height:32px;color:var(--color-text-light);background:0 0;border:none;border-radius:8px;font-size:16px;transition:all .2s}.picker-close:hover{background:var(--color-border);color:var(--color-text)}.picker-search{padding:12px 24px;position:relative}.picker-search input{border:1px solid var(--color-border);background:#fff;border-radius:8px;width:100%;padding:10px 40px 10px 16px;font-size:14px;transition:border-color .2s}.picker-search input:focus{border-color:var(--color-sage);outline:none}.search-clear{background:var(--color-border);cursor:pointer;width:20px;height:20px;color:var(--color-text-light);border:none;border-radius:50%;font-size:10px;position:absolute;top:50%;right:32px;transform:translateY(-50%)}.search-results{max-height:200px;padding:0 24px 12px;overflow-y:auto}.search-result-item{cursor:pointer;background:#fff;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:10px 16px;transition:all .2s;display:flex}.search-result-item:hover{background:#f5f2ed;transform:translate(4px)}.result-city{color:var(--color-text);font-weight:500}.result-province{color:var(--color-text-light);font-size:12px}.picker-content{flex:1;min-height:400px;display:flex;overflow:hidden}.picker-map{background:#f5f2ed;flex:1;padding:16px}.picker-cities{border-left:1px solid var(--color-border);background:#fff;width:280px;padding:16px;overflow-y:auto}.cities-header{border-bottom:1px solid var(--color-border);align-items:center;gap:12px;margin-bottom:12px;padding-bottom:12px;display:flex}.back-btn{border:1px solid var(--color-border);color:var(--color-text-light);cursor:pointer;background:0 0;border-radius:6px;padding:6px 12px;font-size:12px;transition:all .2s}.back-btn:hover{background:var(--color-border);color:var(--color-text)}.province-name{color:var(--color-text);font-weight:600}.cities-list{flex-direction:column;gap:6px;display:flex}.city-item{cursor:pointer;background:#fafafa;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 14px;transition:all .2s;display:flex}.city-item:hover{background:#f0ede8;transform:translate(4px)}.city-item.selected{background:var(--color-sage);color:#fff}.city-item.selected .city-name{color:#fff}.city-item.selected .city-pinyin{color:#ffffffb3}.city-name{color:var(--color-text);font-weight:500}.city-pinyin{color:var(--color-text-light);text-transform:capitalize;font-size:11px}.cities-placeholder{text-align:center;height:100%;color:var(--color-text-light);flex-direction:column;justify-content:center;align-items:center;display:flex}.cities-placeholder p{margin:4px 0}.cities-placeholder .hint{opacity:.7;font-size:12px}.picker-current{border-top:1px solid var(--color-border);color:var(--color-text-light);background:#f5f2ed;padding:12px 24px;font-size:13px}.picker-current strong{color:var(--color-sage)}@media (width<=768px){.destination-picker-modal{width:95%;max-height:90vh}.picker-content{flex-direction:column}.picker-map{height:300px}.picker-cities{border-left:none;border-top:1px solid var(--color-border);width:100%;max-height:250px}.app-layout-mobile{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-layout-mobile .app-main{flex-direction:column;flex:1;display:flex;overflow:hidden}.app-content-mobile{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;overflow-y:auto}.app-content-mobile::-webkit-scrollbar{width:0}.sidebar{display:none!important}}.mobile-topbar{background:var(--color-cream,#faf7f2);border-bottom:1px solid var(--color-border,#e8e0d5);flex-shrink:0;align-items:center;min-height:48px;padding:10px 16px 8px;display:flex}.mobile-topbar-title{color:var(--color-text,#3d3530);letter-spacing:-.3px;white-space:nowrap;text-overflow:ellipsis;flex:1;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:17px;font-weight:700;overflow:hidden}.mobile-back-btn{width:36px;height:36px;color:var(--color-text,#3d3530);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin-right:4px;font-size:20px;transition:background .15s;display:flex}.mobile-back-btn:active{background:var(--color-border,#e8e0d5)}.mobile-topbar-actions{flex-shrink:0;width:36px}@media (width<=768px){button:active,.btn:active,.btn-primary:active,.btn-secondary:active,.sidebar-logout:active{opacity:.85;transition:transform .1s,opacity .1s;transform:scale(.97)}a:active,.sidebar-link:active{opacity:.7;transition:transform .1s,opacity .1s;transform:scale(.98)}.tab-item,button,a{touch-action:manipulation}.trip-card:active,.stamp-card:active,.stat-sec:active{transition:transform .1s;transform:scale(.98)}*{-webkit-tap-highlight-color:#7ba05b1a}}.tab-item:after{content:"";background:#7ba05b;border-radius:3px 3px 0 0;width:20px;height:3px;transition:transform .2s;position:absolute;bottom:-2px;left:50%;transform:translate(-50%)scaleX(0)}.tab-item.active:after{transform:translate(-50%)scaleX(1)}.bottom-tabbar{position:fixed}.tab-item.active .tab-label{font-weight:600}@media (width>=769px){.bottom-tabbar{display:none!important}}@media (width<=768px){.trips-grid{grid-template-columns:1fr;gap:12px;margin-bottom:32px}.trip-card{border:1px solid #e8e0d5;border-radius:12px;flex-direction:column;margin-bottom:0;overflow:hidden}.trip-card-cover{background:linear-gradient(135deg,#f2d6d0 0%,#a8c5d9 100%);border-radius:12px 12px 0 0;justify-content:center;align-items:center;width:100%;height:160px;display:flex;position:relative;overflow:hidden}.trip-card-cover img{object-fit:cover;width:100%;height:100%;transition:transform .3s;display:block}.trip-card:hover .trip-card-cover img{transform:scale(1.05)}.trip-card-cover>span{font-size:48px;line-height:1;transition:transform .3s}.trip-card:hover .trip-card-cover>span{transform:scale(1.05)}.trip-card-cover:after{content:"";pointer-events:none;background:linear-gradient(#0000 0%,#140f0cb8 100%);height:60%;position:absolute;bottom:0;left:0;right:0}.trip-card-cover .cover-text{z-index:1;color:#fff;pointer-events:none;padding:8px 12px 10px;position:absolute;bottom:0;left:0;right:0}.cover-text .cover-title{white-space:normal;-webkit-line-clamp:2;text-shadow:0 1px 3px #00000080;-webkit-box-orient:vertical;width:100%;font-size:13px;font-weight:700;line-height:1.3;display:-webkit-box;overflow:hidden}.cover-text .cover-date{color:#ffffffd1;white-space:nowrap;text-overflow:ellipsis;width:100%;margin-top:2px;font-size:11px;overflow:hidden}.trip-card-body{padding:14px 16px}.trip-card-status{border-radius:9999px;align-items:center;gap:4px;margin-bottom:6px;padding:3px 10px;font-size:11px;display:inline-flex}.trip-card-title{color:#3d3530;margin-bottom:4px;font-size:14px;font-weight:700;line-height:1.3}.trip-card-dest{color:#7ba05b;margin-bottom:2px;font-size:12px}.trip-card-date{color:#888;font-size:11px}.page-header{flex-wrap:wrap;gap:12px;margin-bottom:20px}.page-title{font-size:22px;font-weight:700}.tab-bar{scrollbar-width:none;border-radius:12px;width:100%;overflow-x:auto}.tab-bar::-webkit-scrollbar{display:none}.tab-btn{white-space:nowrap;padding:8px 12px;font-size:13px}.stats-strip{border-radius:12px;margin-bottom:20px}.stats-strip-item{padding:12px 8px}.stats-strip-value{font-size:20px}.stats-strip-label{font-size:10px}.control-bar{gap:8px;margin-bottom:20px}.search-box{flex:100%;min-width:0}.status-tabs{scrollbar-width:none;width:100%;overflow-x:auto}.status-tabs::-webkit-scrollbar{display:none}.status-tab{white-space:nowrap;padding:6px 10px;font-size:12px}.edit-layout{flex-direction:column;gap:0}.form-section{border-radius:12px;margin-bottom:16px;padding:20px 16px}.form-label{margin-bottom:8px;font-size:14px}.form-row{gap:12px;margin-top:12px}.form-row>*{width:100%!important;min-width:0!important}.cover-uploader{border-radius:10px;height:160px}.cover-placeholder{gap:6px}.status-selector{flex-wrap:wrap}.status-btn{border-radius:9999px;padding:7px 14px;font-size:13px}.form-actions{padding-top:16px}.submit-btn,.btn-primary{border-radius:12px;width:100%;padding:14px 20px;font-size:15px}.trip-preview-panel{display:none}.day-block{border-radius:16px;margin-bottom:20px;padding:20px 16px}.day-block-header{margin-bottom:16px;font-size:22px}.event-row-v2{gap:10px;margin-bottom:10px}.destination-picker-trigger{border-radius:10px;padding:12px 16px}.destination-value{font-size:14px}.map-province-item{padding:10px 14px}.city-item{padding:9px 14px}button,.status-btn,.tab-btn,.submit-btn,.btn-primary{-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:all .1s}button:active,.status-btn:active,.tab-btn:active,.submit-btn:active,.btn-primary:active{opacity:.88;transform:scale(.97)}}@supports (padding-bottom:env(safe-area-inset-bottom)){.app-container{padding-bottom:env(safe-area-inset-bottom)}}@media (width<=768px){input[type=text],input[type=date],input[type=number],input[type=email],input[type=password],select,textarea,.input-field{appearance:none;border-radius:10px;min-height:44px;padding:10px 14px;font-size:15px}textarea,.input-field{resize:vertical;min-height:80px}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237A6E68' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:36px}}@media (width<=480px){.page-title{font-size:20px}.stats-strip-item{padding:10px 6px}.stats-strip-value{font-size:18px}.stats-strip-label{font-size:9px}.form-section{margin-bottom:12px;padding:16px 12px}.cover-uploader{height:140px}}@media (width<=768px){.detail-top-bar{padding:0 16px}.back-btn{gap:0;padding:8px 12px;font-size:0}.back-btn:after{content:"返回";font-size:14px}.edit-btn,.delete-btn-top{padding:8px 12px;font-size:12px}.detail-tabs-v2{scrollbar-width:none;padding:0;overflow-x:auto}.detail-tabs-v2::-webkit-scrollbar{display:none}.detail-tabs-inner{justify-content:flex-start;gap:8px;padding:10px 16px}.tab-group{scrollbar-width:none;overflow-x:auto}.tab-group::-webkit-scrollbar{display:none}.tab-item-v2{white-space:nowrap;flex-shrink:0;padding:8px 14px;font-size:14px}.detail-main-content{padding:20px 16px 80px}.stats-bar{grid-template-columns:repeat(2,1fr);gap:12px}.stat-mini{padding:14px 10px}.stat-mini-value{font-size:22px}.stat-mini-label{font-size:11px}.day-cards-grid{grid-template-columns:1fr}.section-title-v2{font-size:16px}.overview-section{margin-bottom:28px}.share-btn{padding:8px 14px;font-size:13px}}@media (width<=480px){.detail-hero{height:220px}.detail-hero-title{font-size:20px}.detail-hero-meta{gap:8px;font-size:12px}.detail-hero-tag{padding:4px 10px;font-size:11px}.detail-hero-status{padding:5px 14px;font-size:11px;top:52px;right:16px}.detail-hero-content{bottom:16px;left:16px;right:16px}.tab-item-v2{gap:6px;padding:7px 12px;font-size:13px}.stats-bar{grid-template-columns:repeat(2,1fr)}.journal-content{border-radius:12px;padding:16px}.journal-text{font-size:15px;line-height:1.7}.photo-grid{gap:6px;grid-template-columns:repeat(2,1fr)!important}.photo-item{border-radius:8px;overflow:hidden}.expense-breakdown{padding:16px}.expense-item{padding:10px 0}.expense-item-name{font-size:14px}}@media (width<=768px){.annual-report-page{padding:16px 12px}.report-toolbar{gap:6px;top:12px;right:12px}.report-toolbar-btn{width:36px;height:36px;font-size:16px}.report-progress{height:2px}.report-slider-container{border-radius:20px;max-width:100%;box-shadow:0 16px 48px #00000059}.report-nav-arrows{padding:0 8px}.report-nav-arrow{border-radius:50%;width:36px;height:36px;font-size:16px}.report-nav-dots{gap:6px;margin-top:12px}.report-nav-dot{width:6px;height:6px}.report-nav-dot.active{border-radius:3px;width:20px}}@media (width<=480px){.annual-report-page{padding:12px 8px}.report-slider-container{border-radius:16px;box-shadow:0 12px 36px #0000004d}.report-toolbar{top:8px;right:8px}.report-toolbar-btn,.report-nav-arrow{width:32px;height:32px;font-size:14px}}.bottom-tabbar{height:calc(60px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);-webkit-backdrop-filter:blur(16px);z-index:100;background:#faf7f2f5;border-top:1.5px solid #e8e0d5;align-items:flex-start;padding-top:6px;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-item{color:#b0a49c;-webkit-tap-highlight-color:transparent;outline:none;flex-direction:column;flex:1;align-items:center;gap:3px;min-height:50px;padding:4px 0;text-decoration:none;transition:color .2s;display:flex}.tab-item .tab-icon{font-size:22px;line-height:1;transition:transform .2s}.tab-item .tab-label{font-size:10px;font-weight:500;line-height:1}.tab-item.active{color:#7ba05b}.tab-item.active .tab-icon{transform:scale(1.1)}.tab-item:active{transition:transform .1s;transform:scale(.92)}@media (hover:hover){.tab-item:hover:not(.active){color:#7ba05b}}
