/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:host,:root{--shimmer-angle:20deg}*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}}}@layer theme{:host,:root{--font-sans:"Inter","Noto Sans TC","PingFang TC",system-ui,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-lg:32rem;--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);--font-weight-medium:500;--font-weight-semibold:600;--radius-xs:.125rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:"Inter","Noto Sans TC","PingFang TC",system-ui,sans-serif;--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{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}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--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:var(--default-font-feature-settings,normal);font-variation-settings:var(--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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--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}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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:currentColor}@supports (color:color-mix(in lab,red,red)){::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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-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,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.top-4{top:calc(var(--spacing) * 4)}.top-\[50\%\]{top:50%}.right-4{right:calc(var(--spacing) * 4)}.left-\[50\%\]{left:50%}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.w-full{width:100%}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.min-w-0{min-width:calc(var(--spacing) * 0)}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-\[-50\%\],.translate-y-\[-50\%\]{translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.touch-none{touch-action:none}.resize{resize:both}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-input{border-color:var(--input)}.border-primary{border-color:var(--primary)}.bg-background{background-color:var(--background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-destructive{background-color:var(--destructive)}.bg-muted{background-color:var(--muted)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.text-center{text-align:center}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.text-muted-foreground{color:var(--muted-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{color:var(--color-white)}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.shadow-lg,.shadow-sm{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d)}.ring,.shadow-xs{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)}.ring-ring\/50{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.ring-ring\/50{--tw-ring-color:color-mix(in oklab,var(--ring) 50%,transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary) 80%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:ring-4:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-4:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring) 50%,transparent)}}.focus-visible\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus-visible\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[orientation\=horizontal\]\:h-1\.5[data-orientation=horizontal]{height:calc(var(--spacing) * 1.5)}.data-\[orientation\=horizontal\]\:h-full[data-orientation=horizontal]{height:100%}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:min-h-44[data-orientation=vertical]{min-height:calc(var(--spacing) * 44)}.data-\[orientation\=vertical\]\:w-1\.5[data-orientation=vertical]{width:calc(var(--spacing) * 1.5)}.data-\[orientation\=vertical\]\:w-auto[data-orientation=vertical]{width:auto}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical]{width:100%}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}@media (min-width:40rem){.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:text-left{text-align:left}}@media (min-width:48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.dark\:border-input:where([data-theme=dark],[data-theme=dark] *){border-color:var(--input)}.dark\:bg-destructive\/60:where([data-theme=dark],[data-theme=dark] *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:where([data-theme=dark],[data-theme=dark] *){background-color:color-mix(in oklab,var(--destructive) 60%,transparent)}}.dark\:bg-input\/30:where([data-theme=dark],[data-theme=dark] *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:where([data-theme=dark],[data-theme=dark] *){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}@media (hover:hover){.dark\:hover\:bg-accent\/50:where([data-theme=dark],[data-theme=dark] *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:where([data-theme=dark],[data-theme=dark] *):hover{background-color:color-mix(in oklab,var(--accent) 50%,transparent)}}.dark\:hover\:bg-input\/50:where([data-theme=dark],[data-theme=dark] *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:where([data-theme=dark],[data-theme=dark] *):hover{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:where([data-theme=dark],[data-theme=dark] *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:where([data-theme=dark],[data-theme=dark] *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive) 40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:where([data-theme=dark],[data-theme=dark] *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:where([data-theme=dark],[data-theme=dark] *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive) 40%,transparent)}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@media (prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}.home-stage:has(.ocean-particle-hero){isolation:isolate;position:relative}.home-stage>.home-intro{z-index:3;position:relative}.home-stage>.marine-map{z-index:1}.ocean-particle-hero{z-index:0;pointer-events:none;color:var(--ocean-accent,#82b6b2);contain:layout paint;position:absolute;inset:0 -4%;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 4% 6%,#000 23% 79%,#0000 100%);mask-image:linear-gradient(#0000 4% 6%,#000 23% 79%,#0000 100%)}.ocean-particle-hero:after{content:"";background:linear-gradient(105deg,var(--ocean-surface,#05090d29),transparent 58%);pointer-events:none;position:absolute;inset:0}.ocean-particle-canvas,.ocean-particle-fallback{pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.ocean-particle-hero[data-mode=webgl] .ocean-particle-fallback{display:none}.ocean-particle-hero[data-mode=fallback] .ocean-particle-canvas{visibility:hidden}@media (max-width:900px){.ocean-particle-hero{inset:0 -2%;-webkit-mask-image:linear-gradient(#0000 8%,#000 28% 78%,#0000);mask-image:linear-gradient(#0000 8%,#000 28% 78%,#0000)}}@media (max-width:700px){.ocean-particle-hero{inset:0 -4%;-webkit-mask-image:linear-gradient(#0000 6%,#000 23% 82%,#0000);mask-image:linear-gradient(#0000 6%,#000 23% 82%,#0000)}}@media (prefers-reduced-motion:reduce){.ocean-particle-hero{transition:none}}.home-stage .home-intro{container-type:inline-size}.home-stage .home-intro h1{letter-spacing:0;line-height:1.25}.home-stage .home-intro h1 .hero-greeting{font-family:var(--font-copy);letter-spacing:normal;white-space:nowrap;color:var(--ocean-text,#e4f0eb);text-shadow:0 2px 18px var(--ocean-shadow,#020d12);margin:0;font-size:clamp(1.5rem,11.1cqi,3.75rem);font-weight:410;line-height:1.08;display:block}.home-stage .home-intro h1 .hero-greeting:lang(en){letter-spacing:-.025em;white-space:normal;font-family:Inter,system-ui,sans-serif;font-size:clamp(1.8rem,8cqi,3.2rem);font-weight:450}.harbor-node:focus-visible,.harbor-node:hover{z-index:8;transform:translate(-50%,-50%)scale(1.12)}.harbor-node:focus-visible>div{opacity:1;visibility:visible}.port-detail-panel{z-index:70;overscroll-behavior:contain;border:1px solid var(--ocean-border,#82c7bf35);background:var(--ocean-surface,#0b1920f5);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);width:410px;max-width:calc(100vw - 32px);color:var(--ocean-text,#e7f0ef);box-shadow:0 20px 65px var(--ocean-shadow,#0005);scrollbar-width:thin;scrollbar-color:var(--ocean-accent,#527c79) transparent;border-radius:24px;outline:none;padding:24px;position:fixed;top:98px;bottom:24px;right:24px;overflow-y:auto}.port-detail-panel[data-state=open]{animation:panel-in .28s cubic-bezier(.2,.8,.2,1)}.port-detail-panel[data-state=closed]{animation:panel-out .18s ease-in}@keyframes panel-in{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@keyframes panel-out{to{opacity:0;transform:translate(24px)}}.panel-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.panel-heading p{color:var(--ocean-secondary,#9cb1b3);margin:0 0 9px;font-size:11px}.panel-heading h2{margin:0;font-size:27px;font-weight:600}.panel-heading>button{background:var(--ocean-surface,#1a2e35);border-radius:50%;padding:8px}.forecast-note,.missing-marine-data,.panel-source-label{color:var(--ocean-secondary,#93aaad);font-size:11px;line-height:1.7}.panel-source-label{margin:9px 0 20px}.panel-time{color:var(--ocean-secondary,#9cb1b3);align-items:center;gap:12px;font-size:12px;display:flex}.panel-time strong{color:var(--ocean-text,#d5ece7);font-variant-numeric:tabular-nums}.panel-time button{color:var(--ocean-secondary,#a3ceca);align-items:center;gap:5px;margin-left:auto;display:flex}.panel-risk{--risk-color:#91d6c9;margin:20px 0}.panel-risk.medium{--risk-color:#c0c99f}.panel-risk.high{--risk-color:#d6b280}.panel-risk.veryHigh{--risk-color:#d39990}.panel-risk>div:first-child{letter-spacing:.14em;color:var(--ocean-secondary,#a0b8ba);justify-content:space-between;align-items:center;font-size:10px;display:flex}.panel-risk>strong{font-variant-numeric:tabular-nums;font-size:64px;font-weight:500;line-height:1.35;display:block}.panel-risk>strong small{color:var(--ocean-secondary,#8ca4a8);margin-left:10px;font-size:13px}.risk-meter{background:var(--ocean-surface,#22343a);border-radius:10px;height:4px;overflow:hidden}.risk-meter i{background:var(--risk-color);height:100%;transition:width .28s,background .28s;display:block}.panel-readings{border-top:1px solid var(--ocean-border,#b0ddd41a);border-bottom:1px solid var(--ocean-border,#b0ddd41a);grid-template-columns:1fr 1fr;gap:16px;padding:20px 0;display:grid}.panel-readings article>span{color:var(--ocean-secondary,#8eaaad);margin-bottom:6px;font-size:11px;display:block}.panel-readings strong{font-variant-numeric:tabular-nums;font-size:25px;font-weight:500}.panel-readings small{color:var(--ocean-secondary,#8eaaad);font-size:12px}.panel-readings .tide-value{font-size:18px}.marine-timeline{margin-top:24px}.panel-section-head{justify-content:space-between;align-items:center;display:flex}.panel-section-head h3{font-size:14px;font-weight:500}.forecast-ranges{background:var(--ocean-surface,#152930);border-radius:9px;gap:3px;padding:3px;display:flex}.forecast-ranges button{color:var(--ocean-secondary,#8fa9ad);border-radius:6px;padding:5px 10px;font-size:11px}.forecast-ranges button[aria-pressed=true]{background:var(--ocean-surface,#28433f);color:var(--ocean-text,#c9e9e1)}.marine-trend-chart{width:100%;height:100px;margin:8px 0;overflow:visible}.marine-trend-chart polyline{fill:none;stroke:var(--ocean-accent,#83cabb);stroke-width:1.5px;stroke-linejoin:round}.marine-trend-chart circle{fill:var(--ocean-accent,#88b8ad)}.marine-trend-chart .best-point{fill:var(--ocean-accent,#deead7)}.chart-baseline{stroke:var(--ocean-border,#a0c7c522)}.chart-cursor{stroke:var(--ocean-border,#abcac56b);stroke-dasharray:2 3}.marine-time-ticks{grid-template-columns:repeat(8,1fr);gap:2px;margin-top:12px;display:grid}.marine-time-ticks button{min-height:46px;color:var(--ocean-secondary,#829fa3);border-radius:5px;flex-direction:column;align-items:center;padding:6px 0;font-size:10px;display:flex}.marine-time-ticks button.active{color:var(--ocean-text,#daf4e9);background:var(--ocean-surface,#243e39)}.marine-time-ticks small{min-height:12px;font-size:8px}.marine-time-ticks i{background:var(--ocean-accent,#c6dfb5);border-radius:50%;width:4px;height:4px;margin-top:2px}.panel-best{background:var(--ocean-surface,#182e2e);border-radius:9px;align-items:center;gap:8px;margin-top:12px;padding:12px;font-size:10px;display:flex}.panel-best>span{letter-spacing:.1em;color:var(--ocean-secondary,#a6c6af);font-size:8px}.panel-best>strong{font-weight:500}.panel-best>small{color:var(--ocean-secondary,#99b2aa);margin-left:auto}.forecast-empty{border:1px dashed var(--ocean-border,#7aacaa38);border-radius:12px;margin:16px 0;padding:22px 16px;font-size:12px}.forecast-empty p{color:var(--ocean-secondary,#90abae);line-height:1.8}.forecast-empty button{color:var(--ocean-secondary,#b4dacf);text-decoration:underline}.panel-guidance{color:var(--ocean-text,#c1d7d2);border-left:2px solid var(--ocean-accent,#67968c);margin:20px 0;padding-left:12px;font-size:12px;line-height:1.8}.panel-analyze{background:var(--ocean-accent,#78bdb0);width:100%;color:var(--ocean-on-accent,#08231f);border-radius:10px;justify-content:space-between;align-items:center;padding:14px 16px;font-size:13px;font-weight:600;display:flex}.panel-footnote{color:var(--ocean-secondary,#85a0a5);margin-top:14px;font-size:10px;line-height:1.7;display:block}.sheet-handle{display:none}@media (max-width:700px){.port-detail-panel{width:100%;max-width:none;max-height:80dvh;padding:16px 22px calc(22px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;inset:auto 0 0}.sheet-handle{background:var(--ocean-accent,#567470);border-radius:4px;width:36px;height:3px;margin:0 auto 18px;display:block}.port-detail-panel[data-state=open]{animation:sheet-in .28s}.port-detail-panel[data-state=closed]{animation:sheet-out .18s}@keyframes sheet-in{0%{opacity:0;transform:translateY(30px)}}@keyframes sheet-out{to{opacity:0;transform:translateY(30px)}}}@media (prefers-reduced-motion:reduce){.harbor-node,.port-detail-panel[data-state],.risk-meter i{transition:none;animation:none}}.harbor-node.medium>i{background:var(--ocean-accent,#c0c99f)}.harbor-node.high>i{background:var(--ocean-accent,#d6b280)}.harbor-node.veryHigh>i{background:var(--ocean-accent,#d39990)}.harbor-node.selected>i{outline:1px solid var(--ocean-accent,#d5efe4);outline-offset:4px}.port-detail-panel button:focus-visible{outline:2px solid var(--ocean-accent,#9dd2c5);outline-offset:3px}@media (min-width:701px){.marine-map .harbor-node[data-port=magong]>div{top:-12px;left:24px;right:auto}}.marine-timeline .marine-time-ticks{gap:4px}.departure-ticks,.marine-timeline .marine-time-ticks,.port-detail-panel .marine-timeline .marine-time-ticks{grid-template-columns:repeat(4,minmax(0,1fr))}.departure-ticks{gap:8px}.forecast-attribution{max-width:1200px;color:var(--ocean-secondary,#8da7ac);margin:24px auto 100px;padding:0 24px;font-size:12px;line-height:1.8}.forecast-attribution a{text-decoration:underline}.harbor-node.unavailable i{background:var(--ocean-accent,#789296)}body,body *{-webkit-user-select:none;user-select:none}body [contenteditable=""],body [contenteditable=""] *,body [contenteditable=true],body [contenteditable=true] *,body input,body textarea{-webkit-user-select:text;user-select:text}:root{--background:#05090d;--foreground:#edf5f4;--card:#0a141c;--card-foreground:#edf5f4;--popover:#0a141c;--popover-foreground:#edf5f4;--primary:#66d9ce;--primary-foreground:#061417;--secondary:#101c24;--secondary-foreground:#edf5f4;--muted:#111e26;--muted-foreground:#84979c;--accent:#132b31;--accent-foreground:#edf5f4;--destructive:#e9857c;--border:#8ee7dd1c;--input:#a5eee526;--ring:#66d9ce;--radius:1rem}*{box-sizing:border-box}body,html{background:var(--ocean-surface,#05090d)}body{color:var(--ocean-text,#edf5f4);font-family:var(--font-sans);margin:0;font-size:16px}button,input{font:inherit}.app-shell{--mouse-x:50%;--mouse-y:22%;isolation:isolate;background:radial-gradient(ellipse at 76% 18%,var(--ocean-tint,#195b6330),transparent 38%),radial-gradient(ellipse at 18% 82%,var(--ocean-surface,#0f394429),transparent 45%),linear-gradient(155deg,var(--ocean-surface,#05090d) 0,var(--ocean-surface,#081018) 52%,var(--ocean-surface,#07121a) 100%);min-height:100vh;transition:background 1.2s;position:relative;overflow:hidden}.app-shell.risk-high,.app-shell.risk-veryHigh{background:radial-gradient(ellipse at 76% 18%,var(--ocean-surface,#434d432b),transparent 40%),radial-gradient(ellipse at 14% 74%,var(--ocean-surface,#1342492e),transparent 48%),linear-gradient(155deg,var(--ocean-surface,#05090d),var(--ocean-surface,#0a141c) 54%,var(--ocean-surface,#071017))}.ocean-background{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.cursor-light{left:var(--mouse-x);top:var(--mouse-y);background:radial-gradient(circle,var(--ocean-tint,#69ebdb1b),var(--ocean-tint,#2fa0a809) 38%,transparent 70%);filter:blur(4px);will-change:left,top;border-radius:50%;width:560px;height:560px;position:fixed;transform:translate(-50%,-50%)}.depth-light{background:linear-gradient(to bottom,var(--ocean-tint,#8cfff113),transparent 78%);filter:blur(25px);width:260px;height:900px;animation:ray-drift 22s ease-in-out infinite alternate;position:absolute;top:-250px;transform:rotate(17deg)}.depth-light.one{left:18%}.depth-light.two{opacity:.5;animation-delay:-8s;right:12%}.ocean-noise{opacity:.035;background-image:radial-gradient(circle,var(--ocean-accent,#d7fffb) 0 1px,transparent 1.2px);background-size:82px 82px;animation:particle-drift 48s linear infinite;position:absolute;inset:0}.current-line{border:1px solid var(--ocean-border,#69e2d50b);border-radius:50%;width:125%;height:290px;animation:current-drift 28s ease-in-out infinite alternate;position:absolute}.line-a{top:25%;left:-12%;transform:rotate(-8deg)}.line-b{animation-delay:-10s;top:58%;left:-8%;transform:rotate(6deg)}.app-header{z-index:50;border-bottom:1px solid var(--ocean-border,#96e2db1a);grid-template-columns:240px 1fr auto;align-items:center;width:min(1240px,100% - 40px);height:80px;margin:0 auto;display:grid;position:relative}.brand,.desktop-nav button,.header-actions button{color:inherit;background:0 0;border:0}.brand{text-align:left;cursor:pointer;align-items:center;gap:11px;padding:0;display:flex}.brand>span{background:linear-gradient(145deg,var(--ocean-accent,#66e4d3),var(--ocean-accent,#1e8290));width:38px;height:38px;box-shadow:0 8px 30px var(--ocean-shadow,#3cd7cb2e);border-radius:12px;place-items:center;display:grid}.brand svg{width:21px}.brand strong{font-size:.88rem}.brand b{color:var(--ocean-accent,#69e2d3)}.desktop-nav{justify-content:center;gap:4px;display:flex}.desktop-nav button{color:var(--ocean-secondary,#829fa5);cursor:pointer;border-radius:12px;padding:10px 14px;font-size:.76rem;transition:all .25s}.desktop-nav button.active,.desktop-nav button:hover{color:var(--ocean-text,#ecfbfa);background:var(--ocean-tint,#68e2d514)}.header-actions{align-items:center;gap:6px;display:flex}.header-actions button{height:40px;color:var(--ocean-secondary,#88a8ae);cursor:pointer;border-radius:12px;align-items:center;gap:7px;padding:0 11px;font-size:.7rem;display:flex}.header-actions button:hover{background:var(--ocean-tint,#69e2d514);color:var(--ocean-text,white)}.header-actions svg{width:16px}.brief-button{color:var(--ocean-accent,#67ded0)!important}.profile-button{border:1px solid var(--ocean-border,#82dfd61f)!important}.menu-button{display:none!important}.mobile-popover{display:none}.data-status{border:1px solid var(--ocean-border,#80e0d71f);background:var(--ocean-surface,#05212b7a);width:min(720px,100%);color:var(--ocean-secondary,#789ba1);border-radius:15px;gap:14px;margin-top:14px;padding:11px 13px}.data-status,.status-primary{align-items:center;display:flex}.status-primary{gap:9px;min-width:210px}.status-primary>div{flex-direction:column;gap:2px;display:flex}.status-primary strong{color:var(--ocean-text,#b9d4d1);font-size:.66rem;font-weight:550}.status-primary small{color:var(--ocean-secondary,#678b91);font-size:.6rem}.status-dot{background:var(--ocean-tint,#63dfd21c);width:29px;height:29px;color:var(--ocean-accent,#65ded1);box-shadow:0 0 0 4px var(--ocean-shadow,#63dfd209);border-radius:50%;flex:none;place-items:center;display:grid}.status-dot svg{width:14px}.status-dot.offline{color:var(--ocean-secondary,#ff9187);background:var(--ocean-tint,#ff91871a)}.status-detail{gap:13px;margin-left:auto;display:flex}.status-detail span{color:var(--ocean-secondary,#688b91);white-space:nowrap;flex-direction:column;gap:2px;font-size:.57rem;display:flex}.status-detail b{color:var(--ocean-text,#c4ddda);font-variant-numeric:tabular-nums;font-size:.64rem;font-weight:550}.refresh-button{white-space:nowrap;align-items:center;display:flex;border:1px solid var(--ocean-border,#82dfd621)!important;background:var(--ocean-tint,#58ccc20f)!important;height:34px!important;color:var(--ocean-accent,#75dcd1)!important;border-radius:10px!important;gap:6px!important;padding:0 10px!important;font-size:.6rem!important}.refresh-button:disabled{opacity:.55;cursor:wait}.refresh-button svg{width:14px!important}.data-status.compact{background:0 0;border:0;width:auto;min-width:140px;margin:0;padding:0}.data-status.compact .status-primary{min-width:0}.data-status.compact .refresh-button span,.data-status.compact .status-detail,.data-status.compact .status-primary strong{display:none}.data-status.compact .status-primary small{white-space:nowrap}.data-status.compact .refresh-button{justify-content:center;width:32px;padding:0!important}.data-status.inline{width:auto;margin:0;padding:8px 10px}.data-status.inline .status-primary{min-width:185px}.data-status.inline .refresh-button span,.data-status.inline .status-detail span:first-child{display:none}.data-status.inline .refresh-button{justify-content:center;width:32px;padding:0!important}.data-refresh-pulse{animation:data-refresh .55s ease-out}.home-view,.workspace{width:min(1240px,100% - 40px);margin:0 auto;padding:54px 0 120px}.home-stage{grid-template-columns:minmax(450px,.88fr) minmax(520px,1.12fr);align-items:center;gap:22px;min-height:610px;display:grid}.eyebrow{color:var(--ocean-accent,#62cfc5);letter-spacing:.19em;margin:0 0 18px;font-size:.66rem;font-weight:650}.home-intro h1,.workspace-head h1{letter-spacing:-.065em;max-width:850px;margin:0;font-size:clamp(3.7rem,7vw,7.1rem);font-weight:340;line-height:.97}.home-intro h1{font-size:clamp(3.8rem,6.2vw,6.8rem)}.home-intro h1 span{color:var(--ocean-secondary,#8aa0a4);letter-spacing:-.025em;margin-bottom:13px;font-size:.42em;font-weight:450;display:block}.hero-subtitle{max-width:430px;color:var(--ocean-secondary,#91a4a8);white-space:pre-line;margin:23px 0 0;font-size:clamp(1rem,1.45vw,1.25rem);line-height:1.65}.app-search{width:min(720px,100%);margin-top:31px;position:relative}.app-search>svg{z-index:2;width:20px;color:var(--ocean-accent,#68d8cd);position:absolute;top:20px;left:20px}.app-search input{border:0;border-bottom:1px solid var(--ocean-border,#89e2d94d);background:var(--ocean-surface,#07111857);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);height:62px;box-shadow:none;color:var(--ocean-text,white);border-radius:0;padding:0 53px;font-size:.91rem}.clear-search{background:var(--ocean-tint,#82d7d012);width:28px;height:28px;color:var(--ocean-secondary,#7ba2a7);border:0;border-radius:50%;position:absolute;top:17px;right:16px}.clear-search svg{width:14px}.search-results{z-index:70;border:1px solid var(--ocean-border,#80e0d724);background:var(--ocean-surface,#071017f7);box-shadow:0 32px 90px var(--ocean-shadow,#000509ad);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-radius:12px;padding:8px;position:absolute;top:68px;left:0;right:0}.search-results>button{width:100%;color:var(--ocean-text,white);text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:25px minmax(120px,.8fr) 1.2fr 18px;align-items:center;gap:10px;padding:12px;display:grid}.search-results>button:hover{background:var(--ocean-tint,#5edace12)}.search-results svg{width:16px;color:var(--ocean-accent,#60d9cc)}.search-results span{flex-direction:column;gap:3px;display:flex}.search-results strong{font-size:.78rem}.search-results small{color:var(--ocean-secondary,#73969d);font-size:.65rem}.search-results p{text-align:center;color:var(--ocean-secondary,#789ca2);padding:20px}.search-metrics{flex-direction:column;gap:3px;display:flex}.search-metrics b{font-size:.67rem;font-weight:600}.search-metrics small{font-size:.6rem}.port-rail{margin-bottom:54px}.rail-title{margin-bottom:14px}.rail-title,.rail-title>span{align-items:center;display:flex}.rail-title>span{gap:8px;font-size:.83rem;font-weight:600}.rail-title svg{width:16px;color:var(--ocean-accent,#63ddd0);fill:var(--ocean-accent,#63ddd029)}.rail-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.mini-port{border:1px solid var(--ocean-border,#88e0d81c);background:linear-gradient(145deg,var(--ocean-surface,#0a333fb8),var(--ocean-surface,#051e2994));min-height:142px;color:var(--ocean-text,white);text-align:left;cursor:pointer;border-radius:19px;padding:20px;transition:all .28s;position:relative;overflow:hidden}.mini-port:before{content:"";background:radial-gradient(circle,var(--ocean-tint,#57ddd024),transparent 68%);border-radius:50%;width:150px;height:150px;position:absolute;top:-60px;right:-50px}.mini-port:hover{border-color:var(--ocean-border,#68e2d54d);box-shadow:0 24px 50px var(--ocean-shadow,#000c1240);transform:translateY(-4px)}.mini-port>span{color:var(--ocean-secondary,#6e959c);font-size:.63rem;display:block}.mini-port>strong{margin-top:8px;font-size:1.03rem;display:block}.mini-port>div{align-items:baseline;gap:6px;display:flex;position:absolute;bottom:17px;left:20px}.mini-port>div b{font-size:1.65rem;font-weight:520}.low{color:var(--ocean-accent,#6fe0b0)!important}.medium{color:var(--ocean-secondary,#f0ca72)!important}.high,.veryHigh{color:var(--ocean-secondary,#ff9187)!important}.mini-port>div small{color:var(--ocean-secondary,#688b92);letter-spacing:.12em;font-size:.52rem}.mini-port>svg{width:17px;color:var(--ocean-secondary,#50777e);position:absolute;bottom:20px;right:18px}.home-two-col{grid-template-columns:1fr 1fr;gap:42px;display:grid}.home-two-col .rail-grid{grid-template-columns:repeat(3,1fr)}.home-two-col .mini-port{min-height:130px;padding:16px}.home-two-col .mini-port>strong{font-size:.84rem}.home-two-col .mini-port>div{left:16px}.brief-strip{border-top:1px solid var(--ocean-border,#85dfd61c);border-bottom:1px solid var(--ocean-border,#85dfd61c);grid-template-columns:170px 1fr;margin-top:64px;display:grid}.brief-heading{color:var(--ocean-accent,#66ded1);letter-spacing:.13em;align-items:center;gap:9px;padding:20px 0;font-size:.69rem;font-weight:650;display:flex}.brief-heading svg{width:17px}.brief-items{grid-template-columns:repeat(3,1fr);display:grid}.brief-items button{border:0;border-left:1px solid var(--ocean-border,#85dfd617);color:var(--ocean-text,white);text-align:left;background:0 0;grid-template-columns:52px 1fr 15px;align-items:center;gap:9px;padding:18px;display:grid}.brief-items button:hover{background:var(--ocean-tint,#61dbcf0d)}.brief-items time{color:var(--ocean-secondary,#6e969c);font-variant-numeric:tabular-nums;font-size:.68rem}.brief-items strong{font-size:.68rem;font-weight:450;line-height:1.45}.brief-items svg{width:14px;color:var(--ocean-secondary,#50757d)}.workspace{min-height:calc(100vh - 80px);padding-top:78px}.workspace-head{margin-bottom:38px}.workspace-head h1{font-size:clamp(3rem,6vw,5.7rem)}.workspace-head.compact h1{font-size:clamp(2.8rem,5vw,4.8rem)}.filter-row{gap:8px;margin-bottom:22px;display:flex;overflow:auto}.filter-row button,.pill,.time-chip{border:1px solid var(--ocean-border,#83dcd41f);background:var(--ocean-surface,#0727328f);color:var(--ocean-secondary,#86a5aa);white-space:nowrap;border-radius:999px;padding:10px 18px;font-size:.72rem;transition:all .22s}.filter-row button.active,.filter-row button:hover,.pill.active,.time-chip.active{border-color:var(--ocean-border,#63e0d273);background:var(--ocean-tint,#31828442);color:var(--ocean-text,#eafffc)}.port-list{border-top:1px solid var(--ocean-border,#86ddd51c);flex-direction:column;display:flex}.port-row-card{border-bottom:1px solid var(--ocean-border,#86ddd51a);position:relative}.port-row-main{width:100%;color:var(--ocean-text,white);text-align:left;background:0 0;border:0;grid-template-columns:1.6fr repeat(3,1fr) 22px;align-items:center;gap:18px;padding:22px 12px;transition:all .24s;display:grid}.port-row-main:hover{background:var(--ocean-tint,#53bfb70d);padding-left:19px}.port-name,.port-stat{flex-direction:column;display:flex}.port-name>span,.port-stat>span{color:var(--ocean-secondary,#678a91);font-size:.59rem}.port-name>strong{margin-top:5px;font-size:.94rem}.port-name>small{color:var(--ocean-secondary,#50747b);margin-top:2px;font-size:.61rem}.port-stat{gap:6px}.port-stat>strong{font-size:.9rem;font-weight:530}.port-stat small{font-size:.56rem}.port-row-main>svg{width:17px;color:var(--ocean-secondary,#4d747b)}.remove-port{background:var(--ocean-tint,#ffffff0a);width:27px;height:27px;color:var(--ocean-secondary,#73969c);border:0;border-radius:50%;position:absolute;top:8px;right:8px}.remove-port svg{width:13px}.back-button,.favorite{border:1px solid var(--ocean-border,#82ddd41f);background:var(--ocean-surface,#05222c73);color:var(--ocean-secondary,#83a3a8);border-radius:12px;align-items:center;gap:7px;padding:9px 12px;font-size:.7rem;display:inline-flex}.back-button svg,.favorite svg{width:16px}.favorite.active{color:var(--ocean-secondary,#f1cb72)}.favorite.active svg,.panel-time button[aria-pressed=true] svg{color:#eab308;fill:currentColor}.port-identity{justify-content:space-between;align-items:flex-start;margin:35px 0 40px;display:flex}.port-identity p{color:var(--ocean-accent,#62d7cb);letter-spacing:.09em;margin:0;font-size:.68rem}.port-identity h1{letter-spacing:-.06em;margin:8px 0 0;font-size:clamp(3rem,6vw,5.6rem);font-weight:390;line-height:1}.port-identity>div>span{color:var(--ocean-secondary,#6c8f96);margin-top:9px;font-size:.78rem;display:block}.conditions-stage{grid-template-columns:1.3fr 1fr;gap:13px;display:grid}.best-window,.primary-condition,.profile-card,.risk-hero,.secondary-conditions article,.timeline-section,.trip-builder{border:1px solid var(--ocean-border,#86dfd61f);background:linear-gradient(145deg,var(--ocean-surface,#093440c2),var(--ocean-surface,#051e298c));box-shadow:0 28px 80px var(--ocean-shadow,#00090e2e)}.primary-condition{min-height:280px;padding:30px;position:relative;overflow:hidden}.primary-condition>span,.secondary-conditions article>span{color:var(--ocean-secondary,#73a0a5);font-size:.67rem}.primary-condition>strong{z-index:1;letter-spacing:-.08em;margin-top:18px;font-size:clamp(4.5rem,8vw,7rem);font-weight:420;display:block;position:relative}.primary-condition small{color:var(--ocean-accent,#6adfd1);margin-left:9px;font-size:.2em}.primary-condition>.data-status{z-index:2;width:max-content;max-width:100%;margin-top:18px;position:relative}.wave-mini{opacity:.38;bottom:0;left:0;right:0}.wave-mini,.wave-mini i{height:90px;position:absolute}.wave-mini i{border:1px solid var(--ocean-border,#5eded240);border-radius:50%;width:110%;animation:wave-move 7s ease-in-out infinite alternate;left:-5%}.wave-mini i:nth-child(2){animation-delay:-2s;bottom:-26px}.wave-mini i:nth-child(3){animation-delay:-4s;bottom:-47px}.secondary-conditions{grid-template-columns:1fr 1fr;gap:13px;display:grid}.secondary-conditions article{border-radius:20px;min-height:133px;padding:20px}.secondary-conditions svg{width:19px;color:var(--ocean-accent,#5edbce);margin-bottom:18px}.secondary-conditions span{display:block}.secondary-conditions strong{margin-top:6px;font-size:1.25rem;display:block}.secondary-conditions small{color:var(--ocean-secondary,#668b91);font-size:.55em}.trip-builder{border-radius:25px;margin-top:30px;padding:30px}.builder-head{align-items:center;gap:14px;margin-bottom:28px;display:flex}.builder-head>span{background:var(--ocean-tint,#60ded11a);width:34px;height:34px;color:var(--ocean-accent,#63dbcf);border-radius:10px;place-items:center;font-size:.65rem;display:grid}.builder-head h2{margin:0;font-size:1.55rem;font-weight:520}.choice-group{margin-top:24px}.choice-group h3{color:var(--ocean-secondary,#73979d);margin:0 0 11px;font-size:.67rem;font-weight:520}.choice-group>div{flex-wrap:wrap;gap:8px;display:flex}.activity-choices>div{grid-template-columns:repeat(6,1fr);display:grid}.choice{border:1px solid var(--ocean-border,#84ded51c);background:var(--ocean-surface,#041e2885);min-height:90px;color:var(--ocean-secondary,#85a6ab);border-radius:17px;padding:12px;transition:all .24s}.choice.active,.choice:hover{border-color:var(--ocean-border,#63e1d366);background:var(--ocean-tint,#2f7f8140);color:var(--ocean-text,white);transform:translateY(-2px)}.choice span{font-size:1.25rem;display:block}.choice strong{margin-top:7px;font-size:.68rem;display:block}.builder-grid{grid-template-columns:1fr 1fr;gap:35px;display:grid}.time-chip{border-radius:12px}.analyze-primary{width:100%;height:58px;margin-top:31px;background:linear-gradient(110deg,var(--ocean-accent,#61e2d2),var(--ocean-accent,#76cfd8))!important;color:var(--ocean-on-accent,#05252d)!important;box-shadow:0 15px 45px var(--ocean-shadow,#50dbcf26)!important;border-radius:16px!important;font-weight:700!important}.analyze-primary svg{width:18px}.secondary-conditions .source-condition{grid-template-rows:auto auto;grid-template-columns:24px 1fr auto;align-items:center;column-gap:9px;min-height:104px;display:grid}.secondary-conditions .source-condition>svg{grid-row:1/3;margin:0}.secondary-conditions .source-condition>span{grid-column:2}.secondary-conditions .source-condition>strong{grid-column:2;margin:3px 0 0;font-size:.78rem;line-height:1.35}.secondary-conditions .source-condition>small{background:var(--ocean-tint,#63dfd214);color:var(--ocean-accent,#7fc8c1);white-space:nowrap;border-radius:999px;grid-area:1/3/3;align-self:center;padding:7px 9px;font-size:.58rem}.result-topbar{grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;display:grid}.result-topbar>.favorite{justify-self:end}.result-topbar>.data-status{justify-self:center}.risk-hero{background:radial-gradient(circle at 22% 44%,var(--ocean-tint,#4ad4ca2e),transparent 34%),linear-gradient(145deg,var(--ocean-surface,#083944db),var(--ocean-surface,#041b26b3));border-radius:30px;grid-template-columns:.95fr 1.05fr;min-height:470px;margin-top:28px;display:grid;overflow:hidden}.score-side{border-right:1px solid var(--ocean-border,#87e0d71a);flex-direction:column;justify-content:center;padding:45px 55px;display:flex}.score-side>p{color:var(--ocean-secondary,#88b3b7);margin:0 0 23px;font-size:.78rem}.score-side>span{color:var(--ocean-accent,#61d7cb);letter-spacing:.19em;font-size:.65rem}.score-side>strong{letter-spacing:-.095em;font-size:clamp(8rem,16vw,13rem);font-weight:370;line-height:.82;animation:score-rise .7s cubic-bezier(.2,.8,.2,1)}.score-side>small{color:var(--ocean-secondary,#63858b);margin-left:8px;font-size:.72rem}.decision-side{flex-direction:column;justify-content:center;padding:55px;display:flex}.risk-badge{background:var(--ocean-tint,#eec76b1a);width:max-content;color:var(--ocean-secondary,#eeca71);letter-spacing:.13em;border-radius:999px;padding:8px 12px;font-size:.63rem;font-weight:700}.risk-badge.low{color:var(--ocean-accent,#71e0b1);background:var(--ocean-tint,#71e0b11a)}.risk-badge.high,.risk-badge.veryHigh{color:var(--ocean-secondary,#ff9288);background:var(--ocean-tint,#ff92881a)}.decision-side h2{letter-spacing:-.035em;max-width:520px;margin:22px 0;font-size:clamp(1.55rem,3vw,2.6rem);font-weight:430;line-height:1.34}.cause-chips{flex-wrap:wrap;gap:8px;display:flex}.cause-chips span{border:1px solid var(--ocean-border,#84ded51c);color:var(--ocean-secondary,#91afb4);border-radius:11px;padding:9px 11px;font-size:.68rem}.cause-chips b{color:var(--ocean-secondary,#f0c873);margin-left:6px}.weight-link{width:max-content;color:var(--ocean-accent,#61dace);background:0 0;border:0;align-items:center;gap:4px;margin-top:27px;padding:0;font-size:.68rem;display:flex}.weight-link svg{width:14px}.best-window{background:linear-gradient(110deg,var(--ocean-surface,#124b51c7),var(--ocean-surface,#06253094));border-radius:21px;grid-template-columns:1fr auto;align-items:center;gap:10px;margin-top:14px;padding:25px 29px;display:grid}.best-window>div{color:var(--ocean-accent,#68dace);align-items:center;gap:9px;font-size:.68rem;display:flex}.best-window svg{width:18px}.best-window>strong{letter-spacing:-.055em;grid-area:1/2/3;font-size:clamp(2rem,4vw,3.6rem);font-weight:430}.best-window>p{color:var(--ocean-secondary,#6e9198);margin:0;font-size:.66rem}.best-window>p b{color:var(--ocean-accent,#76dfb2)}.timeline-section{background:var(--ocean-surface,#05202b7a);border-radius:26px;margin-top:48px;padding:32px}.timeline-title{justify-content:space-between;align-items:end;display:flex}.timeline-title h2{letter-spacing:-.05em;margin:0;font-size:clamp(2rem,4vw,3.4rem);font-weight:420}.timeline-title>p{color:var(--ocean-secondary,#71949a);font-size:.69rem}.timeline-layout{grid-template-columns:1fr 230px;gap:35px;margin-top:35px;display:grid}.timeline-chart{min-width:0}.timeline-chart [data-slot=slider]{width:calc(100% - 16px);margin:15px 8px 0}.timeline-ticks{grid-template-columns:repeat(6,1fr);margin-top:15px;display:grid}.timeline-ticks button{color:var(--ocean-secondary,#64868c);background:0 0;border:0}.timeline-ticks button span,.timeline-ticks button strong{display:block}.timeline-ticks button span{font-size:.64rem}.timeline-ticks button strong{margin-top:5px;font-size:.82rem}.timeline-ticks button.active{color:var(--ocean-accent,#69dfd1)}.live-reading{border-left:1px solid var(--ocean-border,#84ded51c);padding:25px}.live-reading>span{color:var(--ocean-secondary,#658a90);font-size:.7rem}.live-reading>strong{letter-spacing:-.08em;margin-top:10px;font-size:5.2rem;font-weight:390;line-height:1;display:block}.live-reading>b{color:var(--ocean-secondary,#f0c873);letter-spacing:.1em;font-size:.66rem}.live-reading>div{margin-top:25px}.live-reading p{border-top:1px solid var(--ocean-border,#87dcd414);color:var(--ocean-secondary,#789ba1);justify-content:space-between;margin:0;padding:10px 0;font-size:.66rem;display:flex}.live-reading em{color:var(--ocean-text,#ddf4f1);font-style:normal}.log-trip-button{margin-top:22px;border-color:var(--ocean-border,#81ddd42e)!important;background:var(--ocean-surface,#05222c7a)!important;color:var(--ocean-secondary,#b5cfcd)!important}.log-list{border-top:1px solid var(--ocean-border,#85ddd51c)}.log-list article{border-bottom:1px solid var(--ocean-border,#85ddd51a);grid-template-columns:100px 1.5fr 1fr 1.2fr;align-items:center;gap:22px;padding:24px 10px;display:grid}.log-list time{color:var(--ocean-secondary,#64888e);font-size:.68rem}.log-list article>div{flex-direction:column;gap:5px;display:flex}.log-list article small,.log-list article span{color:var(--ocean-secondary,#668990);font-size:.62rem}.log-list article b{font-size:.82rem}.empty-state{border:1px solid var(--ocean-border,#84ddd51c);background:var(--ocean-surface,#05212b61);min-height:390px;color:var(--ocean-secondary,#73979d);border-radius:24px;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state>svg{width:36px;color:var(--ocean-accent,#62d9cc)}.empty-state p{text-align:center;margin:14px}.profile-view{max-width:760px}.profile-card{border-radius:24px;padding:35px}.avatar{background:linear-gradient(145deg,var(--ocean-accent,#63dfd0),var(--ocean-accent,#2a8490));width:72px;height:72px;color:var(--ocean-on-accent,#06303a);border-radius:22px;place-items:center;font-size:1.8rem;font-weight:700;display:grid}.profile-card label{color:var(--ocean-secondary,#7e9fa5);margin-top:27px;font-size:.7rem;display:block}.profile-card input{background:var(--ocean-surface,#031b258c);border-color:var(--ocean-border,#82dcd424);height:50px;margin-top:8px}.profile-language{color:var(--ocean-secondary,#7f9fa4);justify-content:space-between;align-items:center;padding:22px 0;font-size:.72rem;display:flex}.profile-language button{border:1px solid var(--ocean-border,#82ddd421);background:var(--ocean-surface,#041e2880);color:var(--ocean-text,#c9e2df);border-radius:11px;align-items:center;gap:7px;padding:9px 12px;font-size:.68rem;display:flex}.profile-language svg{width:15px}.profile-log-button{width:100%;margin-top:10px;border-color:var(--ocean-border,#82ddd424)!important;background:var(--ocean-surface,#041e2859)!important;color:var(--ocean-secondary,#9cc2bf)!important}.bottom-nav{display:none}.ocean-dialog{background:linear-gradient(145deg,var(--ocean-surface,#0a3442),var(--ocean-surface,#061f2b))!important;border-color:var(--ocean-border,#82e0d733)!important;color:var(--ocean-text,white)!important;box-shadow:0 35px 100px var(--ocean-shadow,#00080d8c)!important}.ocean-dialog [data-slot=dialog-description]{color:var(--ocean-secondary,#86a7ac)!important}.dialog-symbol{background:var(--ocean-tint,#5dded11f);width:46px;height:46px;color:var(--ocean-accent,#61dbce);border-radius:15px;place-items:center;margin-bottom:8px;display:grid}.dialog-symbol svg{width:22px}.ocean-dialog input{background:var(--ocean-surface,#02161f8c);border-color:var(--ocean-border,#83dfd629);height:48px}.actual-buttons{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.actual-buttons button{border:1px solid var(--ocean-border,#84ded51f);background:var(--ocean-surface,#041d2780);min-height:100px;color:var(--ocean-secondary,#8eabb0);border-radius:15px;font-size:.66rem}.actual-buttons button span{margin-bottom:8px;font-size:1.4rem;display:block}.actual-buttons button.active{border-color:var(--ocean-accent,#63dfd1);background:var(--ocean-tint,#2b7a7c47);color:var(--ocean-text,white)}.weight-list{flex-direction:column;gap:11px;display:flex}.weight-list>div{grid-template-columns:120px 1fr 60px;align-items:center;gap:10px;font-size:.68rem;display:grid}.weight-list i{background:var(--ocean-tint,#84ddd51a);border-radius:99px;height:5px;overflow:hidden}.weight-list i b{border-radius:inherit;background:var(--ocean-accent,#61dacf);height:100%;display:block}.weight-list strong{text-align:right;color:var(--ocean-secondary,#87a7ac)}.view-enter{animation:view-enter .55s cubic-bezier(.2,.75,.2,1)}@keyframes view-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes score-rise{0%{opacity:0;filter:blur(8px);transform:translateY(28px)}to{opacity:1;filter:none;transform:none}}@keyframes particle-drift{to{transform:translate(74px,74px)}}@keyframes ray-drift{to{transform:rotate(10deg)translate(55px)}}@keyframes current-drift{to{transform:rotate(-4deg)translate(4%)}}@keyframes wave-move{to{transform:translate(4%)translateY(-6px)}}@keyframes status-spin{to{transform:rotate(1turn)}}@keyframes data-refresh{0%{filter:brightness(1.22);transform:translateY(2px)}to{filter:none;transform:none}}@media (max-width:980px){.app-header{grid-template-columns:1fr auto}.desktop-nav{display:none}.brief-button{display:none!important}.menu-button{display:flex!important}.mobile-popover{border:1px solid var(--ocean-border,#81ddd426);background:var(--ocean-surface,#082733);width:210px;box-shadow:0 25px 70px var(--ocean-shadow,#00080d73);border-radius:16px;flex-direction:column;padding:8px;display:flex;position:absolute;top:70px;right:0}.mobile-popover button{color:var(--ocean-text,#dcefed);text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:9px;padding:11px;display:flex}.mobile-popover svg{width:16px}.conditions-stage,.home-two-col{grid-template-columns:1fr}.activity-choices>div{grid-template-columns:repeat(3,1fr)}.risk-hero{grid-template-columns:1fr}.score-side{border-right:0;border-bottom:1px solid var(--ocean-border,#87e0d71a)}.timeline-layout{grid-template-columns:1fr}.live-reading{border-left:0;border-top:1px solid var(--ocean-border,#84ded51c);grid-template-columns:1fr 1fr;display:grid}.brief-strip{grid-template-columns:1fr}.brief-heading{border-bottom:1px solid var(--ocean-border,#85dfd617)}.port-row-main{grid-template-columns:1.4fr repeat(2,1fr) 20px}.port-row-main .port-stat:nth-of-type(3){display:none}}@media (max-width:700px){.app-header{width:calc(100% - 28px);height:68px}.brand strong{font-size:.8rem}.header-actions .language-button,.header-actions .profile-button,.menu-button{display:none!important}.home-view,.workspace{width:calc(100% - 28px);padding-top:45px;padding-bottom:105px}.home-intro{padding:28px 0 45px}.home-intro h1{font-size:3.45rem}.workspace-head h1{font-size:3.15rem}.app-search input{height:58px}.app-search>svg{top:18px}.home-two-col .rail-grid,.rail-grid{scroll-snap-type:x mandatory;padding-bottom:5px;display:flex;overflow-x:auto}.mini-port{scroll-snap-align:start;min-width:76%}.home-two-col{gap:0}.brief-strip{margin-top:38px}.brief-items{grid-template-columns:1fr}.brief-items button{border-left:0;border-top:1px solid var(--ocean-border,#85dfd614)}.filter-row{margin-right:-14px}.port-row-main{grid-template-columns:1fr 75px 18px;padding:17px 4px}.port-row-main .port-stat:nth-of-type(n+2){display:none}.port-identity{margin-top:27px}.port-identity h1{font-size:3.5rem}.conditions-stage{gap:10px}.primary-condition{min-height:240px;padding:24px}.secondary-conditions{gap:10px}.secondary-conditions article{padding:17px}.trip-builder{padding:20px}.builder-grid{grid-template-columns:1fr;gap:0}.activity-choices>div{grid-template-columns:repeat(3,1fr)}.choice{min-height:82px}.time-choices>div{grid-template-columns:repeat(3,1fr);display:grid}.time-chip{padding:10px 8px}.risk-hero{border-radius:24px;min-height:0}.score-side{padding:34px 26px}.score-side>strong{font-size:9rem}.decision-side{padding:34px 26px}.best-window{padding:23px;display:block}.best-window>strong{margin-top:14px;font-size:2.6rem;display:block}.best-window>p{margin-top:7px}.timeline-section{padding:20px}.timeline-title{display:block}.timeline-title>p{margin-top:10px}.timeline-layout{margin-top:20px}.timeline-chart>div:first-child{height:220px!important}.timeline-ticks button span{font-size:.58rem}.live-reading{padding:20px}.log-list article{grid-template-columns:65px 1fr 60px}.log-list article>div:last-child{grid-column:2/4}.bottom-nav{z-index:80;border:1px solid var(--ocean-border,#84ded529);background:var(--ocean-surface,#051f29e6);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);box-shadow:0 18px 60px var(--ocean-shadow,#00070c80);border-radius:19px;grid-template-columns:repeat(4,1fr);padding:7px;display:grid;position:fixed;bottom:10px;left:10px;right:10px}.bottom-nav button{color:var(--ocean-secondary,#617f85);background:0 0;border:0;border-radius:12px;flex-direction:column;align-items:center;gap:3px;padding:7px 3px;font-size:.52rem;display:flex}.bottom-nav button.active{background:var(--ocean-tint,#59d8cc1a);color:var(--ocean-accent,#69ded0)}.bottom-nav svg{width:18px}.cursor-light{width:340px;height:340px}.ocean-noise{opacity:.035}.actual-buttons{grid-template-columns:1fr}.actual-buttons button{min-height:64px}.actual-buttons button span{margin-right:8px;display:inline}.weight-list>div{grid-template-columns:90px 1fr 52px}.data-status{flex-wrap:wrap;align-items:flex-start;gap:9px}.data-status:not(.compact) .status-primary{flex:210px;min-width:0}.data-status:not(.compact) .status-detail{border-top:1px solid var(--ocean-border,#82dfd614);order:3;justify-content:space-between;width:100%;margin:0;padding-top:8px}.data-status.compact .status-dot{width:25px;height:25px}.data-status.compact .status-primary small{font-size:.56rem}.data-status.compact .refresh-button{display:none}.primary-condition>.data-status{width:100%}.primary-condition>.data-status .status-detail{display:none}.result-topbar{grid-template-columns:1fr auto}.result-topbar>.data-status{grid-area:2/1/auto/-1;width:100%;margin-top:5px}.result-topbar>.data-status .status-detail{display:none}.result-topbar>.favorite{grid-area:1/2}.result-topbar>.back-button{grid-area:1/1}.brief-items time{font-size:.72rem}}@media (prefers-reduced-motion:reduce){.current-line,.depth-light,.ocean-noise,.wave-mini i{animation:none}.cursor-light{display:none}.score-side>strong,.view-enter{animation:none}}.marine-map{isolation:isolate;height:610px;filter:drop-shadow(0 40px 80px var(--ocean-shadow,#00000059));perspective:900px;position:relative}.marine-map:before{content:"";z-index:-1;background:radial-gradient(ellipse,var(--ocean-tint,#2b898b1c),transparent 64%);filter:blur(10px);border-radius:50%;position:absolute;inset:8% 1% 2%}.marine-map svg{transform-origin:50%;width:92%;height:95%;animation:map-drift 18s ease-in-out infinite alternate;position:absolute;inset:3% 4% 2%;overflow:visible;transform:rotateX(7deg)rotate(-2deg)}.contour{fill:none;stroke:var(--ocean-border,#6bbcbd17);stroke-width:.35px}.c2{stroke-opacity:.65}.c3{stroke-opacity:.45}.route-line{fill:none;stroke:var(--ocean-border,#58d5cb30);stroke-width:.4px;stroke-dasharray:2 3;animation:route-flow 12s linear infinite}.route-line.west{animation-delay:-5s}.taiwan-shadow{fill:var(--ocean-land,#000);opacity:.75;filter:blur(2.5px);transform:translate(2px,3px)}.taiwan-shape{fill:var(--ocean-land,#101b21);stroke:var(--ocean-border,#89dcd34d);stroke-width:.55px;filter:drop-shadow(0 14px 13px var(--ocean-shadow,#000000bf)) drop-shadow(-3px -3px 12px var(--ocean-shadow,#5ac7be14))}.taiwan-ridge{fill:none;stroke:var(--ocean-border,#a4d2cc2b);stroke-width:.55px}.map-caption{z-index:4;flex-direction:column;gap:5px;display:flex;position:absolute;top:4%;left:4%}.map-caption span{color:var(--ocean-accent,#73d8ce);letter-spacing:.18em;font-size:.61rem;font-weight:650}.map-caption small{color:var(--ocean-secondary,#61777c);font-size:.62rem}.harbor-node{z-index:5;width:11px;height:11px;color:var(--ocean-accent,#9edfd8);cursor:pointer;background:0 0;border:0;padding:0;transform:translate(-50%,-50%)}.harbor-node,.harbor-node>i{border-radius:50%;position:absolute}.harbor-node>i{background:var(--ocean-accent,#6cd9cf);box-shadow:0 0 0 4px var(--ocean-shadow,#6cd9cf14),0 0 18px var(--ocean-shadow,#6cd9cf52);animation:node-pulse 3.8s ease-in-out infinite}.harbor-node>span{color:var(--ocean-secondary,#738c90);white-space:nowrap;opacity:.7;font-size:.52rem;position:absolute;top:-4px;left:14px}.harbor-node>div{border:1px solid var(--ocean-border,#71dad02b);background:var(--ocean-surface,#060d12f5);width:174px;box-shadow:0 18px 50px var(--ocean-shadow,#0000008c);text-align:left;opacity:0;pointer-events:none;border-radius:9px;flex-direction:column;gap:4px;padding:12px;transition:all .25s;display:flex;position:absolute;top:13px;left:17px;transform:translateY(7px)}.harbor-node:nth-of-type(n+7)>div{left:auto;right:16px}.harbor-node:focus-visible,.harbor-node:hover{z-index:20}.harbor-node:focus-visible>i,.harbor-node:hover>i{box-shadow:0 0 0 7px var(--ocean-shadow,#6cd9cf1a),0 0 24px var(--ocean-shadow,#6cd9cf80)}.harbor-node:focus-visible>span,.harbor-node:hover>span{color:var(--ocean-text,#d7efec);opacity:1}.harbor-node:focus-visible>div,.harbor-node:hover>div{opacity:1;transform:none}.harbor-node>div b{font-size:.61rem;font-weight:600}.harbor-node>div small{color:var(--ocean-secondary,#789397);font-size:.58rem}.source-details{border-top:1px solid var(--ocean-border,#85dfd617);border-bottom:1px solid var(--ocean-border,#85dfd617);margin:12px 0 0}.source-details summary{color:var(--ocean-secondary,#728b90);cursor:pointer;align-items:center;gap:8px;padding:13px 3px;font-size:.65rem;list-style:none;display:flex}.source-details summary::-webkit-details-marker{display:none}.source-details summary>svg{width:15px;color:var(--ocean-accent,#62cfc5)}.source-details summary>svg:last-child{margin-left:auto;transition:all .25s}.source-details[open] summary>svg:last-child{transform:rotate(90deg)}.source-details>div{grid-template-columns:1fr auto;gap:6px 18px;padding:4px 3px 16px;display:grid}.source-details span{color:var(--ocean-secondary,#5f777c);grid-column:1/-1;font-size:.58rem}.source-details strong{font-size:.72rem;font-weight:500}.source-details b{color:var(--ocean-accent,#78c9c1);font-size:.62rem;font-weight:550}.departure-slider>div:first-of-type{display:block}.departure-value{justify-content:space-between;align-items:baseline;margin-bottom:22px;display:flex}.departure-value strong{letter-spacing:-.04em;font-size:2rem;font-weight:400}.departure-value span{color:var(--ocean-secondary,#617a80);font-size:.62rem}.departure-slider [data-slot=slider]{width:calc(100% - 12px);margin:0 6px}.departure-ticks{grid-template-columns:repeat(6,1fr);margin-top:13px;display:grid!important}.departure-ticks button{color:var(--ocean-secondary,#60797e);background:0 0;border:0;font-size:.61rem}.departure-ticks button.active{color:var(--ocean-accent,#6fddd1)}.personal-insight{color:var(--ocean-secondary,#9bb7b5);margin:16px 0 0;font-size:.8rem;line-height:1.55}.best-window>small{color:var(--ocean-secondary,#77959a);letter-spacing:.02em;grid-column:1/-1;font-size:.64rem}@keyframes map-drift{to{transform:rotateX(5deg)rotate(0)translateY(-4px)}}@keyframes route-flow{to{stroke-dashoffset:-20px}}@keyframes node-pulse{50%{opacity:.68;transform:scale(.78)}}.harbor-node.east>div,.harbor-node.south>div{left:auto;right:16px}.home-view>.port-rail{border-top:1px solid var(--ocean-border,#85dfd614);margin:8px 0 0;padding-top:18px}.home-view>.port-rail .rail-grid{gap:8px;padding-bottom:7px;display:flex;overflow-x:auto}.home-view>.port-rail .mini-port{background:var(--ocean-surface,#08131a7a);min-width:205px;min-height:102px;box-shadow:none;border-radius:11px;padding:15px}.home-view>.port-rail .mini-port>strong{margin-top:5px;font-size:.86rem}.home-view>.port-rail .mini-port>div{bottom:12px;left:15px}.home-view>.port-rail .mini-port>div b{font-size:1.3rem}.home-view>.port-rail .mini-port>svg{bottom:14px;right:13px}.best-window,.primary-condition,.profile-card,.risk-hero,.secondary-conditions article,.timeline-section,.trip-builder{background:linear-gradient(145deg,var(--ocean-surface,#0b1921b8),var(--ocean-surface,#060e1470));box-shadow:0 30px 90px var(--ocean-shadow,#00000038)}.timeline-section,.trip-builder{border-color:var(--ocean-border,#86dfd614)}@media (max-width:1100px){.home-stage{grid-template-columns:minmax(400px,.95fr) minmax(430px,1.05fr)}.marine-map{height:540px}.home-intro h1{font-size:clamp(3.6rem,6.5vw,5.8rem)}}@media (max-width:900px){.home-stage{grid-template-columns:1fr;min-height:0}.home-intro{max-width:720px}.marine-map{height:520px;margin-top:-10px}.home-view>.port-rail{margin-top:28px}}@media (max-width:700px){.home-stage{display:block}.home-intro{padding-bottom:20px}.hero-subtitle{margin-top:18px;font-size:.94rem}.marine-map{height:450px;margin:8px -12px 0}.map-caption{top:5%;left:7%}.harbor-node>span{display:none}.harbor-node{width:14px;height:14px}.harbor-node>div{display:none}.search-results>button{grid-template-columns:21px 1fr 16px}.search-results .search-metrics{grid-column:2}.home-view>.port-rail .mini-port{min-width:185px}.departure-value{flex-direction:column;align-items:flex-start;gap:4px}.source-details>div{grid-template-columns:1fr}.source-details b,.source-details span,.source-details strong{grid-column:1}.best-window>small{margin-top:10px;display:block}.personal-insight{font-size:.74rem}}@media (prefers-reduced-motion:reduce){.harbor-node>i,.marine-map svg,.route-line{animation:none}}.harbor-node.selected{z-index:18}.harbor-node.selected>i{background:var(--ocean-accent,#b7fff7);box-shadow:0 0 0 7px var(--ocean-shadow,#6cd9cf1f),0 0 30px var(--ocean-shadow,#6cd9cf94)}.harbor-node.selected>span{color:var(--ocean-text,#e1f8f5);opacity:1}.spinning{animation:refresh-breathe 1s ease-in-out infinite}@keyframes refresh-breathe{50%{opacity:.35;transform:scale(.88)}}.app-shell{--font-copy:"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif;--font-data:"Geist","Inter","SF Pro Display",system-ui,sans-serif;font-family:var(--font-copy);line-height:1.7}.app-shell[lang=en]{font-family:var(--font-data)}.app-shell[lang=zh-Hant] :is(h1,h2,h3,strong,button,input){letter-spacing:normal}.app-shell:is(time,.status-detail,.score-side>strong,.best-window>strong,.live-reading>strong,.port-stat>strong,.coordinate-label){font-family:var(--font-data);font-variant-numeric:tabular-nums}.home-view,.workspace{padding-top:64px;padding-bottom:128px}.home-stage{grid-template-columns:minmax(390px,2fr) minmax(590px,3fr);gap:40px;min-height:680px}.home-intro{max-width:540px;padding:48px 0 64px}.home-intro h1,.workspace-head h1{font-size:clamp(3.25rem,5.2vw,4.5rem);font-weight:410;line-height:1.08}.home-intro h1 span{color:var(--ocean-secondary,#93a9ac);margin-bottom:16px;font-size:.44em}.hero-subtitle{color:var(--ocean-secondary,#9bb0b3);margin-top:24px;font-size:1.06rem;line-height:1.75}.eyebrow{font-family:var(--font-data);font-size:.75rem;line-height:1.4}.app-search{margin-top:32px}.app-search input{font-size:1rem;transition:border-color .2s,background .2s,box-shadow .2s}.app-search input:hover{background:var(--ocean-surface,#0a1b238a)}.app-search input:focus{border-color:var(--ocean-accent,#65ded1);box-shadow:0 16px 44px var(--ocean-shadow,#00080d57),0 1px 0 var(--ocean-shadow,#65ded18c)}.back-button,.desktop-nav button,.favorite,.header-actions button{font-size:.79rem}.status-detail b,.status-primary strong{font-size:.75rem}.refresh-button,.status-detail span,.status-primary small{font-size:.7rem!important}.data-status.inline .status-primary strong{font-size:.7rem}.data-status.compact .status-primary small{font-size:.68rem}.map-caption span{font-size:.72rem}.map-caption small{font-size:.72rem;line-height:1.45}.marine-map{height:650px}.marine-map svg{animation:none;transform:none}.taiwan-island,.taiwan-shape{fill:var(--ocean-land,#111d23);stroke:var(--ocean-border,#93e2d961);stroke-width:.38px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 16px 18px var(--ocean-shadow,#000000c7)) drop-shadow(-4px -4px 15px var(--ocean-shadow,#5ac7be14))}.taiwan-island{fill:var(--ocean-land,#132329);stroke-width:.3px}.harbor-node{width:13px;height:13px;transition:transform .22s}.harbor-node>i{transition:box-shadow .22s,background .22s,transform .22s;inset:1px}.harbor-node>span{text-shadow:0 2px 10px var(--ocean-shadow,#03090d);font-size:.67rem;line-height:1.4;top:-5px;left:17px}.harbor-node:focus-visible,.harbor-node:hover{transform:translate(-50%,-50%)scale(1.18)}.harbor-node>div{background:linear-gradient(145deg,var(--ocean-surface,#07181ffa),var(--ocean-surface,#040c11fa));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:14px;gap:5px;width:206px;padding:16px;top:16px;left:20px}.harbor-node.east>div,.harbor-node.south>div{right:19px}.harbor-node>div strong{font-size:.88rem}.harbor-node>div b{font-size:.72rem}.harbor-node>div small{font-size:.69rem;line-height:1.45}.harbor-node>div .coordinate-label{border-top:1px solid var(--ocean-border,#76d3cb1a);color:var(--ocean-secondary,#5f858a);margin-top:4px;padding-top:6px;font-size:.64rem}.harbor-node[data-port=tamsui]>span{text-align:right;left:auto;right:17px}.harbor-node[data-port=keelung]>span{top:-25px;left:-8px}.harbor-node[data-port=badouzi]>span{top:10px;left:17px}.harbor-node[data-port=green-nanliao]>span,.harbor-node[data-port=lanyu-kaiyuan]>span{text-align:right;left:auto;right:17px}.home-view>.port-rail{margin-top:24px;padding-top:24px}.rail-title>span{font-size:.9rem}.home-view>.port-rail .mini-port{min-width:224px;min-height:112px;padding:18px}.home-view>.port-rail .mini-port>strong{font-size:.94rem}.mini-port>span,.port-name>span,.port-stat>span{font-size:.75rem}.mini-port>div small,.port-name>small,.port-stat small{font-size:.68rem}.port-row-main{padding-top:26px;padding-bottom:26px}.port-name>strong{font-size:1.05rem}.port-stat>strong{font-size:1rem}.port-identity{margin-top:48px;margin-bottom:48px}.port-identity p{font-size:.78rem}.port-identity>div>span{font-size:.88rem}.conditions-stage{gap:24px}.primary-condition{border-radius:24px;padding:32px}.primary-condition>span,.secondary-conditions article>span{font-size:.78rem}.secondary-conditions{border-top:1px solid var(--ocean-border,#86dfd61c);border-bottom:1px solid var(--ocean-border,#86dfd61c);gap:0}.secondary-conditions article,.secondary-conditions article:last-child{min-height:0;box-shadow:none;background:0 0;border:0;border-radius:0;grid-column:auto;padding:24px 12px}.secondary-conditions article:nth-child(odd){border-right:1px solid var(--ocean-border,#86dfd61a)}.secondary-conditions article:last-child{border-top:1px solid var(--ocean-border,#86dfd61a);border-right:0;grid-column:1/-1}.secondary-conditions svg{margin-bottom:16px}.secondary-conditions strong{font-family:var(--font-data);font-size:1.35rem}.source-details summary{padding:16px 3px;font-size:.78rem}.source-details span{font-size:.72rem}.source-details strong{font-size:.84rem}.source-details b{font-size:.75rem}.trip-builder{margin-top:64px;padding:32px}.choice strong,.choice-group h3,.filter-row button,.pill{font-size:.78rem}.departure-ticks button,.departure-value span{font-size:.72rem}.result-view{padding-top:64px}.risk-hero{border-radius:24px;min-height:500px;margin-top:32px}.score-side{padding:48px 56px}.score-side>p{font-size:.88rem}.score-side>span{font-size:.75rem}.score-side>strong{font-size:clamp(7rem,12vw,10rem)}.score-side>small{font-size:.8rem}.decision-side{padding:56px}.risk-badge{font-size:.72rem}.personal-insight{font-size:1rem;line-height:1.75}.decision-side h2{font-size:clamp(1.9rem,3vw,2.55rem);line-height:1.4}.cause-chips span,.weight-link{font-size:.78rem}.best-window{margin-top:32px;padding:28px 32px}.best-window>div,.best-window>p,.best-window>small{font-size:.78rem}.best-window>strong{font-size:clamp(2.4rem,4vw,3.6rem)}.timeline-section{margin-top:96px;padding:40px 32px}.timeline-title h2{font-size:clamp(2.25rem,4vw,3.25rem)}.timeline-title>p{font-size:.8rem}.live-reading>span,.timeline-ticks button span{font-size:.75rem}.timeline-ticks button strong{font-size:.94rem}.live-reading p{font-size:.78rem}.brief-strip{margin-top:96px}.brief-heading,.brief-items strong,.brief-items time{font-size:.78rem}.log-trip-button{margin-top:32px}.cursor-light{background:radial-gradient(circle,var(--ocean-tint,#69ebdb1f),var(--ocean-tint,#2fa0a80a) 36%,transparent 69%);filter:blur(2px);width:620px;height:620px}@media (max-width:1100px){.home-stage{grid-template-columns:minmax(360px,2fr) minmax(480px,3fr);gap:24px}.marine-map{height:570px}}@media (max-width:900px){.home-stage{grid-template-columns:1fr;gap:16px}.home-intro{padding-bottom:24px}.marine-map{height:560px}}@media (max-width:700px){.home-view,.workspace{padding-top:48px;padding-bottom:112px}.home-intro h1,.workspace-head h1{font-size:clamp(2.8rem,13vw,3.5rem)}.home-intro{padding-top:24px}.marine-map{height:470px;margin-top:16px}.map-caption small{font-size:.68rem}.secondary-conditions article{padding:20px 12px}.trip-builder{margin-top:48px;padding:24px 20px}.score-side>strong{font-size:7.8rem}.decision-side{padding:36px 26px}.best-window{margin-top:24px}.timeline-section{margin-top:64px;padding:28px 20px}.brief-strip{margin-top:64px}.status-detail b,.status-primary strong{font-size:.72rem}}.app-shell .port-rail .mini-port{flex-direction:column;flex-shrink:0;align-items:stretch;gap:8px;min-height:140px;padding:18px;display:flex}.app-shell .port-rail .mini-port>span{line-height:1.4}.app-shell .port-rail .mini-port>strong{overflow-wrap:anywhere;margin:0;line-height:1.45}.app-shell .port-rail .mini-port>div{min-height:26px;margin-top:4px;padding-right:24px;line-height:1.2;position:static}.home-stage{min-height:620px}.home-intro{padding-top:28px;padding-bottom:32px}.home-stage .app-search input{border:1px solid var(--ocean-border,#83cbc83d);background:var(--ocean-surface,#0b1b23e8);border-radius:12px}.home-stage .app-search input:focus{border-color:var(--ocean-accent,#90d9cf);box-shadow:0 0 0 3px var(--ocean-shadow,#83cbc815)}.app-search .clear-search{width:44px;height:44px;top:9px;right:6px}.search-results{overscroll-behavior:contain;max-height:min(430px,55dvh);overflow-y:auto}.search-results>button[aria-selected=true]{background:var(--ocean-surface,#173332);outline:1px solid var(--ocean-border,#7cbcaf55)}.search-results>button{min-height:60px}.rail-title{justify-content:space-between;gap:16px}.rail-explore{min-height:44px;color:var(--ocean-secondary,#abd3cc);align-items:center;gap:4px;font-size:12px;display:flex}.comparison-note{color:var(--ocean-secondary,#95afb1);margin:0 0 14px;font-size:11px}.rail-empty{color:var(--ocean-secondary,#a2b9ba);padding:20px 0;font-size:13px}.app-shell .mini-port .mini-conditions{color:var(--ocean-secondary,#a0b9bb);margin:0;font-size:11px;line-height:1.6}.storage-notice{width:min(1240px,100% - 40px);color:var(--ocean-secondary,#d6c5a5);border:1px solid var(--ocean-border,#d6b28044);background:var(--ocean-surface,#251f18);border-radius:10px;margin:16px auto 0;padding:12px 16px;font-size:12px}.app-shell button:focus-visible{outline:2px solid var(--ocean-accent,#9dd2c5);outline-offset:3px}.chart-loading{height:280px;color:var(--ocean-secondary,#abc3c5);place-items:center;display:grid}.result-chart{min-width:0}.chart-metric-tabs{gap:7px;margin:0 0 8px;display:flex}.chart-metric-tabs button{border:1px solid var(--ocean-border,#84ded524);color:var(--ocean-secondary,#89a9ad);background:0 0;border-radius:999px;padding:7px 13px;font-size:.68rem}.chart-metric-tabs button:focus-visible,.chart-metric-tabs button:hover{border-color:var(--ocean-accent,#69ded0);color:var(--ocean-text,#ddf4f1)}.chart-metric-tabs button.active{background:var(--ocean-tint,#59d8cc1f);border-color:var(--ocean-accent,#69ded0);color:var(--ocean-accent,#69ded0)}.forecast-ranges button,.port-detail-panel .panel-heading>button,.port-detail-panel .panel-time button{min-width:44px;min-height:44px}.port-detail-panel .panel-time button{padding:0 8px}@media (max-width:700px){.home-view{padding-top:28px}.home-intro{padding-top:16px;padding-bottom:12px}.home-stage .app-search input{font-size:16px}.app-search .clear-search{top:7px}.search-results>button{grid-template-columns:20px minmax(0,1fr) 18px;padding:12px}.search-results>button>.search-metrics{grid-area:2/2}.search-results>button>svg:last-child{grid-area:1/3/3}.search-results>button>span{min-width:0}.search-results small{white-space:normal}.home-intro .data-status{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;padding:12px;display:flex}.home-intro .data-status .status-detail{display:none}.home-intro .data-status .refresh-button{min-height:44px;margin-left:auto}.port-rail .rail-title{align-items:center}.rail-title>span{font-size:13px}.rail-explore{font-size:11px}.back-button,.departure-ticks button,.favorite,.filter-row button,.language-button,.pill,.remove-port,.timeline-ticks button{min-width:44px;min-height:44px}.port-detail-panel .marine-time-ticks{grid-template-columns:repeat(8,minmax(44px,1fr));padding-bottom:4px;overflow-x:auto}.port-detail-panel .panel-best{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){.app-shell *,.app-shell :after,.app-shell :before{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.model-disclosure{color:var(--ocean-secondary,#a7bebd);margin:18px 0;font-size:12px;line-height:1.7}.map-harbor-select{display:none}@media (max-width:700px){.map-harbor-select{border:1px solid var(--ocean-border,#90cfc63d);background:var(--ocean-surface,#0b2029);width:min(260px,75vw);min-height:44px;color:var(--ocean-text,#cce5de);font:inherit;border-radius:10px;margin-top:8px;padding:8px 12px;font-size:13px;display:block}.map-caption{max-width:85%}}.home-intro .data-status{flex-wrap:wrap;gap:10px}.home-intro .data-status .status-primary{flex:165px;min-width:0}.home-intro .data-status .status-detail{display:none}.home-intro .data-status .refresh-button{min-height:44px}.departure-ticks{grid-template-columns:repeat(8,1fr)}.brief-scenario{color:var(--ocean-secondary,#99b8b8);font-size:12px}@media (max-width:700px){.departure-ticks,.timeline-ticks{grid-template-columns:repeat(4,1fr);gap:6px}.port-row-main{grid-template-columns:minmax(0,1fr) 90px 18px;gap:12px}.port-row-main .port-name{overflow-wrap:anywhere;min-width:0}.port-row-main .port-stat:nth-of-type(2){display:block}.port-row-main .port-stat>span{font-size:11px}}.auth-shell{--auth-copy:"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif;--auth-display:var(--font-huninn),"PingFang TC","Microsoft JhengHei",system-ui,sans-serif;isolation:isolate;color:#edf8f6;min-height:100vh;font-family:var(--auth-copy);background:radial-gradient(circle at 76% 24%,#1a737a33,#0000 35%),linear-gradient(145deg,#050a0e,#07131a 55%,#061018);padding:0 clamp(24px,6vw,96px);position:relative;overflow:hidden}.auth-ocean{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.auth-ocean:before{content:"";opacity:.13;background-image:radial-gradient(circle,#9cf6eb38 0 1px,#0000 1.2px);background-size:96px 96px;position:absolute;inset:-20%;transform:rotate(-7deg)}.auth-ocean i{border:1px solid #69ddd312;border-radius:50%;width:125%;height:42%;position:absolute;left:-12%;transform:rotate(-5deg)}.auth-ocean i:first-child{top:20%}.auth-ocean i:nth-child(2){top:43%;transform:rotate(4deg)}.auth-ocean i:nth-child(3){top:66%;transform:rotate(-2deg)}.auth-header{border-bottom:1px solid #8de2da1a;justify-content:space-between;height:84px}.auth-brand,.auth-header{align-items:center;display:flex}.auth-brand{gap:11px}.auth-brand>span{background:linear-gradient(145deg,#68e1d3,#23828e);border-radius:13px;place-items:center;width:40px;height:40px;display:grid;box-shadow:0 12px 38px #4fdacf33}.auth-brand svg{width:21px}.auth-brand strong{font-size:.92rem}.auth-brand b{color:#68ded1}.auth-header>button{color:#90b0b3;background:#0a262f7a;border:1px solid #83dcd41f;border-radius:11px;align-items:center;gap:7px;padding:9px 12px;font-size:.78rem;display:flex}.auth-header>button svg{width:16px}.auth-layout{grid-template-columns:1.08fr .92fr;align-items:center;gap:clamp(48px,8vw,120px);min-height:calc(100vh - 84px);padding:64px 0 86px;display:grid}.auth-story{max-width:630px}.auth-story .eyebrow{margin-bottom:22px}.auth-story h1{font-family:var(--auth-display);letter-spacing:-.035em;margin:0;font-size:clamp(3.4rem,6vw,6.2rem);font-weight:400;line-height:1.08}.auth-story h1 span{color:#89e2da}.auth-story>p:not(.eyebrow){color:#91aaad;max-width:510px;margin:28px 0 0;font-size:1.04rem;line-height:1.8}.auth-points{color:#79aaa9;flex-wrap:wrap;gap:12px 24px;margin-top:34px;font-size:.78rem;display:flex}.auth-points span{align-items:center;gap:8px;display:flex}.auth-points svg{color:#67dcd0;width:17px}.auth-card{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:linear-gradient(145deg,#0b232ce6,#06141cc2);border:1px solid #87e2d826;border-radius:26px;justify-self:end;width:min(100%,500px);padding:34px;box-shadow:0 45px 120px #00050970}.auth-card-head{align-items:center;gap:15px;margin-bottom:30px;display:flex}.auth-card-head>span{color:#67dbcf;background:#63ded11a;border-radius:11px;place-items:center;width:38px;height:38px;font-size:.68rem;display:grid}.auth-card-head h2,.auth-card-head p{margin:0}.auth-card-head p{color:#6f9599;font-size:.72rem}.auth-card-head h2{font-family:var(--auth-display);margin-top:2px;font-size:1.65rem;font-weight:400}.auth-card form{gap:22px}.auth-card form,.auth-card label{flex-direction:column;display:flex}.auth-card label{color:#a9c0c0;gap:8px;font-size:.78rem}.auth-card label>small{color:#58777c;font-size:.68rem;line-height:1.4}.auth-input{position:relative}.auth-input>svg{z-index:2;color:#60cbc1;width:18px;position:absolute;top:16px;left:15px}.auth-input input{color:#edf8f6;background:#03101694;border-color:#81dcd424;height:52px;padding:0 48px;font-size:.92rem}.auth-input input:focus{border-color:#67e0d29e;box-shadow:0 0 0 3px #5cd3c814}.password-toggle{color:#668b90;background:0 0;border:0;border-radius:9px;place-items:center;width:36px;height:36px;display:grid;position:absolute;top:8px;right:9px}.password-toggle:hover{color:#d7efed;background:#68ddd214}.password-toggle svg{width:17px}.auth-error{color:#ffaaa2;background:#932d2d1a;border:1px solid #ff91872e;border-radius:11px;margin:-5px 0 0;padding:11px 13px;font-size:.75rem;line-height:1.5}.auth-submit{height:54px;margin-top:2px;color:#05252c!important;background:linear-gradient(110deg,#62e0d1,#76cbd4)!important;border-radius:14px!important;font-weight:700!important}.auth-submit svg{width:17px}.auth-switch{color:#6f9095;justify-content:center;gap:7px;margin-top:24px;font-size:.75rem;display:flex}.auth-switch button{color:#6cdacf;background:0 0;border:0;padding:0;font-weight:650}.auth-privacy{color:#58767b;text-align:center;border-top:1px solid #85ded617;margin:22px 0 0;padding-top:18px;font-size:.66rem;line-height:1.55}.auth-loading{place-items:center;display:grid}.auth-loading>div:last-child{color:#7fa5a8;flex-direction:column;align-items:center;gap:16px;display:flex}.auth-loading>div:last-child svg{color:#64d9cd;width:34px}.auth-loading p{letter-spacing:.04em;margin:0;font-size:.8rem}.auth-guest-divider{color:#4f7277;align-items:center;gap:12px;margin:22px 0 14px;font-size:.62rem;display:flex}.auth-guest-divider:after,.auth-guest-divider:before{content:"";background:#85ded61a;flex:1;height:1px}.auth-guest{width:100%;height:50px;color:#a9d8d3!important;background:#4ab8b00d!important;border-color:#70d9cf33!important}.auth-guest:hover{color:#e1f4f1!important;background:#4ab8b01c!important}.auth-guest svg{width:17px}.auth-guest-note{color:#628489;text-align:center;margin:10px 0 0;font-size:.66rem;line-height:1.55}.guest-session-notice{z-index:20;color:#8fc7c2;text-align:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#092b33b8;border:1px solid #69ded229;border-radius:12px;width:min(1180px,100% - 56px);margin:16px auto -8px;padding:10px 14px;font-size:.7rem;line-height:1.5;position:relative}.profile-card label small{color:var(--ocean-secondary,#64868c);margin-top:7px;font-size:.7rem;display:block}.profile-card input[readonly]{cursor:default;color:var(--ocean-text,#bcd2cf);background:var(--ocean-surface,#03121873)}.profile-sync{border:1px solid var(--ocean-border,#69ded21f);background:var(--ocean-surface,#46bab10f);color:var(--ocean-secondary,#7db7b3);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;font-size:.74rem;display:flex}.profile-sync span{align-items:center;gap:7px;display:flex}.profile-sync svg{width:16px;color:var(--ocean-accent,#67d9cc)}.profile-sync b{color:var(--ocean-text,#d8eeeb);font-weight:600}.logout-button{margin-top:20px;color:#e89a92!important;border-color:#e89a9238!important}.logout-button svg{width:16px}@media (max-width:900px){.auth-layout{grid-template-columns:1fr;gap:42px;padding-top:54px}.auth-story{max-width:680px}.auth-story h1 br{display:none}.auth-card{justify-self:start;width:min(100%,560px)}}@media (max-width:600px){.auth-shell{padding:0 18px;overflow:auto}.auth-header{height:70px}.auth-layout{gap:24px;min-height:auto;padding:36px 0 64px}.auth-story .eyebrow{margin-bottom:15px}.auth-story h1{font-size:clamp(2.35rem,10.5vw,3rem);line-height:1.1}.auth-story>p:not(.eyebrow){margin-top:16px;font-size:.88rem;line-height:1.65}.auth-points{display:none}.auth-card{border-radius:22px;padding:25px 20px}.auth-card-head{margin-bottom:25px}.auth-input input{font-size:1rem}.auth-switch{flex-wrap:wrap}.auth-privacy{text-align:left}.profile-sync{flex-direction:column;align-items:flex-start}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}:root{color-scheme:dark}:root[data-theme=light]{color-scheme:light;--background:#f6fafc;--foreground:#17324d;--card:#fff;--card-foreground:#17324d;--popover:#fff;--popover-foreground:#17324d;--primary:#155e80;--primary-foreground:#fff;--secondary:#edf5f8;--secondary-foreground:#17324d;--muted:#edf5f8;--muted-foreground:#536d80;--accent:#ddf1f7;--accent-foreground:#155e80;--destructive:#ad3634;--border:#dce8ee;--input:#c7dbe4;--ring:#247ba0;--ocean-surface:#f9fcfd;--ocean-text:#17324d;--ocean-secondary:#536d80;--ocean-accent:#155e80;--ocean-on-accent:#fff;--ocean-tint:#ddf1f780;--ocean-border:#c7dbe4;--ocean-shadow:#194b690d;--ocean-land:#f9fcf9;--risk-low:#16734f;--risk-medium:#866000;--risk-high:#b03934;--risk-very-high:#99344b;--chart-accent:#247ba0;--chart-grid:#dce8ee;--chart-label:#536d80;--chart-surface:#fff}.theme-toggle{position:relative;min-width:44px;min-height:44px;justify-content:center}.theme-toggle svg{position:absolute;transition:opacity .25s ease,transform .25s ease}.theme-moon{opacity:0;transform:translateY(4px)}[data-theme=light] .theme-sun{opacity:0;transform:translateY(-4px)}[data-theme=light] .theme-moon{opacity:1;transform:translateY(0)}.theme-toggle:focus-visible{outline:2px solid var(--ring);outline-offset:3px}.app-shell,[role=dialog],body{transition-property:background-color,color,border-color,box-shadow;transition-duration:.25s;transition-timing-function:ease}[data-theme=light] .app-shell,[data-theme=light] .app-shell:is(.risk-high,.risk-veryHigh){background:linear-gradient(155deg,#f8fcfe,#edf6f9 60%,#f6fafc)}[data-theme=light] .home-stage{--font-copy:"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif}[data-theme=light] :is(.primary-condition,.trip-builder,.risk-hero,.best-window,.timeline-section,.profile-card,.port-row-card,.mini-port,.search-results,.mobile-popover,.port-detail-panel){background:#fff;box-shadow:0 4px 20px #194b690d}[data-theme=light] .home-stage .app-search input{background:#fff}[data-theme=light] .ocean-dialog{background:#fff!important}[data-theme=light] .score-side{background:#edf5f8}[data-theme=light] :is(.analyze-primary,.panel-analyze){background:#155e80!important;color:#fff!important}[data-theme=light] .forecast-ranges button[aria-pressed=true],[data-theme=light] :is(.choice,.pill,.filter-row button,.forecast-ranges button,.marine-time-ticks button,.departure-ticks button).active{background:#ddf1f7;color:#155e80}[data-theme=light] .low{color:var(--risk-low)!important}[data-theme=light] .medium{color:var(--risk-medium)!important}[data-theme=light] .high{color:var(--risk-high)!important}[data-theme=light] .veryHigh{color:var(--risk-very-high)!important}[data-theme=light] .panel-risk{--risk-color:var(--risk-low)}[data-theme=light] .panel-risk.medium{--risk-color:var(--risk-medium)}[data-theme=light] .panel-risk.high{--risk-color:var(--risk-high)}[data-theme=light] .panel-risk.veryHigh{--risk-color:var(--risk-very-high)}[data-theme=light] .harbor-node.low>i{background:var(--risk-low)}[data-theme=light] .harbor-node.medium>i{background:var(--risk-medium)}[data-theme=light] .harbor-node.high>i{background:var(--risk-high)}[data-theme=light] .harbor-node.veryHigh>i{background:var(--risk-very-high)}[data-theme=light] .harbor-node.selected>i{outline-color:#155e80}[data-theme=light] .harbor-node>span{opacity:1;text-shadow:none}[data-theme=light] .taiwan-island,[data-theme=light] .taiwan-shape{fill:var(--ocean-land);stroke:#6b9ba9;filter:drop-shadow(0 6px 9px #194b6914)}[data-theme=light] .marine-map{filter:none}[data-theme=light] .marine-map:before{background:radial-gradient(ellipse,#ddf1f7b3,transparent 70%)}[data-theme=light] .ocean-particle-hero{color:#247ba0}[data-theme=light] .ocean-particle-hero:after{background:linear-gradient(105deg,#f8fcfe33,transparent 58%)}[data-theme=light] :is(.cursor-light,.depth-light,.ocean-noise){opacity:.25}[data-theme=light] .brand>span{color:#fff}@media(max-width:700px){.header-actions .theme-toggle{padding:0;width:44px;height:44px;flex-shrink:0}}@media(prefers-reduced-motion:reduce){body,body *,body :after,body :before{transition:none!important;animation:none!important}}[data-theme=light] .risk-badge.low{background:#e7f4ee}[data-theme=light] .risk-badge.medium{background:#fbf2da}[data-theme=light] .risk-badge.high,[data-theme=light] .risk-badge.veryHigh{background:#fcece9}