.icon-badge{border-radius:var(--radius-md);flex-shrink:0;place-items:center;display:inline-grid}.summary-head{align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);display:flex}.progress{background:var(--divider);border-radius:999px;height:10px;overflow:hidden}.progress-fill{background:var(--sky-500);height:100%;transition:width var(--duration) var(--ease);border-radius:999px}.progress-labels{margin-top:var(--space-sm)}.chip{max-width:100%;min-height:var(--touch-min);background:var(--on-grad-soft);border:1px solid var(--on-grad-border);border-radius:var(--radius-md);color:#fff;align-items:center;gap:6px;padding:8px 12px;font-size:12.5px;font-weight:700;display:inline-flex}.chip-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.banner{align-items:center;gap:var(--space-sm);padding:var(--space-md);background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:var(--radius-md);color:var(--warning);display:flex}.banner-body{color:var(--text-body);flex:1;font-size:13px}.banner-action{min-height:var(--touch-min);padding:0 var(--space-sm);color:var(--sky-600);background:0 0;border:0;font-weight:700}.banner-on-gradient{background:var(--on-grad-soft);border-color:var(--on-grad-inside-border);color:#fff}.banner-on-gradient .banner-body,.banner-on-gradient .banner-action{color:#fff}.anim-value{animation:value-in .18s var(--ease);display:inline-block}@keyframes value-in{0%{opacity:0;transform:translateY(40%)}}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-card);padding:var(--card-padding);box-shadow:var(--shadow-card);width:100%}.btn{justify-content:center;align-items:center;gap:var(--space-sm);width:100%;min-height:var(--button-height);padding:0 var(--space-lg);border-radius:var(--radius-md);transition:opacity var(--duration) var(--ease);border:0;font-size:15px;font-weight:700;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--grad-button);color:#fff;box-shadow:var(--shadow-button)}.btn-outline{color:var(--text-dark);border:1px solid var(--field-border);background:#fff}.btn-danger{color:var(--error);border:1px solid var(--error);background:#fff}.btn-danger-fill{background:var(--error);color:#fff}.btn-text{width:auto;color:var(--sky-600);padding:0 var(--space-md);background:0 0;font-size:14px}.spinner{border:2px solid var(--divider);border-top-color:var(--sky-600);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin;display:inline-block}.spinner-light{border-color:#fff #fff6 #fff6}.spinner-block{justify-content:center;align-items:center;min-height:96px;display:flex}@keyframes spin{to{transform:rotate(360deg)}}.field{gap:var(--space-xs);flex-direction:column;display:flex}.field-input{width:100%;min-height:var(--touch-min);background:var(--field-fill);border:2px solid var(--field-border);border-radius:var(--radius-md);color:var(--text-title);outline:none;padding:12px 16px}.field-input:focus{border-color:var(--sky-600)}.field-input-error{border-color:var(--error)}.field-label{color:var(--text-dark);font-size:14px;font-weight:700}.field-control{position:relative}.field-icon,.field-toggle{width:var(--touch-min);color:var(--text-light);place-items:center;display:grid;position:absolute;top:0;bottom:0}.field-icon{pointer-events:none;left:8px}.field-toggle{background:0 0;border:0;padding:0;right:4px}.field-input-icon{padding-left:52px}.field-input-toggle{padding-right:52px}.field-input::placeholder{color:var(--text-light)}.checkbox{align-items:center;gap:var(--space-md);min-height:var(--touch-min);color:var(--text-body);font-size:15px;display:flex}.checkbox input{width:22px;height:22px;accent-color:var(--sky-600);margin:0}.field-error{color:var(--error);font-size:11.5px}.tag{border-radius:var(--radius-sm);white-space:nowrap;padding:4px 8px;font-size:11.5px;font-weight:600;display:inline-block}.tag-success{color:var(--success);background:var(--success-bg)}.tag-warning{color:var(--warning);background:var(--warning-bg)}.tag-neutral{color:var(--text-subtle);background:var(--neutral-bg)}.state{align-items:center;gap:var(--space-md);text-align:center;flex-direction:column;padding:24px 0;display:flex}.state-circle{background:var(--info-bg);width:96px;height:96px;color:var(--sky-600);border-radius:50%;place-items:center;display:grid}.modal-backdrop{z-index:50;padding:var(--gutter);background:#0f172a73;place-items:center;display:grid;position:fixed;inset:0}.modal{width:100%;max-width:var(--dialog-max-width);border-radius:var(--radius-panel);text-align:center;animation:modal-in var(--duration) var(--ease);background:#fff;padding:24px}.modal-icon{background:var(--sky-100);width:56px;height:56px;color:var(--sky-600);border-radius:50%;place-items:center;margin:0 auto;display:grid}.modal-icon-danger{background:var(--error-bg);color:var(--error)}.modal-title{color:var(--text-title);font-size:17px;font-weight:800}.modal-actions{gap:var(--space-sm);margin-top:var(--space-md);display:flex}@keyframes modal-in{0%{opacity:0;transform:scale(.92)}}.toast{top:calc(env(safe-area-inset-top) + 12px);z-index:60;pointer-events:none;width:calc(100% - 2 * var(--gutter));max-width:var(--page-max-width);border-radius:var(--radius-md);border:1px solid;padding:12px 16px;font-size:13.5px;font-weight:600;position:fixed;left:50%;transform:translate(-50%)}.toast-success{color:var(--success);background:var(--success-bg);border-color:var(--success-border)}.toast-error{color:var(--error);background:var(--error-bg);border-color:var(--error-border)}.toast-info{color:var(--sky-600);background:var(--info-bg);border-color:var(--info-border)}.list{gap:var(--space-md);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.avatar{background:var(--sky-100);color:var(--sky-600);border-radius:50%;flex:none;place-items:center;font-weight:800;line-height:1;display:inline-grid}.sheet-backdrop{z-index:30;background:#0f172a66;position:fixed;inset:0}.sheet{width:100%;max-width:var(--page-max-width);height:min(70dvh,100%);padding-bottom:env(safe-area-inset-bottom);background:var(--card-bg);border-radius:var(--radius-panel) var(--radius-panel) 0 0;box-shadow:var(--shadow-nav);animation:sheet-in var(--duration) var(--ease);outline:none;flex-direction:column;display:flex;position:absolute;left:50%;transform:translate(-50%)}.sheet-handle{width:40px;height:4px;margin:var(--space-md) 0 var(--space-sm);background:var(--divider);border-radius:999px;flex:none;align-self:center}@keyframes sheet-in{0%{opacity:0;transform:translate(-50%,24px)}}@media (prefers-reduced-motion:reduce){.sheet{animation:none}}.camera-circle{width:min(100%, var(--face-scan-max), 55dvh);aspect-ratio:1;border:var(--face-ring) solid var(--sky-600);background:var(--slate);transition:border-color var(--duration) var(--ease);border-radius:50%;overflow:hidden}.camera-problem{border-color:var(--warning)}.camera-done{border-color:var(--success)}.camera-video{object-fit:cover;width:100%;height:100%;display:block;transform:scaleX(-1)}.status-box{justify-content:center;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-md);border:1px solid var(--info-border);border-radius:var(--radius-md);background:var(--info-bg);color:var(--text-body);text-align:center;font-size:13px;line-height:1.35;display:flex}.status-box .spinner{flex:none;width:16px;height:16px}.status-warning{border-color:var(--warning-border);background:var(--warning-bg)}.status-error{border-color:var(--error-border);background:var(--error-bg);color:var(--error)}@media (prefers-reduced-motion:reduce){.camera-circle{transition:none}}.chips{gap:var(--space-sm);margin:0 calc(var(--gutter) * -1);padding:2px var(--gutter);scrollbar-width:none;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip-choice{min-height:var(--touch-min);padding:0 var(--space-md);border:1px solid var(--field-border);color:var(--text-dark);font:inherit;background:#fff;border-radius:999px;flex:none;font-size:13px;font-weight:600}.chip-choice-selected{border-color:var(--sky-600);background:var(--sky-600);color:#fff}.date-field{position:relative}.date-field .field-input{cursor:pointer}.date-native{opacity:0;pointer-events:none;border:0;width:1px;height:1px;padding:0;position:absolute;bottom:0;left:0}.load-more{min-height:var(--touch-min);padding:var(--space-sm) 0;justify-content:center;display:flex}.form-grid{gap:var(--space-md);flex-direction:column;display:flex}.form-row{gap:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.form-row>:only-child{grid-column:1/-1}@media (width<=359.98px){.form-row{grid-template-columns:minmax(0,1fr)}}.ghc{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden}.ghc-title{background:var(--grad-button);color:#fff;text-align:center;padding:14px 0;font-size:12.5px;font-weight:700}.ghc-body{padding:var(--card-padding)}.date-badge{background:var(--grad-button);border-radius:var(--radius-md);color:#fff;flex-direction:column;flex:0 0 56px;align-items:center;padding:8px 0;display:flex}.date-badge-small{font-size:12.5px;font-weight:700}.date-badge-day{font-size:24px;font-weight:800;line-height:1.2}.week-head{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.week-range{align-items:center;gap:var(--space-sm);color:var(--sky-600);display:flex}.week-range .text-card-title{color:var(--text-title)}.week-arrow{width:var(--touch-min);height:var(--touch-min);color:var(--text-dark);background:0 0;border:0;place-items:center;padding:0;display:grid}.week-arrow:disabled{color:var(--text-light);cursor:default}.week-days{grid-template-columns:repeat(7,1fr);display:grid}.week-day{align-items:center;gap:var(--space-sm);min-width:0;color:var(--text-title);background:0 0;border:0;flex-direction:column;padding:0;display:flex}.week-day-name{color:var(--text-subtle);font-size:11.5px;font-weight:600}.week-day-circle{aspect-ratio:1;border-radius:50%;place-items:center;width:min(40px,100%);font-size:15px;font-weight:700;display:grid}.week-day-future .week-day-name,.week-day-future .week-day-circle{color:var(--text-light)}.week-day-weekend .week-day-name,.week-day-weekend .week-day-circle{color:var(--weekend)}.week-day:disabled{cursor:default}.week-day-selected .week-day-circle{background:var(--sky-600);color:#fff}.week-dot{border-radius:50%;width:6px;height:6px;margin-top:-4px}.menu{gap:var(--space-sm);flex-direction:column;display:flex}.menu-card{padding:0;overflow:hidden}.menu-list{margin:0;padding:0;list-style:none}.menu-row{align-items:center;gap:var(--space-md);width:100%;min-height:var(--touch-min);padding:10px var(--space-md);font:inherit;text-align:left;background:0 0;border:0;display:flex}.menu-list li+li .menu-row{position:relative}.menu-list li+li .menu-row:before{content:"";background:var(--divider);height:1px;position:absolute;top:0;left:62px;right:0}.menu-label{min-width:0;color:var(--text-dark);flex:1;font-size:13.5px;font-weight:600}.menu-chevron{color:var(--text-light);display:flex}.info-card{padding:var(--space-xs) var(--card-padding)}.info-list{margin:0}.info-row{gap:var(--space-xs);padding:var(--space-sm) 0;flex-direction:column;display:flex}.info-row+.info-row{border-top:1px solid var(--divider)}.info-value{color:var(--text-dark);overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;margin:0;font-size:13.5px;font-weight:600}.cal-head{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.cal-arrow{width:var(--touch-min);height:var(--touch-min);color:var(--text-dark);background:0 0;border:0;place-items:center;padding:0;display:grid}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-weekdays{margin-bottom:var(--space-xs);text-align:center}.cal-weekend{color:var(--weekend)}.cal-blank{height:var(--calendar-cell)}.cal-cell{min-width:0;height:calc(var(--calendar-cell) - var(--calendar-gap) * 2);margin:var(--calendar-gap);border-radius:var(--radius-sm);color:var(--text-dark);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;padding:0;display:flex}.cal-day{font-size:13px;font-weight:700;line-height:1.1}.cal-code{white-space:nowrap;max-width:100%;font-size:9.5px;font-weight:700;line-height:1.1;overflow:hidden}.app-bar{align-items:center;gap:var(--space-sm);min-height:56px;padding:env(safe-area-inset-top) var(--space-sm) 0;background:var(--page-bg);display:flex}.app-bar-title{text-align:center;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.app-bar-back,.app-bar-space{flex:0 0 var(--touch-min);width:var(--touch-min);height:var(--touch-min)}.app-bar-back{color:var(--text-title);background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.form-page{width:100%;max-width:var(--page-max-width);background:var(--page-bg);flex-direction:column;min-height:100dvh;margin:0 auto;display:flex}.form-page-body{gap:var(--space-md);padding:var(--space-sm) var(--gutter) var(--gutter);flex-direction:column;flex:1;display:flex}.form-page-footer{z-index:5;gap:var(--space-sm);background:var(--page-bg);padding:var(--space-sm) var(--gutter) calc(var(--space-md) + env(safe-area-inset-bottom));flex-direction:column;display:flex;position:sticky;bottom:0}.header-back-button{width:var(--touch-min);height:var(--touch-min);margin-left:calc(var(--space-sm) * -1);color:#fff;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.app-shell{width:100%;max-width:var(--page-max-width);min-height:100vh;padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom) + var(--floating-space));margin:0 auto}.page-content{padding:var(--space-lg) var(--gutter)}.header{align-items:center;gap:var(--space-sm);min-height:72px;padding:calc(env(safe-area-inset-top) + 12px) var(--gutter) 12px;background:var(--grad-header);border-radius:0 0 var(--radius-panel) var(--radius-panel);box-shadow:var(--shadow-header);color:#fff;display:flex}.header-title{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:20px;font-weight:800;overflow:hidden}.header-back{width:var(--touch-min);height:var(--touch-min);color:#fff;background:#ffffff29;border:0;border-radius:50%;place-items:center;font-size:20px;display:grid}.bottom-nav{z-index:10;width:100%;max-width:var(--page-max-width);height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-radius:var(--radius-nav) var(--radius-nav) 0 0;box-shadow:var(--shadow-nav);background:#fff;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav-item{justify-content:center;align-items:center;gap:var(--space-xs);min-width:0;color:var(--slate-light);flex-direction:column;flex:1;font-size:11px;font-weight:500;text-decoration:none;display:flex}.bottom-nav-item.active{color:var(--sky-600);font-weight:700}.bottom-nav-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.bottom-nav-gap{flex:0 0 96px;position:relative}.ch{z-index:5;position:sticky}.ch-blue{background:var(--grad-header);border-radius:0 0 var(--radius-header) var(--radius-header);box-shadow:var(--shadow-header);position:relative;overflow:visible}.ch-circle{pointer-events:none;border-radius:50%;width:220px;height:220px;position:absolute}.ch-circle-large{background:var(--circle-large);top:-110px;right:-70px}.ch-circle-small{background:var(--circle-small);bottom:-120px;left:-90px}.ch-clip{border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden}.ch-content{padding:calc(env(safe-area-inset-top) + 16px) var(--gutter) 24px;position:relative}.ch-collapsible-gap{padding-bottom:var(--space-lg)}.ch-overlap{margin-bottom:calc(-1 * var(--header-overlap) - 24px)}.ch-overlap-space{height:calc(var(--header-overlap) + 8px)}.ch-collapsible{opacity:clamp(0, calc(1 - var(--ch-progress,0) / .7), 1);transform:translateY(calc(var(--ch-progress,0) * -24px));will-change:opacity, transform}.ch-shadow-strip{background:var(--grad-scrolled-under);opacity:0;pointer-events:none;height:14px;transition:opacity .22s var(--ease);position:absolute;top:100%;left:0;right:0}.ch[data-scrolled=true] .ch-shadow-strip{opacity:1}@media (prefers-reduced-motion:reduce){.ch-collapsible{opacity:1;will-change:auto;transform:none}}.ptr{top:calc(env(safe-area-inset-top) + 8px);z-index:20;transform:translate(-50%, calc(var(--pull-n,0) * 1px - 56px));opacity:clamp(0, calc(var(--pull-n,0) / 40), 1);pointer-events:none;position:fixed;left:50%}.ptr[data-phase=idle],.ptr[data-phase=refreshing]{transition:transform .22s var(--ease), opacity .22s var(--ease)}.ptr-circle{width:40px;height:40px;box-shadow:var(--shadow-card);color:var(--sky-600);background:#fff;border-radius:50%;place-items:center;display:grid}.ptr-arrow{transform:rotate(var(--pull-turn,0deg));display:grid}.ptr[data-phase=ready] .ptr-circle{color:var(--success)}
