*,*:before,*:after{box-sizing:border-box}:root{--app-max-width: 640px;--font-head: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--head-weight: 800;--head-spacing: -.03em;--radius: 20px;--radius-sm: 14px;--radius-pill: 999px;--tap-min: 44px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px}[data-theme=dark]{--bg: #080b0f;--surface: #11161c;--surface-2: #1a212a;--text: #eef4f8;--muted: #7d8b98;--accent: #2ee6a6;--accent-2: #22c3ff;--on-accent: #03130d;--grad: linear-gradient(120deg, #2ee6a6, #22c3ff);--grad-soft: linear-gradient(140deg, rgba(46,230,166,.14), rgba(34,195,255,.09));--border: #1e262f;--shadow: 0 2px 8px rgba(0,0,0,.5), 0 16px 40px rgba(0,0,0,.5);--glow: 0 10px 30px rgba(46,230,166,.28);--star: #ffcf4d;--warn: #ffb454;--warn-soft: rgba(255,180,84,.12);--danger: #ff6b6b;--danger-soft: rgba(255,107,107,.12);--accent-soft: rgba(46,230,166,.14);--shadow-float: 0 6px 16px rgba(0,0,0,.55), 0 24px 60px rgba(0,0,0,.6);color-scheme:dark}[data-theme=light]{--bg: #eef3f6;--surface: #ffffff;--surface-2: #e7eef2;--text: #0a0f14;--muted: #5b6773;--accent: #0fb488;--accent-2: #0aa5e6;--on-accent: #ffffff;--grad: linear-gradient(120deg, #0fb488, #0aa5e6);--grad-soft: linear-gradient(140deg, rgba(15,180,136,.12), rgba(10,165,230,.08));--border: #dbe4ea;--shadow: 0 2px 6px rgba(10,30,40,.06), 0 14px 34px rgba(10,40,60,.1);--glow: 0 12px 30px rgba(15,180,136,.24);--star: #f5a623;--warn: #b26a00;--warn-soft: rgba(178,106,0,.1);--danger: #c94040;--danger-soft: rgba(201,64,64,.09);--accent-soft: rgba(15,180,136,.12);--shadow-float: 0 6px 16px rgba(10,30,40,.1), 0 24px 60px rgba(10,40,60,.16);color-scheme:light}html,body{margin:0;padding:0;font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{height:100dvh;overflow:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.text-head{font-family:var(--font-head);font-weight:var(--head-weight);letter-spacing:var(--head-spacing)}.text-gradient{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-4)}.btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:var(--tap-min);border:0;cursor:pointer;background:var(--accent);color:var(--on-accent);font-family:var(--font-head);font-weight:800;font-size:17px;padding:16px;border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .12s;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.98)}.btn.energy{background:var(--grad);box-shadow:var(--glow)}.btn.ghost{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn:disabled,.chip:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.3)}.btn:disabled:active,.chip:disabled:active{transform:none}.chip{display:inline-flex;align-items:center;min-height:var(--tap-min);padding:10px 16px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:14px;font-weight:700;cursor:pointer;transition:.12s;-webkit-tap-highlight-color:transparent}.chip.sel,.chip.active{background:var(--surface-2);color:var(--accent);border-color:var(--accent)}.pill{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.03em;padding:3px 8px;border-radius:var(--radius-pill);background:var(--grad-soft);color:var(--accent)}.cta-area{position:-webkit-sticky;position:sticky;bottom:0;padding:10px 0 6px;background:linear-gradient(to top,var(--bg) 72%,transparent)}.field-label{font-size:13px;color:var(--muted);margin-bottom:8px;font-weight:700}input,select,textarea{width:100%;min-height:var(--tap-min);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);padding:10px 14px;font-family:var(--font-body);font-size:16px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.status{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.03em;padding:3px 8px;border-radius:var(--radius-pill);text-transform:uppercase}.status--pending{background:var(--warn-soft);color:var(--warn)}.status--positive{background:var(--accent-soft);color:var(--accent)}.status--negative{background:var(--danger-soft);color:var(--danger)}.status--inactive{background:var(--surface-2);color:var(--muted)}.sheet{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-float)}.empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center;padding:var(--space-6) var(--space-4);color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.empty__title{color:var(--text);font-weight:800}.empty .icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto;background:var(--grad-soft);border:1px solid var(--border);color:var(--accent)}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.muted-sm{color:var(--muted);font-size:13px}.row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.loading{display:flex;justify-content:center;padding:var(--space-6)}.error-text{color:var(--danger);font-size:13px}.notice-text{color:var(--accent);font-size:13px}.banner{display:flex;gap:var(--space-2);align-items:flex-start;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--border);font-size:14px;line-height:1.4}.banner.warn{background:var(--warn-soft);border-color:var(--warn);color:var(--text)}.banner.danger{background:var(--danger-soft);border-color:var(--danger);color:var(--text)}.state-card{text-align:center;padding:var(--space-5) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--muted)}.state-card .st{color:var(--text);font-weight:800;font-size:15px;margin-bottom:4px}.retry{margin-top:var(--space-3);border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-weight:700;font-size:14px;padding:8px 16px;border-radius:var(--radius-pill);cursor:pointer}.app-version{text-align:center;color:var(--muted);font-size:11px;padding:var(--space-3) 0 calc(var(--space-2) + env(safe-area-inset-bottom));opacity:.7;font-variant-numeric:tabular-nums}.app-root{height:100dvh;display:flex;flex-direction:column;overflow:hidden}.app-main{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.app-header,.app-main{width:100%;max-width:var(--app-max-width);margin-inline:auto}.app-header{display:flex;align-items:center;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--border);flex:0 0 auto}.header-back{background:none;border:none;color:var(--accent);font-size:16px;font-weight:600;padding:6px 8px;cursor:pointer;-webkit-tap-highlight-color:transparent}.header-spacer{flex:1}.header-action{background:none;border:none;color:var(--accent);font-size:14px;font-weight:700;padding:6px 8px;cursor:pointer;-webkit-tap-highlight-color:transparent}.role-switcher{position:relative;margin-left:8px}.role-switcher-trigger{display:inline-flex;align-items:center;gap:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text);font-size:13px;font-weight:700;padding:7px 12px;cursor:pointer;-webkit-tap-highlight-color:transparent}.role-switcher-caret{font-size:12px;color:var(--muted);transition:transform .15s ease}.role-switcher-caret.open{transform:rotate(180deg)}.role-switcher-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20}.role-switcher-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:21;min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column;gap:2px}.role-switcher-item{display:flex;align-items:center;justify-content:space-between;gap:8px;background:none;border:none;border-radius:10px;color:var(--text);font-size:14px;font-weight:600;text-align:left;padding:10px 12px;cursor:pointer;-webkit-tap-highlight-color:transparent}.role-switcher-item:hover{background:var(--surface-2)}.role-switcher-item.active{color:var(--accent)}.role-switcher-check{color:var(--accent);font-weight:800}.screen-wrap{min-height:100%;padding:8px 20px 40px}.app-main::-webkit-scrollbar{display:none}.app-main{scrollbar-width:none}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100dvh;gap:20px}.spinner{width:40px;height:40px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100dvh;padding:40px 24px;text-align:center;gap:12px}.error-screen .icon{font-size:48px;margin-bottom:8px}.error-screen h2{font-family:var(--font-head);font-weight:var(--head-weight);font-size:22px;margin:0}.error-screen p{color:var(--muted);font-size:15px;margin:0;max-width:300px}.error-screen .btn{max-width:280px;margin-top:12px}.greet{color:var(--muted);font-size:14px;margin:0 0 4px;font-weight:600}.screen-title{font-family:var(--font-head);font-weight:var(--head-weight);letter-spacing:var(--head-spacing);font-size:32px;line-height:1.08;margin:0 0 6px}.sub{color:var(--muted);font-size:15px;margin:0 0 22px}.hero-banner{position:relative;border-radius:var(--radius);padding:18px;margin:4px 0 22px;background:var(--grad-soft);border:1px solid var(--border);overflow:hidden}.hero-banner:after{content:"";position:absolute;right:-30px;top:-30px;width:130px;height:130px;border-radius:50%;background:var(--grad);opacity:.16;filter:blur(6px)}.hero-banner .kicker{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.hero-banner .headline{font-family:var(--font-head);font-weight:var(--head-weight);font-size:19px;margin:6px 0 2px}.hero-banner .desc{color:var(--muted);font-size:13px}.resort-item{display:flex;align-items:center;gap:14px;padding:14px;margin-bottom:12px;cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .12s;-webkit-tap-highlight-color:transparent}.resort-item:active{transform:scale(.985)}.resort-thumb{width:54px;height:54px;border-radius:15px;flex:0 0 auto;background:var(--grad-soft);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:26px;overflow:hidden}.resort-thumb img{width:100%;height:100%;object-fit:cover}.resort-meta{flex:1;min-width:0}.resort-name{font-family:var(--font-head);font-weight:700;font-size:17px}.resort-sub{color:var(--muted);font-size:13px;margin-top:3px}.resort-chev{color:var(--muted);font-size:22px}.empty-state{text-align:center;padding:var(--space-6) var(--space-4);color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.empty-state .icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto var(--space-3);background:var(--grad-soft);border:1px solid var(--border);color:var(--accent)}.empty-state p{font-size:15px;margin:4px 0}.field{margin-bottom:18px}.chip-row{display:flex;gap:8px;flex-wrap:wrap}.segmented{display:flex;background:var(--surface-2);border-radius:var(--radius-sm);padding:4px}.segmented button{flex:1;border:0;background:transparent;color:var(--muted);font:inherit;font-weight:700;font-size:14px;padding:11px;border-radius:10px;cursor:pointer;transition:.12s;-webkit-tap-highlight-color:transparent}.segmented button.sel{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.request-card{padding:16px;margin-bottom:12px;cursor:pointer;transition:transform .12s;-webkit-tap-highlight-color:transparent}.request-card:active{transform:scale(.985)}.request-card .top-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.request-card .resort-label{font-weight:700;font-size:16px}.status-badge{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.03em;padding:3px 10px;border-radius:var(--radius-pill)}.status-badge.new{background:var(--warn-soft);color:var(--warn)}.status-badge.assigned,.status-badge.confirmed{background:var(--grad-soft);color:var(--accent)}.status-badge.done{background:var(--surface-2);color:var(--muted)}.status-badge.cancelled{background:var(--danger-soft);color:var(--danger)}.status-badge.offered{background:var(--warn-soft);color:var(--warn)}.status-badge.accepted{background:var(--grad-soft);color:var(--accent)}.status-badge.declined{background:var(--surface-2);color:var(--muted)}.action-row{display:flex;gap:8px;margin-top:12px}.action-row .btn{flex:1;padding:12px;font-size:15px;min-height:40px}.btn.danger{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger)}.remove-btn{background:none;border:none;color:var(--danger);font-size:13px;font-weight:700;cursor:pointer;padding:6px 10px;border-radius:var(--radius-pill);-webkit-tap-highlight-color:transparent}.remove-btn:active{opacity:.7}.request-card .detail-row{color:var(--muted);font-size:13px;margin-top:4px}.request-card .instructor-row{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.instructor-row .ava{width:36px;height:36px;border-radius:50%;background:var(--grad-soft);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:var(--accent)}.instructor-row .iname{font-weight:700;font-size:15px}.instructor-row .ilevel{color:var(--muted);font-size:12px}.detail-section{margin-bottom:20px}.detail-section .label{font-size:13px;color:var(--muted);font-weight:700;margin-bottom:8px}.instructor-card{display:flex;gap:14px;padding:16px}.instructor-card .ava-lg{width:56px;height:56px;border-radius:50%;background:var(--grad-soft);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:20px;color:var(--accent);flex:0 0 auto}.instructor-card .info{flex:1;min-width:0}.instructor-card .iname{font-family:var(--font-head);font-weight:700;font-size:18px}.instructor-card .ibio{color:var(--muted);font-size:13px;margin-top:4px}.instructor-card .tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.waiting-block{text-align:center;padding:30px 20px}.waiting-block .spinner{margin:0 auto 16px}.waiting-block p{color:var(--muted);font-size:15px;margin:4px 0}.pay-summary{padding:16px;margin-bottom:20px}.pay-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0}.pay-row:not(:last-child){border-bottom:1px solid var(--border)}.pay-row .label{color:var(--muted);font-size:14px}.pay-row .value{font-weight:700;font-size:15px}.pay-row .value.amount{font-size:22px;font-family:var(--font-head);font-weight:var(--head-weight)}.pay-secure{text-align:center;color:var(--muted);font-size:12px;margin-top:12px}.success-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;padding:40px 24px;text-align:center;gap:8px}.success-check{width:80px;height:80px;border-radius:50%;background:var(--grad);box-shadow:var(--glow);display:flex;align-items:center;justify-content:center;font-size:36px;margin-bottom:16px}.success-screen h1{font-family:var(--font-head);font-weight:var(--head-weight);font-size:26px;margin:0}.success-screen p{color:var(--muted);font-size:15px;margin:2px 0;max-width:300px}.success-screen .btn{max-width:280px;margin-top:20px}.instructor-avatar{border-radius:50%;background:var(--grad-soft);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--accent);flex:0 0 auto;overflow:hidden}.instructor-avatar img{width:100%;height:100%;object-fit:cover}.photo-field{display:flex;align-items:center;gap:12px}.photo-field input{flex:1;min-width:0}.dash-greet{display:flex;align-items:center;gap:12px;margin-bottom:12px}.roster-item{display:flex;align-items:center;gap:14px;padding:14px;margin-bottom:12px}.roster-meta{flex:1;min-width:0}.roster-name{font-family:var(--font-head);font-weight:700;font-size:16px}.roster-sub{color:var(--muted);font-size:13px;margin-top:3px}.pill.muted{background:var(--surface-2);color:var(--muted)}.roster-action{flex:0 0 auto;width:auto;min-height:36px;padding:8px 14px;font-size:14px}.care-popup{position:fixed;left:var(--space-3);right:var(--space-3);bottom:var(--space-3);z-index:50;box-shadow:0 8px 32px #00000059}.care-popup__close{position:absolute;top:6px;right:10px;background:none;border:none;color:var(--text-muted, #889);font-size:20px;cursor:pointer}.link-btn{background:none;border:none;color:var(--accent);font-size:14px;font-weight:700;cursor:pointer;padding:4px}
