/* TEKO APP design system: original comic-inspired UI, no external fonts or assets. */
:root{--ink:#2d263c;--muted:#7e788c;--bg:#f6f4fa;--paper:#fff;--purple:#8c65ed;--purple-dark:#6845ba;--purple-soft:#eee6ff;--yellow:#ffda64;--mint:#bce6d6;--blue:#dcecfb;--pink:#f8d7e6;--peach:#fbdcca;--line:#e6e1ed;--border:2px solid var(--ink);--shadow:4px 4px 0 var(--ink);--radius:19px;font-family:"Trebuchet MS", "Segoe UI", Arial, sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;line-height:1.45;font-size:14px}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin:0}h1,h2,h3{font-weight:900;line-height:1.15;letter-spacing:-.035em}h1{font-size:38px}h2{font-size:22px}h3{font-size:17px}p{line-height:1.6}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--purple);outline-offset:4px}svg{vertical-align:middle}.icon{flex-shrink:0}.muted{color:var(--muted)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-80px;left:12px;z-index:100;background:var(--yellow);padding:12px 22px;border:var(--border);border-radius:8px}.skip-link:focus{top:10px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.8px;color:var(--muted);margin-bottom:8px}.title-dot{color:var(--purple)}
/* Layout and navigation */
.app-shell{min-height:100vh;display:grid;grid-template-columns:225px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;min-height:690px;background:#fff;border-right:1px solid var(--line);padding:30px 18px 14px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:12px;width:fit-content;margin:0 auto}.brand-icon{height:49px;width:49px;display:grid;place-items:center;position:relative;background:var(--purple);border:2.4px solid var(--ink);border-radius:14px;box-shadow:3px 3px 0 var(--ink);color:white;font-size:33px;font-weight:900;line-height:1;transform:rotate(-5deg)}.brand-icon>span{position:absolute;font-size:24px;color:var(--yellow);right:-5px;top:-8px;transform:rotate(18deg);-webkit-text-stroke:1px var(--ink)}.brand-word{font-size:27px;font-weight:900;letter-spacing:-1px;line-height:.95}.brand-word>span{display:block;font-size:12px;letter-spacing:5.6px;margin:5px 0 0 2px}.brand-tagline{font-size:8.5px;letter-spacing:1.45px;font-weight:800;text-align:center;margin:19px 0 24px;color:var(--muted)}.sidebar-team{display:flex;align-items:center;gap:7px;border-top:1px solid var(--line);padding:18px 9px 21px;flex-wrap:wrap;font-weight:800;font-size:10px;letter-spacing:.8px}.sidebar-team small{margin-left:15px;display:block;flex-basis:100%;color:var(--muted);font-size:9px;letter-spacing:1px;margin-top:-2px}.nav-section-title{display:block;padding:0 14px 10px;color:#aaa2b9;font-size:9px;font-weight:800;letter-spacing:1.6px}.sidebar nav>a{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:10px;font-size:12px;font-weight:700;margin:3px 0;border:2px solid transparent;color:#7b7489;transition:background .15s,transform .15s}.sidebar nav>a:hover{background:var(--bg);color:var(--ink)}.sidebar nav>a.active{background:var(--purple-soft);color:var(--ink);border-color:var(--ink);box-shadow:2px 2px 0 var(--ink)}.nav-spark{margin-left:auto;font-size:18px;color:var(--purple);font-style:normal}.admin-label{padding-top:29px}.sidebar-bottom{margin-top:auto;padding-top:30px}.sidebar-motivation{background:#fff7dc;border:1.5px solid var(--ink);border-radius:12px;padding:17px 15px;position:relative;overflow:hidden;margin:0 3px 24px;box-shadow:2px 2px 0 #e8dcc0}.sidebar-motivation b{font-size:16px;line-height:1.15;display:block;letter-spacing:-.5px}.sidebar-motivation p{font-size:10px;color:#827653;margin-top:9px;line-height:1.4}.motivation-star{font-size:50px;color:var(--yellow);-webkit-text-stroke:1.4px var(--ink);position:absolute;right:2px;bottom:2px;transform:rotate(10deg)}.sidebar-profile{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);padding:17px 6px 8px}.sidebar-profile>span:nth-child(2){min-width:0;flex:1}.sidebar-profile b{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:12px}.sidebar-profile small{font-size:9px;color:var(--muted)}.sidebar-profile .avatar{border-radius:50%;background:#f2ecfc}.logout-button{display:flex;align-items:center;gap:7px;background:transparent;border:0;color:var(--muted);font-size:10px;margin-left:50px;padding:7px 0}.workspace{min-width:0;display:flex;flex-direction:column}.topbar{height:74px;padding:0 35px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#ffffffa3}.topbar-left,.topbar-right{display:flex;align-items:center;gap:20px}.topbar-crumb{display:flex;gap:13px;align-items:center;font-size:10px;color:var(--muted)}.topbar-crumb b{font-weight:800;letter-spacing:1px;color:var(--ink)}.topbar-right{gap:16px}.live-label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px}.header-avatar{width:36px;height:36px;background:#f0e8ff;border:1.5px solid var(--ink);border-radius:50%;overflow:hidden}.header-avatar .avatar{width:100%;height:100%}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#b4abbf;vertical-align:middle;flex-shrink:0;margin-right:5px}.status-dot.active{background:#63b18b;box-shadow:0 0 0 3px #63b18b12}.mobile-menu,.mobile-overlay{display:none}main#main:not(.login-page){padding:33px 35px 22px;flex:1;min-width:0;width:100%;max-width:1700px;margin:0 auto}.app-footer{margin:0 35px;padding:20px 0 22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:9px;color:#a19aaf;gap:20px}.app-footer>span:first-child{font-weight:900;letter-spacing:1px;color:#81788f}
/* Buttons, forms, and surface primitives */
.button{min-height:43px;padding:11px 17px;border:var(--border);border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:12px;font-weight:800;box-shadow:3px 3px 0 var(--ink);white-space:nowrap;line-height:1.2;transition:transform .12s,box-shadow .12s,background .12s;background:#fff}.button:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.button:active:not(:disabled){transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.button.primary{background:var(--purple);color:#fff}.button.secondary{background:#fff}.button.destructive{background:#df5a6a;color:white}.button.small{padding:8px 11px;min-height:32px;font-size:10px;border-width:1.5px;box-shadow:2px 2px 0 var(--ink);border-radius:8px}.button.full{width:100%}.icon-button{width:32px;height:32px;padding:6px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--muted)}.icon-button:hover:not(:disabled){background:var(--purple-soft);color:var(--ink);border-color:#dfd0f6}.icon-button.danger:hover{background:#ffe5e7;color:#c44154}.text-link{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800;white-space:nowrap}.text-link:hover{color:var(--purple)}.card{background:var(--paper);border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:26px;min-width:0;overflow:hidden}.card-header{padding:23px 24px 19px;display:flex;align-items:center;justify-content:space-between;gap:15px}.card-header h2{font-size:21px}.card-header p{font-size:11px;color:var(--muted);margin-top:6px}.card-header .eyebrow{font-size:9px;margin-bottom:7px}.inline-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.inline-heading h3{display:flex;align-items:center;gap:7px}.badge{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:6px;font-size:8px;line-height:1.35;font-weight:800;letter-spacing:.65px;white-space:nowrap}.white{background:white}.yellow{background:var(--yellow)}.purple{background:var(--purple-soft)}.mint{background:var(--mint)}.blue{background:var(--blue)}.pink{background:var(--pink)}.peach{background:var(--peach)}.pale-purple{background:#e4daf9}.badge.white{border:1px solid #d3c5e9}.badge.yellow{color:#705512}.badge.purple{color:#7350b2}.badge.mint{color:#356a58}.badge.blue{color:#44729b}.badge.pink{color:#934f76}.stack{display:flex;flex-direction:column;gap:18px}.stack>p{font-size:12px}label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:700}label .muted{font-weight:400}input:not([type=radio]):not([type=checkbox]):not([type=color]),select,textarea{width:100%;height:43px;padding:9px 11px;border:1.5px solid #ddd6e7;background:white;border-radius:8px;color:var(--ink);font-size:12px;min-width:0}input::placeholder{color:#b0a8bc}input:focus,select:focus,textarea:focus{border-color:var(--purple)}input:disabled,select:disabled{background:#f7f4fb;color:#847d92}input[type=checkbox],input[type=radio]{accent-color:var(--purple)}input[type=color]{width:57px;height:34px;padding:3px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}textarea{height:auto;min-height:100px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.span-two{grid-column:span 2}.checkbox-row{flex-direction:row;align-items:center;gap:9px}.checkbox-row input{width:17px;height:17px}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:4px;padding-top:9px}.help{font-size:10px!important;color:var(--muted);line-height:1.6}.notice{display:flex;align-items:flex-start;gap:10px;padding:16px 18px;background:#eeeaf7;border:1px solid #e0d8ed;border-radius:11px;margin:18px 0;color:#7c6c94;font-size:11px;line-height:1.6}.notice>.icon{margin-top:2px}.notice.danger-note{background:#fff0f1;border-color:#f4c5ca;color:#a64355}.form-error{padding:12px 13px;background:#fff0f1;color:#b13e52;border:1px solid #f1c0c9;border-radius:8px;font-size:11px;line-height:1.5}.filter-label{min-width:130px}.month-picker{display:flex;flex-direction:row;align-items:center;gap:8px;border:1.5px solid #ded7e9;border-radius:9px;background:#fff;padding:0 11px;min-width:186px;height:43px}.month-picker .icon{color:var(--muted)}.month-picker input[type=month]{height:39px;padding:0;border:0!important;background:none;font-size:11px}.segmented{display:inline-flex;align-items:center;background:#eeebf4;padding:4px;gap:4px;border-radius:10px}.segmented button{background:transparent;border:1px solid transparent;border-radius:7px;font-size:11px;font-weight:700;padding:8px 19px;white-space:nowrap}.segmented button.active{background:#fff;border-color:var(--ink);box-shadow:2px 2px 0 var(--ink)}.segmented>strong{padding:6px 12px;font-size:12px}.search-field input{min-width:220px;height:37px!important}.spinner{display:inline-block;width:17px;height:17px;border:2px solid #baa1ed;border-top-color:var(--purple-dark);border-radius:50%;animation:spin .65s linear infinite}.view-loading{display:flex;align-items:center;justify-content:center;gap:15px;color:var(--muted);min-height:60vh;font-size:12px}.empty-state{text-align:center;padding:58px 22px;color:var(--muted)}.empty-state h3{font-size:20px;color:var(--ink);margin:15px 0 9px}.empty-state p{font-size:12px;max-width:380px;margin:0 auto 20px}.empty-art{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;background:var(--purple-soft);color:var(--purple);margin:auto}.error-state{margin-top:25px}.boot{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.boot-logo{font-size:60px;font-weight:900;background:var(--purple);color:#fff;width:95px;height:95px;text-align:center;border:var(--border);box-shadow:var(--shadow);border-radius:25px;transform:rotate(-8deg)}.boot-logo span{color:var(--yellow)}.boot p{font-size:13px;color:var(--muted)}
/* Dashboard */
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}.page-heading .eyebrow{font-size:9px;margin-bottom:6px}.page-heading p{margin-top:8px;font-size:11px;color:var(--muted)}.heading-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.welcome-banner{display:flex;align-items:center;justify-content:space-between;background:#eadfff;border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 29px;margin-bottom:27px;position:relative;overflow:hidden;min-height:136px}.welcome-banner:after{content:"";position:absolute;top:0;right:125px;width:160px;height:100%;background-image:radial-gradient(#b29bd0 1px,transparent 1px);background-size:9px 9px;opacity:.2;transform:skew(-16deg)}.welcome-banner h2{font-size:25px;margin-top:11px;letter-spacing:-.65px}.welcome-banner p{font-size:11px;color:#857097;margin-top:7px}.welcome-banner>.welcome-sticker{width:111px;height:104px;position:relative;display:grid;place-items:center;flex-shrink:0;z-index:1;transform:rotate(8deg);margin-right:22px}.welcome-sticker:before{content:"";position:absolute;inset:-2px;background:var(--ink);clip-path:polygon(50% 0%,61% 15%,81% 7%,85% 28%,100% 37%,88% 54%,100% 72%,79% 77%,74% 98%,54% 90%,36% 100%,26% 82%,5% 84%,11% 63%,0 48%,16% 33%,12% 12%,34% 18%)}.welcome-sticker:after{content:"";position:absolute;inset:2px;background:var(--yellow);clip-path:polygon(50% 0%,61% 15%,81% 7%,85% 28%,100% 37%,88% 54%,100% 72%,79% 77%,74% 98%,54% 90%,36% 100%,26% 82%,5% 84%,11% 63%,0 48%,16% 33%,12% 12%,34% 18%)}.welcome-sticker span{z-index:1;font-size:26px;font-weight:900;font-style:italic;text-align:center;line-height:.9;letter-spacing:-1px;transform:rotate(-6deg)}.welcome-sticker i{position:absolute;z-index:1;right:-17px;top:-15px;font-size:30px;color:white;-webkit-text-stroke:1px var(--ink)}.kpi-grid{display:grid;grid-template-columns:1.45fr repeat(5,1fr);gap:14px;margin-bottom:28px}.kpi-card{border:1.6px solid #d8d1e4;box-shadow:2px 2px 0 #e9e4f0;border-radius:14px;padding:17px 17px 15px;background:white;min-width:0}.kpi-card.main-kpi{background:var(--yellow);border:var(--border);box-shadow:3px 3px 0 var(--ink)}.kpi-top{display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:800;font-size:12px}.metric-icon{width:30px;height:30px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink);flex-shrink:0}.main-kpi .metric-icon{background:#f6c84a}.kpi-card>strong{display:block;font-size:31px;line-height:1;letter-spacing:-1px;margin-top:10px;font-weight:900}.kpi-card>small{display:block;font-size:7px;letter-spacing:.8px;margin-top:10px;color:#a19aaf;font-weight:800;line-height:1.35}.main-kpi>small{color:#8d753b}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 294px;gap:23px;margin-bottom:27px}.dashboard-grid>.card,.goal-sidebar .card{margin-bottom:0}.goal-sidebar{display:flex;flex-direction:column;gap:22px}.race-card{align-self:start}.personal-goal{background:#eee5ff;padding:0 19px 20px;text-align:center;flex:1;display:flex;flex-direction:column;align-items:center}.personal-goal .card-header{padding:18px 0 8px;width:100%;gap:9px}.personal-goal h2{font-size:13px;letter-spacing:-.3px;display:flex;align-items:center;gap:7px}.personal-goal h2 svg{width:18px;height:18px}.personal-goal .badge{font-size:7px;padding:4px 6px}.goal-ring{width:143px;height:143px;border-radius:50%;background:conic-gradient(var(--purple) calc(var(--progress) * 1%), #d6c5ee 0);display:grid;place-items:center;margin:7px auto 8px;transform:rotate(0deg)}.ring-core{width:122px;height:122px;background:#eee5ff;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;border:4px solid #eee5ff}.ring-core .avatar{height:57px;width:56px}.ring-core>strong{font-size:23px;letter-spacing:-1px;font-weight:900}.goal-numbers>strong{display:block;font-size:24px;letter-spacing:-.8px}.goal-numbers strong>span{font-size:15px;color:#9580ac;font-weight:600}.goal-numbers small{display:block;font-size:7px;letter-spacing:1.5px;color:#9482a7;font-weight:800;margin-top:1px}.goal-motivation{font-size:10px;line-height:1.6;color:#8a739f;max-width:208px;margin:12px auto 15px}.personal-goal .button{font-size:10px;min-height:36px;padding:9px 10px;margin-top:auto}.team-goal{padding:18px 20px 17px;background:#fffdf7}.team-goal .inline-heading h3{font-size:12px;letter-spacing:-.4px;white-space:nowrap}.team-goal h3 svg{width:18px;height:18px}.team-goal .badge{font-size:7px;padding:4px 6px}.team-goal-value{display:flex;align-items:baseline;gap:7px;margin:14px 0 12px}.team-goal-value strong{font-size:27px;letter-spacing:-1px}.team-goal-value span{color:var(--muted);font-size:11px}.team-goal>p{font-size:9px;color:var(--muted);margin-top:11px}.team-goal>p strong{color:var(--ink)}.progress-track{height:9px;border-radius:20px;background:#f0edf4;overflow:hidden;position:relative}.progress-fill{display:block;height:100%;border-radius:20px;transition:width .6s ease}.progress-fill.purple{background:#ab87ec}.progress-fill.mint{background:#80c9ad}.progress-fill.yellow{background:#f5cb59}.team-progress .card-header{padding-bottom:15px}.podium-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.podium-card{display:flex;align-items:center;gap:16px;padding:19px 20px;box-shadow:3px 3px 0 var(--ink)}.podium-cup{width:48px;height:48px;display:grid;place-items:center;background:#fff3cb;border-radius:14px;flex-shrink:0;color:#b99239}.podium-card .eyebrow{font-size:7px;letter-spacing:1.1px;margin-bottom:6px}.podium-card h3{font-size:16px;overflow-wrap:anywhere}.podium-card p{font-size:10px;color:var(--muted);margin-top:6px}.page-footnote{display:flex;align-items:center;gap:7px;font-size:9px;color:#aaa0b7;margin:0 0 6px}
/* Tables */
.table-scroll{overflow-x:auto;width:100%;position:relative;contain:inline-size}table{width:100%;border-collapse:collapse;font-size:11px;text-align:left}thead{background:#faf8fc;border-top:1px solid #eee9f3;border-bottom:1px solid #eee9f3}th{font-size:9px;color:#9a90a8;font-weight:700;white-space:nowrap;padding:13px 20px}td{padding:12px 20px;border-bottom:1px solid #f0ebf5;white-space:nowrap}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#faf8fd}.own-row{background:#f5efff!important}.person-button{display:flex;align-items:center;gap:11px;background:none;border:0;padding:0;text-align:left;white-space:nowrap;color:var(--ink)}.person-button b{font-size:11px;letter-spacing:-.1px}.person-button .table-avatar{background:#eeeaf4;display:inline-flex;width:40px;height:40px;border-radius:12px;overflow:hidden;flex-shrink:0}.person-button .table-avatar svg{width:100%;height:100%}.you-badge{display:inline-flex;align-items:center;font-size:7px;font-style:normal;background:#e5d8fb;color:#8b62c7;padding:3px 5px;border-radius:4px;margin-left:7px;font-weight:800;letter-spacing:.4px}.inactive-label{display:block;color:#9c94a9;font-size:8px}.wide-cell{width:38%}.progress-cell{display:flex;align-items:center;gap:15px;min-width:180px}.progress-cell .progress-track{flex:1;min-width:110px}.progress-cell>b{font-size:10px;min-width:54px;text-align:right}.team-table th:first-child,.team-table td:first-child{padding-left:25px}.team-table th:last-child,.team-table td:last-child{padding-right:17px;padding-left:0}.table-actions{display:flex;gap:4px}.note-cell{white-space:normal;max-width:240px;min-width:125px;color:var(--muted);font-size:10px;overflow-wrap:anywhere}.entries-table th,.entries-table td{padding-left:16px;padding-right:16px}.units-cell{font-weight:900;color:#7550b4}.pagination{padding:16px 22px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted);border-top:1px solid var(--line);gap:12px}.pagination>div{display:flex;gap:9px}.future-row{background:#fcfbfe}.future-row td:first-child{color:#b0a6be}
/* Animated game world and original SVG characters */
game-board{display:block;min-width:0}.race-scroll{overflow-x:auto;overflow-y:hidden}.race-world{position:relative;min-width:530px;isolation:isolate;overflow:hidden;border-top:1px solid #d9d4e7;transition:background .3s}.race-scenery{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}.race-character{position:absolute;z-index:3;display:flex;flex-direction:column;align-items:center;background:none;border:0;padding:0;transform:translateX(-50%);min-width:66px;transition:bottom 1.1s cubic-bezier(.2,.8,.2,1),left 1.1s cubic-bezier(.2,.8,.2,1);animation:player-appear 1.1s both;animation-delay:calc(var(--delay) * -.08)}.race-character:hover{z-index:8}.race-character:focus-visible{outline-offset:3px;border-radius:12px}.sprite{position:relative;display:block;animation:floaty 4s ease-in-out infinite;animation-delay:var(--delay,0s);filter:drop-shadow(0 2px 0 #44334c18)}.balloon-sprite{height:115px;width:88px}.balloon-sprite>svg{height:115px;width:88px}.balloon-avatar{position:absolute;top:83px;left:30px;z-index:0}.balloon-avatar>.avatar{height:31px;width:28px}.racer-label{position:relative;display:block;background:#fff;border:1.5px solid var(--ink);border-radius:5px;padding:4px 7px;font-size:9px;font-weight:800;white-space:nowrap;max-width:114px;overflow:hidden;text-overflow:ellipsis;box-shadow:2px 2px 0 #352b3c25;line-height:1.15;z-index:2;margin-top:1px}.racer-label em{font-size:5px;background:#d9c5fd;color:#7450a4;font-style:normal;padding:2px 3px;border-radius:2px;vertical-align:middle}.racer-score{font-size:8px;font-weight:700;margin-top:4px;line-height:1.1;text-shadow:0 1px 4px #ffffff;white-space:nowrap}.is-me .racer-label{background:#ede3ff;border-color:#4f3571;box-shadow:2px 2px 0 #4f3571}.race-crown{position:absolute;font-size:28px;top:-28px;color:#e9b645;-webkit-text-stroke:.8px #644d34;transform:rotate(-8deg);z-index:5;line-height:1}.race-start,.race-finish{position:absolute;bottom:13px;font-size:7px;font-weight:900;letter-spacing:2px;color:#617477;opacity:.85;z-index:1}.race-start{left:20px}.race-finish{right:20px}.altitude-label{position:absolute;top:26px;left:19px;font-size:7px;letter-spacing:1.5px;font-weight:800;color:#9daac1;writing-mode:vertical-rl;transform:rotate(180deg)}.game-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 17px;font-size:8px;color:#a096ac;border-top:1px solid #eee7f3;background:#fff;min-height:46px}.game-footer>span{display:flex;align-items:center;gap:5px;line-height:1.45}.game-controls{display:flex;align-items:center;gap:4px}.game-controls .icon-button{width:26px;height:25px;padding:4px}.game-controls>span{font-size:8px;white-space:nowrap}.race-lane{position:absolute;left:4%;width:92%;height:87px;border-bottom:2px dashed #ffffff9c;background:#ffffff16}.race-lane:before{content:"";position:absolute;right:6%;top:8px;bottom:0;border-left:5px dotted #6c638833}.race-lane>span,.race-lane>b{font-size:8px;color:#66737566;font-weight:800;position:absolute;bottom:6px;left:0}.race-lane>b{left:auto;right:0}.hurdle{display:block;position:absolute;left:34%;bottom:0;width:20px;height:18px;border:3px solid #846b9a;border-bottom:0;background:#ffffff77;opacity:.55}.hurdle.second{left:64%}.vehicle-sprite{width:87px;height:68px}.vehicle-sprite>svg{position:absolute;width:89px;height:72px;bottom:0;left:0}.vehicle-avatar{position:absolute;left:27px;top:-1px}.vehicle-avatar>.avatar{width:35px;height:39px}.kind-kart .vehicle-avatar{top:-4px}.kind-bike .vehicle-avatar{top:-5px;left:33px;transform:rotate(10deg)}.kind-swim .vehicle-avatar{top:0;left:35px;transform:rotate(20deg)}.kind-mountain .vehicle-avatar,.kind-stairs .vehicle-avatar,.kind-jungle .vehicle-avatar,.kind-sprint .vehicle-avatar,.kind-hurdles .vehicle-avatar{top:-8px;left:22px;width:47px;height:50px}.rocket-sprite{height:118px;width:85px}.rocket-sprite>svg{height:118px;width:85px}.rocket-avatar{position:absolute;top:33px;left:26px}.rocket-avatar>.avatar{width:34px;height:38px}.theme-rocket .racer-score{color:#fff;text-shadow:none}.theme-rocket .race-start,.theme-rocket .race-finish{color:#b8a0d6}.theme-rocket .altitude-label{color:#aaa1c9}.theme-swim .race-lane{border-bottom:4px dashed #fff6b7bb;background:#71c6dd25}.theme-kart .race-lane{background:#56576977;border-bottom-color:#ffffef85}.theme-kart .race-world{background:#d5d6df}.theme-sprint .race-lane,.theme-hurdles .race-lane{background:#d4807744}.theme-stairs .race-character:after{content:"";width:75px;height:6px;position:absolute;bottom:-6px;border:1px solid #72748b;background:#c1bfd7;border-radius:1px;z-index:-1}.arena-toolbar{display:flex;align-items:center;justify-content:space-between;margin:0 0 24px}.arena-large .race-world{min-width:650px}.arena-large .race-character{scale:1.04}.comic-spark{font-size:50px;color:var(--yellow);-webkit-text-stroke:1px var(--ink);padding-right:15px}.ranking-list{padding:0 20px 12px}.ranking-row{display:flex;align-items:center;gap:16px;width:100%;background:none;border:0;border-bottom:1px solid var(--line);padding:12px;border-radius:9px;text-align:left}.ranking-row:last-child{border-bottom:0}.ranking-row:hover{background:#f9f6fd}.rank-number{width:30px;font-size:16px;font-weight:900;text-align:center;color:#9f93af;flex-shrink:0}.rank-number.gold{color:#bd9743}.ranking-name{width:160px;flex-shrink:0}.ranking-name>b{font-size:12px}.ranking-name small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.ranking-bar{flex:1;min-width:90px;margin:0 15px}.ranking-row>strong{font-size:17px;min-width:97px;text-align:right}.ranking-row strong small{font-size:8px;color:var(--muted);font-weight:400}.season-map{padding:10px 0 26px}.theme-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:8px;margin-top:20px}.theme-tile{padding:12px 5px;border:1.5px solid var(--line);border-radius:11px;display:flex;align-items:center;flex-direction:column;text-align:center;min-width:0;background:#fff}.theme-tile>span{font-size:23px;line-height:1.6}.theme-tile>strong{font-size:10px;margin-top:6px;color:var(--muted)}.theme-tile>small{font-size:7px;line-height:1.35;margin-top:4px;color:#9990a4}.theme-tile.selected{background:#eee5ff;border-color:var(--ink);box-shadow:2px 2px 0 var(--ink)}.motion-off *{animation:none!important;transition:none!important}
/* Charts and statistics */
.chart-card{padding-bottom:10px}.chart-card .card-header{padding-bottom:8px}.chart-card select{min-width:120px;height:36px}.chart-legend{display:flex;gap:19px;align-items:center;font-size:9px;padding:10px 24px}.chart-legend>span{display:flex;align-items:center;gap:6px}.chart-legend>.muted{margin-left:auto}.legend-dot{width:9px;height:9px;border-radius:3px;display:inline-block}.legend-dot.purple{background:var(--purple)}.chart-scroll{overflow-x:auto;padding:0 18px}.bar-chart{width:100%;height:auto;min-width:620px;max-height:385px}.chart-tick{font-family:inherit;fill:#a097ac;font-size:11px}.bar-value{font-family:inherit;fill:#6c5c85;font-size:10px;font-weight:700}.hall-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;padding:0 23px 24px}.hall-item{border:1px solid #e4dced;border-radius:11px;display:flex;align-items:center;gap:12px;padding:15px}.hall-item small{font-size:9px;color:#9585a7}.hall-item h3{font-size:13px;margin:4px 0;overflow-wrap:anywhere}.hall-item span:not(.hall-trophy){font-size:8px;color:#9d93a7}.hall-trophy{color:#ab94c8;background:#f3ecfb;border-radius:10px;width:41px;height:41px;display:grid;place-items:center;flex-shrink:0}.annual-winner{background:#fff7df;border-color:#e9d49c}.annual-winner .hall-trophy{background:#ffedb5;color:#b18a36}
/* Data entry, admin, profile */
.metric-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.metric-input{background:#f6f3fb;border-radius:10px;border:1px solid #e8dfef;padding:12px;gap:10px}.metric-input>span{display:flex;align-items:center;gap:7px;font-size:11px}.metric-input input{font-size:20px!important;font-weight:900;height:46px!important;letter-spacing:-.5px}.metric-input.highlight{background:#fff3c8;border-color:#eed084}.role-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.mini-stat{display:flex;gap:16px;align-items:center;padding:23px}.mini-stat .metric-icon{width:46px;height:46px;border-radius:13px}.mini-stat strong{display:block;font-size:29px;line-height:1;font-weight:900}.mini-stat span{font-size:10px;color:var(--muted);display:block;margin-top:7px}.avatar-disclosure{padding:12px 0;border-top:1px solid var(--line)}summary{font-weight:800;cursor:pointer;font-size:12px;line-height:2}.avatar-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:5px}.avatar-option{position:relative;cursor:pointer;display:block}.avatar-option input{position:absolute;opacity:0;inset:0;width:100%;height:100%;z-index:1;margin:0;cursor:pointer}.avatar-option>span{background:#f8f6fc;border:1.5px solid #e9e0f0;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:7px 4px 5px;transition:background .1s,transform .1s}.avatar-option>span small{font-size:8px;color:#9e91ad;margin-top:4px}.avatar-option input:checked+span{border-color:var(--ink);background:#eee2ff;box-shadow:2px 2px 0 var(--ink)}.avatar-option input:focus-visible+span{outline:3px solid var(--purple);outline-offset:3px}.avatar-option:hover>span{background:#f0e9fc;transform:translateY(-2px)}.color-label{flex-direction:row;align-items:center;justify-content:space-between;padding:12px 0 0;margin-top:5px}.profile-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,1fr);gap:27px}.profile-form{padding:0 24px 25px}.profile-intro{display:flex;align-items:center;gap:22px;padding:0 0 18px;border-bottom:1px solid var(--line)}.profile-preview{background:#eee3ff;border-radius:25px;border:1.5px solid var(--ink);width:99px;height:99px;overflow:hidden;flex-shrink:0}.profile-intro h3{font-size:24px}.profile-intro p{color:var(--muted);font-size:12px;margin:6px 0 10px}.password-form{padding:0 23px 24px}.profile-grid>aside>.notice{margin-top:0}.settings-form{padding:0 24px 26px;max-width:780px}.settings-form .form-actions{justify-content:flex-start}.audit-detail{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:18px}.audit-detail h3{font-size:13px;margin-bottom:12px}pre{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;line-height:1.7;padding:14px;background:#f4f1f8;border:1px solid #e9e0f0;border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.player-detail{display:flex;align-items:center;flex-direction:column;text-align:center;gap:10px;padding:5px 0 22px}.huge-number{font-size:48px;font-weight:900;letter-spacing:-2px;line-height:1}.detail-metrics{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:19px 0}.detail-metrics>div{display:flex;align-items:center;flex-direction:column;gap:8px}.detail-metrics span{font-size:10px;color:var(--muted)}.detail-metrics strong{font-size:19px}.goal-detail{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;font-size:12px;padding-top:22px}.goal-detail>span{color:var(--muted)}
/* Dialogs, toasts and login */
dialog{width:min(540px,calc(100vw - 32px));max-height:calc(100dvh - 40px);border:2.5px solid var(--ink);border-radius:22px;padding:0;color:var(--ink);box-shadow:7px 7px 0 #2d263c99;overflow:auto}dialog.wide{width:min(760px,calc(100vw - 32px))}dialog::backdrop{background:#2b203971;backdrop-filter:blur(4px)}.modal-heading{padding:23px 25px 20px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);background:#fbf9fe;position:sticky;top:0;z-index:5}.modal-heading h2{font-size:21px}.modal-body{padding:23px 25px 26px}.modal-body .notice{margin:0}.toast-region{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;gap:9px;z-index:1000;pointer-events:none;width:max-content;max-width:calc(100% - 34px)}.toast{border:var(--border);box-shadow:3px 3px 0 var(--ink);border-radius:10px;background:#d9f0e4;color:#356b50;padding:14px 20px;font-size:12px;display:flex;align-items:center;gap:11px;animation:toast-in .25s ease;pointer-events:auto}.toast.error{background:#fff0f0;color:#a94051}.login-page{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:#fff}.login-story{position:relative;background:#e9ddfb;min-height:770px;overflow:hidden;display:flex;flex-direction:column;padding:48px 58px}.login-story .brand{margin:0}.login-copy{position:relative;z-index:2;padding-top:63px}.login-copy>.badge{font-size:8px;letter-spacing:1.2px;padding:7px 10px}.login-copy h1{font-size:clamp(40px,4.1vw,62px);line-height:1.03;margin:21px 0 19px;letter-spacing:-2.5px}.login-copy h1>span{color:var(--purple)}.login-copy p{font-size:12px;line-height:1.8;color:#8e79a6}.login-scene{position:relative;height:345px;flex:1;min-height:315px;isolation:isolate;margin:10px -58px -12px}.login-scene .race-scenery{inset:auto 0 0;height:360px}.login-balloon{position:absolute;transform:scale(1.35);--delay:0s}.login-balloon.first{left:18%;bottom:82px;--delay:-1.2s}.login-balloon.second{left:48%;bottom:175px;transform:scale(1.7)}.login-balloon.third{left:77%;bottom:55px;--delay:-2.5s}.login-caption{font-size:8px;font-weight:800;letter-spacing:2px;color:#776783;position:relative;z-index:2;margin-top:24px}.login-form-side{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px;position:relative}.login-form-wrap{width:100%;max-width:370px}.login-wave{font-size:47px;color:var(--yellow);-webkit-text-stroke:1.5px var(--ink);display:inline-block;transform:rotate(10deg);line-height:1;margin-bottom:27px}.login-form-wrap h2{font-size:31px;margin:9px 0 14px;letter-spacing:-1px}.login-form-wrap>p{font-size:12px;line-height:1.65;margin-bottom:33px}.login-form-wrap form{gap:22px}.login-form-wrap input{height:47px!important;background:#fcfaff!important}.login-form-wrap form .button{height:47px;margin-top:3px}.login-help{margin-top:30px;padding-top:22px;border-top:1px solid var(--line);color:#9c90aa;display:flex;align-items:center;gap:10px;font-size:10px;line-height:1.7}.login-footer{position:absolute;bottom:31px;font-size:8px;color:#b1a7bc;letter-spacing:1.8px}.login-page .brand-tagline{display:none}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes floaty{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-6px) rotate(1deg)}}@keyframes player-appear{from{opacity:0;translate:0 38px}to{opacity:1;translate:0 0}}@keyframes toast-in{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
/* Responsive layouts */
@media(min-width:1700px){main#main:not(.login-page){padding-left:47px;padding-right:47px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 330px}.welcome-banner h2{font-size:29px}.kpi-card>strong{font-size:36px}.goal-ring{margin-top:15px;margin-bottom:12px}.personal-goal .card-header{padding-top:21px}}
@media(max-width:1250px){.app-shell{grid-template-columns:200px minmax(0,1fr)}.sidebar{padding-left:13px;padding-right:13px}.topbar{padding:0 25px}main#main:not(.login-page){padding:29px 25px 22px}.app-footer{margin:0 25px}.kpi-grid{gap:10px}.kpi-card{padding:14px 12px}.kpi-card>strong{font-size:27px}.kpi-card>small{font-size:6px;letter-spacing:.5px}.kpi-top{font-size:10px}.metric-icon{width:26px;height:26px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 260px;gap:19px}.card-header{padding-left:19px;padding-right:19px}.card-header h2{font-size:18px}.personal-goal{padding-left:16px;padding-right:16px}.personal-goal h2{font-size:12px}.team-goal{padding-left:17px;padding-right:17px}.page-heading h1{font-size:34px}.page-heading .heading-actions{gap:9px}.month-picker{min-width:172px}.heading-actions .button{font-size:10px;padding-left:12px;padding-right:12px}.podium-card{padding:17px 14px;gap:11px}.podium-card h3{font-size:14px}.podium-cup{width:39px;height:39px}.podium-card .eyebrow{font-size:6px}.theme-grid{grid-template-columns:repeat(6,1fr)}.theme-tile{padding:9px 6px}.theme-tile>small{font-size:8px}.hall-grid{grid-template-columns:repeat(3,1fr)}.role-summary{gap:18px}.mini-stat{padding:20px 17px}.sidebar nav>a{font-size:11px;padding-left:11px;padding-right:11px}.race-world{min-width:480px}}
@media(max-width:1050px){.page-heading{align-items:flex-start;flex-direction:column;gap:18px}.heading-actions{justify-content:flex-start}.dashboard-grid{grid-template-columns:minmax(0,1fr)}.goal-sidebar{display:grid;grid-template-columns:1.2fr 1fr;gap:20px}.personal-goal{display:grid;grid-template-columns:118px 1fr;gap:0 13px;text-align:left;padding:17px}.personal-goal .card-header{grid-column:span 2;padding:0 0 12px}.goal-ring{grid-column:1;grid-row:2/span 3;width:107px;height:107px;margin:4px 0}.ring-core{width:91px;height:91px}.ring-core .avatar{width:44px;height:45px}.ring-core strong{font-size:17px}.goal-numbers strong{font-size:22px}.goal-numbers small{font-size:6px}.goal-motivation{font-size:9px;margin:7px 0 10px;max-width:none}.personal-goal .button{font-size:9px;padding:8px;min-height:32px;grid-column:2}.team-goal{align-self:stretch;padding:22px;display:flex;flex-direction:column;justify-content:center}.team-goal-value{margin-top:23px}.team-goal-value strong{font-size:32px}.kpi-grid{grid-template-columns:repeat(3,1fr);gap:15px}.kpi-card>strong{font-size:31px}.kpi-top{font-size:12px}.kpi-card>small{font-size:7px}.kpi-card{padding:15px 17px}.metric-icon{width:29px;height:29px}.podium-grid{gap:13px}.podium-card{display:block}.podium-cup{margin-bottom:13px}.podium-card .eyebrow{font-size:7px}.hall-grid{grid-template-columns:repeat(2,1fr)}.profile-grid{grid-template-columns:minmax(0,1fr)}.profile-grid>aside{display:grid;grid-template-columns:1.2fr 1fr;gap:20px}.profile-grid>aside>.notice{align-self:start}.ranking-name{width:125px}.ranking-bar{margin:0 8px}.role-summary .mini-stat{gap:10px}.role-summary .mini-stat .metric-icon{width:33px;height:33px;border-radius:9px}.mini-stat span{font-size:9px}.login-story{padding:40px}.login-scene{margin-left:-40px;margin-right:-40px}.login-form-side{padding:42px}.login-copy h1{font-size:44px}.login-form-wrap h2{font-size:27px}}
@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;width:230px;transform:translateX(-100%);transition:transform .2s;height:100dvh;min-height:620px;box-shadow:10px 0 40px #35254522}.menu-open .sidebar{transform:translateX(0)}.mobile-overlay{position:fixed;inset:0;background:#261b4266;z-index:25}.menu-open .mobile-overlay{display:block}.mobile-menu{display:inline-flex}.topbar{height:64px;padding:0 18px}.topbar-left{gap:8px}.topbar-right{gap:10px}.topbar-crumb{font-size:9px;gap:8px}.live-label{display:none}main#main:not(.login-page){padding:24px 18px 20px}.app-footer{margin:0 18px;padding-top:15px;font-size:8px}.app-footer>span:last-child{display:none}.page-heading h1{font-size:32px}.page-heading .eyebrow{font-size:8px}.page-heading p{font-size:10px}.page-heading{margin-bottom:24px}.heading-actions{width:100%;gap:12px;justify-content:space-between}.heading-actions>.month-picker{flex:1;min-width:160px;max-width:240px}.heading-actions .button{min-height:42px;font-size:11px}.welcome-banner{padding:19px 20px;min-height:139px}.welcome-banner h2{font-size:24px;max-width:330px;line-height:1.1;margin-top:12px}.welcome-banner p{font-size:10px;max-width:270px;margin-top:10px}.welcome-sticker{margin-right:0!important;scale:.85;transform-origin:right center}.welcome-banner:after{right:50px}.welcome-banner .badge{font-size:7px}.kpi-grid{gap:12px;margin-bottom:25px}.kpi-card{padding:13px 14px}.kpi-card>strong{font-size:27px}.kpi-card>small{font-size:6px;letter-spacing:.5px}.kpi-top{font-size:11px}.kpi-top .metric-icon{width:25px;height:25px}.card{border-radius:16px;box-shadow:3px 3px 0 var(--ink);margin-bottom:23px}.card-header{padding:20px 18px 17px}.card-header h2{font-size:19px}.card-header p{font-size:10px}.card-header .eyebrow{font-size:8px;letter-spacing:1.3px}.card-header .text-link{font-size:9px}.goal-sidebar{gap:18px}.game-footer{font-size:7px;padding:11px 12px;gap:6px}.race-world{min-width:520px}.race-scroll{scrollbar-width:thin}.team-progress .card-header h2{font-size:19px}.team-table th,.team-table td{padding-left:15px;padding-right:15px}.team-table th:first-child,.team-table td:first-child{padding-left:18px}.progress-cell{min-width:150px;gap:9px}.wide-cell{min-width:190px}.team-table .person-button{gap:8px}.team-table .person-button b{font-size:10px}.team-table .you-badge{font-size:6px;margin-left:3px}.podium-card{padding:16px 13px}.podium-card h3{font-size:14px}.podium-card p{font-size:9px}.podium-card .eyebrow{font-size:6px}.page-footnote{font-size:8px;align-items:flex-start}.ranking-list{padding:0 11px 11px}.ranking-row{gap:10px;padding:12px 7px}.ranking-name{width:auto;flex:1;min-width:75px}.ranking-name b{font-size:11px}.ranking-bar{display:none}.ranking-row>strong{font-size:15px;min-width:68px}.rank-number{width:24px}.ranking-row>.avatar{width:40px;height:43px}.ranking-row>.icon{width:13px}.theme-grid{grid-template-columns:repeat(6,1fr)}.theme-tile small{font-size:7px}.chart-legend{gap:10px;font-size:8px;padding:12px 18px}.chart-legend>.muted{display:none}.chart-scroll{padding:0 4px}.chart-card select{min-width:90px}.hall-grid{padding:0 17px 18px;gap:12px}.hall-item{padding:13px;gap:9px}.hall-item h3{font-size:12px}.hall-trophy{width:33px;height:33px}.hall-trophy svg{width:21px}.role-summary{gap:12px}.mini-stat{padding:16px 14px;display:block}.mini-stat .metric-icon{margin-bottom:12px}.mini-stat strong{font-size:25px}.search-field input{min-width:140px;max-width:180px;font-size:10px}.role-summary .mini-stat span{font-size:8px}.profile-grid{gap:0}.profile-grid>aside{display:block}.settings-form,.password-form,.profile-form{padding-left:18px;padding-right:18px}.profile-intro{gap:15px}.profile-intro h3{font-size:24px}.profile-intro p{font-size:11px}.modal-heading{padding:20px}.modal-heading h2{font-size:19px}.modal-body{padding:20px}.audit-detail{grid-template-columns:1fr}.notice{font-size:10px;padding:14px}.login-page{grid-template-columns:1fr;min-height:100dvh}.login-story{display:none}.login-form-side{padding:42px 30px 85px;min-height:100dvh;background:radial-gradient(ellipse at 100% 0%,#f1e5fe 0,transparent 50%)}.login-form-wrap h2{font-size:31px}.login-form-wrap{max-width:390px}.login-footer{bottom:25px}.login-wave{font-size:57px}.login-form-wrap>.eyebrow{font-size:9px}}
@media(max-width:470px){.topbar-crumb b{font-size:8px}.topbar-crumb{gap:6px}.topbar-right{gap:3px}.header-avatar{width:31px;height:31px}.welcome-sticker{width:87px!important;height:87px!important;scale:.8;margin-left:-15px}.welcome-sticker span{font-size:23px}.welcome-banner h2{font-size:22px}.welcome-banner p{font-size:9px;max-width:214px}.welcome-banner{padding-left:17px;padding-right:10px}.heading-actions .month-picker{max-width:none;min-width:155px}.heading-actions .button{font-size:10px;padding:10px 12px;gap:5px}.heading-actions .button .icon{width:16px}.kpi-grid{gap:10px}.kpi-card{padding:11px}.kpi-card>strong{font-size:24px}.kpi-card>small{font-size:5px;letter-spacing:.3px}.kpi-top{font-size:10px;gap:4px}.kpi-top .metric-icon{width:22px;height:22px;border-radius:7px}.kpi-top .metric-icon .icon{width:15px;height:15px}.goal-sidebar{grid-template-columns:1fr}.personal-goal{grid-template-columns:125px 1fr;padding:18px 21px}.personal-goal .card-header{padding-bottom:16px}.personal-goal h2{font-size:14px}.goal-ring{width:116px;height:116px}.ring-core{width:100px;height:100px}.goal-numbers>strong{font-size:26px}.goal-motivation{font-size:10px}.team-goal{padding:20px 22px}.team-goal-value{margin-top:15px}.team-goal .inline-heading h3{font-size:14px}.podium-grid{grid-template-columns:1fr;gap:0}.podium-card{display:flex;padding:17px 20px;gap:17px;margin-bottom:14px}.podium-cup{margin-bottom:0;width:45px;height:45px}.podium-card .eyebrow{font-size:7px}.podium-card h3{font-size:17px}.podium-card p{font-size:10px}.theme-grid{grid-template-columns:repeat(4,1fr)}.theme-tile>small{font-size:8px}.hall-grid{grid-template-columns:1fr}.hall-trophy{width:39px;height:39px}.hall-item h3{font-size:14px}.hall-item small{font-size:10px}.hall-item span:not(.hall-trophy){font-size:9px}.card-header{flex-wrap:wrap}.race-card .card-header{flex-wrap:nowrap;align-items:flex-start}.race-card .card-header h2{font-size:18px}.race-card .card-header .text-link{font-size:8px;margin-top:22px;gap:3px}.race-card .card-header .text-link .icon{width:13px}.card-header h2{font-size:18px}.arena-large .card-header h2{font-size:21px}.arena-large .card-header p{font-size:9px}.arena-large .comic-spark{font-size:33px;padding-right:0}.form-grid{grid-template-columns:1fr}.span-two{grid-column:auto}.avatar-picker{gap:7px}.avatar-option .avatar{width:47px;height:50px}.avatar-option>span{padding:6px 2px}.avatar-option>span small{font-size:7px}.profile-preview{height:85px;width:85px}.profile-preview .avatar{height:85px;width:85px}.profile-intro{gap:12px}.profile-intro h3{font-size:23px}.profile-intro .badge{font-size:6px}.profile-intro p{font-size:10px;overflow-wrap:anywhere}.metric-form-grid{gap:10px}.metric-input{padding:10px}.metric-input>span{font-size:10px;gap:4px}.metric-input>span .icon{width:14px}.metric-input input{font-size:19px!important;padding:7px!important}.modal-body{padding:18px}.modal-heading{padding:17px}.modal-heading h2{font-size:18px}.form-actions{flex-wrap:wrap;gap:10px}.form-actions .button{font-size:11px}.pagination{padding:15px;font-size:9px}.search-field{width:100%}.search-field input{width:100%;max-width:none}.role-summary .mini-stat span{font-size:7px}.role-summary .mini-stat{padding:13px 11px}.role-summary .mini-stat strong{font-size:22px}.rank-number{font-size:14px}.ranking-row>.avatar{width:36px;height:38px}.ranking-row>strong{font-size:14px;min-width:60px}.ranking-name .you-badge{font-size:6px;margin-left:4px}.detail-metrics strong{font-size:16px}.detail-metrics span{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}html{scroll-behavior:auto}}
@media print{.sidebar,.topbar,.app-footer,.heading-actions,.button,.icon-button,.welcome-sticker,.game-controls{display:none!important}.app-shell{display:block}.workspace{display:block}main#main:not(.login-page){padding:0}.card,.welcome-banner,.kpi-card{box-shadow:none!important;break-inside:avoid}.dashboard-grid{grid-template-columns:1fr}.race-world{height:380px!important}.card{margin-bottom:18px}body{background:#fff}.table-scroll{overflow:visible}.profile-grid{display:block}}

/* v2.1 playful race + annual podium upgrades */
.metric-toggle-group{border:1px solid var(--line);border-radius:16px;padding:16px 18px;background:#faf8fe}.metric-toggle-group legend{font-weight:800;padding:0 8px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid #ece5f6}.toggle-row:first-of-type{border-top:0}.toggle-row span{display:flex;flex-direction:column;gap:3px}.toggle-row small{color:var(--muted);font-size:10px}.toggle-row input{width:18px;height:18px}
.race-world:after{content:"";position:absolute;inset:auto -5% 0 -5%;height:32px;background:linear-gradient(90deg,#ffffff15,transparent 12%,#ffffff15 24%,transparent 36%,#ffffff15 48%,transparent 60%,#ffffff15 72%,transparent 84%,#ffffff15);opacity:.35;pointer-events:none}.race-character{filter:drop-shadow(0 7px 10px rgba(61,34,82,.12))}.race-character.is-tied{z-index:6}.race-character.is-tied .sprite{animation:floaty 3.6s ease-in-out infinite, tussle .95s ease-in-out infinite;transform-origin:center bottom}.tie-badge{position:absolute;top:-18px;background:#ffda70;border:1.5px solid var(--ink);border-radius:999px;padding:3px 7px;font-size:8px;font-weight:900;box-shadow:2px 2px 0 #43304d1e;transform:rotate(var(--tie-rotate))}.race-character.is-tied .racer-label{transform:rotate(calc(var(--tie-rotate) * .35))}.race-character.is-tied.tie-slot-1{z-index:7}.race-character.is-tied.tie-slot-2{z-index:5}.kind-kart .vehicle-sprite>svg,.kind-bike .vehicle-sprite>svg{filter:drop-shadow(2px 5px 0 rgba(53,43,60,.15))}.theme-kart .race-lane:before,.theme-sprint .race-lane:before,.theme-hurdles .race-lane:before{border-left-style:solid;border-left-color:#ffffff80}.race-character:hover .sprite{animation-play-state:running;transform:translateY(-2px)}
.annual-podium-card{overflow:hidden}.annual-podium-scene{position:relative;padding:8px 18px 24px;background:linear-gradient(180deg,#f6f0ff 0%,#fff 68%)}.annual-podium-stage{display:flex;justify-content:center;align-items:flex-end;gap:14px;min-height:280px;position:relative;z-index:2}.annual-podium-stage:before{content:"";position:absolute;left:5%;right:5%;bottom:0;height:24px;border-radius:999px;background:#e6dff5;z-index:-1}.podium-winner{background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:10px;padding:0;position:relative}.winner-avatar-wrap{position:relative}.winner-crown{position:absolute;top:-18px;left:50%;transform:translateX(-50%) rotate(-8deg);font-size:26px;color:#e2b24a;-webkit-text-stroke:.8px #684d24}.podium-block{width:150px;height:var(--podium-height);display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;padding:16px 12px;border:2px solid var(--ink);border-radius:18px 18px 0 0;box-shadow:4px 4px 0 rgba(53,43,60,.12);background:linear-gradient(180deg,#fff 0%,#efe7ff 100%)}.podium-winner.rank-1 .podium-block{background:linear-gradient(180deg,#fff5cb 0%,#f4d97a 100%)}.podium-winner.rank-2 .podium-block{background:linear-gradient(180deg,#ffffff 0%,#dfdef1 100%)}.podium-winner.rank-3 .podium-block{background:linear-gradient(180deg,#fff6eb 0%,#e7bc90 100%)}.podium-block small{font-size:9px;font-weight:900;letter-spacing:1px;color:#755f91}.podium-block strong{font-size:15px;text-align:center}.podium-block span{font-size:10px;color:var(--muted)}.winner-dance .winner-avatar-wrap{animation:championDance 1.15s ease-in-out infinite}.winner-bob .winner-avatar-wrap{animation:podiumBob 2.5s ease-in-out infinite}.annual-podium-crowd{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 auto 18px;max-width:1000px}.crowd-fan{display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:0;padding:0;animation:crowdBow 2.4s ease-in-out infinite;animation-delay:var(--fan-delay,0s)}.crowd-fan span{font-size:8px;font-weight:800;max-width:58px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crowd-fan.is-me span,.podium-winner.is-me .podium-block strong{color:#6942b3}.crowd-empty{text-align:center;color:var(--muted);font-size:11px;padding:6px 0 12px}
@keyframes tussle{0%,100%{transform:translateY(0) rotate(calc(var(--tie-rotate) * .7))}25%{transform:translate(-3px,-1px) rotate(calc(var(--tie-rotate) - 2deg))}50%{transform:translate(3px,1px) rotate(calc(var(--tie-rotate) + 2deg))}75%{transform:translate(-2px,0) rotate(calc(var(--tie-rotate) - 1deg))}}@keyframes championDance{0%,100%{transform:translateY(0) rotate(0)}20%{transform:translateY(-4px) rotate(-9deg)}40%{transform:translateY(0) rotate(7deg)}60%{transform:translateY(-5px) rotate(-7deg)}80%{transform:translateY(0) rotate(9deg)}}@keyframes podiumBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes crowdBow{0%,12%,100%{transform:rotate(0)}26%{transform:rotate(7deg) translateY(1px)}42%{transform:rotate(0)}58%{transform:rotate(7deg) translateY(1px)}}
@media(max-width:760px){.annual-podium-stage{gap:8px;min-height:238px}.podium-block{width:108px;padding:12px 8px}.podium-block strong{font-size:12px}.winner-crown{font-size:22px}.annual-podium-scene{padding-left:10px;padding-right:10px}.metric-toggle-group{padding:14px 15px}}
@media(max-width:470px){.annual-podium-stage{align-items:flex-end}.podium-block{width:92px}.podium-block small{font-size:8px}.podium-block span{font-size:9px}.crowd-fan span{display:none}}
