@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-vietnamese-600-normal-BjlAJixd.woff2) format("woff2"),url(/assets/fraunces-vietnamese-600-normal-DlAl5EAR.woff) format("woff");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:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-ext-600-normal-BtzmzP0X.woff2) format("woff2"),url(/assets/fraunces-latin-ext-600-normal-B0Dy4lqi.woff) format("woff");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:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-600-normal-BFCDtZfi.woff2) format("woff2"),url(/assets/fraunces-latin-600-normal-DL5QCzvS.woff) format("woff");unicode-range:U+0000-00FF,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:Fraunces;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fraunces-vietnamese-700-normal-DH94m5DZ.woff2) format("woff2"),url(/assets/fraunces-vietnamese-700-normal-DxawQjq2.woff) format("woff");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:Fraunces;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fraunces-latin-ext-700-normal-CanUGppC.woff2) format("woff2"),url(/assets/fraunces-latin-ext-700-normal-DuBstVeD.woff) format("woff");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:Fraunces;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fraunces-latin-700-normal-CEOla-zY.woff2) format("woff2"),url(/assets/fraunces-latin-700-normal-DTjk5d1Q.woff) format("woff");unicode-range:U+0000-00FF,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}:root{--ground: #ffffff;--card: #ffffff;--card-hi: #f2f7f5;--ink: #1c2b28;--muted: #6b807b;--dim: #93a39e;--hairline: #dee4e1;--teal: #0b5d52;--teal-soft: #f2f7f5;--red: #d0342c;--green: #1e9e5a;--gold: #c9a24b;--gold-soft: #f7efdc;--radius: 20px;--font-system: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, system-ui, "Helvetica Neue", sans-serif;--font-serif: "Fraunces", Georgia, "Times New Roman", serif;--sh-teal-950: #0a4038;--sh-teal-900: var(--teal);--sh-teal-700: #14766a;--sh-teal-600: var(--teal);--sh-teal-500: var(--teal);--sh-gold-500: var(--gold);--sh-gold-400: var(--gold);--sh-bg: var(--ground);--sh-bg-soft: var(--card);--sh-bg-mute: var(--card-hi);--sh-border: var(--hairline);--sh-text: var(--ink);--sh-text-2: var(--muted);--sh-text-3: var(--dim);--sh-danger: var(--red);--sh-success: var(--green);--sh-warning: var(--gold);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--font-heading: var(--font-serif);--font-body: var(--font-system);--color-background: var(--sh-bg);--color-background-soft: var(--sh-bg-soft);--color-background-mute: var(--sh-bg-mute);--color-text: var(--sh-text);color-scheme:light}*,*:before,*:after{box-sizing:border-box;margin:0;font-weight:400}ul{list-style:none;padding:0}html,body,#root{height:100%}body{color:var(--color-text);background:var(--color-background);line-height:1.5;font-family:var(--font-body);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}h1,h2,h3{font-family:var(--font-heading)}button{font-family:inherit}input,textarea,select{font-family:inherit;color:inherit}:root[data-theme=dark]{--ground: #07110f;--card: #0d1f1b;--card-hi: #123129;--ink: #f0ece0;--muted: #9fc9bd;--dim: #64807a;--hairline: #1c3a33;--teal: #2fb8d4;--teal-soft: #0f2f28;--red: #f38b7f;--green: #5ecf96;--gold: #d9b45e;--gold-soft: #2b2310;--sh-teal-950: #041210;--sh-teal-900: #0a2432;--sh-teal-700: #2f96b8;color-scheme:dark}:root[data-theme=grayscale]{--ground: #fafafa;--card: #ffffff;--card-hi: #f0f0f0;--ink: #1f1f1f;--muted: #6d6d6d;--dim: #9a9a9a;--hairline: #e2e2e2;--teal: #3c3c3c;--teal-soft: #efefef;--red: #a05a54;--green: #5f8471;--gold: #7a7a7a;--gold-soft: #ededed;--sh-teal-950: #262626;--sh-teal-900: #3c3c3c;--sh-teal-700: #555555;color-scheme:light}:root{--forest-900: #02150f;--forest-800: #06211c;--forest-700: #0d3227;--forest-600: #1a4436;--on-forest: #f3eddd;--on-forest-muted: #a7bab0;--ivory-50: #fefdfc;--ivory-100: #fcfbf9;--ivory-200: #f2efe7;--ivory-300: #e5e0d4;--gold-deep: #a88434;--surface-app: var(--ivory-100);--surface-panel: var(--ivory-50);--surface-raised: #ffffff;--surface-inset: var(--ivory-200);--surface-overlay: rgba(14, 36, 28, .55);--surface-chrome: var(--forest-800);--surface-chrome-deep: var(--forest-900);--surface-chrome-raised: var(--forest-700);--text-primary: #1d2b25;--text-secondary: #35443d;--text-muted: #6b7a72;--text-inverse: var(--on-forest);--text-inverse-muted: var(--on-forest-muted);--text-accent: var(--gold-deep);--border-subtle: var(--ivory-300);--border-strong: #cbbfa6;--border-chrome: var(--forest-600);--action-primary-bg: var(--forest-800);--action-primary-fg: var(--on-forest);--action-primary-bg-hover: var(--forest-700);--action-secondary-bg: transparent;--action-secondary-fg: var(--forest-800);--action-secondary-border: var(--forest-800);--action-accent-bg: var(--gold);--action-accent-fg: var(--forest-900);--action-accent-bg-hover: #d4af5c;--action-disabled-fg: var(--text-muted);--state-success-fg: var(--teal);--state-success-bg: var(--teal-soft);--state-success-border: var(--teal);--state-danger-fg: var(--red);--state-danger-bg: #fdecea;--state-danger-border: var(--red);--state-warning-fg: #7a5200;--state-warning-bg: var(--gold-soft);--state-warning-border: var(--gold);--state-info-fg: var(--forest-800);--state-info-bg: var(--ivory-200);--state-info-border: var(--forest-600);--state-unavailable-fg: #6b5a3a;--state-unavailable-bg: #f6efe0;--state-unavailable-border: var(--gold-deep);--focus-ring: 2px solid var(--forest-800);--focus-ring-offset: 2px;--focus-ring-inverse: 2px solid var(--gold);--space-0: 0;--space-1: var(--sp-1);--space-2: var(--sp-2);--space-3: var(--sp-3);--space-4: var(--sp-4);--space-5: var(--sp-5);--space-6: var(--sp-6);--space-7: 48px;--space-8: 64px;--space-section: clamp(32px, 5vw, 72px);--font-display: var(--font-serif);--font-ui: var(--font-system);--font-mono: ui-monospace, "Cascadia Code", Consolas, monospace;--type-display-size: clamp(1.75rem, 3vw, 2.5rem);--type-display-weight: 560;--type-display-tracking: -.012em;--type-title-size: clamp(1.2rem, 2vw, 1.5rem);--type-title-weight: 600;--type-body-size: 14.5px;--type-body-line: 1.55;--type-small-size: 12.5px;--type-label-size: 11.5px;--type-label-tracking: .08em;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-pill: 999px;--elev-0: none;--elev-1: 0 1px 2px rgba(14, 36, 28, .06);--elev-2: 0 4px 14px rgba(14, 36, 28, .08);--elev-3: 0 12px 32px rgba(14, 36, 28, .14);--motion-fast: .12s;--motion-base: .2s;--motion-slow: .32s;--motion-ease: cubic-bezier(.2, .7, .3, 1);--motion-scale: 1;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--mobile-nav-height: 64px;--mobile-bottom-reserve: calc(var(--mobile-nav-height) + var(--safe-bottom))}:root[data-theme=dark]{--surface-app: var(--ground);--surface-panel: var(--card);--surface-raised: var(--card-hi);--surface-inset: #0a1a16;--surface-overlay: rgba(0, 0, 0, .62);--surface-chrome: #0c1f1a;--surface-chrome-deep: #061310;--surface-chrome-raised: #143028;--on-forest: var(--ink);--on-forest-muted: var(--muted);--text-primary: var(--ink);--text-secondary: #cfe3da;--text-muted: var(--dim);--text-inverse: var(--ink);--text-inverse-muted: var(--muted);--text-accent: var(--gold);--border-subtle: var(--hairline);--border-strong: #2a5449;--border-chrome: #1c3a33;--action-primary-bg: var(--teal);--action-primary-fg: #04120f;--action-primary-bg-hover: #56cfe6;--action-secondary-fg: var(--teal);--action-secondary-border: var(--teal);--action-accent-bg: var(--gold);--action-accent-fg: #1b1405;--action-accent-bg-hover: #e6c476;--state-success-fg: var(--teal);--state-success-bg: #0f2f28;--state-danger-bg: #351814;--state-warning-fg: var(--gold);--state-warning-bg: #2b2310;--state-info-fg: var(--teal);--state-info-bg: #0f2a26;--state-unavailable-fg: var(--gold);--state-unavailable-bg: #2a2313;--state-unavailable-border: var(--gold);--focus-ring: 2px solid var(--teal);--focus-ring-inverse: 2px solid var(--gold);--elev-1: 0 1px 2px rgba(0, 0, 0, .4);--elev-2: 0 4px 14px rgba(0, 0, 0, .5);--elev-3: 0 12px 32px rgba(0, 0, 0, .6)}:root[data-theme=grayscale]{--forest-900: #262626;--forest-800: #3c3c3c;--forest-700: #4d4d4d;--forest-600: #5f5f5f;--on-forest: #f4f4f4;--on-forest-muted: #c2c2c2;--ivory-50: #ffffff;--ivory-100: #fafafa;--ivory-200: #f0f0f0;--ivory-300: #e2e2e2;--gold-deep: #6a6a6a;--surface-app: var(--ivory-100);--surface-panel: var(--ivory-50);--surface-raised: #ffffff;--surface-inset: var(--ivory-200);--surface-overlay: rgba(0, 0, 0, .5);--text-primary: var(--ink);--text-secondary: #3d3d3d;--text-muted: var(--muted);--text-accent: #4a4a4a;--border-subtle: var(--hairline);--border-strong: #c9c9c9;--action-accent-bg: #4a4a4a;--action-accent-fg: #ffffff;--action-accent-bg-hover: #5c5c5c;--state-success-fg: var(--green);--state-success-bg: #eef2ef;--state-danger-bg: #f6eceb;--state-warning-fg: #6a5a3a;--state-warning-bg: #f0f0f0;--state-unavailable-fg: #5a5a5a;--state-unavailable-bg: #f0f0f0;--state-unavailable-border: #9a9a9a;--focus-ring: 2px solid #3c3c3c}@media(prefers-reduced-motion:reduce){:root{--motion-scale: 0}}.page{flex:1;overflow-y:auto;padding:28px 36px;animation:page-arrive .32s ease both}@keyframes page-arrive{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.page{animation:none}}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:999px;border:1px solid var(--sh-border);background:var(--sh-bg-mute);color:var(--sh-text);font-size:13px;cursor:pointer;transition:background .15s ease,transform .12s ease}.btn:active:not(:disabled){transform:scale(.97)}.btn:hover{background:color-mix(in srgb,var(--teal) 8%,var(--card-hi))}.btn-primary{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:600;transform:translate(var(--mag-x, 0px),var(--mag-y, 0px));transition:background .15s ease,transform .15s ease-out}.btn-primary:hover{background:color-mix(in srgb,var(--teal) 86%,#000000)}.btn:disabled{opacity:.5;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.field label{font-size:12px;color:var(--sh-text-2)}.field input,.field textarea,.field select{background:var(--sh-bg-mute);border:1px solid var(--sh-border);border-radius:7px;padding:8px 10px;font-size:13px;color:var(--sh-text);outline:none}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--sh-teal-600)}.scan-step-note{font-size:11px;color:var(--sh-text-3);white-space:normal;overflow-wrap:anywhere}.scan-step-note.warn{color:var(--sh-gold-500);font-weight:600}.spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--sh-border);border-top-color:var(--sh-teal-600);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:768px){html{height:auto;overflow-x:hidden}body,#root{height:auto;min-height:100%;overflow:visible}.page{padding:14px 14px calc(88px + env(safe-area-inset-bottom));overflow:visible}.field input,.field select,.field textarea{max-width:100%}.field input,.field textarea,.field select,input,textarea,select{font-size:16px;padding:11px 12px}.btn{min-height:44px;padding:10px 16px;font-size:15px}}html,body,#root{height:auto;min-height:100%;overflow:visible}.portal-shell{height:100dvh;overflow-y:auto;background:var(--sh-bg);color:var(--sh-text);font-family:var(--font-body)}.portal-center{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-6);text-align:center}.portal-empty h1{font-family:var(--font-heading);font-size:24px}.portal-empty p{color:var(--sh-text-2);max-width:320px}.portal-header{background:linear-gradient(135deg,var(--sh-teal-900),var(--sh-teal-700));color:#fff;padding:var(--sp-5) var(--sp-4) var(--sp-6)}.portal-brand{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4)}.portal-logo-dot{width:34px;height:34px;border-radius:9px;object-fit:cover;background:#000709;flex-shrink:0}.portal-brand-name{font-weight:600;font-size:14px}.portal-brand-sub{font-size:11px;color:#fff9}.portal-greeting{font-family:var(--font-heading);font-size:26px;font-weight:600;line-height:1.15}.portal-main{max-width:560px;margin:0 auto;padding:var(--sp-4) var(--sp-4) var(--sp-6)}.portal-section-title{font-family:var(--font-heading);font-size:17px;font-weight:600;margin:var(--sp-5) 0 var(--sp-3)}.portal-cards{display:flex;flex-direction:column;gap:var(--sp-2)}.portal-case,.portal-invoice{background:var(--sh-bg-soft);border:1px solid var(--sh-border);border-radius:10px;padding:var(--sp-3)}.portal-case.muted{background:transparent}.portal-case-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-bottom:var(--sp-1)}.portal-case-meta{font-size:12.5px;color:var(--sh-text-2)}.portal-status{font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap}.portal-status.open{background:color-mix(in srgb,var(--sh-teal-500) 16%,transparent);color:var(--sh-teal-700)}.portal-status.done{background:var(--sh-bg-mute);color:var(--sh-text-2)}.portal-search{width:100%;padding:11px 12px;font-size:16px;border:1px solid var(--sh-border);border-radius:10px;background:var(--sh-bg-soft);margin-bottom:var(--sp-3)}.portal-invoice{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.portal-invoice-right{display:flex;align-items:center;gap:var(--sp-3)}.portal-invoice-total{font-weight:700;color:var(--sh-text)}.portal-btn{display:inline-flex;align-items:center;min-height:40px;padding:8px 14px;border-radius:8px;background:var(--sh-teal-600);color:#fff;text-decoration:none;font-size:13px;white-space:nowrap}.portal-btn:hover{background:var(--sh-teal-700)}.portal-muted{color:var(--sh-text-2);font-size:13.5px}.portal-footer{text-align:center;color:var(--sh-text-3);font-size:11px;padding:var(--sp-5) var(--sp-4) var(--sp-6)}.portal-priority{margin-top:var(--sp-2)}.portal-btn.ghost{background:transparent;color:var(--sh-teal-700);border:1px solid var(--sh-teal-600);min-height:40px}.portal-btn.ghost:hover{background:color-mix(in srgb,var(--sh-teal-500) 10%,transparent)}.portal-priority-tag{display:inline-block;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px}.portal-priority-tag.pending{background:color-mix(in srgb,var(--sh-gold-500) 18%,transparent);color:var(--sh-gold-600, #a9791f)}.portal-priority-tag.confirmed{background:color-mix(in srgb,var(--sh-teal-500) 18%,transparent);color:var(--sh-teal-700)}.portal-notes{background:color-mix(in srgb,var(--sh-teal-500) 8%,transparent);border:1px solid var(--sh-teal-500);border-radius:12px;padding:var(--sp-3);margin-bottom:var(--sp-4)}.portal-notes-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-2)}.portal-note-dismiss{background:transparent;border:none;color:var(--sh-teal-700);font-size:12px;cursor:pointer}.portal-note-item{font-size:13px;padding:var(--sp-2) 0;border-top:1px solid color-mix(in srgb,var(--sh-teal-500) 20%,transparent)}.error-boundary{margin:var(--sp-5) auto;max-width:560px;padding:var(--sp-5);border:1px solid color-mix(in srgb,var(--sh-danger) 40%,transparent);border-radius:14px;background:color-mix(in srgb,var(--sh-danger) 8%,var(--sh-bg-soft))}.error-boundary h2{font-family:var(--font-heading);margin-bottom:var(--sp-2)}.error-boundary p{color:var(--sh-text-2);margin-bottom:var(--sp-3)}.error-boundary-detail{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;white-space:pre-wrap;word-break:break-word;background:var(--sh-bg-mute);border-radius:8px;padding:var(--sp-3);margin-bottom:var(--sp-4);color:var(--sh-text)}.danger{color:var(--sh-danger)}.stat-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:var(--sp-2);margin-bottom:var(--sp-4)}.stat-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:64px;padding:12px 14px;border:1px solid transparent;border-radius:12px;background:var(--sh-bg-soft);cursor:pointer;text-align:left;transition:background .12s,box-shadow .12s}.stat-card:hover:not(:disabled){box-shadow:0 1px 3px #00000012}.stat-card:focus-visible{outline:2px solid var(--sh-teal-500);outline-offset:2px}.stat-value{font-family:var(--font-heading);font-size:26px;line-height:1;color:var(--sh-text);font-variant-numeric:tabular-nums}.stat-label{font-size:12px;color:var(--sh-text-2)}.stat-card.active{background:var(--sh-teal-600)}.stat-card.danger .stat-value{color:var(--sh-danger)}.stat-card.danger.active{background:var(--sh-danger)}.stat-card:disabled{opacity:.4;cursor:default}.portal-stat-filters{grid-template-columns:repeat(auto-fit,minmax(84px,1fr));margin:4px 0 20px}.portal-cases-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3)}.portal-clear{min-height:36px}.portal-overdue{color:var(--sh-danger);font-weight:600}.btn-primary,.btn-primary:hover{background:var(--teal);border-color:var(--teal);color:#fff}.btn-primary:hover{opacity:.92}.stat-card.active{background:var(--teal)}.stat-card.active .stat-value,.stat-card.active .stat-label{color:#fff}.stat-card.danger.active{background:var(--red)}.stat-card.danger.active .stat-value,.stat-card.danger.active .stat-label{color:#fff}input,select,textarea{background:#fff;color:var(--ink);border-color:var(--hairline)}input::placeholder,textarea::placeholder{color:var(--dim)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--hairline);border-radius:6px}::-webkit-scrollbar-track{background:transparent}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.portal-mills{margin:4px 0 18px;display:flex;flex-direction:column;gap:8px}.portal-mill{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--teal);border-radius:14px;padding:14px 18px;font-size:14px;color:#fff}:root[data-theme=dark] .portal-mill{color:#04120f}.portal-mill-label{display:flex;align-items:center;gap:8px;font-family:var(--font-mono, ui-monospace, monospace);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;opacity:.78}.portal-mill-pulse{width:7px;height:7px;border-radius:50%;background:var(--gold);animation:portal-mill-pulse 1.7s ease-in-out infinite}@keyframes portal-mill-pulse{0%,to{opacity:.45;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}@media(prefers-reduced-motion:reduce){.portal-mill-pulse{animation:none}}.portal-mill-case{font-family:var(--font-mono, ui-monospace, monospace);font-size:13px;font-weight:600}.portal-mill-eta{margin-left:auto;font-family:var(--font-heading, serif);font-size:15px;font-weight:600;color:var(--gold);white-space:nowrap}.portal-rail{display:flex;align-items:center;margin-top:10px}.portal-rail-step{display:flex;align-items:center}.portal-rail-dot{width:9px;height:9px;border-radius:50%;background:var(--hairline);flex:none}.portal-rail-bar{width:22px;height:2px;background:var(--hairline)}.portal-rail-step.done .portal-rail-dot,.portal-rail-step.done .portal-rail-bar{background:var(--teal)}.portal-rail-step.now .portal-rail-dot{background:var(--gold);box-shadow:0 0 0 4px color-mix(in srgb,var(--gold) 22%,transparent)}.portal-rail-label{font-size:11.5px;color:var(--teal);font-weight:600;margin-left:11px;white-space:nowrap}.portal-greeting-wrap{display:flex;flex-direction:column;gap:2px}.portal-ontime{font-size:11.5px;color:var(--muted)}.portal-feed{margin-bottom:22px}.portal-feed-item{padding:8px 0;border-top:1px solid var(--hairline);font-size:14px;color:var(--muted)}.stat-card.muted .stat-value{color:var(--muted)}.portal-status.cancelled{background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--red)}:root{--orb-light: #eaf7f3;--orb-teal: #0b5d52;--orb-p-core: 4.3s;--orb-p-aura: 5.7s;--orb-p-spec: 11.5s;--orb-p-sheen: 19s;--orb-ease: cubic-bezier(.34, 1.42, .5, 1)}@property --load-tint{syntax: "<color>"; inherits: true; initial-value: #f3fbf8;}@property --load-glow{syntax: "<color>"; inherits: true; initial-value: rgba(20,160,140,.4);}@property --load-warm{syntax: "<number>"; inherits: true; initial-value: 0;}@property --po-core-s{syntax: "<number>"; inherits: false; initial-value: 1;}@property --po-aura-o{syntax: "<number>"; inherits: false; initial-value: .55;}@property --po-pulse{syntax: "<number>"; inherits: false; initial-value: 1;}@keyframes po-pulse{0%{--po-pulse: 1}40%{--po-pulse: 1.2}to{--po-pulse: 1}}:root{--ig-purple: #833ab4;--ig-magenta: #c13584;--ig-pink: #e4405f;--ig-orange: #fcaf45;--tt-cyan: #25f4ee;--tt-red: #fe2c55;--tt-black: #111111;--fb-blue: #1877f2;--gg-blue: #4285f4}@media(prefers-reduced-motion:no-preference){.page>*:nth-child(2){animation-delay:.03s}.page>*:nth-child(3){animation-delay:.06s}.page>*:nth-child(4){animation-delay:.09s}.page>*:nth-child(n+5){animation-delay:.12s}}:root[data-theme=dark] .btn-primary{color:#04120f;box-shadow:0 0 18px #2fb8d42e}:root[data-theme=dark] .btn-primary:hover{background:color-mix(in srgb,var(--teal) 86%,#ffffff)}.portal-alt-link{background:none;border:none;color:var(--teal);font:inherit;font-size:12.5px;cursor:pointer;text-decoration:underline;margin-top:14px;padding:4px}.portal-alt-link:hover{opacity:.8}.portal-alt-divider{display:flex;align-items:center;gap:10px;margin:4px 0 2px;font-size:11px;color:var(--sh-text-3);text-transform:uppercase;letter-spacing:.08em}.portal-alt-divider:before,.portal-alt-divider:after{content:"";flex:1;height:1px;background:var(--sh-border)}.account-portal-shell{min-height:100dvh;background:radial-gradient(circle at 88% 8%,rgba(233,226,210,.72),transparent 30rem),var(--surface-app);color:var(--text-primary)}.account-portal-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px clamp(20px,5vw,72px);border-bottom:1px solid var(--border-subtle)}.account-portal-brand,.account-portal-header nav{display:flex;align-items:center;gap:12px}.account-portal-brand{color:inherit;font-family:Fraunces,Georgia,serif;font-size:18px;text-decoration:none}.account-portal-brand img{width:42px;height:42px;border-radius:10px}.account-portal-header nav a,.account-portal-header nav button{border:0;background:transparent;color:var(--text-secondary);font:inherit;text-decoration:none;cursor:pointer}.account-portal-main{width:min(940px,calc(100% - 40px));margin:0 auto;padding:clamp(48px,8vw,90px) 0 calc(96px + env(safe-area-inset-bottom,0px))}.account-portal-intro{max-width:650px;margin-bottom:28px}.account-portal-intro h1{margin:4px 0 12px;font-family:Fraunces,Georgia,serif;font-size:clamp(42px,7vw,72px);line-height:.98}.account-portal-intro>p:last-child,.account-portal-card>p{color:var(--text-secondary);line-height:1.6}.account-portal-kicker,.account-portal-step{margin:0 0 8px;color:var(--state-warning-fg);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.account-portal-card,.account-workspace-hero{padding:clamp(22px,4vw,38px);border:1px solid var(--border-subtle);border-radius:22px;background:color-mix(in srgb,var(--surface-panel) 94%,transparent);box-shadow:0 22px 60px #0e241c12}.account-portal-card h2,.account-portal-card h3,.account-workspace-hero h2{margin:0 0 10px;font-family:Fraunces,Georgia,serif}.account-portal-card h2,.account-workspace-hero h2{font-size:clamp(28px,5vw,42px)}.account-portal-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.account-portal-form>div,.account-portal-form>button,.account-portal-form>.portal-baa,.account-portal-form>.account-portal-error{grid-column:1 / -1}.account-portal-form label{display:grid;gap:7px;color:var(--text-secondary);font-size:13px;font-weight:650}.account-portal-form label span{color:var(--text-muted);font-weight:400}.account-portal-error{color:var(--state-danger-fg)}.account-portal-waiting{border-left:4px solid var(--state-warning-fg)}.account-workspace{display:grid;gap:18px}.account-workspace-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--surface-chrome);color:var(--text-inverse)}.account-workspace-hero p{color:var(--text-inverse-muted)}.account-workspace-stat{display:grid;min-width:112px;text-align:center}.account-workspace-stat strong{font-family:Fraunces,Georgia,serif;font-size:40px}.account-workspace-stat span{color:var(--text-inverse-muted);font-size:12px;text-transform:uppercase}.account-workspace-list{display:grid;border-top:1px solid var(--border-subtle)}.account-workspace-list article{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--border-subtle)}.account-workspace-list article>div{display:grid;gap:4px}.account-workspace-list article span{color:var(--text-muted);font-size:13px}.account-status{border-radius:999px;padding:6px 10px;background:var(--state-success-bg);color:var(--state-success-fg)!important;font-weight:700;text-transform:capitalize}@media(max-width:620px){.account-portal-header{align-items:flex-start}.account-portal-brand span{display:none}.account-portal-form{grid-template-columns:1fr}.account-workspace-hero,.account-workspace-list article{align-items:flex-start;flex-direction:column}}.portal-stats{display:grid;grid-auto-flow:column;grid-auto-columns:max-content;gap:10px 26px;align-items:start;flex:0 0 auto}.account-workspace-hero>div:first-child{flex:1 1 auto;min-width:0}@media(max-width:620px){.portal-stats{grid-auto-flow:row;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));width:100%;gap:10px 12px}.account-workspace-stat{min-width:0}.account-workspace-stat strong{font-size:21px;letter-spacing:-.02em}}.portal-empty{color:var(--text-secondary);font-size:14px;line-height:1.55}.portal-empty strong{display:block;font-family:Fraunces,Georgia,serif;font-size:16px;color:var(--text-primary);margin-bottom:4px}.portal-codename{font-family:Fraunces,Georgia,serif;font-weight:600;letter-spacing:-.01em}.portal-case-open{display:flex;flex-direction:column;gap:5px;align-items:flex-start;background:none;border:0;padding:0;cursor:pointer;text-align:left;color:inherit;font:inherit;min-width:0}.portal-case-open:hover .portal-codename{text-decoration:underline}.portal-case-open:focus-visible{outline:2px solid var(--sh-teal-500, #0b5d52);outline-offset:3px;border-radius:6px}.portal-case-sub{font-size:12.5px;color:var(--text-secondary)}.portal-rail{display:flex;gap:3px;margin-top:3px}.portal-rail i{width:22px;height:3px;border-radius:2px;background:var(--border-subtle)}.portal-rail i.on{background:var(--sh-teal-500, #0b5d52)}.portal-row-end{display:flex;flex-direction:column;align-items:flex-end;gap:4px;white-space:nowrap}.portal-date{font-size:12px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.portal-back{align-self:flex-start;background:none;border:0;padding:0;cursor:pointer;color:var(--sh-teal-500, #0b5d52);font:inherit;font-size:13.5px;font-weight:600}.portal-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.portal-timeline li{display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start;padding:8px 0;color:var(--text-secondary)}.portal-timeline li strong{font-size:13.5px;font-weight:600;color:var(--text-secondary)}.portal-timeline li.done strong,.portal-timeline li.now strong{color:var(--text-primary)}.portal-timeline li em{display:block;font-style:normal;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--sh-gold-600, #a88434);font-weight:700;margin-top:2px}.portal-dot{width:11px;height:11px;border-radius:50%;border:2px solid var(--border-subtle);background:var(--surface-card, #fff);margin-top:4px}.portal-timeline li.done .portal-dot{background:var(--sh-teal-500, #0b5d52);border-color:var(--sh-teal-500, #0b5d52)}.portal-timeline li.now .portal-dot{background:var(--sh-gold-600, #a88434);border-color:var(--sh-gold-600, #a88434);box-shadow:0 0 0 4px #a884342e}.portal-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:0}.portal-facts dt{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);font-weight:700;margin-bottom:3px}.portal-facts dd{margin:0;font-size:14px}.portal-prompt{display:flex;gap:18px;justify-content:space-between;align-items:center;flex-wrap:wrap;border-left:3px solid var(--sh-gold-600, #a88434)}.portal-prompt h3{margin:4px 0 6px}.portal-prompt p{max-width:60ch;font-size:13.5px;color:var(--text-secondary);line-height:1.55}.portal-prompt-actions{display:flex;gap:8px;flex-wrap:wrap}.portal-label{display:none}@media print{body *{visibility:hidden!important}.portal-label,.portal-label *{visibility:visible!important}.portal-label{display:block;position:absolute;inset:0;padding:24px}.portal-label-sheet{border:2px solid #1c2b28;border-radius:10px;padding:22px 26px;max-width:460px;color:#000}.portal-label-brand{font-family:Fraunces,Georgia,serif;font-size:11px;letter-spacing:.22em;text-transform:uppercase;margin:0 0 14px}.portal-label-kicker{font-size:10px;letter-spacing:.14em;text-transform:uppercase;margin:0}.portal-label-code{font-family:Fraunces,Georgia,serif;font-size:30px;margin:2px 0 16px}.portal-label-sheet dl{display:grid;grid-template-columns:repeat(2,1fr);gap:9px 18px;margin:0 0 18px}.portal-label-sheet dt{font-size:9.5px;letter-spacing:.09em;text-transform:uppercase}.portal-label-sheet dd{margin:0;font-size:13px}.portal-label-write{font-size:10px;letter-spacing:.09em;text-transform:uppercase;margin:0 0 20px}.portal-label-rule{border-bottom:1px solid #1c2b28;margin:-14px 0 16px}.portal-label-foot{font-size:10.5px;margin:0;line-height:1.5}}.portal-hint{font-size:12.5px;color:var(--text-secondary);line-height:1.5;margin:4px 0 0}.portal-linkish{background:none;border:0;padding:0;font:inherit;color:var(--sh-teal-500, #0b5d52);font-weight:600;cursor:pointer;text-decoration:underline}.portal-linkish:focus-visible{outline:2px solid var(--sh-teal-500, #0b5d52);outline-offset:2px;border-radius:4px}.portal-thread{display:flex;flex-direction:column;gap:10px;max-height:340px;overflow-y:auto;padding:4px 2px}.portal-thread article{display:flex;flex-direction:column;gap:3px;padding:10px 13px;border-radius:12px;max-width:84%}.portal-thread article.mine{align-self:flex-end;background:var(--sh-teal-700, #17362b);color:#f3eddd;border-bottom-right-radius:3px}.portal-thread article.theirs{align-self:flex-start;background:var(--surface-sunken, #f0e9d9);border-bottom-left-radius:3px}.portal-msg-who{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;opacity:.7;margin:0}.portal-msg-body{font-size:13.5px;line-height:1.5;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.portal-msg-when{font-size:10.5px;opacity:.65;margin:0}.portal-composer{display:flex;gap:8px;align-items:flex-end;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-subtle)}.portal-composer textarea{flex:1;font:inherit;font-size:14px;padding:10px 13px;border:1px solid var(--border-subtle);border-radius:10px;resize:vertical;min-height:44px;background:var(--surface-card, #fff);color:inherit}.portal-unread{display:inline-block;margin-left:8px;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--sh-gold-600, #a88434);color:#1c2b28}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.portal-baa{display:grid;gap:10px;padding:18px;border:1px solid var(--border-subtle);border-radius:12px;background:color-mix(in srgb,var(--surface-panel) 60%,transparent)}.portal-baa h3{margin:0;font-size:15px;font-weight:700}.portal-baa-text{max-height:min(60vh,620px);overflow-y:auto;overscroll-behavior:contain;padding:14px;border:1px solid var(--border-subtle);border-radius:10px;background:color-mix(in srgb,var(--surface-panel) 88%,transparent)}.portal-baa-text:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.portal-baa-text pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:12.5px;line-height:1.6;color:var(--text-secondary)}.portal-baa-consent{display:flex!important;align-items:flex-start;gap:10px}.portal-baa-consent input{margin-top:2px;width:16px;height:16px;flex:0 0 auto}.portal-baa-consent span{color:var(--text-secondary)!important;font-weight:550}.portal-nav{display:flex;gap:4px;margin-bottom:18px;padding:4px;border:1px solid var(--border-subtle);border-radius:999px;background:color-mix(in srgb,var(--surface-panel) 70%,transparent);overflow-x:auto;scrollbar-width:none}.portal-nav::-webkit-scrollbar{display:none}.portal-nav button{display:inline-flex;align-items:center;gap:7px;flex:1 0 auto;justify-content:center;min-height:40px;padding:8px 18px;border:0;border-radius:999px;background:transparent;color:var(--text-secondary);font:inherit;font-size:14px;font-weight:650;cursor:pointer;white-space:nowrap}.portal-nav button:hover{color:var(--text-primary)}.portal-nav button.on{background:var(--surface-panel);color:var(--text-primary);box-shadow:0 1px 3px #0e241c1a}.portal-nav button:focus-visible{outline:2px solid var(--teal);outline-offset:-2px}.portal-nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--teal);color:var(--surface-panel);font-size:11.5px;font-weight:700}.portal-account-facts{display:grid;gap:4px 18px;margin:4px 0 16px}.portal-account-facts dt{color:var(--text-muted);font-size:11px;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.portal-account-facts dd{margin:0 0 12px;color:var(--text-secondary);line-height:1.6}.portal-invoice-open{justify-self:start;margin-top:2px;color:var(--teal);font-size:13px;font-weight:650;text-decoration:underline;text-underline-offset:3px}.account-portal-intro.compact{margin-bottom:14px}.account-portal-intro.compact p{font-size:13px;color:var(--text-muted);line-height:1.55}.portal-fold{border:1px solid var(--sh-border, #d9d2c0);border-radius:12px;background:var(--sh-bg-soft, #faf7ef)}.portal-fold>summary{display:flex;align-items:center;gap:8px;padding:12px 16px;cursor:pointer;font-weight:650;list-style:none;-webkit-user-select:none;user-select:none}.portal-fold>summary:before{content:"B8";font-size:11px;transition:transform .15s ease}.portal-fold[open]>summary:before{transform:rotate(90deg)}.portal-fold>summary::-webkit-details-marker{display:none}.portal-fold>summary span{margin-left:auto;font-weight:500;color:var(--sh-text-2, #6c6754);font-size:13px}.portal-fold>*:not(summary){padding:0 16px 16px}.portal-baa-open{border:0;padding:0;background:none;font:inherit;color:var(--teal);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.portal-baa-backdrop{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:clamp(12px,4vw,40px);background:#06211c8c}.portal-baa-sheet{display:flex;flex-direction:column;width:min(760px,100%);max-height:min(86dvh,900px);border-radius:20px;background:var(--surface-panel);box-shadow:0 30px 80px #06211c66;overflow:hidden}.portal-baa-sheet>header,.portal-baa-sheet>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;flex:none}.portal-baa-sheet>header{border-bottom:1px solid var(--border-subtle)}.portal-baa-sheet>header h3{margin:0;font-family:Fraunces,Georgia,serif;font-size:18px}.portal-baa-sheet>header button{border:0;background:none;font:inherit;color:var(--text-secondary);cursor:pointer}.portal-baa-sheet>footer{border-top:1px solid var(--border-subtle)}.portal-baa-sheet .portal-baa-text{flex:1;max-height:none;border:0;border-radius:0;background:none;padding:18px}.portal-date-late{color:var(--red);font-weight:700}.portal-date-soon{color:var(--sh-teal-700);font-weight:700}.portal-late-flag{margin-left:10px;padding:2px 9px;border-radius:999px;background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--red);font-family:var(--font-body);font-size:11.5px;font-weight:700;letter-spacing:.02em;vertical-align:middle}.portal-attention-rest{margin:8px 0 10px;padding-left:18px;color:var(--text-secondary);font-size:13px;line-height:1.55}.portal-attention-rest li{margin:3px 0}.portal-owed-line{margin:-2px 0 14px;color:var(--text-secondary);font-size:13.5px;line-height:1.55;font-variant-numeric:tabular-nums}.portal-invoice-overdue{background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--red);font-weight:700}.portal-invoice-soon{background:var(--gold-soft);color:var(--text-primary);font-weight:700}.portal-invoice-settled{background:color-mix(in srgb,var(--sh-teal-700) 10%,transparent);color:var(--sh-teal-700)}
