@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans Fallback;src:local("Arial");ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.00%;size-adjust:104.98%}.__className_a11773{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.__variable_a11773{--font-sans-next:"Plus Jakarta Sans","Plus Jakarta Sans Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_898c26{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_898c26{--font-mono-next:"JetBrains Mono","JetBrains Mono Fallback"}

/*! tailwindcss v4.3.0 | 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)))){*,::backdrop,:after,:before{--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--shadow-sm:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--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{.fixed{position:fixed}.block{display:block}.flex{display:flex}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.underline{text-decoration-line:underline}.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))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}}:root{--c-leaf:#3fae5a;--c-forest:#16683a;--c-pine:#0e4a29;--c-leaf-soft:#e6f3ea;--c-ink:#0e1b14;--c-ink-2:#2a3530;--c-muted:#5a6661;--c-muted-2:#8a938e;--c-line:#e4e2da;--c-line-strong:#d2d0c7;--c-bg:#f7f6f2;--c-surface:#fff;--c-surface-2:#fbfaf6;--c-danger:#b8442c;--c-warn:#c58a1b;--r-xs:999px;--r-sm:999px;--r-md:999px;--r-lg:22px;--r-xl:28px;--shadow-sm:0 1px 2px #0e1b140a,0 1px 1px #0e1b1408;--shadow-md:0 4px 16px -4px #0e1b1414,0 2px 4px #0e1b140a;--shadow-lg:0 24px 48px -16px #0e1b142e,0 8px 16px -8px #0e1b141a;--pad-y:14px;--pad-x:16px;--font-sans:var(--font-sans-next),system-ui,-apple-system,Segoe UI,sans-serif;--font-mono:var(--font-mono-next),ui-monospace,SFMono-Regular,Menlo,monospace}[data-density=compact]{--pad-y:11px;--pad-x:14px}*{box-sizing:border-box}body,html{margin:0;padding:0}html{height:100%}body{min-height:100%;font-family:var(--font-sans);background:var(--c-bg);color:var(--c-ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-feature-settings:"ss01","cv11"}button{cursor:pointer}button,input,select,textarea{font-family:inherit}.btn{padding:var(--pad-y) calc(var(--pad-x) + 4px);border-radius:var(--r-md);letter-spacing:-.005em;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;font-size:14.5px;font-weight:600;text-decoration:none;transition:transform 80ms,background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--c-leaf);outline-offset:2px}.btn:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--c-forest);color:#fff;box-shadow:inset 0 1px #ffffff2e,0 1px 2px #0e4a294d}.btn-primary:hover{background:var(--c-pine)}.btn-ghost{color:var(--c-ink);border-color:var(--c-line);background:0 0}.btn-ghost:hover{background:var(--c-surface-2);border-color:var(--c-line-strong)}.btn-link{color:var(--c-forest);background:0 0;border:none;border-radius:6px;padding:4px 6px}.btn-link:hover{color:var(--c-pine);text-underline-offset:3px;text-decoration:underline}.btn-danger-ghost{color:var(--c-danger);background:0 0;border-color:#0000}.btn-danger-ghost:hover{background:#b8442c0f}.btn-block{width:100%}.btn-lg{padding:16px 20px;font-size:15px}.field{flex-direction:column;gap:6px;display:flex}.field-row{gap:12px;display:grid}.field-label{color:var(--c-ink-2);letter-spacing:-.005em;font-size:13px;font-weight:600}.field-hint{color:var(--c-muted);letter-spacing:-.005em;font-size:12.5px}.field-err{color:var(--c-danger);align-items:center;gap:6px;font-size:12.5px;display:flex}.input{appearance:none;border:1px solid var(--c-line-strong);background:var(--c-surface);border-radius:var(--r-md);padding:var(--pad-y) var(--pad-x);color:var(--c-ink);width:100%;font-size:15px;transition:border-color .15s,box-shadow .15s}.input::placeholder{color:var(--c-muted-2)}.input:hover{border-color:#b7b5ab}.input:focus{border-color:var(--c-forest);outline:none;box-shadow:0 0 0 4px #16683a1a}.input[aria-invalid=true]{border-color:var(--c-danger);box-shadow:0 0 0 4px #b8442c1a}.input-wrap{align-items:center;display:flex;position:relative}.input-wrap .input{padding-right:42px}.input-affix{width:28px;height:28px;color:var(--c-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:inline-flex;position:absolute;right:10px}.input-affix:hover{color:var(--c-ink);background:var(--c-surface-2)}.card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-pad{padding:28px}.divider-or{color:var(--c-muted);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:12px;font-size:12px;font-weight:600;display:flex}.divider-or:after,.divider-or:before{content:"";background:var(--c-line);flex:1;height:1px}.checkbox{color:var(--c-ink-2);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13.5px;display:inline-flex}.checkbox input{accent-color:var(--c-forest);width:16px;height:16px}.tag{background:var(--c-leaf-soft);color:var(--c-forest);gap:6px;padding:4px 8px}.tag-warn{color:#8a5a0f;background:#fbf2dc}.tag-neutral{background:var(--c-surface-2);color:var(--c-muted);border:1px solid var(--c-line)}.strength{gap:4px;margin-top:2px;display:flex}.strength-bar{background:var(--c-line);border-radius:999px;flex:1;height:4px;transition:background .2s}.strength-bar.on-1{background:#d58e5b}.strength-bar.on-2{background:#c5a93a}.strength-bar.on-3{background:var(--c-leaf)}.strength-bar.on-4{background:var(--c-forest)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{border:2px solid var(--c-bg);background:#d8d6cd;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#c2bfb3}.brand-mark{color:var(--c-ink);letter-spacing:-.02em;align-items:center;gap:10px;font-size:18px;font-weight:700;text-decoration:none;display:inline-flex}.brand-mark img{object-fit:contain;width:28px;height:28px}.brand-mark .dot{background:var(--c-leaf);border-radius:50%;width:6px;height:6px;margin-left:2px;animation:pulse 2.4s ease-in-out infinite;display:inline-block}@keyframes pulse{50%{opacity:.5}}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes bar{0%,to{width:30%}50%{width:78%}}.fade-up{animation:fadeUp .36s cubic-bezier(.2,.7,.2,1) both}.fade-up-1{animation-delay:0s}.fade-up-2{animation-delay:60ms}.fade-up-3{animation-delay:.12s}.fade-up-4{animation-delay:.18s}.fade-in{animation:fadeIn .3s both}.view-fade{animation:fadeUp .32s cubic-bezier(.2,.7,.2,1) both}.auth-shell{background:var(--c-bg);grid-template-columns:1.05fr 1fr;min-height:100vh;display:grid}.auth-aside{background:radial-gradient(120% 80% at 0 0,#3fae5a33,transparent 55%),radial-gradient(80% 80% at 100% 100%,#0e4a2973,transparent 50%),linear-gradient(160deg,var(--c-forest) 0,var(--c-pine) 100%);color:#eaf6ee;flex-direction:column;padding:40px;display:flex;position:relative;overflow:hidden}.auth-aside-top{color:#fff;justify-content:space-between;align-items:center;display:flex}.auth-aside-mark{letter-spacing:-.02em;align-items:center;gap:12px;font-size:19px;font-weight:700;display:inline-flex}.auth-aside-mark img{object-fit:contain;filter:brightness(0)invert()drop-shadow(0 1px #0000001a);width:34px;height:34px}.auth-aside-content{z-index:2;margin-top:auto;position:relative}.auth-aside-eyebrow{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:#9fd4ac;margin-bottom:16px;font-size:11.5px}.auth-aside h2{letter-spacing:-.025em;text-wrap:balance;margin:0 0 16px;font-size:38px;font-weight:700;line-height:1.08}.auth-aside p{color:#bcddc4;max-width:440px;margin:0 0 28px;font-size:15.5px;line-height:1.55}.auth-form-wrap{flex-direction:column;justify-content:center;align-items:center;padding:40px;display:flex}.auth-form{width:100%;max-width:480px}.auth-form-header{margin-bottom:28px}.auth-form-header h1{letter-spacing:-.025em;color:var(--c-ink);margin:0 0 8px;font-size:30px;font-weight:700;line-height:1.1}.auth-form-header p{color:var(--c-muted);margin:0;font-size:15px}.auth-form .field-stack{flex-direction:column;gap:16px;display:flex}.federated-row{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.federated-btn{background:var(--c-surface);border:1px solid var(--c-line-strong);border-radius:var(--r-md);color:var(--c-ink);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:12px 10px;font-size:13.5px;font-weight:600;text-decoration:none;transition:border-color .15s,background .15s;display:inline-flex}.federated-btn:hover{border-color:var(--c-forest);background:var(--c-surface-2)}.federated-btn svg{flex-shrink:0;width:18px;height:18px}.federated-btn.disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.auth-foot{text-align:center;color:var(--c-muted);margin-top:22px;font-size:14px}.auth-foot a{color:var(--c-forest);font-weight:600;text-decoration:none}.auth-foot a:hover{text-underline-offset:3px;text-decoration:underline}.aside-art{opacity:.95}.aside-art,.aside-bg-grid{pointer-events:none;position:absolute;inset:0}.aside-bg-grid{background-image:linear-gradient(#ffffff0a 1px,#0000 0),linear-gradient(90deg,#ffffff0a 1px,#0000 0);background-size:56px 56px;-webkit-mask-image:radial-gradient(70% 60% at 70% 60%,#000 30%,#0000 80%);mask-image:radial-gradient(70% 60% at 70% 60%,#000 30%,#0000 80%)}.sensor-card{-webkit-backdrop-filter:blur(8px);font-family:var(--font-mono);letter-spacing:.04em;min-width:180px;font-size:11.5px;position:absolute}.sensor-card .sc-label{color:#9fd4ac;text-transform:uppercase;letter-spacing:.16em;margin-bottom:6px;font-size:10px}.sensor-card .sc-val{font-family:var(--font-sans);letter-spacing:-.02em;font-size:22px;font-weight:700}.sensor-card .sc-val small{color:#bcddc4;margin-left:2px;font-size:12px;font-weight:500}.sensor-card .sc-bar{background:#ffffff1f;border-radius:4px;height:4px;margin-top:8px;overflow:hidden}.sensor-card .sc-bar>i{background:linear-gradient(90deg,var(--c-leaf),#bcf0cb);border-radius:4px;height:100%;animation:bar 4.2s ease-in-out infinite;display:block}.aside-orb{z-index:1;filter:blur(28px);background:radial-gradient(circle at 35% 30%,#ffffff4d,#0000 60%);border-radius:50%;animation:pulse 7s ease-in-out infinite both;position:absolute}.auth-mobile-brand{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;width:100%;max-width:420px;margin-bottom:24px;display:none}.auth-mobile-brand .brand-mark{flex-direction:column;gap:8px;font-size:24px}.auth-mobile-brand .brand-mark img{width:64px;height:64px}.portal-shell{background:var(--c-bg);grid-template-columns:248px 1fr;min-height:100vh;display:grid}.portal-aside{border-right:1px solid var(--c-line);flex-direction:column;gap:24px;height:100vh;padding:24px 16px;display:flex;overflow-y:auto}.mobile-topbar,.portal-aside{background:var(--c-surface);position:sticky;top:0}.mobile-topbar{border-bottom:1px solid var(--c-line);z-index:50;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:none}.icon-btn{border:1px solid var(--c-line);border-radius:var(--r-md);width:38px;height:38px;color:var(--c-ink);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--c-surface-2)}.mobile-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:110;background:#0e1b1466;animation:fadeIn .18s both;display:none;position:fixed;inset:0}.nav-section-foot{flex-direction:column;gap:8px;margin-top:auto;display:flex}.nav-item.external{justify-content:space-between}.nav-item.external .ext-icon{opacity:.4;flex-shrink:0}.nav-item.external:hover .ext-icon{opacity:.85}.portal-nav{flex-direction:column;gap:2px;display:flex}.portal-nav-label{letter-spacing:.14em;text-transform:uppercase;color:var(--c-muted-2);padding:14px 12px 6px;font-size:11px;font-weight:700}.nav-item{border-radius:var(--r-sm);color:var(--c-ink-2);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:9px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.nav-item:hover{background:var(--c-surface-2);color:var(--c-ink)}.nav-item.active{background:var(--c-leaf-soft);color:var(--c-forest);font-weight:600}.nav-item svg{flex-shrink:0;width:18px;height:18px}.nav-item .badge{background:var(--c-forest);color:#fff;border-radius:999px;margin-left:auto;padding:2px 7px;font-size:10.5px;font-weight:700}.nav-item.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.portal-main{width:100%;max-width:1080px;margin:0 auto;padding:32px 40px 64px}.portal-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;display:flex}.portal-title{letter-spacing:-.025em;margin:0 0 4px;font-size:28px;font-weight:700;line-height:1.15}.portal-sub{color:var(--c-muted);margin:0;font-size:14.5px}.user-pill{background:var(--c-surface);border:1px solid var(--c-line);color:var(--c-ink-2);border-radius:999px;align-items:center;gap:10px;padding:6px 12px 6px 6px;font-size:13.5px;font-weight:600;display:inline-flex}.user-pill .avatar{width:28px;height:28px;font-size:11px}.avatar{background:linear-gradient(135deg,var(--c-leaf) 0,var(--c-forest) 100%);color:#fff;letter-spacing:-.01em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:14px;font-weight:700;display:inline-flex;position:relative;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar-xl{width:96px;height:96px;font-size:32px}.avatar-lg{width:64px;height:64px;font-size:22px}.stat{background:var(--c-surface);border:1px solid var(--c-line);border-radius:14px;padding:16px 18px;position:relative;overflow:hidden}.stat .stat-label{letter-spacing:.05em;text-transform:uppercase;color:var(--c-muted);margin:0 0 6px;font-size:12px;font-weight:600}.stat .stat-val{letter-spacing:-.02em;align-items:baseline;gap:6px;font-size:26px;font-weight:700;line-height:1.1;display:flex}.stat .stat-val small{color:var(--c-muted);font-size:13px;font-weight:500}.stat .stat-delta{color:var(--c-forest);margin-top:2px;font-size:12px;font-weight:600}.stat .stat-delta.down{color:var(--c-danger)}.section-head{border-bottom:1px solid var(--c-line);justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;display:flex}.section-head h3{letter-spacing:-.01em;margin:0;font-size:16px;font-weight:700}.section-head p{color:var(--c-muted);margin:4px 0 0;font-size:13px}.section-body{padding:22px}.row{border-bottom:1px solid var(--c-line);justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.row:last-child{border-bottom:none}.row-label{color:var(--c-muted);margin:0 0 2px;font-size:13px;font-weight:500}.row-val{color:var(--c-ink);font-size:15px;font-weight:600}.row-val.mono{font-family:var(--font-mono);font-size:14px}.row>div:first-child{flex:1;min-width:0}.row>.btn{flex-shrink:0}.modal-backdrop{-webkit-backdrop-filter:blur(4px);z-index:200;background:#0e1b1473;justify-content:center;align-items:center;padding:24px;animation:fadeIn .18s both;display:flex;position:fixed;inset:0}.modal{background:var(--c-surface);border-radius:var(--r-xl);width:100%;max-width:520px;box-shadow:var(--shadow-lg);flex-direction:column;max-height:calc(100dvh - 48px);animation:fadeUp .28s cubic-bezier(.2,.7,.2,1) both;display:flex;overflow:hidden}.modal-head{padding:22px 24px 12px}.modal-head h3{letter-spacing:-.02em;margin:0 0 6px;font-size:19px;font-weight:700}.modal-head p{color:var(--c-muted);margin:0;font-size:14px}.modal-body{padding:0 24px 8px}.modal-foot{justify-content:flex-end;gap:10px;padding:16px 24px 20px;display:flex}.modal-close{cursor:pointer;color:var(--c-muted);background:0 0;border:none;border-radius:8px;position:absolute;top:18px;right:18px}.modal-close:hover{background:var(--c-surface-2);color:var(--c-ink)}.otp{justify-content:center;gap:10px;display:flex}.otp input{text-align:center;width:52px;height:60px;font-size:24px;font-weight:700;font-family:var(--font-mono);border-radius:var(--r-md);border:1px solid var(--c-line-strong);background:var(--c-surface);color:var(--c-ink);transition:border-color .15s,box-shadow .15s}.otp input:focus{border-color:var(--c-forest);outline:none;box-shadow:0 0 0 4px #16683a1a}.otp input.filled{background:var(--c-leaf-soft);border-color:var(--c-forest)}.toast{background:var(--c-ink);color:#fff;box-shadow:var(--shadow-lg);z-index:300;border-radius:999px;align-items:center;gap:10px;padding:12px 18px;font-size:13.5px;font-weight:500;animation:fadeUp .3s both;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast .dot-ok{background:var(--c-leaf);border-radius:50%;width:8px;height:8px}.device-row{border-bottom:1px solid var(--c-line);align-items:center;gap:14px;padding:14px 0;display:flex}.device-row:last-child{border-bottom:none}.device-ico{background:var(--c-leaf-soft);width:40px;height:40px;color:var(--c-forest);border-radius:var(--r-sm);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.device-meta{flex:1}.device-meta .t{font-size:14.5px;font-weight:600}.device-meta .s{color:var(--c-muted);margin-top:2px;font-size:12.5px}.email-pending{color:#6f4f0f;border-radius:var(--r-md);background:#fbf2dc;border:1px solid #ecd9a4;justify-content:space-between;gap:12px;padding:12px 14px;font-size:13.5px}.email-pending,.profile-hero{align-items:center;display:flex}.profile-hero{flex-wrap:wrap;gap:24px}.profile-avatar-wrap{flex-shrink:0;position:relative}.profile-meta{flex:1;min-width:220px}.profile-name{letter-spacing:-.02em;font-size:24px;font-weight:700}.profile-sub{color:var(--c-muted);margin-top:4px;font-size:14.5px}.profile-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}@media (max-width:960px){.auth-shell{grid-template-columns:1fr}.auth-aside{display:none}.auth-form-wrap{padding:24px}.auth-mobile-brand{display:flex}}@media (max-width:880px){.portal-shell{grid-template-columns:1fr}.portal-main{padding:16px 20px 64px}.mobile-topbar{display:flex}.portal-aside{z-index:120;width:282px;max-width:86vw;height:100dvh;box-shadow:var(--shadow-lg);padding-top:18px;transition:transform .26s cubic-bezier(.2,.7,.2,1);position:fixed;top:0;left:0;transform:translate(-100%)}.portal-aside.open{display:flex;transform:translate(0)}.portal-shell.drawer-open .mobile-backdrop{display:block}}@media (max-width:760px){.stat-grid{grid-template-columns:repeat(2,1fr)}.federated-row{grid-template-columns:1fr}.auth-form-header h1{font-size:26px}.auth-aside h2{font-size:30px}.profile-hero-banner{display:none}.profile-hero-card{overflow:hidden}.profile-hero-card .section-head{display:none}.profile-hero{text-align:center;flex-direction:column;gap:14px;padding:0 22px 22px;position:relative}.profile-hero:before{content:"";background:radial-gradient(120% 100% at 30% 0,#3fae5a59,transparent 60%),linear-gradient(160deg,var(--c-forest) 0,var(--c-pine) 100%);width:calc(100% + 44px);height:96px;margin:0 -22px;display:block}.profile-avatar-wrap{z-index:2;margin-top:-52px}.avatar-xl{border:4px solid var(--c-surface);box-shadow:var(--shadow-md)}.profile-actions{justify-content:center}}.auth-heading{letter-spacing:-.025em;color:var(--c-ink);text-wrap:balance;margin:0 0 8px;font-size:28px;font-weight:700}.auth-sub{color:var(--c-muted);margin:0 0 24px;font-size:15px}.auth-error{color:var(--c-danger);border-radius:var(--r-md);background:#b8442c12;border:1px solid #b8442c33;align-items:center;gap:8px;display:flex}.auth-error,.auth-success{margin-bottom:16px;padding:10px 14px;font-size:13.5px}.auth-success{background:var(--c-leaf-soft);color:var(--c-forest);border-radius:var(--r-md);border:1px solid #3fae5a4d}.auth-footer-text{text-align:center;color:var(--c-muted);margin-top:20px;font-size:14px}.auth-mobile-logo{text-align:center;flex-direction:column;align-items:center;gap:8px;width:100%;max-width:420px;margin-bottom:28px;display:none}@media (max-width:960px){.auth-mobile-logo{display:flex}}.aside-headline{z-index:2;margin-top:auto;position:relative}.aside-eyebrow{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:#9fd4ac;margin:0 0 14px;font-size:11.5px}.aside-title{letter-spacing:-.025em;color:#fff;text-wrap:balance;text-rendering:optimizelegibility;margin:0 0 12px;font-size:36px;font-weight:700;line-height:1.08}.aside-sub{color:#fff9;z-index:2;margin:0 0 24px;font-size:.9375rem;line-height:1.6;position:relative}.aside-badges{flex-wrap:wrap;gap:8px;margin-top:24px;display:flex}.aside-badge{letter-spacing:.06em;text-transform:uppercase;color:#ffffffa6;background:#ffffff1a;border:1px solid #ffffff24;border-radius:999px;padding:4px 10px;font-size:10.5px;font-weight:600}.aside-art{flex:1;min-height:0;position:relative}.sensor-card{color:#fff;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:16px;padding:14px 16px}.name-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (max-width:300px){.name-row{grid-template-columns:1fr}}.checkbox-row{color:var(--c-ink-2);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:8px;margin:4px 0;font-size:13.5px;display:flex}.checkbox-row input{accent-color:var(--c-forest);flex-shrink:0;width:16px;height:16px;margin-top:2px}.confirm-icon-wrap{justify-content:center;margin-bottom:20px;display:flex}.confirm-icon-circle{width:72px;height:72px;border-radius:50%;justify-content:center;align-items:center;display:flex}.confirm-icon-circle,.confirm-icon-circle--success{background:var(--c-leaf-soft);color:var(--c-forest)}.pw-strength{align-items:center;gap:8px;margin-top:2px;display:flex}.pw-bars{flex:1;gap:4px;display:flex}.pw-bar{border-radius:999px;flex:1;height:4px;transition:background .2s}.pw-label{text-align:right;min-width:40px;font-size:12px;font-weight:600}.input-icon-btn{width:30px;height:30px;color:var(--c-muted);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;right:8px}.input-icon-btn:hover{background:var(--c-surface-2);color:var(--c-ink);border-color:#0000}.input-right{align-items:center;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.field-msg{color:var(--c-muted);margin:0;font-size:12.5px}.field-msg-error{color:var(--c-danger)}.federated-btns{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}@media (max-width:480px){.federated-btns{grid-template-columns:1fr}}.federated-row{color:var(--c-muted);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:12px;margin:4px 0;font-size:12px;font-weight:600;display:flex}.federated-row:after,.federated-row:before{content:"";background:var(--c-line);flex:1;height:1px}.checkbox-forgot-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.federated-section{flex-direction:column;gap:10px;display:flex}.federated-section .auth-footer-text{margin-top:4px}.portal-page{max-width:900px;padding:32px 40px 64px}@media (max-width:880px){.portal-page{padding:0 0 24px}}.portal-page-header{margin-bottom:24px}.portal-page-title{letter-spacing:-.025em;text-wrap:balance;margin:0 0 4px;font-size:26px;font-weight:700}.portal-page-sub{color:var(--c-muted);margin:0;font-size:14.5px}.portal-loading{color:var(--c-muted);padding:48px 0;font-size:14px}.portal-aside-inner{flex-direction:column;gap:0;height:100%;display:flex}.portal-aside-head{justify-content:space-between;align-items:center;padding:4px 8px 16px;display:flex}.portal-aside-close{border-radius:50%;width:36px;height:36px;padding:0;display:none}.portal-aside-footer{border-top:1px solid var(--c-line);flex-direction:column;gap:10px;margin-top:auto;padding-top:16px;display:flex}.portal-topbar{background:var(--c-surface);border-bottom:1px solid var(--c-line);z-index:50;grid-column:1/-1;grid-template-columns:1fr auto 1fr;align-items:center;padding:10px 16px;display:none;position:sticky;top:0}.portal-topbar-menu{border-radius:50%;justify-self:start;width:36px;height:36px;padding:0}.portal-topbar-avatar{justify-self:end}@media (max-width:880px){.portal-topbar{display:grid}.portal-aside--desktop{display:none}.portal-aside-close{display:inline-flex}}.portal-aside--drawer{z-index:130;background:var(--c-surface);border-right:1px solid var(--c-line);width:280px;height:100dvh;box-shadow:var(--shadow-lg);padding:24px 16px;transition:transform .26s cubic-bezier(.2,.7,.2,1);position:fixed;top:0;left:0;overflow-y:auto;transform:translate(-100%)}.portal-aside--drawer.open{transform:translate(0)}.portal-drawer-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:120;background:#0e1b1466;animation:fadeIn .18s both;position:fixed;inset:0}.portal-aside--desktop{background:var(--c-surface);border-right:1px solid var(--c-line);flex-direction:column;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0;overflow-y:auto}@media (max-width:880px){.portal-aside--desktop{display:none}}.nav-section{margin-bottom:16px}.nav-section-label{letter-spacing:.14em;text-transform:uppercase;color:var(--c-muted-2);padding:10px 12px 4px;font-size:11px;font-weight:700}.section-card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-lg);margin-bottom:18px;overflow:hidden}.section-card-title{letter-spacing:-.01em;border-bottom:1px solid var(--c-line);margin:0;padding:18px 22px 16px;font-size:16px;font-weight:700}.section-card--danger{border-color:#b8442c4d}.section-card-title--danger{color:var(--c-danger)}.info-rows{padding:0 22px}.info-row{border-bottom:1px solid var(--c-line);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 0;display:flex}.info-row:last-child{border-bottom:none}.info-label{color:var(--c-muted);flex-shrink:0;min-width:120px;font-size:13px;font-weight:500}.info-value{color:var(--c-ink);flex:1;font-size:14.5px;font-weight:500}.info-hint{color:var(--c-muted);font-size:12.5px}.info-edit{margin-left:auto}.tag{letter-spacing:.04em;text-transform:uppercase;background:var(--c-surface-2);color:var(--c-muted);border:1px solid var(--c-line);border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.tag--green{background:var(--c-leaf-soft);color:var(--c-forest);border-color:#3fae5a40}.stat-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px;display:grid}@media (max-width:760px){.stat-grid{grid-template-columns:repeat(2,1fr)}}.stat-card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-lg);padding:18px 20px}.stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--c-muted);margin:0 0 6px;font-size:12px;font-weight:600}.stat-value{letter-spacing:-.02em;margin:0;font-size:20px;font-weight:700}.stat-value--active{color:var(--c-forest)}.stat-hint{color:var(--c-muted);margin:4px 0 0;font-size:12px}.stat-hint--green,.stat-hint--link{color:var(--c-forest)}.stat-hint--link{margin-top:4px;font-size:12px;font-weight:600;text-decoration:none;display:block}.stat-hint--link:hover{text-decoration:underline}.profile-summary-card{flex-wrap:wrap;align-items:center;gap:16px;padding:20px 22px;display:flex}.profile-summary-avatar{flex-shrink:0}.profile-summary-info{flex:1;min-width:180px}.profile-summary-name{letter-spacing:-.02em;margin:0 0 2px;font-size:18px;font-weight:700}.profile-summary-email{color:var(--c-muted);margin:0 0 8px;font-size:13.5px}.profile-summary-tags{flex-wrap:wrap;gap:6px;display:flex}.profile-summary-edit{margin-left:auto}.profile-hero{position:relative}.profile-hero-banner{background:radial-gradient(120% 100% at 30% 0,#3fae5a59,transparent 60%),linear-gradient(160deg,var(--c-forest) 0,var(--c-pine) 100%);height:100px}.profile-hero-body{flex-wrap:wrap;align-items:flex-end;gap:20px;padding:0 24px 24px;display:flex}.profile-hero-avatar-wrap{flex-shrink:0;margin-top:-48px;position:relative}.avatar-pip{background:var(--c-forest);color:#fff;border:3px solid var(--c-surface);cursor:pointer;width:32px;height:32px;box-shadow:var(--shadow-md);border-radius:50%;justify-content:center;align-items:center;transition:background .15s;display:inline-flex;position:absolute;bottom:-4px;right:-4px}.avatar-pip:hover{background:var(--c-pine)}.profile-hero-info{flex:1;min-width:200px;padding-bottom:4px}.profile-hero-name{letter-spacing:-.02em;margin:0 0 2px;font-size:22px;font-weight:700}.profile-hero-email{color:var(--c-muted);margin:0 0 2px;font-size:13.5px}.profile-hero-sub{margin:0}.profile-hero-actions{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-left:auto;padding-bottom:4px;display:flex}.modal-header{border-bottom:1px solid var(--c-line);justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 24px 12px;display:flex}.modal-title{letter-spacing:-.02em;text-wrap:balance;margin:0 0 4px;font-size:18px;font-weight:700}.modal-subtitle{color:var(--c-muted);margin:0;font-size:13.5px}.modal-body{min-height:0;padding:20px 24px;overflow-y:auto}.modal-footer{border-top:1px solid var(--c-line);justify-content:flex-end;gap:10px;padding:16px 24px 20px;display:flex}.modal-error{color:var(--c-danger);margin:0 0 12px;font-size:13.5px}.modal-close{padding:6px}.avatar-cropper{aspect-ratio:1;background:var(--c-ink,#1a1d1b);touch-action:none;border-radius:12px;width:100%;max-width:320px;position:relative;overflow:hidden}.avatar-cropper-zoom{width:100%;max-width:320px;accent-color:var(--c-leaf);cursor:pointer}.toast-dot{background:var(--c-leaf);border-radius:50%;flex-shrink:0;width:8px;height:8px}.auth-form{flex-direction:column;gap:16px;display:flex}@media (max-width:880px){.portal-shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}}.stat-val--active{color:var(--c-forest)}.stat .stat-delta.muted{color:var(--c-muted);font-weight:500}.profile-edit-pip{background:var(--c-forest);color:#fff;border:3px solid var(--c-surface);cursor:pointer;width:34px;height:34px;box-shadow:var(--shadow-md);border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;bottom:-4px;right:-4px}.profile-edit-pip:hover{background:var(--c-pine)}@media (max-width:880px){.portal-header{flex-direction:column;gap:10px;margin-bottom:16px}}.btn-sm{padding:8px 14px;font-size:13px}.nl-view{padding-bottom:96px}.nl-stats{grid-template-columns:repeat(2,1fr);margin-bottom:18px}.nl-mailbar{background:var(--c-surface-2);border:1px solid var(--c-line);color:var(--c-muted);border-radius:14px;align-items:center;gap:9px;margin-bottom:14px;padding:11px 16px;font-size:13px;display:flex}.nl-mailbar svg{color:var(--c-forest);flex-shrink:0}.nl-mailbar .mono{font-family:var(--font-mono);color:var(--c-ink);font-weight:600}.nl-howto{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px;display:grid}.nl-howto-item{background:var(--c-surface);border:1px solid var(--c-line);color:var(--c-muted);border-radius:14px;align-items:flex-start;gap:12px;padding:14px 16px;font-size:13px;line-height:1.5;display:flex}.nl-howto-item strong{color:var(--c-ink);font-weight:700}.nl-howto-item em{color:var(--c-forest);font-style:normal;font-weight:600}.nl-howto-ico{background:var(--c-leaf-soft);width:34px;height:34px;color:var(--c-forest);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.nl-topic-head,.nl-topic-title{align-items:flex-start}.nl-topic-title{gap:14px;min-width:0;display:flex}.nl-topic-head h3{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.nl-topic-id{font-family:var(--font-mono);letter-spacing:.04em;color:var(--c-muted-2);background:var(--c-surface-2);border:1px solid var(--c-line);text-transform:none;border-radius:999px;padding:2px 7px;font-size:10.5px;font-weight:600}.nl-pending-banner{background:#fbf6e7;border:1px solid #ebddb2;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 22px;padding:11px 14px;display:flex}.nl-pending-msg{color:#7a5a12;align-items:center;gap:9px;font-size:13px;display:flex}.nl-pending-msg svg{flex-shrink:0}.nl-pending-msg .mono{font-family:var(--font-mono);font-weight:600}.nl-cat{border-bottom:1px solid var(--c-line);justify-content:space-between;align-items:center;gap:18px;padding:15px 0;display:flex}.nl-cat:last-child{border-bottom:none}.nl-cat-meta{flex:1;min-width:0}.nl-cat-name{color:var(--c-ink);font-size:15px;font-weight:600}.nl-cat.is-pending .nl-cat-name{color:var(--c-muted)}.nl-cat-ids{font-family:var(--font-mono);color:var(--c-muted-2);margin-top:3px;font-size:11px}.nl-cat-ctl{flex-shrink:0;align-items:center;gap:14px;display:flex}.nl-ctl-label{color:var(--c-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:12.5px;font-weight:600;display:inline-flex}.nl-ctl-label.unsub{color:var(--c-danger)}.nl-box{border:1.5px solid var(--c-line-strong);background:var(--c-surface);color:#fff;cursor:pointer;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;transition:background .15s,border-color .15s;display:inline-flex}.nl-box.on,.nl-box:hover{border-color:var(--c-forest)}.nl-box.on{background:var(--c-forest)}.nl-box:focus-visible{outline:2px solid var(--c-leaf);outline-offset:2px}.nl-box.unsub.on,.nl-box.unsub:hover{border-color:var(--c-danger)}.nl-box.unsub.on{background:var(--c-danger)}.nl-note{color:var(--c-muted);align-items:flex-start;gap:10px;padding:4px 4px 8px;font-size:12.5px;line-height:1.5;display:flex}.nl-note svg{color:var(--c-forest);flex-shrink:0;margin-top:1px}.nl-savebar{pointer-events:none;opacity:0;margin:8px -4px -4px;padding-top:12px;transition:opacity .2s,transform .2s;position:sticky;bottom:0;transform:translateY(12px)}.nl-savebar.show{opacity:1;pointer-events:auto;transform:translateY(0)}.nl-savebar-inner{background:var(--c-surface);border:1px solid var(--c-line-strong);border-radius:14px;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex;box-shadow:0 12px 32px -12px #0e1b1447,0 2px 8px #0e1b140f}.nl-savebar-text{color:var(--c-ink);align-items:center;gap:4px;font-size:13.5px;font-weight:600;display:inline-flex}.nl-savebar-dot{background:var(--c-danger);border-radius:50%;width:8px;height:8px;margin-right:6px}.nl-savebar-sub{color:var(--c-muted);font-weight:500}.nl-review{flex-direction:column;gap:14px;padding:4px 0 8px;display:flex}.nl-review-topic{border:1px solid var(--c-line);border-radius:14px;overflow:hidden}.nl-review-topic-head{background:var(--c-surface-2);font-size:13px;font-weight:700}.nl-review-row,.nl-review-topic-head{border-bottom:1px solid var(--c-line);justify-content:space-between;align-items:center;gap:10px;padding:9px 14px;display:flex}.nl-review-row{font-size:13.5px}.nl-review-row:last-child{border-bottom:none}@media (max-width:720px){.nl-howto{grid-template-columns:1fr}}@media (max-width:620px){.nl-cat{flex-direction:column;align-items:stretch;gap:10px}.nl-cat-ctl{justify-content:flex-start;gap:18px}.nl-savebar-inner{flex-direction:column;align-items:stretch}.nl-savebar-text{justify-content:center}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-ease{syntax:"*";inherits:false}