:root{--pad-red:#de6435;--pad-red-dark:#c1502a;--accent-lime:#d7e639;--pad-sky:#8fd3f4;--pad-dark:#2b3a47;--pad-slate:#4a6070;--pad-cream:#f2efe4;--pad-lime:#edf56b;--app-bg:#131110;--app-surface:#1c1a17;--app-border:rgba(255,248,240,0.08);--app-text:#f5f2ec;--app-muted:#9a938a;--app-radius:12px;--app-shadow:0 1px 3px rgba(0,0,0,0.35)}.app-shell{min-height:100dvh;display:flex;flex-direction:column;background:var(--app-bg);color:var(--app-text)}.app-header,.topbar{gap:16px;padding:12px 20px;background:var(--app-surface);border-bottom:1px solid var(--app-border);position:-webkit-sticky;position:sticky;top:0;z-index:10}.app-brand,.app-header,.topbar{display:flex;align-items:center}.app-brand{gap:8px;font-weight:700;font-size:16px}.app-brand-mark{width:26px;height:26px;border-radius:50%;background:var(--pad-red);flex:none}.app-nav{display:flex;gap:4px;flex-wrap:wrap}.app-nav a,.nav-link{padding:8px 14px;border-radius:8px;color:var(--app-muted);font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s}.app-nav a:hover,.nav-link:hover{background:var(--app-bg);color:var(--app-text)}.app-nav a.active,.nav-link.active{background:var(--pad-red);color:#fff}.app-content,.app-main{flex:1 1;padding:24px;max-width:1400px;width:100%;margin:0 auto}.card{border:1px solid var(--app-border);border-radius:var(--app-radius);box-shadow:var(--app-shadow);padding:20px}.btn,.card{background:var(--app-surface)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:9px;border:1px solid var(--app-border);color:var(--app-text);font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.btn:hover{background:var(--app-bg)}.btn-primary{background:var(--pad-red);border-color:var(--pad-red);color:#fff}.btn-primary:hover{background:var(--pad-red-dark)}.btn:disabled{opacity:.55;cursor:not-allowed}.input,input[type=date],input[type=email],input[type=number],input[type=text],input[type=time],select,textarea{width:100%;box-sizing:border-box;padding:9px 12px;border:1px solid var(--app-border);border-radius:8px;font-size:14px;background:var(--app-surface);color:var(--app-text)}.input:focus,input:focus,select:focus,textarea:focus{outline:none;border-color:var(--pad-red);box-shadow:0 0 0 3px rgba(222,100,53,.22)}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.row{align-items:center}.col,.row{display:flex;gap:12px}.col{flex-direction:column}.muted{color:var(--app-muted)}.spacer{flex:1 1}:root{--ds-bg:#131110;--ds-surface:#1c1a17;--ds-surface-2:#262320;--ds-border:rgba(255,248,240,0.08);--ds-border-strong:rgba(255,248,240,0.16);--ds-text:#f5f2ec;--ds-text-2:#cec8bf;--ds-muted:#9a938a;--ds-faint:#6c6660;--ds-primary:#de6435;--ds-primary-hover:#c1502a;--ds-primary-soft:rgba(222,100,53,0.16);--ds-accent:#d7e639;--ds-accent-soft:rgba(215,230,57,0.16);--ds-success:#4fbe84;--ds-success-soft:rgba(79,190,132,0.16);--ds-warning:#e3a83f;--ds-warning-soft:rgba(227,168,63,0.16);--ds-danger:#e5484d;--ds-danger-soft:rgba(229,72,77,0.16);--ds-info:#6eb6e0;--ds-info-soft:rgba(110,182,224,0.16);--font-display:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-body:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--ds-font:var(--font-body);--fs-display:38px;--fs-h1:25px;--fs-h2:19px;--fs-h3:15px;--fs-body:14px;--fs-small:13px;--fs-caption:12px;--fs-label:11px;--sp-xs:4px;--sp-sm:8px;--sp-md:12px;--sp-lg:16px;--sp-xl:24px;--sp-2xl:40px;--r-sm:5px;--r-md:7px;--r-lg:9px;--r-xl:12px;--r-pill:999px;--sh-subtle:0 1px 2px rgba(0,0,0,0.35);--sh-card:0 1px 2px rgba(0,0,0,0.3);--sh-elevated:0 12px 24px -8px rgba(0,0,0,0.5);--sh-modal:0 20px 50px -12px rgba(0,0,0,0.6);--t-fast:0.12s ease;--t-normal:0.2s ease}*{box-sizing:border-box}body{font-family:var(--font-body);color:var(--ds-text);background:var(--ds-bg)}.brand,.card-title,.cart-total-value,.cash-hero-value,.change-value,.display-num,.metric-value,.panel-title,.screen-head h1,.screen-title,.section-title,.stat-value,h1,h2,h3{font-family:var(--font-display)}:focus-visible{outline:2px solid var(--ds-primary);outline-offset:2px}.app-shell,.shell{min-height:100dvh;display:flex;background:var(--ds-bg)}.shell-main{flex:1 1;min-width:0;display:flex;flex-direction:column}.shell-body{flex:1 1;width:100%;max-width:1440px;margin:0 auto;padding:var(--sp-xl)}.shell-sidebar{flex:none;width:216px;background:var(--ds-surface);border-right:1px solid var(--ds-border);display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100dvh;overflow-y:auto}.brand{display:flex;align-items:center;gap:var(--sp-sm);font-weight:800;font-size:17px;letter-spacing:-.02em;color:var(--ds-text);text-decoration:none;padding:var(--sp-lg) var(--sp-lg) var(--sp-md)}.brand-club{display:block;font-size:var(--fs-caption);font-weight:600;color:var(--ds-muted);margin-top:1px}.sidebar-nav{flex:1 1;padding:var(--sp-sm) var(--sp-md) var(--sp-lg);display:flex;flex-direction:column;gap:var(--sp-lg)}.nav-group-label{font-size:var(--fs-label);font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ds-faint);padding:0 10px;margin-bottom:5px}.nav-group-links{display:flex;flex-direction:column;gap:1px}.nav-btn,.nav-link{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--r-md);color:var(--ds-text-2);font-size:var(--fs-body);font-weight:600;text-decoration:none;border:none;background:transparent;cursor:pointer;transition:background var(--t-fast),color var(--t-fast);white-space:nowrap}.nav-btn svg,.nav-link svg{flex:none;opacity:.85}.nav-btn:hover,.nav-link:hover{background:var(--ds-surface-2);color:var(--ds-text)}.nav-link.is-active{background:var(--ds-primary-soft);color:var(--ds-primary)}.nav-link.is-active svg{opacity:1}.bottom-nav{display:none;position:fixed;left:0;right:0;bottom:0;z-index:25;background:var(--ds-surface);border-top:1px solid var(--ds-border);padding:6px max(6px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom, 0px)) max(6px,env(safe-area-inset-left))}.bottom-nav-row{display:flex}.bottom-nav-link,.bottom-nav-more{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;border-radius:var(--r-md);color:var(--ds-muted);font-size:11px;font-weight:700;text-decoration:none;border:none;background:transparent}.bottom-nav-link.is-active{color:var(--ds-primary)}.bottom-nav-link svg,.bottom-nav-more svg{flex:none}.topbar{display:flex;align-items:center;gap:var(--sp-lg);padding:0 var(--sp-xl);height:60px;border-bottom:1px solid var(--ds-border);position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--ds-bg)}.topbar-spacer{flex:1 1}.topbar-brand-mobile{display:none;padding:0}@media (max-width:860px){.topbar-brand-mobile{display:flex}}.user-menu{position:relative}.user-btn{display:flex;align-items:center;gap:var(--sp-sm);padding:5px 8px 5px 5px;border-radius:var(--r-pill);border:1px solid var(--ds-border);background:var(--ds-surface);cursor:pointer;transition:border-color var(--t-fast)}.user-btn:hover{border-color:var(--ds-border-strong)}.user-info{text-align:right;line-height:1.2}.user-name{font-size:var(--fs-small);font-weight:700}.user-club{font-size:var(--fs-caption);color:var(--ds-muted)}.user-pop{position:absolute;right:0;top:calc(100% + 8px);background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:var(--r-md);box-shadow:var(--sh-elevated);min-width:200px;padding:var(--sp-sm);z-index:30;animation:ds-pop var(--t-fast)}.user-action{display:flex;align-items:center;gap:var(--sp-sm);width:100%;padding:9px 12px;border-radius:var(--r-sm);border:none;background:transparent;color:var(--ds-text);font-size:var(--fs-body);font-weight:500;cursor:pointer;text-align:left}.user-action:hover{background:var(--ds-surface-2)}.avatar{width:34px;height:34px;border-radius:50%;background:var(--ds-primary);color:#fff;display:grid;place-items:center;font-weight:800;font-size:var(--fs-small);flex:none}.screen-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-lg);margin-bottom:var(--sp-xl);flex-wrap:wrap}.screen-head .screen-title,.screen-head h1{font-size:var(--fs-h1);font-weight:800;letter-spacing:-.02em;margin:0}.screen-sub{color:var(--ds-muted);font-size:var(--fs-body);margin-top:2px}.screen-actions{display:flex;gap:var(--sp-sm);align-items:center;flex-wrap:wrap}.btn-secondary{background:var(--ds-surface);border:1px solid var(--ds-border);color:var(--ds-text)}.btn-secondary:hover{background:var(--ds-surface-2);border-color:var(--ds-border-strong)}.btn-danger{background:var(--ds-danger);border-color:var(--ds-danger);color:#fff}.btn-danger:hover{filter:brightness(.93)}.btn-lg{padding:13px 22px;font-size:15px;border-radius:var(--r-md)}.btn-mini{padding:5px 10px;font-size:var(--fs-caption);border-radius:var(--r-sm);font-weight:700}.btn.is-primary{background:var(--ds-primary);border-color:var(--ds-primary);color:#fff}.btn.is-primary:hover{background:var(--ds-primary-hover)}.stat-box-grid,.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:var(--sp-md);gap:var(--sp-md);margin-bottom:var(--sp-xl)}.kpi,.metric,.stat,.stat-box{background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:var(--r-lg);padding:var(--sp-lg);box-shadow:var(--sh-subtle)}.metric-label,.stat-box-label,.stat-label{font-size:var(--fs-caption);font-weight:700;color:var(--ds-muted);text-transform:uppercase;letter-spacing:.03em}.metric-value,.stat-box .num,.stat-value{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-top:4px}.stat-bar{height:5px;border-radius:var(--r-pill);background:var(--ds-border);margin-top:var(--sp-sm);overflow:hidden}.stat-bar>i{display:block;height:100%;background:var(--ds-primary);border-radius:inherit}.data-table{width:100%;border-collapse:collapse;background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:var(--r-lg);overflow:hidden}.data-table thead th{text-align:left;font-size:var(--fs-caption);font-weight:700;color:var(--ds-muted);text-transform:uppercase;letter-spacing:.03em;padding:11px 14px;background:var(--ds-surface-2);border-bottom:1px solid var(--ds-border)}.data-table tbody td{padding:12px 14px;border-bottom:1px solid var(--ds-border);font-size:var(--fs-body)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background var(--t-fast)}.data-table tbody tr:hover{background:var(--ds-surface-2)}.data-table tbody tr.is-clickable{cursor:pointer}.data-table tbody tr.selected{background:var(--ds-primary-soft)}.cell-main{font-weight:600}.cell-name{font-weight:700}.cell-muted{color:var(--ds-muted)}.cell-tags{display:flex;gap:4px;flex-wrap:wrap}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.nowrap{white-space:nowrap}.strong{font-weight:700}.badge,.chip,.status-pill,.tag{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--r-sm);font-size:var(--fs-caption);font-weight:700;line-height:1.6;background:var(--ds-surface-2);color:var(--ds-text-2);border:1px solid var(--ds-border)}.chip-row,.chips{display:flex;gap:6px;flex-wrap:wrap}.tag-color{border:none;color:#fff}.tag-muted{background:var(--ds-surface-2);color:var(--ds-muted)}.tag-danger{background:var(--ds-danger-soft);color:var(--ds-danger);border-color:transparent}.badge.success,.status-pill.success,.tag.success{background:var(--ds-success-soft);color:var(--ds-success);border-color:transparent}.badge.warning,.status-pill.warning,.tag.warning{background:var(--ds-warning-soft);color:var(--ds-warning);border-color:transparent}.badge.danger,.status-pill.danger,.tag.danger{background:var(--ds-danger-soft);color:var(--ds-danger);border-color:transparent}.badge.info,.status-pill.info,.tag.info{background:var(--ds-info-soft);color:var(--ds-info);border-color:transparent}.balance-owed{color:var(--ds-danger);font-weight:700}.balance-credit{color:var(--ds-success);font-weight:700}.cash-screen,.clients-screen,.pos-screen,.reports-screen,.team-screen,.tournaments-screen,.treasury-screen{width:100%}.cell-actions{display:flex;gap:10px;justify-content:flex-end;white-space:nowrap}.btn-link{background:none;border:none;padding:0;cursor:pointer;font-size:var(--fs-caption);font-weight:700;color:var(--ds-primary)}.btn-link:hover{text-decoration:underline}.btn-link:disabled{opacity:.5;cursor:not-allowed;text-decoration:none}.btn-link-danger{color:var(--ds-danger)}.cash-grid{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:var(--sp-lg);gap:var(--sp-lg);margin-bottom:var(--sp-xl)}.cash-hero{background:linear-gradient(135deg,var(--ds-primary),var(--ds-primary-hover));color:#fff;border-radius:var(--r-lg);padding:var(--sp-xl);display:flex;justify-content:space-between;gap:var(--sp-lg)}.cash-hero-label{font-size:var(--fs-caption);font-weight:700;opacity:.85;text-transform:uppercase;letter-spacing:.04em}.cash-hero-value{font-family:var(--font-display);font-size:40px;font-weight:800;letter-spacing:-.02em;margin-top:6px}.cash-hero-main,.cash-hero-side{display:flex;flex-direction:column;justify-content:center}.cash-hero-hint{font-size:var(--fs-small);opacity:.8}.cash-hero-stat{padding:var(--sp-sm) 0;border-top:1px solid rgba(255,255,255,.22)}.cash-hero-stat:first-child{border-top:none;padding-top:0}.cash-hero-stat-label{font-size:var(--fs-caption);font-weight:700;text-transform:uppercase;letter-spacing:.04em;opacity:.85}.cash-hero-stat-value{display:block;font-family:var(--font-display);font-size:20px;font-weight:800;margin-top:2px}.arqueo-summary{display:flex;flex-direction:column;gap:var(--sp-sm)}.arqueo-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--ds-border)}.arqueo-row.is-large{font-size:var(--fs-h3);font-weight:800;border-bottom:none}.money-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0}.money-label{color:var(--ds-muted);font-size:var(--fs-body)}.money-sublabel{color:var(--ds-muted);font-size:var(--fs-caption);margin-top:1px}.search-bar-lg{display:flex;align-items:center;gap:var(--sp-md);padding:14px var(--sp-lg);background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:var(--r-lg);margin-bottom:var(--sp-md);transition:border-color var(--t-fast)}.search-bar-lg:focus-within{border-color:var(--ds-primary)}.search-bar-lg-icon{color:var(--ds-muted);flex:none}.search-bar-lg-input{flex:1 1;min-width:0;border:none;background:none;outline:none;font-size:16px;color:var(--ds-text)}.search-bar-lg-input::placeholder{color:var(--ds-faint,var(--ds-muted))}.search-bar-lg-clear{flex:none;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:var(--r-pill);background:var(--ds-surface-2);color:var(--ds-muted);cursor:pointer}.search-bar-lg-clear:hover{color:var(--ds-text)}.client-list{background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:var(--r-lg);overflow:hidden}.client-row{display:flex;align-items:center;gap:var(--sp-md);width:100%;margin:0;padding:var(--sp-md) var(--sp-lg);border:none;border-bottom:1px solid var(--ds-border);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background var(--t-fast)}.client-list .client-row:last-child{border-bottom:none}.client-row:focus-visible,.client-row:hover{background:var(--ds-surface-2)}.client-row-main{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:3px}.client-row-name{display:flex;align-items:center;gap:var(--sp-sm);font-weight:700}.client-row-meta,.client-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-row-meta{font-size:var(--fs-small);color:var(--ds-muted)}.client-row-side{flex:none;text-align:right}.client-row-debt{display:inline-block;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:var(--fs-small)}.client-row-debt.is-owed{color:var(--ds-danger)}.client-row-debt.is-credit{color:var(--ds-success)}.client-row-count{font-size:var(--fs-caption);color:var(--ds-muted)}.search-box,.search-field,.search-inline,.search-input-wrap{position:relative;flex:1 1;min-width:220px}.search-input,input.search-input{width:100%;padding:10px 12px 10px 38px;font-size:var(--fs-body);background:var(--ds-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%236b7c8a' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4-4'/%3E%3C/svg%3E") no-repeat 12px center}.search-input,.search-results,input.search-input{border:1px solid var(--ds-border);border-radius:var(--r-md)}.search-results{background:var(--ds-surface);box-shadow:var(--sh-elevated);overflow:hidden}.search-item-main{display:flex;flex-direction:column}.search-name{font-weight:700}.search-meta{font-size:var(--fs-caption);color:var(--ds-muted)}.search-empty-hint,.search-hint{font-size:var(--fs-small);color:var(--ds-muted)}.search-empty{padding:var(--sp-xl);text-align:center;color:var(--ds-muted)}.pos-screen{display:grid;grid-template-columns:1fr 360px;grid-gap:var(--sp-lg);gap:var(--sp-lg);align-items:start}.pos-catalog{min-width:0}.pos-filters{display:flex;gap:var(--sp-sm);flex-wrap:wrap;margin-bottom:var(--sp-lg)}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-gap:var(--sp-sm);gap:var(--sp-sm)}.product-tile{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:12px;border:1px solid var(--ds-border);border-radius:var(--r-md);background:var(--ds-surface);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast)}.product-tile:hover{border-color:var(--ds-primary)}.product-tile:active{background:var(--ds-primary-soft)}.product-tile.is-out{opacity:.55}.product-name{font-weight:700;font-size:var(--fs-small);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.product-price{font-family:var(--font-display);color:var(--ds-primary);font-weight:800;font-size:18px;margin-top:3px}.product-stock{font-size:var(--fs-caption);color:var(--ds-muted);margin-top:2px}.product-stock.is-out{color:var(--ds-danger);font-weight:700}.pos-cart{background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:var(--r-lg);display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:76px;max-height:calc(100dvh - 100px)}.cart-head{padding:var(--sp-lg);border-bottom:1px solid var(--ds-border);font-weight:800}.cart-lines{flex:1 1;overflow-y:auto;padding:var(--sp-sm)}.cart-line{display:flex;justify-content:space-between;gap:var(--sp-sm);padding:10px;border-radius:var(--r-sm)}.cart-line:hover{background:var(--ds-surface-2)}.cart-line-main{display:flex;flex-direction:column}.cart-line-name{font-weight:600}.cart-line-price{font-size:var(--fs-caption);color:var(--ds-muted)}.cart-line-total{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cart-line-warn{color:var(--ds-warning);font-size:var(--fs-caption)}.cart-empty{padding:var(--sp-2xl) var(--sp-lg);text-align:center;color:var(--ds-muted)}.cart-foot{padding:var(--sp-lg);border-top:1px solid var(--ds-border)}.cart-total{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--sp-md)}.cart-total-value{font-family:var(--font-display);font-size:30px;font-weight:800;letter-spacing:-.01em}.change-box{background:var(--ds-success-soft);border-radius:var(--r-md);padding:var(--sp-lg);text-align:center;margin-top:var(--sp-md)}.change-label{font-size:var(--fs-caption);font-weight:700;color:var(--ds-success);text-transform:uppercase}.change-value{font-size:44px;font-weight:800;color:var(--ds-success);letter-spacing:-.02em}.qty-control{gap:6px}.qty-btn,.qty-control{display:inline-flex;align-items:center}.qty-btn{width:28px;height:28px;flex:none;justify-content:center;border:1px solid var(--ds-border);border-radius:var(--r-sm);background:var(--ds-surface);color:var(--ds-text);font-weight:700;font-size:16px;line-height:1;cursor:pointer}.qty-btn:hover{border-color:var(--ds-primary);color:var(--ds-primary)}.qty-value{min-width:18px;text-align:center;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pos-mobile-bar{display:none}.method-option{padding:9px 16px;border:1px solid var(--ds-border);border-radius:var(--r-md);background:var(--ds-surface);color:var(--ds-text);font-weight:700;font-size:var(--fs-small);cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast)}.method-option:hover{border-color:var(--ds-border-strong)}.method-option.is-active{border-color:var(--ds-primary);background:var(--ds-primary-soft);color:var(--ds-primary)}.quick-amounts{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--sp-sm);gap:var(--sp-sm)}.method-picker,.type-picker{display:flex;gap:var(--sp-sm);flex-wrap:wrap}.type-option{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--ds-border);border-radius:var(--r-md);background:var(--ds-surface);color:var(--ds-text);font-weight:700;font-size:var(--fs-small);cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast)}.type-option:hover{border-color:var(--ds-border-strong)}.type-option.is-active{border-color:var(--ds-primary);background:var(--ds-primary-soft)}.type-arrow{font-weight:800}.type-arrow.is-in{color:var(--ds-success)}.type-arrow.is-out{color:var(--ds-danger)}.tournament-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:var(--sp-lg);gap:var(--sp-lg)}.tournament-card{background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:var(--r-lg);padding:var(--sp-lg);box-shadow:var(--sh-subtle);cursor:pointer;transition:box-shadow var(--t-fast),transform var(--t-fast)}.tournament-card:hover{box-shadow:var(--sh-card);transform:translateY(-1px)}.tournament-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-sm)}.tournament-name{font-weight:800;font-size:var(--fs-h3)}.tournament-meta{display:flex;gap:var(--sp-md);flex-wrap:wrap;color:var(--ds-muted);font-size:var(--fs-small);margin-top:var(--sp-sm)}.tournament-foot{margin-top:var(--sp-md);padding-top:var(--sp-md);border-top:1px solid var(--ds-border)}.teams-count{font-weight:700}.bracket{display:flex;gap:var(--sp-xl);overflow-x:auto;padding-bottom:var(--sp-md)}.bracket-round{min-width:220px;justify-content:space-around}.bracket-matches,.bracket-round{display:flex;flex-direction:column;gap:var(--sp-md)}.round-title{font-size:var(--fs-caption);font-weight:700;text-transform:uppercase;color:var(--ds-muted)}.match-card{background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:var(--r-md);padding:var(--sp-md)}.match-list{display:flex;flex-direction:column;gap:var(--sp-md)}.match-note{font-size:var(--fs-caption);color:var(--ds-muted)}.team-line-name{font-weight:600}.team-line-sets{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700}.team-chip{display:flex;align-items:center;gap:var(--sp-sm);padding:8px 10px;border-radius:var(--r-sm);border:1px solid var(--ds-border)}.team-name{font-weight:600}.team-seed{color:var(--ds-muted);font-size:var(--fs-caption)}.team-grid{display:flex;flex-direction:column;gap:6px}.score-grid{display:grid;grid-gap:var(--sp-sm);gap:var(--sp-sm)}.score-input{width:54px;text-align:center}.score-team{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-sm)}.standings-stack{display:flex;flex-direction:column;gap:var(--sp-lg)}.reports-grid,.treasury-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:var(--sp-lg);gap:var(--sp-lg);margin-bottom:var(--sp-xl)}.alert-stack{flex-direction:column;margin-bottom:var(--sp-xl)}.alert-row,.alert-stack{display:flex;gap:var(--sp-sm)}.alert-row{align-items:flex-start;padding:var(--sp-sm) var(--sp-md);border-radius:var(--r-md);font-size:var(--fs-small)}.alert-row.is-high{background:var(--ds-danger-soft);color:var(--ds-danger)}.alert-row.is-medium{background:var(--ds-warning-soft);color:var(--ds-warning)}.alert-action{margin-left:6px;font-weight:700;color:var(--ds-primary)}.alert-dot{width:8px;height:8px;border-radius:50%;flex:none;margin-top:6px;background:currentColor}.alert-msg{flex:1 1;color:var(--ds-text)}.court-col{border-right:1px solid var(--ds-border);position:relative;min-width:150px}.court-head{padding:11px var(--sp-md);border-bottom:1px solid var(--ds-border);position:-webkit-sticky;position:sticky;top:0;z-index:5}.court-head,.gutter-body,.gutter-head{border-right:1px solid var(--ds-border);background:var(--ds-surface)}.tick-label{font-size:var(--fs-caption);color:var(--ds-muted);text-align:right;padding:4px 8px 0 0}.slot{border-bottom:1px solid rgba(255,255,255,.05);transition:background var(--t-fast);cursor:pointer}.slot:hover{background:var(--ds-primary-soft)}.slot-plus{color:var(--ds-primary);font-weight:700;font-size:var(--fs-caption);padding:4px 8px}.slot.is-past{background:repeating-linear-gradient(45deg,transparent,transparent 6px,rgba(255,255,255,.03) 0,rgba(255,255,255,.03) 12px)}.now-line{right:0;height:2px;z-index:6}.now-line,.now-line:before{position:absolute;left:0;background:var(--ds-primary)}.now-line:before{content:"";top:-3px;width:8px;height:8px;border-radius:50%}.bk-time{font-size:var(--fs-caption);font-weight:700;opacity:.85}.bk-name{font-weight:700;font-size:var(--fs-small);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bk-foot{display:flex;align-items:center;gap:5px;margin-top:2px}.bk-unpaid{color:var(--ds-warning);font-weight:700;font-size:var(--fs-caption)}.bk-note-dot{width:6px;height:6px;border-radius:50%;background:var(--ds-info)}.bk-here{box-shadow:inset 0 0 0 2px var(--ds-success)}.panel{display:none;position:fixed;top:0;right:0;bottom:0;width:min(400px,92vw);z-index:41;flex-direction:column;overflow-y:auto;background:var(--ds-surface);border-left:1px solid var(--ds-border);box-shadow:var(--sh-modal)}.panel.is-open{display:flex}.panel-card{background:var(--ds-surface);min-width:0}.panel-head{padding:var(--sp-lg);border-bottom:1px solid var(--ds-border)}.panel-title{font-weight:800;font-size:var(--fs-h3)}.panel-code{font-size:var(--fs-caption);color:var(--ds-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.panel-name{font-weight:700;font-size:var(--fs-h3)}.panel-body{padding:var(--sp-lg);display:flex;flex-direction:column;gap:var(--sp-md)}.panel-note{background:var(--ds-warning-soft);padding:var(--sp-md);border-radius:var(--r-sm);font-size:var(--fs-small)}.panel-actions{display:grid;grid-gap:var(--sp-sm);gap:var(--sp-sm);padding:var(--sp-lg);border-top:1px solid var(--ds-border)}.booking-list{display:flex;flex-direction:column;gap:var(--sp-sm)}.booking-row{display:flex;align-items:center;gap:var(--sp-md);padding:var(--sp-md);background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:var(--r-md)}.booking-court{font-weight:700}.booking-when{color:var(--ds-muted);font-size:var(--fs-small)}.status-off{color:var(--ds-danger);font-size:var(--fs-small);font-weight:600}.legend{gap:var(--sp-lg);flex-wrap:wrap}.legend,.legend-item{display:flex;align-items:center}.legend-item{gap:6px;font-size:var(--fs-caption);color:var(--ds-muted)}.legend-swatch{width:11px;height:11px;border-radius:3px}.legend-spacer{flex:1 1}@media (max-width:860px){.legend-kbd-hint{display:none}}.overlay{position:fixed;inset:0;background:rgba(4,6,10,.6);z-index:40;animation:ds-fade var(--t-fast)}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,92vw);background:var(--ds-surface);box-shadow:var(--sh-modal);z-index:41;display:flex;flex-direction:column;animation:ds-slide-in var(--t-normal)}@keyframes ds-slide-in{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes ds-fade{0%{opacity:0}to{opacity:1}}@keyframes ds-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.app-loading,.screen-loading{gap:var(--sp-md)}.app-loading,.card-empty,.screen-empty,.screen-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-2xl);color:var(--ds-muted)}.card-empty,.screen-empty{gap:var(--sp-sm);text-align:center}.screen-empty .empty-title{font-size:var(--fs-h3);font-weight:700;color:var(--ds-text)}.app-error{gap:var(--sp-md)}.app-error,.forbidden-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-2xl);text-align:center}.forbidden-screen{gap:var(--sp-sm);max-width:420px;margin:0 auto}.forbidden-screen svg{color:var(--ds-danger);margin-bottom:var(--sp-xs,4px)}.forbidden-screen h1{font-size:var(--fs-h3);font-weight:800;color:var(--ds-text)}.forbidden-screen p{color:var(--ds-muted)}.forbidden-screen .btn{margin-top:var(--sp-sm)}.skeleton{background:linear-gradient(90deg,var(--ds-surface-2) 25%,var(--ds-border-strong) 50%,var(--ds-surface-2) 75%);background-size:200% 100%;animation:ds-shimmer 1.3s infinite;border-radius:var(--r-sm)}@keyframes ds-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.mini-spinner,.spinner{width:20px;height:20px;border:2px solid var(--ds-border);border-top-color:var(--ds-primary);border-radius:50%;animation:ds-spin .7s linear infinite}.mini-spinner{width:14px;height:14px}@keyframes ds-spin{to{transform:rotate(1turn)}}.toast-stack{position:fixed;bottom:var(--sp-xl);left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:var(--sp-sm);z-index:60}.toast-icon{flex:none}.toast-close{background:none;border:none;cursor:pointer;color:inherit;opacity:.6}.toast-close:hover{opacity:1}.confirm-dialog{max-width:380px}.confirm-message{color:var(--ds-text-2);font-size:var(--fs-body);line-height:1.5;margin:0 0 var(--sp-lg)}.section-title{font-size:var(--fs-h3);font-weight:800;margin-bottom:var(--sp-md)}.dialog .section-title{margin-top:var(--sp-lg)}.dialog .section-title:first-of-type{margin-top:0}.card-title{font-weight:800;font-size:var(--fs-h3);margin-bottom:var(--sp-md)}.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-md);margin-bottom:var(--sp-md)}.card-title-row .card-title{margin-bottom:0}.required{color:var(--ds-danger)}.k,.kbd{font-family:ui-monospace,monospace;font-size:var(--fs-caption);background:var(--ds-surface-2);border:1px solid var(--ds-border);border-radius:var(--r-sm);padding:1px 6px}.back-btn,.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--ds-muted);font-size:var(--fs-small);font-weight:600;background:none;border:none;cursor:pointer;text-decoration:none}.back-btn:hover,.back-link:hover{color:var(--ds-text)}.mode-switch{display:inline-flex;border:1px solid var(--ds-border);border-radius:var(--r-md);overflow:hidden}.today-btn{font-weight:700}.progress-bar{height:6px;border-radius:var(--r-pill);background:var(--ds-border);overflow:hidden}.progress-bar>i{display:block;height:100%;background:var(--ds-primary)}.compact{font-size:var(--fs-small)}.is-wide{grid-column:1/-1}@media (max-width:1024px){.cash-grid,.pos-screen{grid-template-columns:1fr}.pos-screen{padding-bottom:66px}.pos-cart{position:static;max-height:none}.cart-foot{display:none}.pos-mobile-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-md);position:fixed;left:0;right:0;bottom:0;z-index:24;padding:10px var(--sp-lg);background:var(--ds-surface);border-top:1px solid var(--ds-border);box-shadow:var(--sh-elevated)}.pos-mobile-bar-info{display:flex;flex-direction:column;line-height:1.25}.pos-mobile-bar-count{font-size:var(--fs-caption);color:var(--ds-muted)}.pos-mobile-bar-total{font-family:var(--font-display);font-size:20px}}@media (max-width:860px){.shell-sidebar{display:none}.bottom-nav{display:block}.shell-body{padding-bottom:calc(var(--sp-xl) + 58px + env(safe-area-inset-bottom, 0px))}.pos-screen{padding-bottom:calc(66px + 58px + env(safe-area-inset-bottom, 0px))}.pos-mobile-bar{bottom:calc(58px + env(safe-area-inset-bottom, 0px))}}@media (max-width:768px){.shell-body{padding:var(--sp-lg);padding-bottom:calc(var(--sp-lg) + 58px + env(safe-area-inset-bottom, 0px))}.topbar{padding:0 var(--sp-lg);gap:var(--sp-md)}.screen-head{align-items:stretch}.cash-hero,.screen-head{flex-direction:column}.cash-hero-value{font-size:32px}.stat-grid{grid-template-columns:repeat(2,1fr)}.data-table{display:block;overflow-x:auto;white-space:nowrap}}@media (max-width:480px){.shell-body{padding:var(--sp-md);padding-bottom:calc(var(--sp-md) + 58px + env(safe-area-inset-bottom, 0px))}.stat-grid{grid-template-columns:1fr}.drawer{width:100vw}.change-value{font-size:36px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;transition-duration:.001ms!important}}