:root{--color-primary: #d81b60;--color-primary-dark: #ad1457;--color-primary-tint: #fce4ec;--color-accent-warm: #fff3e0;--color-surface: #ffffff;--color-canvas: #f5f7fa;--color-border: #e5e5e5;--color-divider: #f5f5f5;--color-divider-soft: #f8f8f8;--color-divider-title: #f0f0f0;--color-on-primary: #ffffff;--color-text-primary: #333333;--color-text-secondary: #767676;--color-text-muted: #999999;--color-icon-idle: #c0c4cc;--color-icon-chevron: #cccccc;--color-tab-inactive: #666666;--color-error: #f56c6c;--color-error-text: #c62828;--color-placeholder: #999999;--color-scrim: rgba(0, 0, 0, .4);--color-toast: rgba(17, 17, 17, .7);--color-tab-hairline: rgba(0, 0, 0, .33);--color-camera: #000000;--color-camera-frame: #ffffff;--color-camera-text: rgba(255, 255, 255, .8);--gradient-primary: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--fs-display-lg: 22px;--fs-display-sm: 18px;--fs-title-md: 18px;--fs-nav: 16px;--fs-body-md: 14px;--fs-body-sm: 12px;--fs-caption: 12px;--fs-micro: 10px;--fs-toast: 13px;--space-xxs: 4px;--space-xs: 5px;--space-sm: 7.5px;--space-md: 12px;--space-base: 15px;--space-lg: 20px;--space-xl: 25px;--space-xxl: 30px;--page-inline: 15px;--page-block: 7.5px;--grid-gutter: 10px;--card-padding: 15px;--nav-bar-height: 44px;--tab-bar-height: 50px;--touch-target: 44px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 10px;--radius-sheet: 12px;--radius-pill: 20px;--radius-full: 9999px;--shadow-card: 0 2px 10px rgba(0, 0, 0, .06)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}body{font-family:var(--font-family);background:var(--color-canvas);color:var(--color-text-primary);font-size:var(--fs-body-md);line-height:1.6}html[dir=rtl] body{line-height:1.75}button,input{font-family:inherit}:focus-visible{outline:2px solid var(--color-primary-dark);outline-offset:2px}.nav-bar :focus-visible,.greeting-card :focus-visible,.scanner-overlay :focus-visible{outline-color:var(--color-on-primary)}.page-container{min-height:100vh;background:var(--color-canvas)}.nav-bar{position:fixed;inset-block-start:0;inset-inline:0;z-index:30;display:flex;align-items:center;justify-content:center;height:calc(var(--nav-bar-height) + env(safe-area-inset-top,0px));padding:var(--space-sm) var(--space-base) 0;background:var(--gradient-primary);color:var(--color-on-primary)}.nav-title{margin:0;font-size:var(--fs-nav);font-weight:700}.nav-back{position:absolute;inset-inline-start:var(--space-sm);inset-block-start:calc(env(safe-area-inset-top,0px) + 2px);display:flex;align-items:center;justify-content:center;width:var(--touch-target);height:var(--touch-target);border:0;background:transparent;color:var(--color-on-primary);cursor:pointer}html[dir=rtl] .nav-back svg,html[dir=rtl] .chevron{transform:scaleX(-1)}.page-content{padding-block:calc(var(--nav-bar-height) + env(safe-area-inset-top,0px) + var(--page-block));padding-inline:var(--page-inline)}.page-container.has-tabbar .page-content{padding-block-end:calc(var(--tab-bar-height) + env(safe-area-inset-bottom,0px) + var(--space-base))}.stack>*+*{margin-block-start:var(--space-base)}.tab-bar{position:fixed;inset-block-end:0;inset-inline:0;z-index:30;display:flex;height:calc(var(--tab-bar-height) + env(safe-area-inset-bottom,0px));padding-block-end:env(safe-area-inset-bottom,0px);background:var(--color-surface);border-block-start:1px solid var(--color-tab-hairline)}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:var(--touch-target);padding:var(--space-xs) 0;border:0;background:transparent;color:var(--color-tab-inactive);font-size:var(--fs-micro);cursor:pointer}.tab-item.active{color:var(--color-primary)}.top-bar{display:flex;justify-content:flex-end;gap:var(--space-xxs);padding-block-end:var(--space-xs)}.icon-item{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:var(--touch-target);min-height:var(--touch-target);justify-content:center;border:0;background:transparent;color:var(--color-text-primary);cursor:pointer}.icon-label{font-size:var(--fs-micro);color:var(--color-text-muted)}.greeting-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-xl) var(--space-base);border-radius:var(--radius-lg);background:var(--gradient-primary);color:var(--color-on-primary);text-align:center}.brand-mark{font-size:var(--fs-caption);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--color-on-primary);opacity:.85}.greeting-title{margin:0;font-size:var(--fs-display-sm);font-weight:700}.greeting-meta{font-size:var(--fs-caption);color:var(--color-on-primary);word-break:break-all}.greeting-button{display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch-target);padding:0 var(--space-lg);border:0;border-radius:var(--radius-pill);background:#fff3;color:var(--color-on-primary);font-size:var(--fs-body-md);cursor:pointer}.actions-grid{display:flex;flex-wrap:wrap;margin-inline:calc(var(--space-xs) * -1)}.action-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);width:calc(50% - var(--grid-gutter));min-height:96px;margin:var(--space-xs);padding:var(--card-padding);border:0;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);color:var(--color-text-primary);font-family:inherit;cursor:pointer}.action-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-xl);font-size:20px;line-height:1}.action-icon.primary{background:var(--color-primary-tint)}.action-icon.warning{background:var(--color-accent-warm)}.action-label{font-size:var(--fs-caption);text-align:center}.app-card{padding:var(--card-padding);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.inst-title{margin:0 0 var(--space-md);font-size:var(--fs-title-md);font-weight:600}.inst-list{margin:0;padding:0;list-style:none}.inst-item{display:flex;gap:var(--space-xs);align-items:flex-start}.inst-item+.inst-item{margin-block-start:var(--space-xs)}.inst-index{flex:0 0 auto;font-size:var(--fs-body-sm);font-weight:600;color:var(--color-primary)}.inst-text{font-size:var(--fs-body-sm);color:var(--color-text-secondary);line-height:1.6}.inst-link{border:0;padding:0;background:transparent;color:var(--color-primary-dark);font-size:var(--fs-body-sm);text-decoration:underline;cursor:pointer}.form-container{padding:var(--space-lg) var(--space-base);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.form-title{margin:0 0 var(--space-xxl);text-align:center;font-size:var(--fs-display-lg);font-weight:700;color:var(--color-primary-dark)}.form-item+.form-item{margin-block-start:var(--space-xs)}.form-item{width:100%}.field-label{display:block;margin-block-end:var(--space-xxs);font-size:var(--fs-body-sm);font-weight:600}.input-wrap{display:flex;align-items:center;min-height:var(--touch-target);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);overflow:hidden}.input-icon{display:flex;align-items:center;justify-content:center;align-self:stretch;padding-inline:10px;border-inline-end:1px solid var(--color-border);color:var(--color-icon-idle)}.input{flex:1;min-width:0;min-height:calc(var(--touch-target) - 2px);padding:0 10px;border:0;background:transparent;color:var(--color-text-primary);font-size:var(--fs-body-md)}.input::placeholder{color:var(--color-placeholder);font-size:var(--fs-body-sm)}.input-action{display:flex;align-items:center;justify-content:center;align-self:stretch;min-width:var(--touch-target);border:0;background:transparent;color:var(--color-primary-dark);cursor:pointer}.input-error{margin:var(--space-xxs) 0 0;font-size:var(--fs-body-sm);color:var(--color-error-text)}.form-actions{margin-block-start:var(--space-xl)}.app-btn-primary{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:var(--touch-target);padding:9px 0;border:0;border-radius:var(--radius-md);background:var(--gradient-primary);color:var(--color-on-primary);font-size:var(--fs-body-md);font-family:inherit;cursor:pointer}.app-btn-primary:disabled{opacity:.4;cursor:default}.app-btn-primary:active:not(:disabled){background:var(--color-primary-dark);opacity:.85}.app-btn-secondary{display:flex;align-items:center;justify-content:center;width:100%;min-height:var(--touch-target);padding:9px 0;border:0;border-radius:var(--radius-md);background:var(--color-primary-tint);color:var(--color-primary-dark);font-size:var(--fs-body-md);font-family:inherit;cursor:pointer}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.35);border-block-start-color:var(--color-on-primary);border-radius:var(--radius-full);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn-loading-label{margin-inline-start:var(--space-xs)}.form-links{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);margin-block-start:var(--space-base)}.link-text{border:0;padding:0;background:transparent;color:var(--color-primary-dark);font-size:var(--fs-caption);cursor:pointer}.link-text-muted{border:0;padding:0;background:transparent;color:var(--color-text-secondary);font-size:var(--fs-caption);cursor:pointer}.form-hint{margin:0 0 var(--space-lg);padding:var(--space-md);border-radius:var(--radius-sm);background:var(--color-primary-tint);color:var(--color-text-primary);font-size:var(--fs-body-sm)}.search-bar{display:flex;align-items:center;gap:var(--space-xs);min-height:var(--touch-target);margin-block-end:var(--space-md);padding:0 10px;border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-card);color:var(--color-icon-idle)}.search-bar input{flex:1;min-width:0;border:0;background:transparent;font-size:var(--fs-body-md);color:var(--color-text-primary)}.count-label{margin:0 0 var(--space-sm);font-size:var(--fs-body-sm);color:var(--color-text-secondary)}.record-card{display:block;width:100%;padding:var(--space-md) var(--space-base);border:0;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);text-align:start;font-family:inherit;cursor:pointer}.record-card+.record-card{margin-block-start:var(--space-md)}.record-line{display:flex;gap:var(--space-sm);align-items:baseline;min-height:20px}.record-label{flex:0 0 42%;font-size:var(--fs-body-sm);color:var(--color-text-secondary)}.record-value{flex:1;min-width:0;font-size:var(--fs-body-sm);color:var(--color-text-primary);word-break:break-all}.record-value.strong{font-size:var(--fs-body-md);font-weight:600}.record-value.link{color:var(--color-primary-dark)}.record-arrow{display:flex;justify-content:flex-end;color:var(--color-icon-chevron)}.empty-state{padding:50px var(--space-base);text-align:center;color:var(--color-text-secondary);font-size:var(--fs-body-md)}.load-more{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);height:40px;font-size:var(--fs-body-md);color:var(--color-text-secondary)}.load-more .spinner{border-color:#0000001f;border-block-start-color:var(--color-primary)}.profile-header{display:flex;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-lg) var(--space-base);border:0;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);text-align:start;font-family:inherit;cursor:pointer}.profile-avatar{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:50px;height:50px;border-radius:var(--radius-full);background:var(--gradient-primary);color:var(--color-on-primary);font-size:var(--fs-display-sm);font-weight:700}.profile-info{flex:1;min-width:0}.profile-name{font-size:var(--fs-title-md);font-weight:600}.profile-meta{font-size:var(--fs-caption);color:var(--color-text-secondary);word-break:break-all}.chevron{color:var(--color-icon-chevron)}.stat-row{display:flex;align-items:center;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.stat-item{flex:1;padding:var(--space-lg) var(--space-base);text-align:center}.stat-item+.stat-item{border-inline-start:1px solid var(--color-divider-title)}.stat-value{font-size:var(--fs-display-lg);font-weight:700;color:var(--color-primary-dark)}.stat-label{font-size:var(--fs-caption);color:var(--color-text-secondary)}.list-card{overflow:hidden;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.list-row{display:flex;align-items:center;gap:var(--space-md);width:100%;min-height:54px;padding:var(--space-base);border:0;background:var(--color-surface);color:var(--color-text-primary);font-size:var(--fs-body-md);font-family:inherit;text-align:start;cursor:pointer}.list-row+.list-row{border-block-start:1px solid var(--color-divider)}.list-row .chevron{margin-inline-start:auto}.list-row.danger{color:var(--color-error-text)}.list-row-icon{display:flex;align-items:center;color:var(--color-primary-dark)}.section-card{padding:var(--card-padding);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.section-title{margin:0 0 var(--space-base);font-size:var(--fs-title-md);font-weight:600}.toast-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:0 10%;pointer-events:none}.toast{max-width:80%;padding:10px var(--space-lg);border-radius:var(--radius-sm);background:var(--color-toast);color:var(--color-on-primary);font-size:var(--fs-toast);line-height:1.4;text-align:center}.sheet-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-end;background:var(--color-scrim)}.sheet{width:100%;max-height:80vh;overflow-y:auto;padding-block:var(--space-base) var(--space-xxl);border-start-start-radius:var(--radius-sheet);border-start-end-radius:var(--radius-sheet);background:var(--color-surface);animation:sheet-up .3s ease}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-title{padding:10px var(--space-base);border-block-end:1px solid var(--color-divider-title);text-align:center;font-size:var(--fs-title-md);font-weight:600}.sheet-body{padding:var(--space-base)}.sheet-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;min-height:53px;padding:var(--space-base) var(--space-lg);border:0;border-block-end:1px solid var(--color-divider-soft);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--fs-body-md);font-family:inherit;text-align:start;cursor:pointer}.sheet-item.active{background:var(--color-primary-tint)}.sheet-check{margin-inline-start:auto;color:var(--color-primary)}.sheet-cancel{display:block;width:100%;padding:var(--space-base) 0;border:0;background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--fs-body-md);font-family:inherit;cursor:pointer}.sheet-note{margin:0 0 var(--space-md);font-size:var(--fs-body-sm);color:var(--color-text-secondary)}.help-header{margin-block-end:var(--space-base)}.help-title{margin:0;font-size:var(--fs-display-lg);font-weight:700}.help-lead{margin:var(--space-md) 0;font-size:var(--fs-display-sm);font-weight:700}.section-text{font-size:var(--fs-body-sm);color:var(--color-text-secondary)}.bullet-item{display:flex;gap:var(--space-xs);align-items:flex-start;margin-block-end:var(--space-xs)}.bullet-dot{flex:0 0 auto;width:6px;height:6px;margin-block-start:8px;border-radius:var(--radius-full);background:var(--color-primary)}.bullet-text{font-size:var(--fs-body-sm);color:var(--color-text-primary)}.img-full{margin-block:var(--space-base)}.img-full-item{display:block;width:auto;max-width:100%;margin-inline:auto;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.guide-step{margin-block-end:var(--space-lg);padding:var(--card-padding);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.guide-head{display:flex;align-items:center;gap:var(--space-sm);margin-block-end:var(--space-sm)}.guide-title{margin:0;font-size:var(--fs-body-md);font-weight:600;color:var(--color-text-primary)}.guide-step .img-full{margin-block:var(--space-md)}.guide-step .img-full-item{background:var(--color-canvas);box-shadow:none;border:1px solid var(--color-border)}.url-text{display:block;margin-block:var(--space-base);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-divider-soft);color:var(--color-primary-dark);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-body-sm);word-break:break-all}.inline-link{padding:0;border:0;background:none;color:var(--color-primary);font:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.steps-card{padding:var(--card-padding);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.step-item{display:flex;gap:var(--space-sm);align-items:flex-start}.step-item+.step-item{margin-block-start:var(--space-base)}.step-badge{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-on-primary);font-size:var(--fs-micro);font-weight:600}.step-text{font-size:var(--fs-body-sm);color:var(--color-text-primary)}.step-note{display:block;margin-block-start:var(--space-xxs);color:var(--color-text-secondary)}.store-link{display:inline-block;margin-block-start:var(--space-xxs);color:var(--color-primary-dark);font-size:var(--fs-body-sm);word-break:break-all}.scanner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:var(--color-camera);display:flex;align-items:center;justify-content:center}.scanner-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.scanner-close{position:absolute;inset-block-start:calc(env(safe-area-inset-top,0px) + var(--space-base));inset-inline-start:var(--space-base);z-index:2;display:flex;align-items:center;justify-content:center;width:var(--touch-target);height:var(--touch-target);border:0;background:transparent;color:var(--color-camera-frame);cursor:pointer}.scanner-frame{position:relative;z-index:2;width:250px;height:250px}.scanner-corner{position:absolute;width:20px;height:20px;border:3px solid var(--color-camera-frame)}.scanner-corner.start-start{inset-block-start:0;inset-inline-start:0;border-end-end-radius:var(--radius-sm);border-block-start:3px solid var(--color-camera-frame);border-inline-start:3px solid var(--color-camera-frame);border-block-end:0;border-inline-end:0}.scanner-corner.start-end{inset-block-start:0;inset-inline-end:0;border-end-start-radius:var(--radius-sm);border-block-start:3px solid var(--color-camera-frame);border-inline-end:3px solid var(--color-camera-frame);border-block-end:0;border-inline-start:0}.scanner-corner.end-start{inset-block-end:0;inset-inline-start:0;border-start-end-radius:var(--radius-sm);border-block-end:3px solid var(--color-camera-frame);border-inline-start:3px solid var(--color-camera-frame);border-block-start:0;border-inline-end:0}.scanner-corner.end-end{inset-block-end:0;inset-inline-end:0;border-start-start-radius:var(--radius-sm);border-block-end:3px solid var(--color-camera-frame);border-inline-end:3px solid var(--color-camera-frame);border-block-start:0;border-inline-start:0}.scanner-hint{position:absolute;inset-block-end:100px;inset-inline:0;z-index:2;padding:0 var(--space-base);text-align:center;font-size:var(--fs-body-md);color:var(--color-camera-text)}.scanner-bottom{position:absolute;inset-inline:0;inset-block-end:calc(var(--space-xxl) + env(safe-area-inset-bottom,0px));z-index:2;display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding-inline:var(--space-base);text-align:center}.scanner-bottom .scanner-hint{position:static;inset:auto;padding:0}.scanner-action{display:inline-flex;align-items:center;gap:var(--space-xs);min-height:var(--touch-target);padding:var(--space-sm) var(--space-lg);border:1px solid rgba(255,255,255,.65);border-radius:var(--radius-pill);background:#ffffff24;color:var(--color-camera-frame);font-family:inherit;font-size:var(--fs-body-md);cursor:pointer}.scanner-action:active{background:#ffffff42}.scanner-action.is-on{border-color:var(--color-camera-frame);background:var(--color-camera-frame);color:var(--color-primary-dark)}.scanner-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm)}.form-hint-warn{color:var(--color-error-text)}.scanner-note{margin:0;max-width:17rem;color:var(--color-camera-text);font-size:var(--fs-body-sm)}.scanner-canvas,.scanner-input{display:none}.scanner-loading{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:var(--space-md);text-align:center;color:var(--color-camera-text);font-size:var(--fs-body-md)}.scanner-loading .spinner{width:30px;height:30px;border-color:#ffffff4d;border-block-start-color:var(--color-camera-frame)}.scan-button{display:flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:var(--touch-target);min-height:var(--touch-target);border:0;border-radius:var(--radius-md);background:var(--color-primary-tint);color:var(--color-primary-dark);cursor:pointer}.resolver{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);min-height:70vh;padding:var(--page-inline);text-align:center;color:var(--color-text-secondary);font-size:var(--fs-body-md)}.resolver .spinner{width:30px;height:30px;border-color:#d81b6040;border-block-start-color:var(--color-primary)}.not-found{padding:60px var(--space-base);text-align:center}.not-found h1{margin:0 0 var(--space-md);font-size:var(--fs-display-lg)}.not-found p{margin:0 0 var(--space-lg);color:var(--color-text-secondary)}.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}
