:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-top:#dcecff;--bg-bottom:#f5f8fd;--panel-bg:#ffffffd1;--panel-border:#b9cae247;--text-primary:#0f172a;--text-secondary:#475569;--brand:#2563eb;--brand-deep:#1d4ed8;--danger:#dc2626;--shadow:0 1px 10px #8383831f;--page-gutter:9px;--card-gap:9px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);font-family:SF Pro Display,PingFang SC,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{min-height:100dvh;color:var(--text-primary);background:#fff}a{color:inherit;-webkit-tap-highlight-color:transparent;text-decoration:none}button,input{font:inherit;-webkit-tap-highlight-color:transparent}button,input[type=button],input[type=submit],input[type=reset]{appearance:none;background-clip:padding-box}button:focus{outline:none}button:active,input[type=button]:active,input[type=submit]:active,input[type=reset]:active,a:active{-webkit-tap-highlight-color:transparent}button:focus-visible,input[type=button]:focus-visible,input[type=submit]:focus-visible,input[type=reset]:focus-visible,a:focus-visible{outline-offset:2px;outline:2px solid #2563eb2e}.app-shell{grid-template-rows:auto auto 1fr;min-height:100dvh;display:grid}.app-shell--public{grid-template-rows:1fr}.app-header{padding:calc(var(--safe-top) + 16px) var(--page-gutter) 12px;justify-content:space-between;align-items:center;gap:12px;display:flex}.app-header__title{flex-direction:column;gap:4px;display:flex}.app-header__title strong{letter-spacing:.02em;font-size:1.15rem}.app-header__title span{color:var(--text-secondary);font-size:.9rem}.app-header__user{align-items:baseline;gap:6px;display:flex}.header-switch-button{color:var(--brand-deep);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:0 4px;font-size:.9rem;line-height:normal}.header-switch-button:hover,.header-switch-button:focus-visible{background:#2563eb1a}.ghost-button,.primary-button{cursor:pointer;border:0;border-radius:16px;min-height:44px;padding:0 16px}.ghost-button{color:var(--text-primary);background:#ffffffa8;box-shadow:0 2px 8px #0f172a0b}.primary-button{background:linear-gradient(135deg, var(--brand), var(--brand-deep));color:#fff;box-shadow:0 7px 18px #2563eb2e}.status-strip{margin:0 var(--page-gutter) 14px;color:var(--text-secondary);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffff94;border-radius:18px;padding:11px 14px}.bottom-nav{padding:10px max(var(--page-gutter), calc((100vw - 1200px) / 2 + var(--page-gutter))) calc(10px + var(--safe-bottom));border:0;border-top:1px solid var(--panel-border);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);box-shadow:none;z-index:40;background:#ffffffe0;border-radius:0;gap:8px;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav__item{min-height:46px;color:var(--text-secondary);border-radius:18px;flex:1 1 0;justify-content:center;align-items:center;display:flex}.bottom-nav__item.is-active{color:var(--brand-deep);background:#2563eb1f;font-weight:600}.login-screen,.page-shell{padding:var(--card-gap) var(--page-gutter) calc(var(--safe-bottom) + 104px)}.login-screen{min-height:100dvh;padding-bottom:calc(var(--safe-bottom) + 28px);flex-direction:column;justify-content:center;align-items:center;gap:22px;display:flex;position:relative}.login-card,.panel,.admin-card{background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow)}.login-card{border-radius:28px;width:min(100%,420px);padding:28px}.login-brand{text-align:center;justify-items:center;gap:0;margin:20px 0 34px;padding:18px 0 14px;display:grid;position:relative}.login-brand__glow{pointer-events:none;filter:blur(10px);background:radial-gradient(circle,#2563eb14 0%,#fff0 72%);border-radius:999px;width:180px;height:120px;position:absolute;top:56%;left:50%;transform:translate(-50%,-50%)}.eyebrow{color:var(--brand-deep);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:.84rem;font-weight:700}.login-card h1,.page-title{margin:0 0 10px;font-size:2rem}.login-brand h1{letter-spacing:.06em;color:#16324f;text-shadow:0 1px #ffffffb8,0 8px 18px #0f172a0a;text-align:center;margin:0;font-size:clamp(2rem,7.8vw,2.7rem);font-weight:800;line-height:1.1;position:relative}.login-record{left:50%;bottom:calc(var(--safe-bottom) + 18px);text-align:center;width:calc(100% - 36px);color:var(--text-secondary);font-size:.85rem;position:absolute;transform:translate(-50%)}.login-record a{color:inherit;text-decoration:none}.login-record a:hover{color:var(--brand-deep)}.muted{color:var(--text-secondary);margin:0;line-height:1.5}.field-label{margin:22px 0 8px;font-weight:600;display:block}.text-input{width:100%;min-width:0;max-width:100%;height:52px;min-height:52px;color:var(--text-primary);vertical-align:middle;background:#ffffffe0;border:1px solid #94a3b840;border-radius:16px;padding:14px 16px;line-height:normal}.billing-time-item>.text-input{font-size:.875rem}.text-input:focus{border-color:#2563eb59;outline:2px solid #2563eb29}.text-input::placeholder{color:#475569c7}.sheet .text-input[type=date],.sheet .text-input[type=time],.sheet .text-input[type=datetime-local]{appearance:none;width:100%;min-width:0;max-width:100%;font-family:inherit;line-height:52px;font-size:inherit;font-weight:inherit;padding-top:0;padding-bottom:0;display:block}@supports (-webkit-touch-callout:none){.text-input{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary);padding-top:14px;padding-bottom:14px}.text-input::placeholder{-webkit-text-fill-color:#475569c7}.text-input[type=date],.text-input[type=time],.text-input[type=datetime-local]{text-align:left;font-family:inherit;line-height:52px;font-size:inherit;font-weight:inherit}.text-input[type=date]::-webkit-date-and-time-value{text-align:left;min-height:52px;line-height:52px}.text-input[type=time]::-webkit-date-and-time-value{text-align:left;min-height:52px;line-height:52px}.text-input[type=datetime-local]::-webkit-date-and-time-value{text-align:left;min-height:52px;line-height:52px}.text-input[type=date]::-webkit-datetime-edit{min-height:52px;font-size:inherit;align-items:center;padding:0;display:flex}.text-input[type=time]::-webkit-datetime-edit{min-height:52px;font-size:inherit;align-items:center;padding:0;display:flex}.text-input[type=datetime-local]::-webkit-datetime-edit{min-height:52px;font-size:inherit;align-items:center;padding:0;display:flex}.text-input[type=date]::-webkit-datetime-edit-fields-wrapper{align-items:center;min-height:52px;display:flex}.text-input[type=time]::-webkit-datetime-edit-fields-wrapper{align-items:center;min-height:52px;display:flex}.text-input[type=datetime-local]::-webkit-datetime-edit-fields-wrapper{align-items:center;min-height:52px;display:flex}.text-input[type=date]::-webkit-date-and-time-value{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}.text-input[type=time]::-webkit-date-and-time-value{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}.text-input[type=datetime-local]::-webkit-date-and-time-value{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}.text-input[type=date]::-webkit-datetime-edit-text{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}.text-input[type=date]::-webkit-datetime-edit-month-field{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}.text-input[type=date]::-webkit-datetime-edit-day-field{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}.text-input[type=date]::-webkit-datetime-edit-year-field{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}.text-input[type=time]::-webkit-datetime-edit-hour-field{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}.text-input[type=time]::-webkit-datetime-edit-minute-field{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}.text-input[type=time]::-webkit-datetime-edit-ampm-field{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}.text-input[type=datetime-local]::-webkit-datetime-edit-year-field{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}.text-input[type=datetime-local]::-webkit-datetime-edit-month-field{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}.text-input[type=datetime-local]::-webkit-datetime-edit-day-field{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}.text-input[type=datetime-local]::-webkit-datetime-edit-hour-field{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}.text-input[type=datetime-local]::-webkit-datetime-edit-minute-field{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}.text-input[type=datetime-local]::-webkit-datetime-edit-ampm-field{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}}.error-text{color:var(--danger);margin:10px 0 0}.login-button{width:100%;margin-top:18px}.panel{border-radius:26px;padding:24px}.admin-grid{gap:var(--card-gap);margin-top:0;display:grid}.admin-card{border-radius:22px;flex-direction:row;align-items:center;gap:14px;min-height:82px;padding:20px;display:flex}.admin-card__icon{width:42px;height:42px;color:var(--brand-deep);background:0 0;flex:0 0 42px;place-items:center;font-size:1.45rem;display:inline-grid}.admin-card strong{font-size:1.08rem;line-height:1.35}.admin-card span{color:var(--text-secondary);line-height:1.5}.update-toast{left:16px;right:16px;top:calc(var(--safe-top) + 72px);z-index:60;color:#fff;background:#0f172aeb;border-radius:20px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex;position:fixed;box-shadow:0 14px 30px #0f172a42}.update-toast .primary-button{min-height:38px}.billing-settlement-toast{top:calc(var(--safe-top) + 16px);z-index:90;color:#166534;pointer-events:none;background:#f0fdf4f5;border:1px solid #15803d33;border-radius:999px;align-items:center;gap:8px;max-width:calc(100vw - 32px);padding:11px 18px;display:inline-flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 12px 28px #1665342e}.playtime-page{gap:var(--card-gap);display:grid;position:relative;overflow:clip}.playtime-pull-refresh{top:0;left:var(--page-gutter);right:var(--page-gutter);z-index:0;height:64px;color:var(--text-secondary);letter-spacing:0;opacity:0;pointer-events:none;justify-content:center;align-items:center;font-size:.84rem;transition:opacity .16s ease-out;display:flex;position:absolute}.playtime-pull-refresh.is-visible{opacity:1}.playtime-pull-refresh.is-armed,.playtime-pull-refresh.is-refreshing{color:var(--brand-deep);font-weight:600}.playtime-pull-refresh.is-armed span,.playtime-pull-refresh.is-refreshing span{background-image:linear-gradient(110deg, transparent 0%, transparent 42%, #fffffff5 50%, transparent 58%, transparent 100%), linear-gradient(var(--brand-deep), var(--brand-deep));color:#0000;-webkit-text-fill-color:transparent;background-position:220% 0,0 0;background-repeat:no-repeat,no-repeat;background-size:220% 100%,100% 100%;-webkit-background-clip:text;background-clip:text;animation:1.55s linear infinite playtime-pull-refresh-shimmer}@keyframes playtime-pull-refresh-shimmer{0%{background-position:220% 0,0 0}68%{background-position:-20% 0,0 0}to{background-position:-80% 0,0 0}}.playtime-page__content{z-index:1;gap:var(--card-gap);will-change:transform;transition:transform .18s ease-out;display:grid;position:relative}.playtime-page__content.is-pulling{transition:none}.billing-page{position:relative;overflow:clip}.billing-pull-refresh{top:0;left:var(--page-gutter);right:var(--page-gutter);z-index:0;height:64px;color:var(--text-secondary);letter-spacing:0;opacity:0;pointer-events:none;justify-content:center;align-items:center;font-size:.84rem;transition:opacity .16s ease-out;display:flex;position:absolute}.billing-pull-refresh.is-visible{opacity:1}.billing-pull-refresh.is-armed,.billing-pull-refresh.is-refreshing{color:var(--brand-deep);font-weight:600}.billing-page__content{z-index:1;gap:var(--card-gap);will-change:transform;transition:transform .18s ease-out;display:grid;position:relative}.billing-page__content.is-pulling{transition:none}@media (prefers-reduced-motion:reduce){.playtime-pull-refresh,.playtime-page__content{transition:none}.playtime-pull-refresh.is-armed span,.playtime-pull-refresh.is-refreshing span{animation:none}}.selector-button{width:100%;min-height:52px;color:var(--text-primary);background:#ffffffe0;border:1px solid #94a3b840;border-radius:16px}.score-products-panel{padding:20px}.score-products-list{color:var(--text-secondary);margin:14px 0 0;padding-left:22px;line-height:1.9}.section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.section-title{margin:0;font-size:1.25rem}.empty-state{color:var(--text-secondary);text-align:center;padding:18px 0 8px;line-height:1.6}.player-list,.session-list,.segment-list{gap:10px;display:grid}.online-player-panel{padding-bottom:44px;position:relative}.online-player-count{color:var(--text-secondary);font-size:.82rem;line-height:1;position:absolute;bottom:16px;right:40px}.session-header{min-height:32px;color:var(--brand-deep);text-align:center;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;column-gap:12px;padding:0;font-size:.86rem;font-weight:700;display:grid}.player-row,.session-row,.segment-row{background:#ffffffb3;border:1px solid #94a3b82e;border-radius:18px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px 16px;display:flex}.player-row{border:0}.session-row{text-align:center;border:0;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;column-gap:12px;min-height:48px;padding:14px 0;display:grid}.session-row>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.session-row__active{color:#15803d;font-size:.85em}.session-times,.session-meta{align-items:center;gap:12px;display:flex}.mode-badge{min-height:36px;color:var(--brand-deep);background:#2563eb1a;border:1px solid #2563eb2e;border-radius:999px;padding:0 14px;font-size:.84rem;font-weight:600}.mode-badge.is-passive{align-items:center;display:inline-flex}.status-badge{border:1px solid #0000;border-radius:999px;align-items:center;min-height:22px;padding:0 7px;font-size:.72rem;font-weight:600;line-height:1;display:inline-flex}.status-badge--active{color:#15803d;background:#16a34a1f;border-color:#16a34a38}.status-badge--disabled{color:#b91c1c;background:#dc26261a;border-color:#dc262633}.session-mode{color:var(--text-secondary);text-align:center;justify-self:stretch;font-size:.84rem}.mode-badge.rotation{color:#0056b3;background:#007bff33;border-color:#007bff4d}.mode-badge.duel{color:#155724;background:#28a74533;border-color:#28a7454d}.mode-badge.trio{color:#856404;background:#ffc10733;border-color:#ffc1074d}.mode-badge.doubles{color:#0d5c63;background:#17a2b833;border-color:#17a2b84d}.mode-badge.table{color:#4a148c;background:#6f42c133;border-color:#6f42c14d}.mode-badge.is-interactive{cursor:pointer;align-items:center;gap:6px;display:inline-flex;box-shadow:0 2px 7px #0f172a14}.mode-badge.is-interactive .bi{justify-content:center;align-items:center;font-size:.68rem;line-height:1;display:inline-flex}.mode-badge.is-interactive:hover{filter:brightness(.96)}.mode-badge.is-interactive:focus-visible{outline-offset:2px;outline:2px solid #2563eb52}.mode-badge.is-passive{color:var(--text-secondary);box-shadow:none;opacity:.72;background:#94a3b81a;border-color:#0000}.battle-panel{text-align:center}.battle-time{letter-spacing:-.04em;margin:4px 0 8px;font-size:clamp(2rem,8vw,3rem);font-weight:800}.battle-status{color:var(--text-secondary);margin:0 0 18px}.battle-status.is-active{color:#15803d}.battle-button,.confirm-button{width:100%}.sheet .confirm-button{margin-top:18px}.user-form-sheet .text-input+.text-input{margin-top:12px}.danger-button{background:linear-gradient(135deg,#dc2626,#b91c1c)}.error-panel{color:var(--danger)}.sheet-backdrop{z-index:70;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172a47;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.sheet{width:min(100%,720px);max-height:min(82dvh,760px);padding:0 20px calc(20px + var(--safe-bottom));background:#fffffff0;border-radius:28px;overflow:auto;box-shadow:0 16px 40px #0f172a24}.sheet-head{z-index:5;background:#fffffffa;justify-content:space-between;align-items:center;gap:12px;margin:0 -20px 10px;padding:22px 20px 12px;display:flex;position:sticky;top:0}.sheet-head h3{margin:0;font-size:1.15rem}.sheet-hint{color:var(--text-secondary);margin:0 0 12px}.mode-grid,.picker-grid{gap:10px;display:grid}.mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-option,.picker-card{min-height:52px;color:var(--text-primary);background:#ffffffd9;border:1px solid #94a3b833;border-radius:18px}.picker-group-title{color:var(--text-secondary);grid-column:1/-1;margin-top:4px;font-size:.82rem;font-weight:600}.picker-group-title:first-of-type{margin-top:0}.mode-option.is-selected,.picker-card.is-current{color:var(--brand-deep);background:#2563eb1a;border-color:#2563eb59;font-weight:700}.total-row{font-weight:700}.rank-page,.rank-list-native{gap:var(--card-gap);display:grid}.rank-card{justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.rank-card__main{flex:1;min-width:0}.rank-card__title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rank-card__subtitle{color:var(--text-secondary);font-size:.85rem}.rank-card__score{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.field-block{gap:8px;display:grid}.sheet--narrow{width:min(100%,520px)}.sheet--wide{width:min(100%,1100px)}.billing-page{gap:var(--card-gap);display:grid}.billing-card{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;display:flex}.billing-card .rank-card__main{min-width:0}.billing-card .rank-card__score{white-space:nowrap;flex-direction:column;flex:none;align-items:flex-end;gap:4px}.billing-list-sentinel{min-height:1px}.billing-card__badge{color:#475569;background:#64748b1a;border:1px solid #64748b33;border-radius:999px;align-items:center;min-height:20px;padding:0 7px;font-size:.7rem;font-weight:600;line-height:1;display:inline-flex}.billing-card__badge--active{color:#15803d;background:#16a34a1f;border-color:#16a34a42}.billing-action-row,.timeline-summary,.timeline-amount-grid{align-items:center;gap:12px;display:flex}.billing-input-control{width:100%;position:relative}.billing-total-input{appearance:textfield;padding-right:58px}.billing-total-input::-webkit-inner-spin-button{appearance:none;margin:0}.billing-total-input::-webkit-outer-spin-button{appearance:none;margin:0}.billing-calculator-button{width:40px;height:40px;color:var(--brand-deep);cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;padding:0;font-size:1.2rem;display:inline-flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.billing-calculator-button:hover{background:#2563eb1a}.billing-calculator-button:focus-visible{outline-offset:1px;outline:2px solid #2563eb66}.billing-action-row{flex-wrap:wrap;justify-content:flex-end;margin-top:18px}.billing-ledger-card,.billing-rule-card,.timeline-panel{background:#ffffffc2;border:1px solid #94a3b82e;border-radius:22px;gap:14px;padding:18px;display:grid}.billing-ledger-list,.billing-time-list{gap:10px;display:grid}.billing-ledger-item,.billing-time-item,.billing-summary-card{background:#ffffffc7;border:1px solid #94a3b829;border-radius:18px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.billing-ledger-item__actions{align-items:center;gap:10px;display:flex}.billing-ledger-card .billing-ledger-list{gap:0}.billing-ledger-card .billing-ledger-item{background:0 0;border:0;border-bottom:1px solid #94a3b82e;border-radius:0;padding:12px 2px}.billing-ledger-card .billing-ledger-item>div:first-child{min-width:0}.billing-ledger-card .billing-ledger-item:last-child{border-bottom:0}.billing-detail-content{gap:22px;padding-top:6px;display:grid}.billing-total-field .field-label{margin:0}.billing-player-bill{display:grid}.billing-detail-content>.billing-action-row{margin-top:0}.billing-detail-table{display:grid}.billing-detail-row{border-bottom:1px solid #94a3b82e;grid-template-columns:minmax(0,2fr) 88px 88px 88px;align-items:center;gap:10px;min-height:48px;padding:10px 2px;display:grid}.billing-detail-row--compact{grid-template-columns:minmax(0,1fr) 88px}.billing-detail-row>span{min-width:0}.billing-detail-row>span:not(:first-child){text-align:right}.billing-detail-row--header{min-height:42px;color:var(--brand-deep);border-bottom:0;padding-top:6px;font-weight:700}.billing-detail-row--summary{color:var(--text-primary);border-bottom:0;font-weight:700}.calculator-stage{gap:16px;display:grid}.billing-upload-button{justify-content:center;align-items:center;display:inline-flex}.billing-preview-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;display:grid}.billing-preview-image,.billing-generated-image{object-fit:cover;background:#fffc;border-radius:18px;width:100%}.billing-preview-image{height:180px}.billing-generated-image{max-height:72dvh}.billing-reference-widget{top:max(20px, env(safe-area-inset-top));z-index:75;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff5;border:1px solid #94a3b847;border-radius:16px;flex-direction:column;width:min(320px,100vw - 40px);max-height:33.3333dvh;display:flex;position:fixed;right:20px;overflow:hidden;box-shadow:0 16px 42px #0f172a38}.billing-reference-head{border-bottom:1px solid #94a3b82e;flex:none;align-items:center;gap:8px;min-height:48px;padding:8px 10px 8px 14px;display:flex}.billing-reference-head>strong{min-width:0;color:var(--text-primary)}.billing-reference-head>span{color:var(--text-secondary);font-size:.75rem}.billing-reference-controls{gap:2px;margin-left:auto;display:flex}.billing-reference-controls button{width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex}.billing-reference-controls button:hover{color:var(--brand-deep);background:#2563eb1a}.billing-reference-controls button:focus-visible{outline-offset:-2px;outline:2px solid #2563eb66}.billing-reference-content{overscroll-behavior:contain;flex:auto;min-height:0;padding:0;display:block;overflow-y:auto}.billing-reference-image{border-radius:0;width:100%;height:auto;display:block}.billing-recognition-state{color:var(--text-secondary);background:#ffffffc2;border-radius:16px;padding:16px 18px}.billing-rule-toggle{width:100%;min-height:28px;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:0;display:flex}.billing-rule-toggle .bi{width:20px;color:var(--text-secondary);text-align:center;flex:0 0 20px}.billing-rule-toggle:focus-visible{outline-offset:4px;outline:2px solid #2563eb66}.billing-rule-lines{color:var(--text-secondary);line-height:1.6}.billing-time-item{grid-template-columns:repeat(3,minmax(0,1fr)) auto auto;display:grid}.billing-time-item--manual{background:#eff6ffe6;border-color:#2563eb61;box-shadow:inset 4px 0 #2563ebb8}.billing-time-manual-badge{color:var(--brand-deep);background:#2563eb1f;border-radius:999px;grid-column:1/-1;justify-self:start;align-items:center;gap:6px;padding:3px 8px;font-size:.72rem;font-weight:700;line-height:1.4;display:inline-flex}.billing-add-time-row{margin-top:0}.billing-time-values{border-top:1px solid #94a3b82e;border-bottom:1px solid #94a3b82e;grid-template-columns:repeat(3,minmax(68px,1fr));min-width:250px;display:grid}.billing-time-metric{text-align:center;gap:3px;min-width:0;padding:7px 12px;display:grid}.billing-time-metric+.billing-time-metric{border-left:1px solid #94a3b833}.billing-time-metric span{color:var(--text-secondary);font-size:.72rem;line-height:1.2}.billing-time-metric strong{text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;line-height:1.25;overflow:hidden}.billing-time-metric--duration strong{color:var(--brand-deep)}.billing-time-metric--cost strong{color:#8a6200}.billing-time-metric--revenue strong{color:#16724a}.billing-total-ledger{display:grid}.billing-total-ledger-head{border-bottom:0;margin:0;padding:0 2px 12px}.billing-total-ledger-head>strong{color:var(--brand-deep);font-size:1.05rem}.billing-total-ledger-list{display:grid}.billing-total-ledger-item{border-bottom:1px solid #94a3b82e;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;min-height:66px;padding:12px 2px;display:grid}.billing-total-ledger-item:last-child,.calculator-billiards-ledger .billing-total-ledger-item{border-bottom:0}.billing-total-ledger-main{min-width:0}.billing-total-ledger-main>strong{color:var(--text-primary);font-size:.95rem}.billing-total-ledger-meta{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:5px 8px;margin-top:4px;font-size:.78rem;line-height:1.45;display:flex}.billing-total-ledger-duration{color:var(--brand-deep);border-left:1px solid #94a3b859;padding-left:8px;font-weight:600}.billing-total-ledger-amount{color:var(--text-primary);white-space:nowrap;font-size:.95rem}.billing-summary-grid{gap:12px;display:grid}.billing-summary-label{font-size:1rem;font-weight:600}.billing-summary-product{border-bottom:1px solid #94a3b83d;margin-bottom:12px;padding:0 0 24px}.billing-summary-product .field-label{margin-top:0}.billing-summary-card{justify-content:space-between}.timeline-summary{color:var(--text-secondary);flex-wrap:wrap}.timeline-amount-card{background:#fffc;border-radius:18px;padding:14px 16px}.timeline-amount-grid{flex-wrap:wrap;justify-content:space-between}.timeline-amount-grid>div{gap:4px;display:grid}.timeline-scroll{-webkit-overflow-scrolling:touch;overflow:auto}.timeline-canvas{display:grid;position:relative}.timeline-corner,.timeline-player-header,.timeline-time-body,.timeline-grid-body{position:relative}.timeline-corner{color:var(--brand-deep);justify-content:center;align-items:center;font-weight:700;display:flex}.timeline-player-name,.timeline-player-column,.timeline-time-label,.timeline-minute-line,.timeline-session-block{position:absolute}.timeline-player-name{text-align:center;border-left:1px solid #94a3b829;place-content:center;padding:4px;font-size:.86rem;display:grid;top:0;bottom:0}.timeline-time-label{color:var(--text-secondary);font-size:.76rem;right:8px;transform:translateY(-50%)}.timeline-time-label.hour-label{color:var(--brand-deep);font-weight:700}.timeline-player-column{border-left:1px solid #94a3b829;top:0}.timeline-minute-line{border-top:1px solid #94a3b814;left:0}.timeline-minute-line.five-minute{border-top-color:#94a3b824}.timeline-minute-line.hour{border-top-color:#2563eb33}.timeline-session-block{color:#fff;border-radius:12px;align-content:center;gap:2px;padding:6px 8px;font-size:.76rem;display:grid;left:8px;right:8px;overflow:hidden}.mode-rotation{background:#2563eb}.mode-duel{background:#dc2626}.mode-trio{background:#16a34a}.mode-doubles{background:#7c3aed}.mode-table{background:#ea580c}.mode-default{background:#475569}.debug-block{color:#e2e8f0;white-space:pre-wrap;word-break:break-word;background:#0f172aeb;border-radius:18px;max-height:60dvh;margin:0;padding:16px;overflow:auto}@media (width>=860px){.app-shell{max-width:1200px;margin:0 auto}.admin-grid,.mode-grid,.picker-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=859px){.billing-reference-widget{top:max(10px, env(safe-area-inset-top));width:auto;left:10px;right:10px}.billing-detail-row{grid-template-columns:minmax(0,1.6fr) 72px 72px 72px;font-size:.88rem}.billing-detail-row--compact{grid-template-columns:minmax(0,1fr) 72px}.billing-time-item{grid-template-columns:1fr}.timeline-amount-grid,.billing-action-row,.billing-ledger-item,.billing-time-values{align-items:stretch}.billing-time-values{min-width:0}.billing-ledger-item,.billing-action-row{flex-direction:column}.billing-ledger-card .billing-ledger-item{flex-direction:row;align-items:center}.billing-ledger-card .billing-ledger-item__actions{flex:none;margin-left:auto}}
