:root{--ion-color-primary: #0054e9;--ion-color-primary-rgb: 0, 84, 233;--ion-color-primary-contrast: #fff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #004acd;--ion-color-primary-tint: #1a65eb;--ion-color-secondary: #0163aa;--ion-color-secondary-rgb: 1, 99, 170;--ion-color-secondary-contrast: #fff;--ion-color-secondary-contrast-rgb: 255, 255, 255;--ion-color-secondary-shade: #015796;--ion-color-secondary-tint: #1a73b3;--ion-color-tertiary: #6030ff;--ion-color-tertiary-rgb: 96, 48, 255;--ion-color-tertiary-contrast: #fff;--ion-color-tertiary-contrast-rgb: 255, 255, 255;--ion-color-tertiary-shade: #542ae0;--ion-color-tertiary-tint: #7045ff;--ion-color-success: #2dd55b;--ion-color-success-rgb: 45, 213, 91;--ion-color-success-contrast: #000;--ion-color-success-contrast-rgb: 0, 0, 0;--ion-color-success-shade: #28bb50;--ion-color-success-tint: #42d96b;--ion-color-warning: #ffc409;--ion-color-warning-rgb: 255, 196, 9;--ion-color-warning-contrast: #000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0ac08;--ion-color-warning-tint: #ffca22;--ion-color-danger: #c5000f;--ion-color-danger-rgb: 197, 0, 15;--ion-color-danger-contrast: #fff;--ion-color-danger-contrast-rgb: 255, 255, 255;--ion-color-danger-shade: #ad000d;--ion-color-danger-tint: #cb1a27;--ion-color-light: #f4f5f8;--ion-color-light-rgb: 244, 245, 248;--ion-color-light-contrast: #000;--ion-color-light-contrast-rgb: 0, 0, 0;--ion-color-light-shade: #d7d8da;--ion-color-light-tint: #f5f6f9;--ion-color-medium: #636469;--ion-color-medium-rgb: 99, 100, 105;--ion-color-medium-contrast: #fff;--ion-color-medium-contrast-rgb: 255, 255, 255;--ion-color-medium-shade: #57585c;--ion-color-medium-tint: #737478;--ion-color-dark: #222428;--ion-color-dark-rgb: 34, 36, 40;--ion-color-dark-contrast: #fff;--ion-color-dark-contrast-rgb: 255, 255, 255;--ion-color-dark-shade: #1e2023;--ion-color-dark-tint: #383a3e}html.ios{--ion-default-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif}html.md{--ion-default-font: "Roboto", "Helvetica Neue", sans-serif}html{--ion-dynamic-font: -apple-system-body;--ion-font-family: var(--ion-default-font)}body{background:var(--ion-background-color);color:var(--ion-text-color)}body.backdrop-no-scroll{overflow:hidden}html.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,html.ios ion-modal ion-footer ion-toolbar:first-of-type,html.ios ion-footer.modal-footer-moving ion-toolbar:first-of-type{padding-top:6px}html.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type{padding-bottom:6px}html.ios ion-modal ion-toolbar,html.ios .modal-footer-moving ion-toolbar{padding-right:calc(var(--ion-safe-area-right) + 8px);padding-left:calc(var(--ion-safe-area-left) + 8px)}@media screen and (min-width: 768px){html.ios ion-modal.modal-card:first-of-type{--backdrop-opacity: .18}}ion-modal.modal-default.show-modal~ion-modal.modal-default{--backdrop-opacity: 0;--box-shadow: none}html.ios ion-modal.modal-card .ion-page{border-top-left-radius:var(--border-radius)}.ion-color-primary{--ion-color-base: var(--ion-color-primary, #0054e9) !important;--ion-color-base-rgb: var(--ion-color-primary-rgb, 0, 84, 233) !important;--ion-color-contrast: var(--ion-color-primary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-primary-shade, #004acd) !important;--ion-color-tint: var(--ion-color-primary-tint, #1a65eb) !important}.ion-color-secondary{--ion-color-base: var(--ion-color-secondary, #0163aa) !important;--ion-color-base-rgb: var(--ion-color-secondary-rgb, 1, 99, 170) !important;--ion-color-contrast: var(--ion-color-secondary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-secondary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-secondary-shade, #015796) !important;--ion-color-tint: var(--ion-color-secondary-tint, #1a73b3) !important}.ion-color-tertiary{--ion-color-base: var(--ion-color-tertiary, #6030ff) !important;--ion-color-base-rgb: var(--ion-color-tertiary-rgb, 96, 48, 255) !important;--ion-color-contrast: var(--ion-color-tertiary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-tertiary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-tertiary-shade, #542ae0) !important;--ion-color-tint: var(--ion-color-tertiary-tint, #7045ff) !important}.ion-color-success{--ion-color-base: var(--ion-color-success, #2dd55b) !important;--ion-color-base-rgb: var(--ion-color-success-rgb, 45, 213, 91) !important;--ion-color-contrast: var(--ion-color-success-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-success-shade, #28bb50) !important;--ion-color-tint: var(--ion-color-success-tint, #42d96b) !important}.ion-color-warning{--ion-color-base: var(--ion-color-warning, #ffc409) !important;--ion-color-base-rgb: var(--ion-color-warning-rgb, 255, 196, 9) !important;--ion-color-contrast: var(--ion-color-warning-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-warning-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-warning-shade, #e0ac08) !important;--ion-color-tint: var(--ion-color-warning-tint, #ffca22) !important}.ion-color-danger{--ion-color-base: var(--ion-color-danger, #c5000f) !important;--ion-color-base-rgb: var(--ion-color-danger-rgb, 197, 0, 15) !important;--ion-color-contrast: var(--ion-color-danger-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-danger-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-danger-shade, #ad000d) !important;--ion-color-tint: var(--ion-color-danger-tint, #cb1a27) !important}.ion-color-light{--ion-color-base: var(--ion-color-light, #f4f5f8) !important;--ion-color-base-rgb: var(--ion-color-light-rgb, 244, 245, 248) !important;--ion-color-contrast: var(--ion-color-light-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-light-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-light-shade, #d7d8da) !important;--ion-color-tint: var(--ion-color-light-tint, #f5f6f9) !important}.ion-color-medium{--ion-color-base: var(--ion-color-medium, #636469) !important;--ion-color-base-rgb: var(--ion-color-medium-rgb, 99, 100, 105) !important;--ion-color-contrast: var(--ion-color-medium-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-medium-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-medium-shade, #57585c) !important;--ion-color-tint: var(--ion-color-medium-tint, #737478) !important}.ion-color-dark{--ion-color-base: var(--ion-color-dark, #222428) !important;--ion-color-base-rgb: var(--ion-color-dark-rgb, 34, 36, 40) !important;--ion-color-contrast: var(--ion-color-dark-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-dark-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-dark-shade, #1e2023) !important;--ion-color-tint: var(--ion-color-dark-tint, #383a3e) !important}.ion-page{inset:0;display:flex;position:absolute;flex-direction:column;justify-content:space-between;contain:layout size style;z-index:0}.ion-page.ion-page-overlay-passthrough{pointer-events:none}ion-modal>.ion-page{position:relative;contain:layout style;height:100%}.split-pane-visible>.ion-page.split-pane-main{position:relative}ion-route,ion-route-redirect,ion-router,ion-select-option,ion-nav-controller,ion-menu-controller,ion-action-sheet-controller,ion-alert-controller,ion-loading-controller,ion-modal-controller,ion-picker-controller,ion-popover-controller,ion-toast-controller,.ion-page-hidden{display:none!important}.ion-page-invisible{opacity:0}.can-go-back>ion-header ion-back-button{display:block}html.plt-ios.plt-hybrid,html.plt-ios.plt-pwa{--ion-statusbar-padding: 20px}@supports (padding-top: 20px){html{--ion-safe-area-top: var(--ion-statusbar-padding)}}@supports (padding-top: env(safe-area-inset-top)){html{--ion-safe-area-top: var(--safe-area-inset-top, env(safe-area-inset-top));--ion-safe-area-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom));--ion-safe-area-left: var(--safe-area-inset-left, env(safe-area-inset-left));--ion-safe-area-right: var(--safe-area-inset-right, env(safe-area-inset-right))}}ion-card.ion-color .ion-inherit-color,ion-card-header.ion-color .ion-inherit-color{color:inherit}.menu-content{transform:translateZ(0)}.menu-content-open{cursor:pointer;touch-action:manipulation;pointer-events:none;overflow-y:hidden}.menu-content-open ion-content{--overflow: hidden}.menu-content-open .ion-content-scroll-host{overflow:hidden}.ios .menu-content-reveal{box-shadow:-8px 0 42px #00000014}[dir=rtl].ios .menu-content-reveal{box-shadow:8px 0 42px #00000014}.md .menu-content-reveal,.md .menu-content-push{box-shadow:4px 0 16px #0000002e}ion-accordion-group.accordion-group-expand-inset>ion-accordion:first-of-type{border-top-left-radius:8px;border-top-right-radius:8px}ion-accordion-group.accordion-group-expand-inset>ion-accordion:last-of-type{border-bottom-left-radius:8px;border-bottom-right-radius:8px}ion-accordion-group>ion-accordion:last-of-type ion-item[slot=header]{--border-width: 0px}ion-accordion.accordion-animated>[slot=header] .ion-accordion-toggle-icon{transition:.3s transform cubic-bezier(.25,.8,.5,1)}@media (prefers-reduced-motion: reduce){ion-accordion .ion-accordion-toggle-icon{transition:none!important}}ion-accordion.accordion-expanding>[slot=header] .ion-accordion-toggle-icon,ion-accordion.accordion-expanded>[slot=header] .ion-accordion-toggle-icon{transform:rotate(180deg)}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-previous ion-item[slot=header]{--border-width: 0px;--inner-border-width: 0px}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanding:first-of-type,ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanded:first-of-type{margin-top:0}ion-input input::-webkit-date-and-time-value{text-align:start}.ion-datetime-button-overlay{--width: fit-content;--height: fit-content}.ion-datetime-button-overlay ion-datetime.datetime-grid{width:320px;min-height:320px}[ion-last-focus],header[tabindex="-1"]:focus,[role=banner][tabindex="-1"]:focus,main[tabindex="-1"]:focus,[role=main][tabindex="-1"]:focus,h1[tabindex="-1"]:focus,[role=heading][aria-level="1"][tabindex="-1"]:focus{outline:none}.popover-viewport:has(>ion-content){overflow:hidden}@supports not selector(:has(> ion-content)){.popover-viewport{overflow:hidden}}audio,canvas,progress,video{vertical-align:baseline}audio:not([controls]){display:none;height:0}b,strong{font-weight:700}img{max-width:100%}hr{height:1px;border-width:0;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}label,input,select,textarea{font-family:inherit;line-height:normal}textarea{overflow:auto;height:auto;font:inherit;color:inherit}textarea::placeholder{padding-left:2px}form,input,optgroup,select{margin:0;font:inherit;color:inherit}html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}a,a div,a span,a ion-icon,a ion-label,button,button div,button span,button ion-icon,button ion-label,.ion-tappable,[tappable],[tappable] div,[tappable] span,[tappable] ion-icon,[tappable] ion-label,input,textarea{touch-action:manipulation}a ion-label,button ion-label{pointer-events:none}button{padding:0;border:0;border-radius:0;font-family:inherit;font-style:inherit;font-variant:inherit;line-height:1;text-transform:none;cursor:pointer;-webkit-appearance:button}[tappable]{cursor:pointer}a[disabled],button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html{width:100%;height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}html.ion-ce body{display:block}html.plt-pwa{height:100vh}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin:0;padding:0;position:fixed;width:100%;max-width:100%;height:100%;max-height:100%;transform:translateZ(0);text-rendering:optimizeLegibility;overflow:hidden;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;overscroll-behavior-y:none;-webkit-text-size-adjust:none;text-size-adjust:none}html{font-family:var(--ion-font-family)}@supports (-webkit-touch-callout: none){html{font:var(--ion-dynamic-font, 16px var(--ion-font-family))}}a{background-color:transparent;color:var(--ion-color-primary, #0054e9)}h1,h2,h3,h4,h5,h6{margin-top:16px;margin-bottom:10px;font-weight:500;line-height:1.2}h1{margin-top:20px;font-size:1.625rem}h2{margin-top:18px;font-size:1.5rem}h3{font-size:1.375rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}small{font-size:75%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}:root{--brand-red: #e85d52;--brand-red-deep: #cc5148;--brand-blue: #2f7de1;--bg-canvas: #fff8f3;--surface: #ffffff;--surface-muted: #fff4ef;--border: rgba(219, 202, 193, .8);--text-strong: #241916;--text-muted: #7a6b61;--danger: #d94d57;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--page-edge: 20px;--tab-bar-height: 44px;--tab-safe-bottom: env(safe-area-inset-bottom, 0px);--safe-bottom: max(env(safe-area-inset-bottom), 8px);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:var(--text-strong);background:var(--bg-canvas)}*{box-sizing:border-box}html,body,#root,ion-app{width:100%;height:100%;min-height:100%;margin:0;background:var(--bg-canvas)}body{min-width:320px}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.55}button:focus-visible,input:focus-visible,ion-tab-button:focus-visible{outline:3px solid rgba(232,93,82,.35);outline-offset:2px}#app-boot{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;color:var(--text-strong);background:var(--bg-canvas);opacity:1;transition:opacity .18s ease}#app-boot.is-ready{opacity:0;pointer-events:none}.app-boot-content{display:grid;place-items:center}.app-boot-content img{width:96px;height:96px;border-radius:16px;object-fit:contain;background:#fff}.auth-loading,.state-view{min-height:50vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-muted);padding:24px;text-align:center}.loading-dot{width:28px;height:28px;border:3px solid #f1d8cf;border-top-color:var(--brand-red);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.brand-page{background:var(--bg-canvas)}.brand-content{--background: var(--bg-canvas)}.page-frame{width:100%;max-width:560px;min-height:100%;margin:0 auto;padding:0 var(--page-edge) calc(32px + var(--safe-bottom))}.page-main{display:flex;flex-direction:column;gap:16px}.brand-header{display:grid;grid-template-columns:52px minmax(0,1fr) 52px;align-items:center;gap:12px;padding:max(18px,env(safe-area-inset-top)) 0 18px}.brand-header-logo img{display:block;width:52px;height:52px;border-radius:14px;object-fit:contain;background:#fff}.brand-page-title{min-width:0;margin:0;font-size:23px;line-height:1.25;text-align:center;text-wrap:balance}.menu-button{display:grid;width:44px;height:44px;place-items:center;flex:0 0 auto;border:1px solid var(--border);border-radius:999px;color:var(--text-strong);background:var(--surface)}.menu-button,.menu-placeholder{justify-self:end}.menu-button:hover{border-color:var(--brand-red);color:var(--brand-red)}.menu-button ion-icon{width:25px;height:25px}.menu-button ion-spinner{width:25px;height:25px;color:var(--brand-red)}.brand-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:0 8px 24px #8759430a}.card-title{margin:0 0 14px;font-size:15px;font-weight:700}.profile-card{display:flex;flex-direction:column;align-items:center;text-align:center}.avatar{width:88px;height:88px;border-radius:50%;object-fit:cover;background:var(--surface-muted);margin-bottom:12px}.avatar-fallback{display:grid;place-items:center;color:var(--brand-red);font-size:30px;font-weight:700}.profile-name{margin:0;font-size:25px;font-weight:700}.badge,.tag{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:600}.badge{margin-top:10px;color:#fff;background:#16b47a}.badge.inactive{background:var(--text-muted)}.tag-list{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:12px}.tag{color:var(--text-strong);background:var(--surface-muted)}.info-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;font-size:15px}.info-row+.info-row{border-top:1px solid var(--border)}.info-label{color:var(--text-muted)}.info-value{min-width:0;overflow-wrap:anywhere;text-align:right;font-variant-numeric:tabular-nums}.section-title{margin:8px 0 0;font-size:15px}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{padding:12px;border-radius:var(--radius-md);background:var(--surface-muted)}.metric-label{color:var(--text-muted);font-size:12px}.metric-value{margin-top:4px;font-size:17px;font-weight:700}.trend-card{overflow:hidden}.trend-title{margin:0 0 8px;font-size:14px}.trend-svg{display:block;width:100%;height:auto}.chart-labels{display:flex;justify-content:space-between;color:var(--text-muted);font-size:11px}.check-header{display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;background:transparent;width:100%;min-height:44px;padding:0;text-align:left}.check-date{font-weight:700}.check-summary{flex:1;color:var(--text-muted);font-size:13px}.check-toggle{color:var(--brand-red);font-size:12px}.check-detail{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.photo-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.photo-button{padding:0;border:0;background:transparent}.photo-button img{width:88px;height:88px;border-radius:var(--radius-md);object-fit:cover}.lightbox{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:24px;background:#241916bf}.lightbox img{max-width:100%;max-height:80vh;border-radius:var(--radius-md);background:#fff}.lightbox-close{position:absolute;top:max(20px,env(safe-area-inset-top));right:20px;border:0;border-radius:999px;background:#fff;color:var(--text-strong);width:44px;height:44px;font-size:22px}.login-page{min-height:100%;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:max(24px,env(safe-area-inset-top)) var(--page-edge) max(24px,env(safe-area-inset-bottom));background:var(--bg-canvas)}.login-inner{width:100%;max-width:350px}.login-brand{display:flex;flex-direction:column;align-items:center;margin-bottom:24px;text-align:center}.login-brand img{width:96px;height:96px;border-radius:16px;background:#fff;object-fit:contain}.login-brand h1{margin:12px 0 4px;color:var(--brand-red);font-size:32px;line-height:1.25;letter-spacing:1px;text-wrap:balance}.login-brand p{margin:0;color:var(--text-muted);font-size:18px}.login-card{padding:24px}.login-field{display:grid;gap:8px}.login-pairing-code{display:grid;justify-items:center;gap:4px;margin-top:16px;color:var(--text-muted);font-size:13px;text-align:center}.login-pairing-code p{margin:0}.pairing-code-button{border:0;background:transparent;color:var(--brand-red);font-size:32px;font-weight:700;letter-spacing:.24em;padding:4px 8px 4px 14px;cursor:pointer}.login-pairing-code span{font-size:12px}.pairing-code-expired{color:var(--danger);font-weight:700}.field-label{display:block;color:var(--text-muted);font-size:14px;font-weight:700}.text-input{width:100%;min-height:44px;border:0;border-bottom:2px solid var(--border);border-radius:8px;padding:11px 12px;color:var(--text-strong);background:#fffaf7;transition:border-color .15s,box-shadow .15s}.text-input:focus{border-bottom-color:var(--brand-red);box-shadow:0 0 0 3px #e85d521f}.brand-button{width:100%;min-height:48px;margin-top:16px;border:0;border-radius:999px;padding:11px 18px;color:#fff;background:var(--brand-red);font-weight:700;transition:transform .15s,background .15s}.brand-button:hover{background:var(--brand-red-deep)}.brand-button:active{transform:scale(.99)}.brand-button.small{width:auto;min-height:44px;margin-top:0;padding:9px 18px}.login-error,.login-message{margin:12px 0 0;font-size:13px;line-height:1.5}.login-error{color:var(--danger)}.login-message{color:#16855e;white-space:pre-line}.brand-tab-bar{--background: var(--surface);--border: 1px solid var(--border);--ion-safe-area-bottom: 0px;position:relative;z-index:5;flex-shrink:0;height:var(--tab-bar-height);padding:0 8px var(--tab-safe-bottom);background:var(--surface);border-top:1px solid var(--border)}.brand-tab-bar ion-tab-button{--color: var(--text-muted);--color-selected: var(--brand-red);min-height:var(--tab-bar-height);border-radius:12px;background:transparent;font-size:11px;font-weight:600;transform:translateY(calc(var(--tab-safe-bottom) / 2))}.brand-tab-bar ion-tab-button.tab-selected{background:transparent}.tab-icon{display:block;width:26px;height:26px;margin:0;font-size:26px;line-height:26px;font-weight:400}.week-controls{display:flex;align-items:center;justify-content:space-between;gap:12px}.week-button{min-width:44px;min-height:44px;border:1px solid var(--border);border-radius:999px;padding:8px 13px;background:var(--surface);color:var(--text-strong)}.week-button:hover{border-color:var(--brand-red);color:var(--brand-red)}.week-label{color:var(--brand-red);font-size:13px;font-weight:700}.booking-list{display:flex;flex-direction:column;gap:10px}.booking-card{display:flex;gap:16px;align-items:center}.booking-date{min-width:105px}.booking-date strong{display:block;font-size:16px}.booking-date span{color:var(--brand-red);font-size:14px}.booking-body{flex:1}.booking-type{font-size:16px;font-weight:700}.online-label{display:inline-block;margin-top:6px;border-radius:999px;padding:3px 8px;color:var(--brand-blue);background:var(--surface-muted);font-size:12px}.past{opacity:.55}.offline-banner{padding:8px 12px;border-radius:10px;color:#664d03;background:#fff4cc;font-size:12px;text-align:center}.offline-page{padding:36px 18px;text-align:center;color:var(--text-muted)}.offline-page h2{margin:0 0 8px;color:var(--text-strong);font-size:18px}.offline-page p{margin:0;line-height:1.6}.pwa-update{position:fixed;z-index:110;right:16px;bottom:calc(var(--tab-bar-height) + 16px + var(--tab-safe-bottom));left:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:520px;margin:0 auto;padding:12px 14px;border:1px solid var(--border);border-radius:12px;color:var(--text-strong);background:var(--surface);box-shadow:0 10px 30px #24191624;font-size:13px}.pwa-update button{min-height:44px;border:0;border-radius:999px;padding:7px 14px;color:#fff;background:var(--brand-red);font-weight:700}.refresh-overlay{position:fixed;z-index:20;inset:0 0 calc(var(--tab-bar-height) + var(--tab-safe-bottom));display:grid;place-items:center;pointer-events:none;background:#fff8f32e}.refresh-overlay .loading-dot{width:36px;height:36px;border-width:4px}.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}.app-drawer-layer{position:fixed;z-index:200;inset:0;display:flex;justify-content:flex-end;pointer-events:none}.app-drawer-layer.is-open{pointer-events:auto}.drawer-backdrop{position:absolute;inset:0;border:0;background:#2419163d;opacity:0;transition:opacity .18s ease}.app-drawer-layer.is-open .drawer-backdrop{opacity:1}.app-drawer{position:relative;width:min(78%,340px);height:100%;padding:max(24px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;background:var(--surface);box-shadow:-8px 0 28px #24191629;transform:translate(100%);transition:transform .18s ease}.app-drawer-layer.is-open .app-drawer{transform:translate(0)}.drawer-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--border)}.drawer-title{min-width:0}.drawer-title p{margin:0 0 2px;color:var(--brand-red);font-size:12px;font-weight:700;letter-spacing:.5px;line-height:1.2}.drawer-header h2{margin:0;color:var(--text-strong);font-size:24px;line-height:1.3;text-wrap:balance}.drawer-close{display:grid;width:44px;height:44px;place-items:center;flex:0 0 auto;border:1px solid var(--border);border-radius:999px;color:var(--text-strong);background:var(--surface)}.drawer-close:hover{border-color:var(--brand-red);color:var(--brand-red)}.drawer-close ion-icon{width:24px;height:24px}.drawer-menu{display:flex;flex-direction:column;gap:10px;padding-top:16px}.drawer-item{display:flex;align-items:center;gap:12px;width:100%;min-height:68px;padding:12px;border:1px solid rgba(230,214,207,.72);border-radius:18px;color:var(--text-strong);background:linear-gradient(135deg,#fff7f2,#fffdfa);text-align:left}.drawer-item:hover{border-color:var(--brand-red)}.drawer-item:disabled{cursor:default}.drawer-item>span:last-child{display:flex;min-width:0;flex-direction:column;gap:4px}.drawer-item strong{font-size:14px;line-height:1.35}.drawer-item small{color:var(--text-muted);font-size:12px;line-height:1.4}.drawer-item-icon{display:grid;width:44px;height:44px;place-items:center;flex:0 0 auto;border-radius:999px}.drawer-item-icon ion-icon{width:22px;height:22px}.drawer-item-icon-coral{color:var(--brand-red-deep);background:#e85d521a}.drawer-item-icon-blue{color:#1758d0;background:#2f7de11a}.drawer-item-danger{margin-top:6px;border-color:#f0c4c4e0;background:linear-gradient(135deg,#fff7f7,#fffefe)}.drawer-item-danger strong{color:var(--danger)}.drawer-item-icon-danger{color:var(--danger);background:#d94d571a}.drawer-version{margin-top:28px;padding-top:14px;border-top:1px solid var(--border);color:var(--text-muted);font-size:11px;text-align:center}.install-guide-layer{position:fixed;z-index:220;inset:0;display:grid;place-items:center;padding:24px}.install-guide-layer .drawer-backdrop{opacity:1}.install-guide{position:relative;width:min(100%,360px);padding:22px;border:1px solid var(--border);border-radius:20px;background:var(--surface);box-shadow:0 18px 50px #24191633}.install-guide-header{display:flex;align-items:center;justify-content:space-between}.install-guide-icon{display:grid;width:48px;height:48px;place-items:center;border-radius:14px;color:var(--brand-red);background:var(--surface-muted)}.install-guide-icon ion-icon{width:27px;height:27px}.install-guide h2{margin:18px 0 8px;font-size:22px}.install-guide p{margin:0;color:var(--text-muted);font-size:14px;line-height:1.65}.install-guide .brand-button{margin-top:20px}.app-notice-layer{position:fixed;z-index:140;top:max(10px,env(safe-area-inset-top));right:16px;left:16px;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.network-offline,.app-toast{display:flex;align-items:center;gap:10px;width:min(100%,560px);padding:12px 14px;border:1px solid var(--border);border-radius:14px;box-shadow:0 10px 28px #2419161f;pointer-events:auto}.network-offline{color:#664d03;background:#fff4cc}.app-toast-error{color:var(--danger);background:#fff5f5;border-color:#d94d5747}.app-toast-success{color:#16855e;background:#f2fff8;border-color:#16b47a40}.network-offline>ion-icon,.app-toast>ion-icon{width:24px;height:24px;flex:0 0 auto}.network-offline>span,.app-toast>span{display:flex;min-width:0;flex:1;flex-direction:column;gap:3px}.network-offline strong,.app-toast strong{color:var(--text-strong);font-size:13px;line-height:1.35}.network-offline small,.app-toast small{color:var(--text-muted);font-size:12px;line-height:1.4}.app-toast-action,.app-toast-dismiss{min-height:44px;flex:0 0 auto;border:0;border-radius:999px;touch-action:manipulation}.app-toast-action{padding:7px 12px;color:#fff;background:var(--brand-red);font-size:12px;font-weight:700}.app-toast-dismiss{display:grid;width:44px;place-items:center;padding:0;color:var(--text-muted);background:transparent}.app-toast-dismiss:hover{color:var(--text-strong);background:#2419160f}.app-toast-dismiss ion-icon{width:20px;height:20px}@media (min-width: 700px){.page-frame{max-width:680px}.login-inner{max-width:380px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
