*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com
*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-0{bottom:0}.bottom-0\.5{bottom:.125rem}.bottom-1{bottom:.25rem}.left-0{left:0}.left-1{left:.25rem}.left-1\.5{left:.375rem}.left-1\/2,.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-1\.5{right:.375rem}.top-0{top:0}.top-0\.5{top:.125rem}.top-1{top:.25rem}.top-1\/2,.top-\[50\%\]{top:50%}.z-50{z-index:50}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-bottom:1rem;margin-top:1rem}.my-8{margin-bottom:2rem;margin-top:2rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-4{margin-left:1rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.\!grid{display:grid!important}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[100px\]{height:100px}.h-full{height:100%}.max-h-32{max-height:8rem}.max-h-48{max-height:12rem}.max-h-\[80vh\]{max-height:80vh}.min-h-\[350px\]{min-height:350px}.min-h-\[80px\]{min-height:80px}.w-10{width:2.5rem}.w-12{width:3rem}.w-4{width:1rem}.w-9{width:2.25rem}.w-\[70px\]{width:70px}.w-fit{width:fit-content}.w-full{width:100%}.min-w-\[200px\]{min-width:200px}.min-w-\[500px\]{min-width:500px}.max-w-\[300px\]{max-width:300px}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.flex-1{flex:1 1}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-\[-50\%\],.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.-rotate-90{--tw-rotate:-90deg}.-rotate-90,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg}.scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.scale-105,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.125rem*var(--tw-space-y-reverse));margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.rounded{border-radius:.25rem}.rounded-card{border-radius:6px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-r-4{border-right-width:4px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-blue-200{--tw-border-opacity:1;border-color:#bfdbfe;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:#3b82f6;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-danger{--tw-border-opacity:1;border-color:#f44336;border-color:rgb(244 67 54/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:#e5e7eb;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:#d1d5db;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-400{--tw-border-opacity:1;border-color:#9ca3af;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.border-gray-600{--tw-border-opacity:1;border-color:#4b5563;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.border-gray-700{--tw-border-opacity:1;border-color:#374151;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.border-success{--tw-border-opacity:1;border-color:#4caf50;border-color:rgb(76 175 80/var(--tw-border-opacity,1))}.border-r-white{--tw-border-opacity:1;border-right-color:#fff;border-right-color:rgb(255 255 255/var(--tw-border-opacity,1))}.bg-bg-secondary{--tw-bg-opacity:1;background-color:#2a2a2a;background-color:rgb(42 42 42/var(--tw-bg-opacity,1))}.bg-bg-secondary\/80{background-color:#2a2a2acc}.bg-bg-tertiary{--tw-bg-opacity:1;background-color:#3a3a3a;background-color:rgb(58 58 58/var(--tw-bg-opacity,1))}.bg-black\/80{background-color:#000c}.bg-blue-50{--tw-bg-opacity:1;background-color:#eff6ff;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-danger{--tw-bg-opacity:1;background-color:#f44336;background-color:rgb(244 67 54/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:#f3f4f6;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:#e5e7eb;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:#f9fafb;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:#f0fdf4;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-900\/30{background-color:#14532d4d}.bg-red-50{--tw-bg-opacity:1;background-color:#fef2f2;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-900\/30{background-color:#7f1d1d4d}.bg-success{--tw-bg-opacity:1;background-color:#4caf50;background-color:rgb(76 175 80/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-yellow-100{--tw-bg-opacity:1;background-color:#fef9c3;background-color:rgb(254 249 195/var(--tw-bg-opacity,1))}.p-12{padding:3rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pb-2{padding-bottom:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.text-blue-700{--tw-text-opacity:1;color:#1d4ed8;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-blue-900{--tw-text-opacity:1;color:#1e3a8a;color:rgb(30 58 138/var(--tw-text-opacity,1))}.text-danger{--tw-text-opacity:1;color:#f44336;color:rgb(244 67 54/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:#d1d5db;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:#9ca3af;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:#6b7280;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:#4b5563;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:#374151;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:#1f2937;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:#111827;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-info{--tw-text-opacity:1;color:#61dafb;color:rgb(97 218 251/var(--tw-text-opacity,1))}.text-success{--tw-text-opacity:1;color:#4caf50;color:rgb(76 175 80/var(--tw-text-opacity,1))}.text-suit-black{--tw-text-opacity:1;color:#000;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-suit-red{--tw-text-opacity:1;color:#d32f2f;color:rgb(211 47 47/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-400{--tw-text-opacity:1;color:#facc15;color:rgb(250 204 21/var(--tw-text-opacity,1))}.text-yellow-800{--tw-text-opacity:1;color:#854d0e;color:rgb(133 77 14/var(--tw-text-opacity,1))}.text-yellow-900{--tw-text-opacity:1;color:#713f12;color:rgb(113 63 18/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.opacity-60{opacity:.6}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-2xl{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-blue-200{--tw-ring-opacity:1;--tw-ring-color:rgb(191 219 254/var(--tw-ring-opacity,1))}.ring-white{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity,1))}.ring-yellow-400{--tw-ring-opacity:1;--tw-ring-color:rgb(250 204 21/var(--tw-ring-opacity,1))}.ring-offset-white{--tw-ring-offset-color:#fff}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}:root{--color-primary:#2d5a3d;--color-primary-light:#3d6b52;--color-primary-lighter:#4a7c5f;--color-primary-dark:#1e3d29;--color-success-light:#66bb6a;--color-success-dark:#388e3c;--color-danger-light:#ef5350;--color-danger-dark:#d32f2f;--color-warning-light:#ffb74d;--color-warning-dark:#f57c00;--color-info-dark:#4fa8c5;--color-accent-blue:#2196f3;--color-accent-blue-dark:#1976d2;--color-accent-purple:#7c3aed;--color-accent-purple-dark:#6d28d9;--color-accent-yellow:#ffc107;--color-accent-yellow-dark:#ffa000;--bg-app:#3d6b52;--bg-learning:linear-gradient(135deg,#1a1a2e,#16213e);--bg-card:#fffffff2;--bg-card-dark:#0003;--bg-overlay:#000000b3;--text-primary-dark:#1a1a1a;--text-secondary-dark:#666;--text-muted:#999;--gradient-primary:linear-gradient(135deg,#2d5a3d,#3d6b52 50%,#4a7c5f);--gradient-dashboard:linear-gradient(135deg,#667eea,#764ba2);--gradient-celebration:linear-gradient(135deg,#ffeaa7,#fdcb6e);--gradient-trend:linear-gradient(135deg,#a8edea,#fed6e3);--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--radius-full:9999px;--shadow-card:0 2px 8px #0000001a;--shadow-card-hover:0 4px 16px #00000026;--z-base:1;--z-dropdown:100;--z-sticky:200;--z-modal:1000;--z-tooltip:1100}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.placeholder\:text-gray-400::placeholder{--tw-text-opacity:1;color:#9ca3af;color:rgb(156 163 175/var(--tw-text-opacity,1))}.last\:border-r-0:last-child{border-right-width:0}.hover\:z-50:hover{z-index:50}.hover\:-translate-y-4:hover{--tw-translate-y:-1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border:hover{border-width:1px}.hover\:border-gray-300:hover{--tw-border-opacity:1;border-color:#d1d5db;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.hover\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:#eff6ff;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:#f3f4f6;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:#d1d5db;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:#f9fafb;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:bg-green-600:hover{--tw-bg-opacity:1;background-color:#16a34a;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.hover\:bg-red-600:hover{--tw-bg-opacity:1;background-color:#dc2626;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.hover\:text-blue-900:hover{--tw-text-opacity:1;color:#1e3a8a;color:rgb(30 58 138/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.hover\:shadow-md:hover,.hover\:shadow-xl:hover{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.focus-visible\:outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-info:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(97 218 251/var(--tw-ring-opacity,1))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:640px){.sm\:h-10{height:2.5rem}.sm\:w-12{width:3rem}.sm\:w-16{width:4rem}.sm\:w-auto{width:auto}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-3xl{max-width:48rem}.sm\:max-w-\[500px\]{max-width:500px}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-md{max-width:28rem}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2{gap:.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.sm\:p-4{padding:1rem}.sm\:text-left{text-align:left}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}}body{background-color:var(--bg-app);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;padding:var(--space-5);padding-bottom:env(safe-area-inset-bottom);padding-left:max(var(--space-5),env(safe-area-inset-left));padding-right:max(var(--space-5),env(safe-area-inset-right))}@media (max-width:768px){body{padding:var(--space-3) var(--space-2);padding-bottom:env(safe-area-inset-bottom);padding-left:max(var(--space-2),env(safe-area-inset-left));padding-right:max(var(--space-2),env(safe-area-inset-right))}}@media (max-width:480px){body{padding:var(--space-2) var(--space-1);padding-bottom:env(safe-area-inset-bottom);padding-left:max(var(--space-1),env(safe-area-inset-left));padding-right:max(var(--space-1),env(safe-area-inset-right))}}.app-container{display:flex;flex-direction:column;gap:var(--space-5);margin:auto;max-width:900px;padding:0 var(--space-2);padding-top:80px}@media (max-width:768px){.app-container{gap:var(--space-3);padding:0 var(--space-2);padding-top:72px}}@media (max-width:480px){.app-container{gap:var(--space-2);padding:0 var(--space-1);padding-top:64px}}.my-hand{width:100%}.bidding-area{background-color:var(--bg-card-dark);border-radius:var(--radius-md);padding:var(--space-2);width:100%}.hand-display{align-items:flex-start;display:flex;gap:0;justify-content:center;margin-top:var(--space-2);min-height:125px;padding:var(--space-2)}@media (max-width:480px){.hand-display{-webkit-overflow-scrolling:touch;justify-content:flex-start;margin-left:calc(var(--space-1)*-1);margin-right:calc(var(--space-1)*-1);overflow-x:auto;padding-bottom:var(--space-3);padding-left:var(--space-2);padding-right:var(--space-2);scroll-snap-type:x proximity}.hand-display::-webkit-scrollbar{height:4px}.hand-display::-webkit-scrollbar-track{background:#ffffff1a;border-radius:2px}.hand-display::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:2px}.suit-group{flex-shrink:0;scroll-snap-align:start}}.suit-group .card{margin-left:-25px}.suit-group .card:first-child{margin-left:0}.suit-group>div.card{margin-left:-25px}.suit-group>div.card:first-child{margin-left:0}.hand-display .suit-group:not(:first-child) .card:first-child,.hand-display .suit-group:not(:first-child)>div.card:first-child{margin-left:-25px}.card{background-color:#f8f8f8;border:1px solid var(--text-muted);border-radius:var(--radius-md);box-shadow:var(--shadow-md);flex-shrink:0;font-weight:var(--font-bold);height:84px;position:relative;transition:transform var(--duration-fast) ease;width:60px}.card:hover{position:relative;transform:translateY(-15px);z-index:100}.card .suit-red{color:var(--suit-red)}.card .suit-black{color:var(--suit-black)}.card-corner .rank{font-size:18px}.card-corner .suit-symbol-small{font-size:16px}.top-left{left:5px;top:5px}.bottom-right{bottom:5px;right:5px;transform:rotate(180deg)}.card-center{height:100%}.card-center .suit-symbol-large{font-size:40px}@media (max-width:480px){.card{border-radius:5px;height:63px;width:45px}.suit-group .card,.suit-group>div.card{margin-left:-22px}.suit-group .card:first-child,.suit-group>div.card:first-child{margin-left:0}.hand-display .suit-group:not(:first-child) .card:first-child,.hand-display .suit-group:not(:first-child)>div.card:first-child{margin-left:-22px}.card-corner .rank{font-size:12px}.card-corner .suit-symbol-small{font-size:11px}.top-left{left:3px;top:2px}.bottom-right{bottom:2px;right:3px}.card-center .suit-symbol-large{font-size:24px}}@media (max-width:360px){.card{border-radius:4px;height:53px;width:38px}.hand-display .suit-group:not(:first-child) .card:first-child,.hand-display .suit-group:not(:first-child)>div.card:first-child,.suit-group .card,.suit-group>div.card{margin-left:-18px}.card-corner .rank{font-size:10px}.card-corner .suit-symbol-small{font-size:9px}.top-left{left:2px;top:1px}.bottom-right{bottom:1px;right:2px}.card-center .suit-symbol-large{font-size:18px}}.hand-analysis{background-color:var(--bg-card-dark);border-radius:var(--radius-md);margin-top:var(--space-5);padding:var(--space-3)}.hand-analysis h4{margin-top:0;text-align:center}.suit-points{display:flex;font-size:16px;justify-content:space-around;margin-top:10px}.suit-black{color:var(--text-primary)}.bidding-table{border-collapse:collapse;text-align:center;width:100%}.bidding-table td,.bidding-table th{border:1px solid var(--text-secondary);cursor:pointer;height:24px;min-width:60px;padding:var(--space-2);transition:background-color var(--duration-fast) ease}.bidding-table td:hover{background-color:#ffffff26}.bidding-table th{background-color:#ffffff1a;cursor:default}.bidding-table .current-player{animation:pulse-highlight 2s ease-in-out infinite;background-color:#fff3cd!important;border:3px solid var(--color-accent-yellow)!important;box-shadow:0 0 10px #ffc10780;color:var(--text-primary-dark);font-weight:var(--font-bold)}@keyframes pulse-highlight{0%,to{box-shadow:0 0 10px #ffc10780}50%{box-shadow:0 0 20px #ffc107cc}}.turn-message{background:#f0f4f8e6;border:2px solid #ffffff4d;border-radius:var(--radius-md);color:var(--text-secondary-dark);font-size:var(--text-base);font-weight:var(--font-semibold);margin:var(--space-2) 0;padding:var(--space-3) var(--space-5);text-align:center}.turn-message.your-turn{animation:pulse-turn 1.5s ease-in-out infinite;background:#4caf5033;border:2px solid var(--color-success);color:var(--text-primary)}@keyframes pulse-turn{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.02)}}.action-area{align-items:flex-start;background-color:var(--bg-card-dark);flex-wrap:wrap;gap:var(--space-5);justify-content:space-between}.action-area,.bidding-box-container{border-radius:var(--radius-md);display:flex;padding:var(--space-3)}.bidding-box-container{background-color:var(--bg-secondary);flex-direction:column;gap:var(--space-2)}.bidding-box-container h3{color:var(--text-primary);font-size:var(--text-base);margin:0 0 var(--space-2) 0}.bidding-box-calls,.bidding-box-levels,.bidding-box-suits{display:flex;flex-direction:row;gap:var(--space-2);justify-content:center}.bidding-box-container button{background-color:#f0f0f0;border:1px solid var(--text-secondary);border-radius:var(--radius-sm);color:var(--text-primary-dark);cursor:pointer;font-family:inherit;font-size:var(--text-sm);font-weight:var(--font-bold);padding:var(--space-2);width:50px}.bidding-box-calls button{width:60px}.bidding-box-levels button.selected{background-color:var(--color-accent-blue);color:var(--text-primary)}.bidding-box-container button:disabled{background-color:var(--bg-tertiary);color:var(--text-disabled);cursor:not-allowed}.controls-section{gap:var(--space-2)}.controls-section,.game-controls{display:flex;flex-direction:column}.game-controls{align-items:flex-start;gap:var(--space-3)}.convention-mode-badge{align-items:center;background:linear-gradient(135deg,#4263eb,#5c7cfa);border-radius:var(--radius-lg);box-shadow:0 2px 8px #4263eb4d;color:#fff;display:inline-flex;font-weight:600;gap:var(--space-2);padding:var(--space-2) var(--space-3)}.convention-mode-badge .convention-name{font-size:var(--text-base)}.convention-mode-badge .exit-convention-button{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:14px;height:24px;justify-content:center;padding:0;transition:background .2s ease;width:24px}.convention-mode-badge .exit-convention-button:hover{background:#ffffff59}.primary-action{box-shadow:0 4px 12px #4caf504d;font-size:var(--text-lg)!important;padding:var(--space-3) var(--space-6)!important}.secondary-actions{display:flex;gap:var(--space-2)}.secondary-action{font-size:var(--text-sm)!important;opacity:.9}.replay-button{background-color:var(--color-accent-yellow);border:none;border-radius:var(--radius-md);color:var(--text-primary-dark);font-family:inherit;font-size:var(--text-base);padding:var(--space-2) var(--space-5)}.replay-button:disabled{background-color:var(--bg-tertiary);color:var(--text-disabled);cursor:not-allowed}.play-button{background-color:var(--color-accent-blue);border:2px solid var(--color-accent-blue);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:var(--text-base);padding:var(--space-2) var(--space-5);transition:background-color var(--duration-fast) ease,transform var(--duration-instant) ease}.play-button:hover{background-color:var(--color-accent-blue-dark);border-color:var(--color-accent-blue-dark);transform:translateY(-1px)}.deal-button,.play-this-hand-button{background-color:var(--color-success);border:none;border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:var(--text-base);padding:var(--space-2) var(--space-5)}.play-this-hand-button{font-weight:var(--font-bold);transition:background-color var(--duration-fast) ease,transform var(--duration-instant) ease}.play-this-hand-button:hover{background-color:var(--color-success-dark);transform:translateY(-1px)}.feedback-panel{background-color:#ffffff1a;border-left:4px solid var(--color-info);border-radius:var(--radius-sm);margin-top:var(--space-3);padding:var(--space-3)}.error-message{background-color:var(--color-danger-dark);border:1px solid var(--color-danger-light);border-radius:var(--radius-sm);color:#f8d7da;margin-top:var(--space-3);padding:var(--space-2);text-align:center}.scenario-loader{align-items:center;display:flex;gap:var(--space-2)}.scenario-loader select{background-color:var(--text-primary);border:1px solid var(--text-muted);border-radius:var(--radius-sm);color:var(--text-primary-dark);font-size:var(--text-sm);padding:var(--space-2)}.scenario-loader button{background-color:var(--text-secondary-dark);border:none;border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:var(--text-sm);padding:var(--space-2) var(--space-4)}.show-hands-controls,.show-hands-toggle{align-items:center;display:flex;gap:var(--space-2)}.show-hands-toggle{background:#ffffff1a;border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-size:var(--text-sm);padding:var(--space-2) var(--space-3);transition:background var(--duration-fast) ease}.show-hands-toggle:hover{background:#fff3}.show-hands-toggle input[type=checkbox]{accent-color:var(--color-success);cursor:pointer;height:18px;width:18px}.show-hands-toggle span{-webkit-user-select:none;user-select:none}.table-layout{display:flex;flex-direction:column;gap:var(--space-3);margin:0 auto;max-width:1400px}.table-center{display:flex;justify-content:center}.table-middle{align-items:center;display:flex;gap:var(--space-3);justify-content:space-between}.table-east,.table-west{flex:0 0 300px;max-width:300px}.table-center-content{align-items:center;flex:1 1}.table-bottom,.table-center-content{display:flex;justify-content:center}.player-hand{background-color:#0000004d;border:2px solid #fff3;border-radius:var(--radius-md);padding:var(--space-3)}.player-east{--east-analysis-margin-left:-205px;--east-analysis-margin-right:5px;--east-cards-translateX:-50px;--east-cards-margin-left:-75px;--east-cards-margin-right:20px}.player-west{--west-analysis-margin-left:5px;--west-analysis-margin-right:-205px;--west-cards-translateX:50px;--west-cards-margin-left:20px;--west-cards-margin-right:-75px}.player-east,.player-west{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:500px;overflow:visible;padding:20px 15px}.player-hand h3{color:var(--color-accent-yellow);font-size:var(--text-lg);margin:0 0 var(--space-2) 0;text-align:center}.vertical-hand-container{align-items:center;display:flex;flex-direction:row;gap:12px;justify-content:center;max-width:100%;min-height:450px;padding:30px 10px;position:relative;width:100%}.player-east .hand-analysis,.player-west .hand-analysis{background-color:var(--bg-card-dark);border-radius:var(--radius-md);flex-shrink:0;font-size:var(--text-base);line-height:1.5;padding:var(--space-3);width:140px}.player-east .hand-analysis{margin-left:var(--east-analysis-margin-left);margin-right:var(--east-analysis-margin-right)}.player-west .hand-analysis{margin-left:var(--west-analysis-margin-left);margin-right:var(--west-analysis-margin-right)}.player-east .hand-analysis h4,.player-west .hand-analysis h4{font-size:1em;margin-bottom:8px;margin-top:0;text-align:center}.player-east .hand-analysis p,.player-west .hand-analysis p{font-size:1em;margin:5px 0;text-align:center}.player-east .suit-points,.player-west .suit-points{display:flex;flex-direction:column;font-size:14px;gap:4px;margin-top:10px}.player-east .suit-points>div,.player-west .suit-points>div{padding:2px 0;text-align:left}.player-north .hand-display,.player-south .hand-display{flex-direction:row}.player-east .hand-display{margin-left:var(--east-cards-margin-left);margin-right:var(--east-cards-margin-right);transform:translateX(var(--east-cards-translateX)) rotate(90deg);transform-origin:center center}.player-east .hand-display,.player-west .hand-display{align-items:center;background-color:#61dafb1a;border:2px solid #61dafb4d;border-radius:8px;display:flex;flex-direction:row;flex-shrink:0;height:100px;justify-content:center;padding:10px;width:410px}.player-west .hand-display{margin-left:var(--west-cards-margin-left);margin-right:var(--west-cards-margin-right);transform:translateX(var(--west-cards-translateX)) rotate(90deg);transform-origin:center center}.player-east .suit-group,.player-west .suit-group{align-items:center;display:flex;flex-direction:row;gap:0;justify-content:flex-start;margin:0;padding:0}.player-east .hand-display .suit-group:not(:first-child)>div:first-child,.player-east .suit-group>div,.player-west .hand-display .suit-group:not(:first-child)>div:first-child,.player-west .suit-group>div{margin-left:0}.ai-review-controls{display:flex;justify-content:center;margin-top:var(--space-2)}.ai-review-button{background-color:var(--color-accent-purple);border:none;border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:var(--text-base);font-weight:var(--font-semibold);padding:var(--space-2) var(--space-5);transition:background-color var(--duration-fast) ease}.ai-review-button:hover{background-color:var(--color-accent-purple-dark)}.feedback-button{background-color:var(--feedback-bg);border:1px solid var(--feedback-border);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:var(--text-sm);font-weight:var(--font-semibold);margin-left:var(--space-2);padding:var(--space-2) var(--space-4);transition:all var(--duration-fast) ease}.feedback-button:hover{background-color:var(--feedback-hover);border-color:var(--feedback-hover)}.modal-overlay{align-items:center;background-color:var(--bg-overlay);bottom:0;display:flex;justify-content:center;left:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:fixed;right:0;top:0;z-index:var(--z-modal)}.modal-content{background-color:#1e1e2e;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-height:80vh;max-width:600px;overflow-y:auto;padding:var(--space-8);width:90%}@media (min-width:769px) and (max-width:1024px){.modal-content{max-width:550px;padding:var(--space-6);width:85%}}@media (max-width:480px){.modal-overlay{align-items:flex-end;padding:0}.modal-content{animation:slideUp .3s ease-out;border-radius:var(--radius-xl) var(--radius-xl) 0 0;margin:0;max-height:95vh;max-width:100%;padding:var(--space-5);padding-bottom:max(var(--space-5),env(safe-area-inset-bottom));padding-top:var(--space-6);width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.modal-content:before{background:#ffffff4d;border-radius:2px;content:"";display:block;height:4px;margin:0 auto var(--space-4);width:40px}}.modal-content h2{color:var(--color-accent-yellow);font-size:var(--text-2xl);margin-bottom:var(--space-3);margin-top:0}.modal-content p{color:var(--text-secondary);margin-bottom:var(--space-5)}.modal-content code{background-color:#ffffff1a;border-radius:var(--radius-sm);color:var(--color-accent-yellow);font-family:Courier New,monospace;padding:2px var(--space-2)}.user-concern-section{margin-bottom:20px}.user-concern-section label{color:#ccc;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.user-concern-section textarea{background-color:#2a2a3a;border:1px solid #444;border-radius:5px;box-sizing:border-box;color:#fff;font-family:inherit;font-size:14px;padding:10px;resize:vertical;width:100%}.user-concern-section textarea:focus{border-color:#7c3aed;outline:none}.review-actions{display:flex;gap:10px;margin-bottom:20px}.primary-button{background-color:var(--color-accent-purple);border:none;border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;flex:1 1;font-family:inherit;font-size:var(--text-sm);font-weight:var(--font-semibold);padding:var(--space-2) var(--space-5);transition:background-color var(--duration-fast) ease}.primary-button:hover{background-color:var(--color-accent-purple-dark)}.secondary-button{background-color:initial;border:1px solid var(--text-secondary-dark);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;flex:1 1;font-family:inherit;font-size:var(--text-sm);padding:var(--space-2) var(--space-5);transition:all var(--duration-fast) ease}.secondary-button:hover{background-color:#ffffff1a;border-color:var(--text-muted)}.prompt-section{border-top:1px solid #444;margin-top:20px;padding-top:20px}.prompt-section h3{color:#ffc107;font-size:18px;margin-bottom:10px}.prompt-box{background-color:#2a2a3a;border:1px solid #444;border-radius:5px;margin-bottom:15px;max-height:200px;overflow-y:auto;padding:15px}.prompt-box pre{word-wrap:break-word;color:#ccc;font-family:Courier New,monospace;font-size:13px;margin:0;white-space:pre-wrap}.prompt-actions{align-items:center;display:flex;gap:10px}.copy-button{background-color:var(--color-success);border:none;border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;flex:1 1;font-family:inherit;font-size:var(--text-sm);font-weight:var(--font-semibold);padding:var(--space-2) var(--space-4);transition:background-color var(--duration-fast) ease}.copy-button:hover{background-color:var(--color-success-dark)}.close-button{background-color:initial;border:1px solid var(--text-secondary-dark);color:var(--text-secondary);flex:1 1;font-family:inherit;font-size:var(--text-sm);padding:var(--space-2) var(--space-4);transition:all var(--duration-fast) ease}.close-button:hover{background-color:#ffffff1a;border-color:var(--text-muted)}.convention-help-modal{max-height:80vh;max-width:800px;overflow-y:auto}.convention-section{background-color:#0000004d;border-radius:8px;margin-bottom:20px;padding:15px}.convention-section h3{border-bottom:1px solid #ffd7004d;color:gold;font-size:16px;margin-bottom:10px;margin-top:0;padding-bottom:5px}.convention-section p{color:#e0e0e0;line-height:1.6;margin:0}.convention-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.help-button{background-color:var(--color-info);border:1px solid var(--color-info);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:var(--text-sm);font-weight:var(--font-semibold);margin-left:var(--space-2);padding:var(--space-2) var(--space-4);transition:all var(--duration-fast) ease}.help-button:hover{background-color:var(--color-info-dark);border-color:var(--color-info-dark)}body,html{overflow-x:hidden;width:100%}@media (max-width:768px){body{padding:10px}.app-container{gap:15px;max-width:100%}.card{height:72px;width:50px}.card-corner .rank{font-size:14px}.card-corner .suit-symbol-small{font-size:12px}.card-center .suit-symbol-large{font-size:28px}.bidding-table{font-size:.85em}.bidding-table td,.bidding-table th{min-width:50px;padding:6px 4px}.action-area{flex-direction:column;gap:15px}.bidding-box-container{max-width:100%;width:100%}.controls-section{width:100%}.game-controls{flex-direction:column;width:100%}.deal-button,.replay-button{width:100%}.scenario-loader{align-items:stretch;flex-direction:column;width:100%}.ai-review-button,.ai-review-controls,.scenario-loader button,.scenario-loader select,.show-hands-controls,.show-hands-controls button{width:100%}.table-layout{max-width:100%}.table-middle{flex-direction:column;gap:10px}.table-east,.table-west{flex:1 1;max-width:100%}.modal-content{max-height:90vh;padding:20px;width:95%}.modal-content h2{font-size:20px}.hand-display{flex-wrap:wrap;gap:0}.suit-group .card{margin-left:-33px}.suit-group .card:first-child{margin-left:0}.suit-group>div{margin-left:-33px}.suit-group>div:first-child{margin-left:0}.hand-display .suit-group:not(:first-child) .card:first-child,.hand-display .suit-group:not(:first-child)>div:first-child{margin-left:-33px}}@media (max-width:480px){.card{height:60px;width:42px}.suit-group .card{margin-left:-25px}.suit-group .card:first-child{margin-left:0}.suit-group>div{margin-left:-25px}.suit-group>div:first-child{margin-left:0}.hand-display .suit-group:not(:first-child) .card:first-child,.hand-display .suit-group:not(:first-child)>div:first-child{margin-left:-25px}.card-corner .rank{font-size:12px}.card-corner .suit-symbol-small{font-size:10px}.card-center .suit-symbol-large{font-size:22px}.bidding-table{font-size:.75em}.bidding-table td,.bidding-table th{min-width:40px;padding:4px 2px}.modal-content{padding:15px}.prompt-actions,.review-actions{flex-direction:column}.close-button,.copy-button,.primary-button,.secondary-button{width:100%}}.learning-dashboard-button{background:var(--gradient-dashboard);border:none;border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-size:var(--text-base);font-weight:var(--font-semibold);margin-left:var(--space-2);padding:var(--space-2) var(--space-5);transition:transform var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.learning-dashboard-button:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.learning-dashboard-overlay{background:linear-gradient(135deg,#f5f7fa,#e4e8ed);bottom:0;left:0;overflow-y:auto;position:fixed;right:0;top:64px;z-index:900}@media (max-width:768px){.learning-dashboard-overlay{top:56px}}@media (max-width:480px){.learning-dashboard-overlay{top:56px}}.learning-mode-overlay{bottom:0;left:0;overflow-y:auto;position:fixed;right:0;top:64px;z-index:900}@media (max-width:768px){.learning-mode-overlay{top:56px}}@media (max-width:480px){.learning-mode-overlay{top:56px}}.learn-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 2px 8px #667eea4d;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .2s ease}.learn-button:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.top-bar{border-bottom:2px solid #ffffff4d;justify-content:space-between;margin-bottom:20px;padding:16px 0}.top-bar,.top-bar-left{align-items:center;display:flex}.top-bar-left{gap:12px}.home-button{background:#ffffff26;border:1px solid #ffffff4d;border-radius:8px;cursor:pointer;font-size:20px;line-height:1;padding:8px 12px;transition:all .2s ease}.home-button:hover{background:#ffffff40;transform:scale(1.05)}.home-button:active{transform:scale(.95)}.app-title{color:#fff;font-size:28px;font-weight:600;margin:0}.top-bar-right{align-items:center;display:flex;gap:12px}.glossary-button{background:#2196f3cc;border:1px solid #2196f3;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s ease}.glossary-button:hover{background:#1976d2e6;border-color:#1976d2;transform:translateY(-1px)}.glossary-button:active{transform:translateY(0)}.global-feedback-button{background:#059669cc;border:1px solid #059669;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s ease}.global-feedback-button:hover{background:#047857e6;border-color:#047857;transform:translateY(-1px)}.global-feedback-button:active{transform:translateY(0)}.user-menu{align-items:center;display:flex;gap:12px}.user-display{color:#ffffffe6;font-size:15px;font-weight:500}.auth-button,.logout-button{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s}.auth-button{background:#4caf50;color:#fff}.auth-button:hover{background:#45a049;box-shadow:0 2px 8px #4caf504d;transform:translateY(-1px)}.logout-button{background:#fff3;border:1px solid #ffffff4d;color:#fff}.logout-button:hover{background:#ffffff4d;border-color:#ffffff80}:root{--color-success:#4caf50;--color-danger:#f44336;--color-warning:#ff9800;--color-info:#61dafb;--bg-primary:#1a1a1a;--bg-secondary:#2a2a2a;--bg-tertiary:#3a3a3a;--text-primary:#fff;--text-secondary:#aaa;--text-disabled:#666;--suit-red:#d32f2f;--suit-black:#000;--partnership-ns:#4caf50;--partnership-ew:#ff9800;--highlight-current-player:#61dafb;--highlight-winner:gold;--highlight-vulnerable:#d32f2f;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 2px #0000001a;--shadow-md:0 4px 6px #0003;--shadow-lg:0 10px 15px #0000004d;--shadow-xl:0 20px 25px #0006;--glow-success:0 0 20px #4caf5080;--glow-danger:0 0 20px #f4433680;--glow-info:0 0 20px #61dafb80;--duration-instant:100ms;--duration-fast:200ms;--duration-normal:300ms;--duration-slow:500ms;--duration-slower:1000ms;--ease-out:cubic-bezier(0.25,0.46,0.45,0.94);--ease-in:cubic-bezier(0.55,0.055,0.675,0.19);--ease-in-out:cubic-bezier(0.645,0.045,0.355,1)}.bidding-summary{background-color:#2a2a2a;background-color:var(--bg-secondary);border-radius:8px;border-radius:var(--radius-md);max-width:300px;padding:1.5rem;padding:var(--space-6)}.contract-header-consolidated{align-items:stretch;background-color:#4caf50;background-color:var(--color-success);border-radius:12px;border-radius:var(--radius-lg);display:flex;gap:1rem;gap:var(--space-4);margin-bottom:1.5rem;margin-bottom:var(--space-6);min-height:100px;padding:1rem;padding:var(--space-4)}.unified-tricks-bar{align-items:stretch;background-color:#3a3a3a;background-color:var(--bg-tertiary);border-radius:8px;border-radius:var(--radius-md);display:flex;flex:2 1;min-height:80px;overflow:hidden}.tricks-lost-section,.tricks-remaining-section,.tricks-won-section{align-items:center;display:flex;justify-content:center;position:relative;transition:width .3s cubic-bezier(.25,.46,.45,.94);transition:width var(--duration-normal) var(--ease-out)}.tricks-won-section{background:linear-gradient(90deg,#4caf50,#66bb6a);background:linear-gradient(90deg,var(--color-success),#66bb6a)}.tricks-remaining-section{background-color:#3a3a3a;background-color:var(--bg-tertiary)}.tricks-lost-section{background:linear-gradient(90deg,#ef5350,#f44336);background:linear-gradient(90deg,#ef5350,var(--color-danger))}.tricks-count{color:#fff;color:var(--text-primary);font-size:1.5rem;font-size:var(--text-2xl);font-weight:700;text-shadow:0 2px 4px #0000004d}.contract-display-large{align-items:center;background-color:#2a2a2a;background-color:var(--bg-secondary);border-radius:8px;border-radius:var(--radius-md);display:flex;flex:1 1;flex-direction:column;gap:.5rem;gap:var(--space-2);justify-content:center;padding:1rem;padding:var(--space-4)}.contract-text{color:#fff;color:var(--text-primary);font-size:2rem;font-size:var(--text-3xl);font-weight:700;line-height:1}.declarer-text{color:#aaa;color:var(--text-secondary);font-size:1.125rem;font-size:var(--text-lg)}.tricks-summary{background-color:#2a2a2a;background-color:var(--bg-secondary);border-radius:8px;border-radius:var(--radius-md);display:flex;flex:1 1;flex-direction:column;justify-content:space-around;padding:1rem;padding:var(--space-4)}.trick-stat{align-items:center;display:flex;gap:.75rem;gap:var(--space-3)}.stat-label{color:#aaa;color:var(--text-secondary);font-size:.875rem;min-width:80px}.stat-value{color:#fff;color:var(--text-primary);font-size:1.25rem;font-size:var(--text-xl)}.bidding-summary-compact{background-color:#2a2a2a;background-color:var(--bg-secondary);border-radius:8px;border-radius:var(--radius-md);display:flex;flex:1 1;flex-direction:column;overflow:hidden}.bidding-header{background-color:#3a3a3a;background-color:var(--bg-tertiary);border-bottom:2px solid #1a1a1a;border-bottom:2px solid var(--bg-primary);color:#fff;color:var(--text-primary);font-size:1.125rem;font-size:var(--text-lg);font-weight:700;padding:.75rem;padding:var(--space-3);text-align:center}.bidding-auction-scroll{flex:1 1;font-size:.875rem;font-size:var(--text-sm);overflow-y:auto;padding:.5rem;padding:var(--space-2)}.bid-row{align-items:center;display:flex;gap:.75rem;gap:var(--space-3);padding:.25rem;padding:var(--space-1)}.bid-player{color:#61dafb;color:var(--color-info);font-weight:700;min-width:20px}.bid-value{color:#fff;color:var(--text-primary)}.bidding-summary h4{color:#61dafb;color:var(--color-info);margin:0 0 10px;text-align:center}.bidding-summary-table{font-size:.9em}.bidding-summary-header{border-bottom:1px solid #3a3a3a;border-bottom:1px solid var(--bg-tertiary);color:#61dafb;color:var(--color-info);font-weight:700;margin-bottom:5px;padding-bottom:5px;text-align:center}.bidding-summary-header,.bidding-summary-row{grid-gap:5px;display:grid;gap:5px;grid-template-columns:repeat(4,1fr)}.bidding-summary-row{margin-bottom:3px}.bidding-summary-cell{align-items:center;background-color:#1a1a1a;background-color:var(--bg-primary);border-radius:3px;display:flex;justify-content:center;min-height:20px;padding:3px;text-align:center}.contract-display{background-color:#2a2a2a;background-color:var(--bg-secondary);border-radius:8px;padding:15px;text-align:center}.contract-display h3{color:#61dafb;color:var(--color-info);margin:0 0 10px}.contract-details{align-items:center;display:flex;font-size:1.2em;gap:15px;justify-content:center}.contract-bid{color:#fff;font-size:1.5em;font-weight:700}.contract-declarer{color:#aaa;color:var(--text-secondary)}.tricks-display{background-color:#2a2a2a;background-color:var(--bg-secondary);border-radius:8px;padding:15px;text-align:center}.tricks-display h4{color:#61dafb;color:var(--color-info);margin:0 0 10px}.tricks-count{display:flex;font-size:1.1em;gap:20px;justify-content:center}.play-table{margin:20px auto;max-width:1200px;width:100%}.play-header{display:flex;gap:20px;justify-content:space-around;margin-bottom:30px}.play-area{grid-gap:15px;background-color:#1a1a1a;background-color:var(--bg-primary);border-radius:12px;display:grid;gap:15px;grid-template-areas:". north ." "west center east" ". south .";grid-template-columns:minmax(150px,1fr) minmax(400px,2fr) minmax(150px,1fr);grid-template-rows:auto 300px auto;min-height:600px;overflow:visible;padding:15px;position:relative;width:100%}.position{gap:10px;position:relative;z-index:1}.position,.position-north{align-items:center;display:flex;flex-direction:column}.position-north{grid-area:north;justify-content:center}.position-east{grid-area:east}.position-east,.position-south{align-items:center;display:flex;flex-direction:column;justify-content:center}.position-south{grid-area:south}.position-west{align-items:center;display:flex;flex-direction:column;grid-area:west;justify-content:center}.position-label{background-color:#2a2a2a;background-color:var(--bg-secondary);border-radius:5px;color:#61dafb;color:var(--color-info);font-weight:700;margin-bottom:10px;padding:5px 10px;text-align:center;width:100%}.current-trick-container{display:flex;height:100%;justify-content:center;min-height:350px;width:100%;z-index:50}.current-trick,.current-trick-container{align-items:center;grid-area:center;position:relative}.current-trick{grid-gap:0;background-color:#0d4d0d;border:3px solid #0a3d0a;border-radius:10px;display:grid;gap:0;grid-template-areas:". north ." "west . east" ". south .";grid-template-columns:1fr auto 1fr;grid-template-rows:1fr auto 1fr;justify-items:center;min-height:250px;padding:20px}.current-trick.empty{background-color:#2a2a2a;background-color:var(--bg-secondary);border:2px dashed #3a3a3a;border:2px dashed var(--bg-tertiary);color:#888}.current-trick.empty,.trick-position{align-items:center;display:flex;justify-content:center}.trick-position{min-height:110px;min-width:80px}.trick-north{grid-area:north}.trick-east{grid-area:east}.trick-south{grid-area:south}.trick-west{grid-area:west}.trick-card-positioned{align-items:center;display:flex;flex-direction:column;gap:5px;position:relative}.trick-card-positioned.winner .trick-card{animation:pulse-winner 1.5s ease-in-out infinite;border:4px solid gold;border:4px solid var(--highlight-winner);box-shadow:0 0 25px gold;transform:scale(1.1)}@keyframes pulse-winner{0%,to{box-shadow:0 0 25px gold}50%{box-shadow:0 0 35px gold,0 0 50px #ffd70099}}.winner-badge{border-radius:12px;box-shadow:0 2px 5px #0000004d;font-size:.8em;padding:3px 10px;top:-10px}.trick-winner-announcement,.winner-badge{background-color:gold;background-color:var(--highlight-winner);color:#000;font-weight:700;position:absolute;z-index:10}.trick-winner-announcement{animation:fadeIn .5s ease-in;border-radius:20px;bottom:10px;box-shadow:0 4px 10px #ffd700b3;font-size:.95em;left:50%;padding:8px 16px;transform:translateX(-50%);white-space:nowrap}.trick-position-label{color:#aaa;color:var(--text-secondary);font-size:.9em;font-weight:700}.trick-card{background-color:#fff;border:2px solid #333;border-radius:6px;box-shadow:0 3px 6px #00000040;min-width:45px;padding:8px 6px;text-align:center;transition:all .3s ease;width:50px}.trick-rank{display:block;font-size:1.4em;font-weight:700}.trick-suit{display:block;font-size:1.2em}.playable-card{background-color:#fff;border:2px solid #333;border-radius:8px;box-shadow:0 2px 4px #00000026;cursor:pointer;display:inline-block;flex-shrink:0;height:84px;margin:2px;padding:8px 5px;position:relative;transition:all .2s ease;width:60px}.playable-card.clickable{border:3px solid #4caf50;box-shadow:0 0 10px #4caf5080;cursor:pointer}.playable-card.clickable:active,.playable-card.clickable:hover{animation:pulse-clickable 1s infinite;border-color:#61dafb;border-width:4px;box-shadow:0 12px 20px #61dafbcc;position:relative;transform:translateY(-15px) scale(1.05);z-index:40}.playable-card:not(.clickable):active{animation:none!important;box-shadow:none!important;transform:none!important}@media (hover:none) and (pointer:coarse){.playable-card.clickable{border-width:3px;box-shadow:0 0 15px #4caf5099}.playable-card.clickable:active{box-shadow:0 8px 15px #61dafbcc;transform:translateY(-10px) scale(1.03)}}@keyframes pulse-clickable{0%,to{box-shadow:0 12px 20px #61dafbcc}50%{box-shadow:0 12px 25px #61dafb}}.playable-card.disabled{cursor:not-allowed;opacity:1}.playable-card .card-corner{align-items:center;display:flex;flex-direction:column;font-size:.9em}.playable-card .card-corner.top-left{left:8px;position:absolute;top:5px}.playable-card .card-corner.bottom-right{bottom:5px;position:absolute;right:8px;transform:rotate(180deg)}.playable-card .card-center{align-items:center;display:flex;font-size:2em;height:100%;justify-content:center}.playable-card .rank{font-size:1.2em;font-weight:700}.playable-card .suit-symbol-small{font-size:1em}.playable-card .suit-symbol-large{font-size:1.8em}.user-play-hand{display:flex;flex-direction:row;gap:0;justify-content:center;margin:0 auto;max-width:100%;overflow:visible;width:100%}.dummy-hand{display:flex;flex-direction:row}.dummy-hand,.position-north .dummy-hand,.position-south .dummy-hand{background-color:#61dafb1a;border:2px solid #61dafb4d;border-radius:8px;gap:0;justify-content:center;margin:0 auto;max-width:100%;overflow:visible;padding:10px;width:100%}.position-north .dummy-hand,.position-south .dummy-hand{display:flex!important;flex-direction:row!important;grid-template-columns:none!important;grid-template-rows:none!important}.position-east .dummy-hand,.position-west .dummy-hand{align-items:center;background-color:#61dafb1a;border:2px solid #61dafb4d;border-radius:8px;display:flex;flex-direction:column;gap:0;max-width:100px;overflow:visible;padding:10px;width:auto}.position-north .dummy-hand .suit-group,.position-south .dummy-hand .suit-group{align-items:flex-start;background-color:initial;flex-direction:row!important;flex-wrap:nowrap!important;grid-column:unset!important;grid-row:unset!important;justify-content:flex-start;min-height:auto;padding:0}.position-east .dummy-hand .suit-group,.position-west .dummy-hand .suit-group{align-items:center;background-color:initial;display:flex;flex-direction:column;gap:0;min-height:auto;padding:0}.position-east .dummy-hand .suit-group .playable-card,.position-west .dummy-hand .suit-group .playable-card{margin-bottom:0;margin-left:0!important;margin-right:0;margin-top:-70px}.position-east .dummy-hand .suit-group:first-child .playable-card:first-child,.position-west .dummy-hand .suit-group:first-child .playable-card:first-child{margin-top:0}.position-east .dummy-hand .suit-group:not(:first-child) .playable-card:first-child,.position-west .dummy-hand .suit-group:not(:first-child) .playable-card:first-child{margin-left:0!important;margin-top:-70px}.declarer-hand{display:flex;flex-direction:row}.declarer-hand,.position-north .declarer-hand,.position-south .declarer-hand{gap:0;justify-content:center;margin:0 auto;max-width:100%;overflow:visible;width:100%}.position-north .declarer-hand,.position-south .declarer-hand{background-color:#61dafb1a;border:2px solid #61dafb4d;border-radius:8px;display:flex!important;flex-direction:row!important;grid-template-columns:none!important;grid-template-rows:none!important;padding:10px}.position-north .declarer-hand .suit-group,.position-south .declarer-hand .suit-group{align-items:flex-start;background-color:initial;flex-direction:row!important;flex-wrap:nowrap!important;grid-column:unset!important;grid-row:unset!important;justify-content:flex-start;min-height:auto;padding:0}.position-east .declarer-hand,.position-west .declarer-hand{align-items:center;background-color:#61dafb1a;border:2px solid #61dafb4d;border-radius:8px;display:flex;flex-direction:column;gap:0;max-width:100px;overflow:visible;padding:10px;width:auto}.position-east .declarer-hand .suit-group,.position-west .declarer-hand .suit-group{align-items:center;background-color:initial;display:flex;flex-direction:column;gap:0;min-height:auto;padding:0}.position-east .declarer-hand .suit-group .playable-card,.position-west .declarer-hand .suit-group .playable-card{margin-bottom:0;margin-left:0!important;margin-right:0;margin-top:-70px}.position-east .declarer-hand .suit-group:first-child .playable-card:first-child,.position-west .declarer-hand .suit-group:first-child .playable-card:first-child{margin-top:0}.position-east .declarer-hand .suit-group:not(:first-child) .playable-card:first-child,.position-west .declarer-hand .suit-group:not(:first-child) .playable-card:first-child{margin-left:0!important;margin-top:-70px}.suit-group{align-items:flex-start;background-color:#ffffff0d;border-radius:5px;display:flex;flex-direction:row;flex-wrap:nowrap;gap:0;justify-content:flex-start;min-height:120px;padding:5px;position:relative}.suit-group .playable-card{margin:0 0 0 -25px}.suit-group .playable-card:first-child{margin-left:0}.declarer-hand .suit-group:not(:first-child) .playable-card:first-child,.dummy-hand .suit-group:not(:first-child) .playable-card:first-child,.user-play-hand .suit-group:not(:first-child) .playable-card:first-child{margin-left:-25px}.suit-red{color:#d32f2f;color:var(--suit-red)}.suit-black{color:#000}.score-modal-overlay{align-items:center;background-color:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.score-modal{background-color:#282c34;border-radius:12px;box-shadow:0 10px 30px #00000080;color:#fff;max-width:500px;padding:30px;width:90%}.score-modal h2{color:#61dafb;color:var(--color-info);margin-top:0;text-align:center}.score-details{margin:20px 0}.score-row{border-bottom:1px solid #3a3a3a;border-bottom:1px solid var(--bg-tertiary);display:flex;justify-content:space-between;padding:10px 0}.score-row.total{border-bottom:none;border-top:2px solid #61dafb;border-top:2px solid var(--color-info);font-size:1.3em;font-weight:700;margin-top:15px;padding-top:15px}.score-value.made{color:#4caf50}.score-value.down{color:#f44336}.score-value.positive{color:#4caf50}.score-value.negative{color:#f44336}.close-button{background-color:#61dafb;background-color:var(--color-info);border-radius:6px;color:#282c34;font-size:1em;font-weight:700;margin-top:20px;padding:12px;transition:background-color .2s;width:100%}.close-button:hover{background-color:#4fa8c5}@media (max-width:900px){.play-area{grid-template-columns:150px 1fr 150px;grid-template-rows:auto 250px auto}.playable-card{min-height:80px;min-width:50px;padding:10px 5px}.suit-group .playable-card{margin-left:-33px}.suit-group .playable-card:first-child{margin-left:0}.declarer-hand .suit-group:not(:first-child) .playable-card:first-child,.dummy-hand .suit-group:not(:first-child) .playable-card:first-child,.user-play-hand .suit-group:not(:first-child) .playable-card:first-child{margin-left:-33px}.play-header{flex-direction:column;gap:10px}}@media (max-width:768px){.play-table{margin:10px auto;width:100%}.play-header{align-items:stretch;flex-direction:column;gap:10px}.bidding-summary,.contract-display,.tricks-display{max-width:100%;width:100%}.play-area{gap:10px;grid-template-columns:100px 1fr 100px;grid-template-rows:auto 200px auto;min-height:400px;padding:10px}.current-trick{flex-wrap:wrap;gap:8px;min-height:100px;padding:10px}.trick-card{min-width:45px;padding:10px 5px}.trick-rank{font-size:1.4em}.trick-suit{font-size:1.2em}.playable-card{margin:2px;min-height:70px;min-width:45px;padding:8px 5px}.suit-group{flex-wrap:wrap;max-width:100%;min-height:auto}.suit-group .playable-card{margin-left:-22px;margin-right:0;margin-top:0}.suit-group .playable-card:first-child{margin-left:0}.suit-group .playable-card:nth-child(n+9){margin-top:5px}.declarer-hand .suit-group:not(:first-child) .playable-card:first-child,.dummy-hand .suit-group:not(:first-child) .playable-card:first-child,.user-play-hand .suit-group:not(:first-child) .playable-card:first-child{margin-left:-22px}.playable-card .rank{font-size:1em}.playable-card .suit-symbol-large{font-size:1.5em}.declarer-hand,.dummy-hand,.user-play-hand{flex-wrap:wrap;max-width:100%;overflow-x:hidden}.position-label{font-size:.9em;padding:3px 8px}.score-modal{padding:20px;width:95%}.score-modal h2{font-size:1.3em}.score-row{font-size:.95em;padding:8px 0}}@media (max-width:480px){.play-area{gap:4px;grid-template-columns:70px 1fr 70px;grid-template-rows:auto 130px auto;padding:4px}.current-trick{gap:4px;min-height:70px;padding:4px}.trick-card{border-radius:4px;border-width:1px;min-width:36px;padding:4px 3px;width:40px}.trick-rank{font-size:1em}.trick-suit{font-size:.85em}.playable-card{border-radius:5px;border-width:1px;height:63px;margin:1px;padding:3px 2px;width:45px}.suit-group{flex-wrap:nowrap;min-height:auto;padding:2px}.suit-group .playable-card{margin-left:-22px;margin-right:0;margin-top:0}.suit-group .playable-card:first-child{margin-left:0}.declarer-hand .suit-group:not(:first-child) .playable-card:first-child,.dummy-hand .suit-group:not(:first-child) .playable-card:first-child,.user-play-hand .suit-group:not(:first-child) .playable-card:first-child{margin-left:-22px}.playable-card .rank{font-size:.8em}.playable-card .suit-symbol-large{font-size:1.1em}.declarer-hand,.dummy-hand,.user-play-hand{margin:0 auto;max-width:100%;overflow:visible;width:fit-content}.position-label{font-size:.75em;padding:2px 5px}.bidding-summary-table{font-size:.8em}.contract-details{font-size:.95em}.contract-bid{font-size:1.1em}.tricks-count{font-size:.9em;gap:8px}.score-modal{padding:15px}.score-modal h2{font-size:1.2em}.score-row{font-size:.9em;padding:6px 0}.trick-winner-announcement{font-size:.9em;padding:8px 15px}}@media (max-width:360px){.play-area{gap:3px;grid-template-columns:55px 1fr 55px;grid-template-rows:auto 100px auto;padding:3px}.current-trick{min-height:60px;padding:3px}.trick-card{border-radius:3px;min-width:32px;padding:3px 2px;width:34px}.trick-rank{font-size:.9em}.trick-suit{font-size:.75em}.playable-card{border-radius:4px;height:53px;padding:2px 1px;width:38px}.suit-group{padding:1px}.declarer-hand .suit-group:not(:first-child) .playable-card:first-child,.dummy-hand .suit-group:not(:first-child) .playable-card:first-child,.suit-group .playable-card,.user-play-hand .suit-group:not(:first-child) .playable-card:first-child{margin-left:-18px}.playable-card .rank{font-size:.7em}.playable-card .suit-symbol-large{font-size:.9em}.playable-card .card-corner{font-size:.65em}.playable-card .card-corner.top-left{left:2px;top:1px}.playable-card .card-corner.bottom-right{bottom:1px;right:2px}.position-label{font-size:.65em;padding:1px 3px}.tricks-count{font-size:.8em;gap:5px}.contract-bid{font-size:.95em}}.last-trick-button-container{display:flex;grid-column:2;justify-content:center;margin-top:.5rem;margin-top:var(--space-2)}.last-trick-button{background:#2a2a2a;background:var(--bg-secondary);border:1px solid #fff3;border-radius:4px;color:#aaa;color:var(--text-secondary);cursor:pointer;font-size:.85rem;font-weight:500;padding:.25rem .75rem;padding:var(--space-1) var(--space-3);transition:all .2s ease}.last-trick-button:hover{background:#3a3a3a;background:var(--bg-tertiary);border-color:#ffffff4d;color:#fff;color:var(--text-primary)}.last-trick-button:active{transform:scale(.98)}@media (max-width:480px){.last-trick-button{font-size:.75rem;padding:.25rem .5rem;padding:var(--space-1) var(--space-2)}}.turn-indicator{background:var(--bg-secondary);border:2px solid var(--bg-tertiary);border-radius:var(--radius-md);margin:var(--space-4) 0;padding:var(--space-4);text-align:center;transition:all var(--duration-normal) var(--ease-out)}.turn-indicator.user-turn{animation:pulse-border 2s ease-in-out infinite;background:#61dafb1a;border-color:var(--highlight-current-player)}.turn-indicator-content{align-items:center;display:flex;gap:var(--space-3);justify-content:center}.turn-text{display:flex;flex-direction:column;gap:var(--space-1)}.turn-message{color:var(--text-primary);font-size:var(--text-xl);font-weight:700;letter-spacing:.5px}.turn-indicator.user-turn .turn-message{color:var(--highlight-current-player);font-size:var(--text-2xl)}.turn-hint{color:var(--text-secondary);font-size:var(--text-sm);font-weight:400}.turn-indicator.user-turn .turn-hint{color:var(--color-info)}.turn-icon{animation:icon-pulse 2s ease-in-out infinite;font-size:var(--text-2xl)}@keyframes pulse-border{0%,to{border-color:var(--highlight-current-player);box-shadow:0 0 0 0 #61dafbb3}50%{border-color:#4fa8c5;box-shadow:0 0 0 10px #61dafb00}}@keyframes icon-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.compact-turn-indicator{align-items:center;animation:arrow-pulse 1.5s ease-in-out infinite;color:var(--highlight-current-player);display:inline-flex;font-size:var(--text-lg);font-weight:700;justify-content:center;margin-left:var(--space-2)}@keyframes arrow-pulse{0%,to{opacity:1;transform:translateX(0)}50%{opacity:.6;transform:translateX(-3px)}}@media (max-width:768px){.turn-indicator{margin:var(--space-3) 0;padding:var(--space-3)}.turn-message{font-size:var(--text-lg)}.turn-indicator.user-turn .turn-message{font-size:var(--text-xl)}.turn-hint{font-size:var(--text-xs)}.turn-icon{font-size:var(--text-xl)}.turn-indicator-content{gap:var(--space-2)}}@media (max-width:480px){.turn-indicator{margin:var(--space-2) 0;padding:var(--space-2)}.turn-message{font-size:var(--text-base)}.turn-indicator.user-turn .turn-message{font-size:var(--text-lg)}.turn-hint{font-size:.7rem}.turn-icon{display:none;font-size:var(--text-lg)}.compact-turn-indicator{font-size:var(--text-base)}}@media (prefers-reduced-motion:reduce){.compact-turn-indicator,.turn-icon,.turn-indicator.user-turn{animation:none}.turn-indicator.user-turn{border-color:var(--highlight-current-player);box-shadow:0 0 0 3px #61dafb4d}}@media (prefers-contrast:high){.turn-indicator{border-width:3px}.turn-indicator.user-turn{background:var(--bg-primary);border-color:var(--highlight-current-player)}.turn-message{font-weight:900}}.glossary-backdrop{animation:fadeIn .2s ease;background:#0006;bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000}.glossary-drawer{animation:slideIn .3s ease;background:linear-gradient(180deg,#1a2a1a,#0d1a0d);border-left:1px solid #4caf504d;box-shadow:-4px 0 20px #0000004d;display:flex;flex-direction:column;height:100vh;max-width:90vw;overflow:hidden;position:fixed;right:0;top:0;width:380px;z-index:1001}@keyframes slideIn{0%{transform:translateX(100%)}to{transform:translateX(0)}}.glossary-drawer.senior-mode{font-size:18px;width:420px}.glossary-drawer.senior-mode .term-name{font-size:20px}.glossary-drawer.senior-mode .term-definition{font-size:18px;line-height:1.6}.glossary-drawer.senior-mode .search-input{font-size:18px;padding:14px 16px 14px 44px}.glossary-drawer.senior-mode .category-tab{font-size:15px;padding:12px 16px}.glossary-header{border-bottom:1px solid #ffffff1a;flex-shrink:0;padding:20px}.glossary-title-row{align-items:center;display:flex;justify-content:space-between}.glossary-header h2{color:#4caf50;font-size:24px;font-weight:600;margin:0}.close-button{align-items:center;border-radius:8px;color:#fff;display:flex;font-size:24px;height:36px;justify-content:center;line-height:1;transition:all .2s;width:36px}.glossary-subtitle{color:#fff9;font-size:14px;margin:8px 0 0}.glossary-search{flex-shrink:0;padding:16px 20px}.search-input-wrapper{position:relative}.search-icon{font-size:16px;left:14px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.search-input{background:#ffffff14;border:2px solid #fff3;border-radius:10px;color:#fff;font-size:16px;outline:none;padding:12px 40px;transition:all .2s;width:100%}.search-input::placeholder{color:#fff6}.search-input:focus{background:#ffffff1f;border-color:#4caf50}.clear-search{background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:16px;height:24px;line-height:1;position:absolute;right:10px;top:50%;transform:translateY(-50%);transition:all .2s;width:24px}.clear-search:hover{background:#ffffff4d}.category-tabs{display:flex;flex-shrink:0;flex-wrap:wrap;gap:8px;max-height:100px;overflow-y:auto;padding:0 20px 16px}.category-tab{align-items:center;background:#0000;border:1px solid #fff3;border-radius:20px;color:#ffffffb3;cursor:pointer;display:flex;font-size:13px;gap:6px;padding:8px 12px;transition:all .2s;white-space:nowrap}.category-tab:hover{border-color:#4caf5080;color:#fff}.category-tab.active{background:#4caf50;border-color:#4caf50;color:#fff}.category-icon{font-size:14px}.category-name{display:none}.category-tab.active .category-name{display:inline}.results-info{border-bottom:1px solid #ffffff1a;color:#ffffff80;flex-shrink:0;font-size:13px;padding:8px 20px}.no-results{color:#ff9800}.terms-list{flex:1 1;overflow-y:auto;padding:8px 12px}.term-item{background:#ffffff08;border-radius:10px;margin-bottom:8px;overflow:hidden;transition:all .2s}.term-item:hover{background:#ffffff0f}.term-item.expanded{background:#4caf501a;border:1px solid #4caf504d}.term-header{background:#0000;border:none;color:#fff;cursor:pointer;gap:12px;justify-content:space-between;padding:14px 16px;text-align:left;width:100%}.term-header,.term-title-row{align-items:center;display:flex}.term-title-row{flex:1 1;gap:10px;min-width:0}.term-name{color:#fff;font-size:16px;font-weight:500}.expand-icon{color:#ffffff80;flex-shrink:0;font-size:20px}.difficulty-badge{border-radius:12px;flex-shrink:0;font-size:11px;font-weight:500;padding:2px 8px;text-transform:uppercase}.difficulty-badge.beginner{background:#4caf5033;color:#4caf50}.difficulty-badge.intermediate{background:#2196f333;color:#2196f3}.difficulty-badge.advanced{background:#9c27b033;color:#ce93d8}.term-content{animation:expandIn .2s ease;padding:0 16px 16px}@keyframes expandIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.term-definition{color:#ffffffe6;font-size:15px;line-height:1.5;margin:0 0 12px}.term-example{background:#0003;border-radius:8px;font-size:14px;margin-bottom:12px;padding:10px 12px}.example-label{color:#ffb74d;font-weight:500;margin-right:6px}.example-text{color:#fffc;font-style:italic}.related-terms{margin-bottom:12px}.related-label{color:#ffffff80;display:block;font-size:13px;margin-bottom:6px}.related-links{display:flex;flex-wrap:wrap;gap:6px}.related-link{background:#4caf5026;border:1px solid #4caf504d;border-radius:14px;color:#81c784;cursor:pointer;font-size:13px;padding:4px 10px;transition:all .2s}.related-link:hover{background:#4caf504d;color:#fff}.term-category{margin-top:8px}.category-chip{align-items:center;background:#ffffff1a;border-radius:12px;color:#fff9;display:inline-flex;font-size:12px;gap:4px;padding:4px 10px}.difficulty-legend{align-items:center;background:#0003;border-top:1px solid #ffffff1a;display:flex;flex-shrink:0;gap:16px;padding:12px 20px}.legend-title{color:#ffffff80;font-size:12px}.legend-item{align-items:center;display:flex;font-size:12px;gap:4px}.legend-dot{border-radius:50%;height:8px;width:8px}.legend-item.beginner .legend-dot{background:#4caf50}.legend-item.beginner{color:#4caf50}.legend-item.intermediate .legend-dot{background:#2196f3}.legend-item.intermediate{color:#2196f3}.legend-item.advanced .legend-dot{background:#ce93d8}.legend-item.advanced{color:#ce93d8}@media (max-width:480px){.glossary-drawer{max-width:100vw;width:100vw}.category-tabs{gap:6px;padding:0 16px 12px}.category-tab{font-size:12px;padding:6px 10px}.term-header{padding:12px 14px}.term-name{font-size:15px}.difficulty-legend{flex-wrap:wrap;gap:10px;justify-content:center}}@media (min-width:481px) and (max-width:768px){.glossary-drawer{width:320px}}.category-tab:focus,.clear-search:focus,.close-button:focus,.related-link:focus,.term-header:focus{outline:2px solid #4caf50;outline-offset:2px}.terms-list::-webkit-scrollbar{width:8px}.terms-list::-webkit-scrollbar-track{background:#ffffff0d;border-radius:4px}.terms-list::-webkit-scrollbar-thumb{background:#4caf504d;border-radius:4px}.terms-list::-webkit-scrollbar-thumb:hover{background:#4caf5080}.term-trigger{color:#81c784;cursor:help;display:inline;position:relative;text-decoration:underline;text-decoration-color:#81c78480;text-decoration-style:dotted;text-underline-offset:3px;transition:all .2s}.term-trigger:hover{color:#4caf50;text-decoration-color:#4caf50}.term-trigger:focus{border-radius:2px;outline:2px solid #4caf5080;outline-offset:2px}.help-icon{align-items:center;background:#4caf5033;border-radius:50%;color:#4caf50;display:inline-flex;font-size:10px;font-weight:600;height:14px;justify-content:center;margin-left:3px;vertical-align:super;width:14px}.term-trigger.senior-mode{font-size:1.1em}.term-trigger.senior-mode .help-icon{font-size:12px;height:18px;width:18px}.term-tooltip{animation:tooltipFadeIn .2s ease;background:linear-gradient(145deg,#1e3a1e,#0d2010);border:1px solid #4caf5066;border-radius:12px;box-shadow:0 8px 24px #0006;max-width:calc(100vw - 40px);padding:14px 16px;position:fixed;width:280px;z-index:2000}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.term-tooltip.pinned{border-color:#4caf50;box-shadow:0 8px 32px #4caf504d}.term-tooltip.senior-mode{padding:18px 20px;width:320px}.term-tooltip.senior-mode .tooltip-term{font-size:18px}.term-tooltip.senior-mode .tooltip-definition{font-size:16px}.tooltip-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.tooltip-term{color:#4caf50;font-size:16px;font-weight:600}.tooltip-difficulty{border-radius:10px;font-size:10px;font-weight:500;padding:2px 8px;text-transform:uppercase}.tooltip-difficulty.beginner{background:#4caf5033;color:#4caf50}.tooltip-difficulty.intermediate{background:#2196f333;color:#64b5f6}.tooltip-difficulty.advanced{background:#9c27b033;color:#ce93d8}.tooltip-definition{color:#ffffffe6;font-size:14px;line-height:1.5;margin:0 0 10px}.tooltip-example{background:#0003;border-radius:6px;color:#ffffffb3;font-size:13px;line-height:1.4;margin:0 0 10px;padding:8px 10px}.tooltip-more-link{background:#4caf5026;border:1px solid #4caf504d;border-radius:6px;color:#81c784;cursor:pointer;display:block;font-size:13px;margin-top:8px;padding:8px 12px;text-align:center;transition:all .2s;width:100%}.tooltip-more-link:hover{background:#4caf5040;color:#fff}.tooltip-more-link:focus{outline:2px solid #4caf50;outline-offset:2px}.tooltip-hint{border-top:1px solid #ffffff1a;color:#fff6;display:block;font-size:11px;margin-top:8px;padding-top:8px;text-align:center}.term-highlight-text{display:inline}@media (max-width:480px){.term-tooltip{left:20px!important;padding:12px 14px;right:20px;width:calc(100vw - 40px)}.tooltip-term{font-size:15px}.tooltip-definition{font-size:14px}}@media (min-width:481px) and (max-width:768px){.term-tooltip{width:260px}}@media (prefers-contrast:high){.term-trigger{text-decoration-style:solid;text-decoration-thickness:2px}.term-tooltip{border-width:2px}}@media (prefers-reduced-motion:reduce){.term-tooltip{animation:none}}.learning-dashboard{margin:0 auto;max-width:1200px;padding:var(--space-5)}.learning-dashboard-header{margin-bottom:var(--space-8)}.learning-dashboard-header h2{color:var(--text-primary-dark);font-size:var(--text-3xl);font-weight:var(--font-semibold);margin:0 0 var(--space-3) 0}.learning-dashboard-subtitle{color:var(--text-secondary-dark);font-size:var(--text-base)}.empty-dashboard-state{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);margin:var(--space-5) 0 var(--space-10) 0;padding:60px var(--space-10);text-align:center}.empty-dashboard-icon{animation:float 3s ease-in-out infinite;font-size:64px;margin-bottom:var(--space-5)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.empty-dashboard-title{color:#2c3e50;font-size:var(--text-3xl);font-weight:var(--font-semibold);margin:0 0 var(--space-4) 0}.empty-dashboard-message{color:#555;font-size:var(--text-lg);line-height:1.6;margin:0 auto var(--space-8) auto;max-width:600px}.empty-dashboard-tips{background:#ffffffb3;border-radius:var(--radius-lg);margin:0 auto;max-width:500px;padding:var(--space-6);text-align:left}.tip-title{color:#2c3e50;font-size:var(--text-base);font-weight:var(--font-semibold);margin:0 0 var(--space-3) 0}.tip-list{list-style:none;margin:0;padding:0}.tip-list li{color:#555;font-size:var(--text-base);line-height:1.5;padding:var(--space-2) 0 var(--space-2) var(--space-6);position:relative}.tip-list li:before{color:#27ae60;content:"✓";font-size:var(--text-lg);font-weight:var(--font-bold);left:0;position:absolute}.stats-section{margin-bottom:var(--space-8)}.stats-section-title{color:var(--text-primary-dark);font-size:var(--text-lg);font-weight:var(--font-semibold);letter-spacing:.5px;margin:0 0 var(--space-3) 0;text-transform:uppercase}.user-stats-bar{background:var(--gradient-dashboard);border-radius:var(--radius-lg);color:var(--text-primary);display:flex;flex-wrap:wrap;gap:var(--space-5);padding:var(--space-5)}.gameplay-stats-bar{background:linear-gradient(135deg,#f093fb,#f5576c)}.stat-item{flex:1 1;min-width:120px;text-align:center}.stat-value{font-size:var(--text-3xl);font-weight:var(--font-bold);margin-bottom:var(--space-1)}.stat-label{font-size:var(--text-sm);opacity:.9}.level-indicator{align-items:center;display:flex;gap:var(--space-3)}.level-badge{font-size:var(--text-2xl);font-weight:var(--font-bold)}.xp-progress{flex:1 1}.xp-progress-bar{background:#ffffff4d;border-radius:var(--radius-sm);height:8px;margin-top:var(--space-1);overflow:hidden}.xp-progress-fill{background:var(--text-primary);height:100%;transition:width var(--duration-normal) ease}.xp-text{font-size:var(--text-xs);margin-top:var(--space-1);opacity:.9}.dashboard-grid{grid-gap:var(--space-5);display:grid;gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(min(350px,100%),1fr));margin-bottom:var(--space-8)}.dashboard-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-6);transition:box-shadow var(--duration-fast) ease}.dashboard-card:hover{box-shadow:var(--shadow-card-hover)}.dashboard-card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-5)}.dashboard-card-title{color:var(--text-primary-dark);font-size:var(--text-xl);font-weight:var(--font-semibold);margin:0}.dashboard-card-icon{font-size:var(--text-2xl)}.dashboard-card-body{min-height:100px}.celebration-list{display:flex;flex-direction:column;gap:var(--space-4)}.celebration-item{align-items:flex-start;background:var(--gradient-celebration);border-radius:var(--radius-md);cursor:pointer;display:flex;gap:var(--space-4);padding:var(--space-4);transition:transform var(--duration-fast) ease}.celebration-item:hover{transform:translateX(5px)}.celebration-emoji{flex-shrink:0;font-size:32px}.celebration-content{flex:1 1}.celebration-title{color:#2d3436;font-size:var(--text-base);font-weight:var(--font-semibold);margin:0 0 var(--space-1) 0}.celebration-message{color:#636e72;font-size:var(--text-sm);margin:0 0 var(--space-2) 0}.celebration-xp{background:#fffc;border-radius:var(--radius-lg);color:var(--color-warning);display:inline-block;font-size:var(--text-xs);font-weight:var(--font-semibold);padding:var(--space-1) var(--space-3)}.no-celebrations{color:var(--text-muted);padding:var(--space-8);text-align:center}.no-celebrations-icon{font-size:48px;margin-bottom:var(--space-3)}.growth-area-list{display:flex;flex-direction:column;gap:var(--space-3)}.growth-area-item{background:#f8f9fa;border-left:4px solid var(--color-danger);border-radius:var(--radius-md);padding:var(--space-4);transition:background var(--duration-fast) ease}.growth-area-item:hover{background:#ecf0f1}.growth-area-item.improving{border-left-color:var(--color-warning)}.growth-area-item.resolved{border-left-color:var(--color-success)}.growth-area-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-2)}.growth-area-name{color:#2d3436;font-size:var(--text-base);font-weight:var(--font-semibold);margin:0}.growth-area-status{border-radius:var(--radius-lg);font-size:var(--text-xs);font-weight:var(--font-semibold);padding:var(--space-1) var(--space-3);text-transform:uppercase}.status-needs-attention{background:#ffe5e5;color:var(--color-danger)}.status-active{background:#e3f2fd;color:var(--color-accent-blue)}.status-improving{background:#fff3cd;color:var(--color-warning)}.growth-area-stats{color:#636e72;display:flex;font-size:var(--text-sm);gap:var(--space-4)}.growth-area-accuracy{color:#2d3436;font-weight:var(--font-semibold)}.recent-wins-list{display:flex;flex-direction:column;gap:var(--space-3)}.recent-win-item{background:linear-gradient(135deg,#d4edda,#c3e6cb);border-left:4px solid var(--color-success);border-radius:var(--radius-md);padding:var(--space-4)}.recent-win-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-2)}.recent-win-name{color:#155724;font-size:var(--text-base);font-weight:var(--font-semibold);margin:0}.recent-win-badge{background:#fffc;border-radius:var(--radius-lg);color:var(--color-success);font-size:var(--text-xs);font-weight:var(--font-semibold);padding:var(--space-1) var(--space-3)}.recent-win-stats{color:#155724;font-size:var(--text-sm)}.improvement-indicator{color:var(--color-success);display:inline-block;font-weight:var(--font-semibold);margin-left:var(--space-3)}.recommendation-list{display:flex;flex-direction:column;gap:var(--space-3)}.recommendation-item{background:#f8f9fa;border-radius:var(--radius-md);padding:var(--space-4);transition:background var(--duration-fast) ease}.recommendation-item:hover{background:#e9ecef}.recommendation-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-2)}.recommendation-category{color:#2d3436;font-size:var(--text-base);font-weight:var(--font-semibold);margin:0}.recommendation-priority{border-radius:var(--radius-lg);font-size:var(--text-xs);font-weight:var(--font-semibold);padding:var(--space-1) var(--space-3);text-transform:uppercase}.priority-1{background:#ffe5e5;color:var(--color-danger)}.priority-2{background:#fff3cd;color:var(--color-warning)}.priority-3{background:#e3f2fd;color:var(--color-accent-blue)}.recommendation-reason{color:#636e72;font-size:var(--text-sm);margin-bottom:var(--space-3)}.recommendation-action{align-items:center;display:flex;justify-content:space-between}.hands-count{color:#636e72;font-size:var(--text-xs)}.practice-button{background:var(--gradient-dashboard);font-weight:var(--font-semibold);transition:transform var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.practice-button:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.practice-button:active{transform:translateY(0)}.overall-trend{background:var(--gradient-trend);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center}.trend-icon{font-size:48px;margin-bottom:var(--space-3)}.trend-text{color:#2d3436;font-size:var(--text-2xl);font-weight:var(--font-semibold);margin:0 0 var(--space-3) 0}.trend-description{color:#636e72;font-size:var(--text-base)}.empty-state{color:var(--text-muted);padding:var(--space-10) var(--space-5);text-align:center}.empty-state-icon{font-size:64px;margin-bottom:var(--space-4)}.empty-state-text{font-size:var(--text-base);margin:0}.loading-dashboard{align-items:center;display:flex;justify-content:center;min-height:400px}.loading-spinner{border:4px solid #f3f3f3;border-top-color:#667eea}.error-dashboard{color:var(--color-danger);padding:var(--space-10);text-align:center}.error-icon{font-size:64px;margin-bottom:var(--space-4)}.error-message{font-size:var(--text-lg);margin:0 0 var(--space-5) 0}.retry-button{background:var(--color-danger);border-radius:var(--radius-sm);font-weight:var(--font-semibold);padding:var(--space-3) var(--space-5);transition:background var(--duration-fast) ease}.retry-button:hover{background:var(--color-danger-dark)}@media (max-width:768px){.learning-dashboard{padding:var(--space-4)}.learning-dashboard-header h2{font-size:var(--text-2xl)}.learning-dashboard-subtitle{font-size:var(--text-sm)}.dashboard-grid{gap:var(--space-4);grid-template-columns:1fr}.user-stats-bar{flex-direction:column;gap:var(--space-4);padding:var(--space-4)}.stat-item{min-width:auto}.stat-value{font-size:var(--text-3xl)}.dashboard-card{padding:var(--space-5)}.dashboard-card-title{font-size:var(--text-lg)}.celebration-emoji{font-size:var(--text-3xl)}.growth-area-header,.recommendation-header{align-items:flex-start;flex-direction:column;gap:var(--space-2)}}@media (max-width:480px){.learning-dashboard{padding:var(--space-3)}.learning-dashboard-header{margin-bottom:var(--space-5)}.learning-dashboard-header h2{font-size:var(--text-xl)}.user-stats-bar{gap:var(--space-3);padding:var(--space-3)}.stat-value{font-size:var(--text-2xl)}.stat-label{font-size:var(--text-xs)}.dashboard-grid{gap:var(--space-3)}.dashboard-card{padding:var(--space-4)}.dashboard-card-title{font-size:var(--text-base)}.dashboard-card-icon{font-size:var(--text-xl)}.celebration-item,.growth-area-item,.recommendation-item{padding:var(--space-3)}.celebration-emoji{font-size:var(--text-2xl)}.practice-button{margin-top:var(--space-2);width:100%}.recommendation-action{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.trend-icon{font-size:36px}.trend-text{font-size:var(--text-xl)}.trend-description{font-size:var(--text-sm)}}.detailed-stats-section,.four-dimension-section{margin-bottom:var(--space-6)}.detailed-stats-section{background:#fff;background:var(--bg-card,#fff);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.detailed-stats-toggle{align-items:center;background:#f8f9fa;background:var(--bg-secondary,#f8f9fa);border:none;color:#111;color:var(--text-primary-dark,#111);cursor:pointer;display:flex;font-weight:var(--font-semibold);justify-content:space-between;list-style:none;padding:var(--space-4) var(--space-5);-webkit-user-select:none;user-select:none}.detailed-stats-toggle::-webkit-details-marker{display:none}.detailed-stats-toggle .toggle-icon{color:#666;color:var(--text-secondary,#666);font-size:var(--text-sm);transition:transform .2s ease}.detailed-stats-section[open] .toggle-icon{transform:rotate(180deg)}.detailed-stats-section .stats-section,.detailed-stats-section[open] .detailed-stats-toggle{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color,#e5e7eb)}.detailed-stats-section .stats-section{margin-bottom:0;padding:var(--space-4) var(--space-5)}.detailed-stats-section .stats-section:last-child{border-bottom:none}.detailed-stats-section .stats-section-title{font-size:var(--text-sm);margin-bottom:var(--space-3)}.bidding-quality-bar{align-items:center;background:linear-gradient(135deg,#4f46e5,#7c3aed);border-radius:12px;color:#fff;display:flex;flex-wrap:wrap;gap:20px;padding:20px}.bidding-quality-bar.empty-state{background:linear-gradient(135deg,#e5e7eb,#d1d5db);color:#6b7280;justify-content:center;padding:30px}.empty-state-content{align-items:center;display:flex;gap:20px}.empty-state-icon{font-size:48px;opacity:.5}.empty-state-text{text-align:left}.empty-state-title{font-size:18px;font-weight:600;margin:0 0 5px}.empty-state-subtitle{font-size:14px;margin:0;opacity:.8}.quality-stat-item{align-items:center;display:flex;flex:1 1;flex-direction:column;min-width:140px;position:relative}.quality-score{flex-direction:row;gap:15px;min-width:180px}.quality-score-circle{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:4px solid #fff;border-radius:50%;display:flex;flex-direction:column;flex-shrink:0;height:80px;justify-content:center;width:80px}.quality-score-value{font-size:28px;font-weight:700;line-height:1}.quality-score-max{font-size:14px;margin-top:2px;opacity:.8}.quality-rating{font-size:16px;font-weight:600;margin-bottom:3px;text-shadow:0 1px 2px #0003}.quality-stat-value{font-size:32px;font-weight:700;line-height:1;margin-bottom:5px}.quality-stat-value.error-value{color:#fecaca}.quality-stat-label{text-align:center;width:100%}.quality-main-label{font-size:14px;font-weight:600;letter-spacing:.5px;margin-bottom:2px;opacity:.95;text-transform:uppercase}.quality-sublabel{font-size:12px;margin-top:2px;opacity:.75}.quality-progress-bar{background:#fff3;border-radius:3px;height:6px;margin-top:8px;overflow:hidden;width:100%}.quality-progress-fill{border-radius:3px;height:100%;transition:width .4s ease}.optimal-fill{background:linear-gradient(90deg,#10b981,#34d399)}.acceptable-fill{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.error-fill{background:linear-gradient(90deg,#ef4444,#f87171)}.quality-trend{align-items:center;flex-direction:row;gap:10px;min-width:140px}.trend-icon{font-size:36px;line-height:1}.quality-count{min-width:120px}@media (max-width:1024px){.bidding-quality-bar{gap:15px}.quality-stat-item{min-width:120px}.quality-score{min-width:160px}.quality-score-circle{height:70px;width:70px}.quality-score-value{font-size:24px}.quality-stat-value{font-size:28px}}@media (max-width:768px){.bidding-quality-bar{flex-direction:column;gap:20px;padding:20px}.quality-stat-item{border-bottom:1px solid #fff3;flex-direction:row;justify-content:space-between;min-width:100%;padding-bottom:15px}.quality-stat-item:last-child{border-bottom:none;padding-bottom:0}.quality-score{justify-content:flex-start;min-width:100%}.quality-stat-label{flex:1 1;text-align:left}.quality-progress-bar{bottom:0;left:0;margin-top:0;position:absolute;right:0}.quality-trend{justify-content:flex-start}.trend-icon{font-size:32px}}.bidding-quality-bar [role=progressbar]{position:relative}@keyframes slideInRight{0%{opacity:0;transform:translateX(-100%)}to{opacity:1;transform:translateX(0)}}.quality-progress-fill{animation:slideInRight .6s ease-out}.empty-decisions{color:#9ca3af;padding:40px 20px;text-align:center}.empty-decisions-icon{font-size:48px;margin-bottom:15px;opacity:.5}.empty-decisions-text{font-size:14px;line-height:1.6;margin:0}.decisions-list{display:flex;flex-direction:column;gap:8px}.decision-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;transition:all .2s ease}.decision-item:hover{background:#f3f4f6;border-color:#d1d5db;box-shadow:0 2px 4px #0000000d}.decision-item.expanded{background:#fff;border-color:#cbd5e1;box-shadow:0 4px 6px #0000001a}.decision-item-main{align-items:center;cursor:pointer;display:flex;gap:12px;padding:12px 15px;-webkit-user-select:none;user-select:none}.decision-correctness{align-items:center;border-radius:50%;display:flex;flex-shrink:0;font-size:18px;font-weight:700;height:32px;justify-content:center;width:32px}.decision-bid{flex:1 1;min-width:0}.bid-text{color:#1f2937;font-size:15px;font-weight:600;margin-bottom:2px}.bid-concept,.bid-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bid-concept{color:#6b7280;font-size:12px}.decision-score{align-items:baseline;display:flex;flex-shrink:0;gap:2px}.score-value{font-size:20px;line-height:1}.score-label{font-size:12px;font-weight:500;opacity:.7}.decision-time{min-width:60px;text-align:right}.decision-expand,.decision-time{color:#9ca3af;flex-shrink:0;font-size:12px}.decision-expand{text-align:center;width:20px}.decision-item-details{animation:slideDown .2s ease-out;border-top:1px solid #e5e7eb;padding:0 15px 15px}.decision-hint{background:#fef3c7;border-radius:6px;display:flex;gap:10px;margin-bottom:12px;margin-top:12px;padding:12px}.hint-icon{flex-shrink:0;font-size:20px}.hint-text{color:#78350f;font-size:13px;line-height:1.5}.decision-metadata{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.metadata-item{display:flex;font-size:13px;gap:6px}.metadata-label{color:#6b7280;font-weight:500}.metadata-value{color:#1f2937;font-weight:600;text-transform:capitalize}.metadata-value.impact-critical{color:#dc2626}.metadata-value.impact-significant{color:#f59e0b}.metadata-value.impact-minor{color:#3b82f6}.metadata-value.impact-none{color:#10b981}@media (max-width:768px){.decision-item-main{gap:8px;padding:10px 12px}.decision-correctness{font-size:16px;height:28px;width:28px}.bid-text{font-size:14px}.bid-concept{font-size:11px}.score-value{font-size:18px}.decision-time{display:none}.decision-item-details{padding:0 12px 12px}.decision-metadata{gap:8px;grid-template-columns:1fr}}@media (max-width:480px){.decision-score{font-size:16px}.score-label{font-size:11px}.decision-bid{max-width:150px}}.decision-item-main:focus{outline:2px solid #4f46e5;outline-offset:2px}.decision-item-main:focus-visible{outline:2px solid #4f46e5;outline-offset:2px}.decisions-list.loading{opacity:.6;pointer-events:none}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.decision-item{animation:fadeInUp .3s ease-out}.decision-item:first-child{animation-delay:.05s}.decision-item:nth-child(2){animation-delay:.1s}.decision-item:nth-child(3){animation-delay:.15s}.decision-item:nth-child(4){animation-delay:.2s}.decision-item:nth-child(5){animation-delay:.25s}.four-dimension-progress{padding:16px;padding:var(--space-4,16px);width:100%}.four-dimension-loading{align-items:center;color:#666;color:var(--text-secondary-dark,#666);display:flex;flex-direction:column;justify-content:center;padding:32px;padding:var(--space-8,32px)}.four-dimension-loading .loading-spinner{animation:spin 1s linear infinite;border:3px solid #f0f0f0;border-top-color:#2563eb;border:3px solid var(--bg-secondary,#f0f0f0);border-radius:50%;border-top-color:var(--color-primary,#2563eb);height:40px;width:40px}.four-dimension-error{align-items:center;background:#fef2f2;background:var(--bg-danger-light,#fef2f2);border-radius:12px;display:flex;flex-direction:column;gap:12px;gap:var(--space-3,12px);padding:24px;padding:var(--space-6,24px)}.four-dimension-error .error-icon{align-items:center;border-radius:50%;display:flex;font-weight:700;height:40px;justify-content:center;width:40px}.four-dimension-error .error-icon,.four-dimension-error button{background:#dc2626;background:var(--color-danger,#dc2626);color:#fff}.four-dimension-error button{border:none;border-radius:6px;cursor:pointer;padding:8px 16px;padding:var(--space-2,8px) var(--space-4,16px)}.progress-grid{grid-gap:16px;grid-gap:var(--space-4,16px);display:grid;gap:16px;gap:var(--space-4,16px);grid-template-columns:1fr 1fr}@media (max-width:768px){.progress-grid{gap:12px;gap:var(--space-3,12px)}}@media (max-width:480px){.progress-grid{gap:12px;gap:var(--space-3,12px);grid-template-columns:1fr}}@media (max-width:360px){.progress-grid{gap:8px;gap:var(--space-2,8px)}}.progress-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;overflow:hidden}.progress-card-learn-bid{border-top:3px solid #2563eb;border-top:3px solid var(--color-primary,#2563eb)}.progress-card-practice-bid{border-top:3px solid #f59e0b;border-top:3px solid var(--color-warning,#f59e0b)}.progress-card-learn-play{border-top:3px solid #06b6d4;border-top:3px solid var(--color-info,#06b6d4)}.progress-card-practice-play{border-top:3px solid #22c55e;border-top:3px solid var(--color-success,#22c55e)}.progress-card .card-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:12px 16px;padding:var(--space-3,12px) var(--space-4,16px)}.progress-card .card-title{align-items:center;display:flex;gap:8px;gap:var(--space-2,8px)}.progress-card .card-title .card-icon{font-size:20px}.progress-card .card-title h4{color:#111;color:var(--text-primary-dark,#111);font-size:16px;font-size:var(--text-base,16px);font-weight:600;margin:0}.progress-card .card-content{display:flex;flex:1 1;flex-direction:column;padding:16px;padding:var(--space-4,16px)}.card-action-btn{border-radius:8px;cursor:pointer;font-weight:600;margin-top:auto;padding:12px;padding:var(--space-3,12px);transition:all .2s ease;width:100%}.card-action-btn.primary{background:#2563eb;background:var(--color-primary,#2563eb);border:none;color:#fff}.card-action-btn.primary:hover{background:#1d4ed8;background:var(--color-primary-dark,#1d4ed8)}.card-action-btn.secondary{background:#fff;border:2px solid #2563eb;border:2px solid var(--color-primary,#2563eb);color:#2563eb;color:var(--color-primary,#2563eb)}.card-action-btn.secondary:hover{background:#2563eb;background:var(--color-primary,#2563eb);color:#fff}.overall-progress-badge{background:linear-gradient(135deg,#84fab0,#8fd3f4);border-radius:20px;color:#065f46;font-size:14px;font-size:var(--text-sm,14px);font-weight:700;padding:4px 12px;padding:var(--space-1,4px) var(--space-3,12px)}.level-progress-section{align-items:center;display:flex;gap:12px;gap:var(--space-3,12px);margin-bottom:12px;margin-bottom:var(--space-3,12px)}.progress-ring-container{flex-shrink:0}.progress-ring{height:80px;width:80px}.progress-ring-bg{stroke:#e5e7eb;stroke:var(--bg-secondary,#e5e7eb)}.progress-ring-fill{stroke:#2563eb;stroke:var(--color-primary,#2563eb);transition:stroke-dasharray .3s ease}.ring-level{fill:#111;fill:var(--text-primary-dark,#111);font-size:16px;font-weight:700}.ring-progress{fill:#666;fill:var(--text-secondary-dark,#666);font-size:11px}.level-details{flex:1 1;min-width:0}.level-name{color:#111;color:var(--text-primary-dark,#111);font-size:14px;font-size:var(--text-sm,14px);font-weight:600;margin-bottom:4px;margin-bottom:var(--space-1,4px)}.skills-mastered{color:#666;color:var(--text-secondary-dark,#666);font-size:12px;font-size:var(--text-xs,12px)}.level-roadmap{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px;margin-bottom:var(--space-2,8px);padding:8px 0;padding:var(--space-2,8px) 0;position:relative}.level-roadmap:before{background:#e5e7eb;background:var(--bg-secondary,#e5e7eb);content:"";height:2px;left:0;position:absolute;right:0;top:50%;z-index:0}.roadmap-node{align-items:center;border-radius:50%;display:flex;font-size:10px;font-weight:600;height:24px;justify-content:center;transition:transform .2s ease;width:24px;z-index:1}.roadmap-node.completed{background:#22c55e;background:var(--color-success,#22c55e);color:#fff}.roadmap-node.current{background:#2563eb;background:var(--color-primary,#2563eb);box-shadow:0 0 0 3px #2563eb4d;color:#fff;transform:scale(1.15)}.roadmap-node.unlocked{background:#fff;border:2px solid #2563eb;border:2px solid var(--color-primary,#2563eb);color:#2563eb;color:var(--color-primary,#2563eb)}.roadmap-node.locked{background:#e5e7eb;background:var(--bg-secondary,#e5e7eb);color:#9ca3af;color:var(--text-muted,#9ca3af)}.next-skill{align-items:center;background:#eff6ff;background:var(--bg-info-light,#eff6ff);border-radius:6px;display:flex;font-size:14px;font-size:var(--text-sm,14px);gap:8px;gap:var(--space-2,8px);margin-bottom:12px;margin-bottom:var(--space-3,12px);padding:8px 12px;padding:var(--space-2,8px) var(--space-3,12px)}.next-label{color:#666;color:var(--text-secondary-dark,#666)}.next-name{color:#2563eb;color:var(--color-primary,#2563eb);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.in-progress-badge{color:#f59e0b;color:var(--color-warning,#f59e0b);font-size:12px;font-size:var(--text-xs,12px);font-weight:500;margin-left:auto}.current-skill-progress{background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:8px;margin-bottom:12px;margin-bottom:var(--space-3,12px);padding:12px;padding:var(--space-3,12px)}.skill-progress-header{align-items:center;display:flex;gap:8px;gap:var(--space-2,8px);margin-bottom:8px;margin-bottom:var(--space-2,8px)}.skill-progress-header .skill-label{color:#666;color:var(--text-secondary-dark,#666);font-size:12px;font-size:var(--text-xs,12px)}.skill-progress-header .skill-name{color:#111;color:var(--text-primary-dark,#111);font-size:14px;font-size:var(--text-sm,14px);font-weight:600}.skill-progress-stats{display:flex;gap:16px;gap:var(--space-4,16px);margin-bottom:8px;margin-bottom:var(--space-2,8px)}.skill-progress-stats .stat{color:#666;color:var(--text-secondary-dark,#666);font-size:12px;font-size:var(--text-xs,12px)}.skill-progress-bar{background:#0000001a;border-radius:3px;height:6px;margin-bottom:8px;margin-bottom:var(--space-2,8px);overflow:hidden}.skill-progress-fill{background:#22c55e;background:var(--color-success,#22c55e);border-radius:3px;height:100%;transition:width .3s ease}.skill-progress-hint{color:#666;color:var(--text-secondary-dark,#666);font-style:italic}.skill-progress-hint,.trend-indicator{font-size:12px;font-size:var(--text-xs,12px)}.trend-indicator{border-radius:20px;font-weight:500;padding:4px 8px;padding:var(--space-1,4px) var(--space-2,8px);text-transform:capitalize}.trend-improving{background:#dcfce7;background:var(--bg-success-light,#dcfce7);color:#166534;color:var(--color-success-dark,#166534)}.trend-declining{background:#fef2f2;background:var(--bg-danger-light,#fef2f2);color:#dc2626;color:var(--color-danger,#dc2626)}.trend-stable{background:#f3f4f6;background:var(--bg-secondary,#f3f4f6);color:#666;color:var(--text-secondary-dark,#666)}.quality-gauge{margin-bottom:12px;margin-bottom:var(--space-3,12px);text-align:center}.gauge-value{color:#111;color:var(--text-primary-dark,#111);font-size:32px;font-weight:700;line-height:1.2}.gauge-label{color:#666;color:var(--text-secondary-dark,#666);font-size:14px;font-size:var(--text-sm,14px);margin-bottom:8px;margin-bottom:var(--space-2,8px)}.gauge-bar{background:#e5e7eb;background:var(--bg-secondary,#e5e7eb);border-radius:3px;height:6px;overflow:hidden}.gauge-fill{border-radius:3px;height:100%;transition:width .3s ease,background-color .3s ease}.gauge-fill.score-low{background:#dc2626;background:var(--color-danger,#dc2626)}.gauge-fill.score-medium{background:#f59e0b;background:var(--color-warning,#f59e0b)}.gauge-fill.score-high{background:#22c55e;background:var(--color-success,#22c55e)}.quality-stats{grid-gap:8px;grid-gap:var(--space-2,8px);display:grid;gap:8px;gap:var(--space-2,8px);grid-template-columns:repeat(3,1fr);margin-bottom:12px;margin-bottom:var(--space-3,12px)}.quality-stats .stat-item{text-align:center}.quality-stats .stat-value{color:#111;color:var(--text-primary-dark,#111);display:block;font-size:16px;font-size:var(--text-base,16px);font-weight:700}.quality-stats .stat-label,.total-practiced{color:#666;color:var(--text-secondary-dark,#666);font-size:12px;font-size:var(--text-xs,12px)}.total-practiced{margin-bottom:12px;margin-bottom:var(--space-3,12px);text-align:center}.convention-mastery-section{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-top:16px;margin-top:var(--space-4,16px);overflow:hidden}.convention-header{align-items:center;background:#f8f9fa;background:var(--bg-secondary,#f8f9fa);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color,#e5e7eb);display:flex;gap:8px;gap:var(--space-2,8px);padding:12px 16px;padding:var(--space-3,12px) var(--space-4,16px)}.convention-header .convention-icon{font-size:20px}.convention-header h4{color:#111;color:var(--text-primary-dark,#111);font-size:16px;font-size:var(--text-base,16px);font-weight:600;margin:0}.convention-content{padding:16px;padding:var(--space-4,16px)}.convention-group{margin-bottom:16px;margin-bottom:var(--space-4,16px)}.convention-group:last-child{margin-bottom:0}.group-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px;margin-bottom:var(--space-2,8px)}.group-name{color:#111;color:var(--text-primary-dark,#111);font-weight:600}.group-count,.group-name{font-size:14px;font-size:var(--text-sm,14px)}.group-count{color:#666;color:var(--text-secondary-dark,#666)}.convention-list{display:flex;flex-wrap:wrap;gap:8px;gap:var(--space-2,8px)}.convention-item{align-items:center;background:#f3f4f6;background:var(--bg-secondary,#f3f4f6);border-radius:20px;display:flex;font-size:14px;font-size:var(--text-sm,14px);gap:4px;gap:var(--space-1,4px);padding:4px 12px;padding:var(--space-1,4px) var(--space-3,12px);transition:all .2s ease}.convention-item.status-mastered{background:#dcfce7;background:var(--bg-success-light,#dcfce7)}.convention-item.status-mastered .conv-status{color:#22c55e;color:var(--color-success,#22c55e)}.convention-item.status-in-progress{background:#eff6ff;background:var(--bg-info-light,#eff6ff)}.convention-item.status-in-progress .conv-status{color:#2563eb;color:var(--color-primary,#2563eb)}.convention-item.status-not-started .conv-status{color:#9ca3af;color:var(--text-muted,#9ca3af)}.conv-name{color:#111;color:var(--text-primary-dark,#111)}.conv-accuracy{font-weight:600;margin-left:4px;margin-left:var(--space-1,4px)}.conv-accuracy,.locked-preview{color:#666;color:var(--text-secondary-dark,#666)}.locked-preview{align-items:center;background:#f3f4f6;background:var(--bg-secondary,#f3f4f6);border-radius:8px;display:flex;font-size:14px;font-size:var(--text-sm,14px);gap:8px;gap:var(--space-2,8px);padding:12px;padding:var(--space-3,12px)}.lock-icon{font-size:16px}@media (max-width:768px){.four-dimension-progress{padding:12px;padding:var(--space-3,12px)}.progress-ring{height:70px;width:70px}.ring-level{font-size:14px}.ring-progress{font-size:10px}.roadmap-node{font-size:9px;height:22px;width:22px}.gauge-value{font-size:28px}.card-action-btn,.progress-card .card-title h4{font-size:14px;font-size:var(--text-sm,14px)}.card-action-btn{padding:8px;padding:var(--space-2,8px)}}@media (max-width:480px){.progress-ring{height:60px;width:60px}.ring-level{font-size:12px}.ring-progress{font-size:9px}.level-progress-section{gap:8px;gap:var(--space-2,8px)}.roadmap-node{font-size:8px;height:20px;width:20px}.gauge-value{font-size:24px}.quality-stats .stat-value{font-size:14px;font-size:var(--text-sm,14px)}.next-skill{font-size:12px;font-size:var(--text-xs,12px);padding:4px 8px;padding:var(--space-1,4px) var(--space-2,8px)}}.learning-mode{background:var(--bg-learning);color:var(--text-primary);min-height:100%;padding:var(--space-5);padding-top:calc(var(--space-5) + env(safe-area-inset-top, 0px))}.loading-state{align-items:center;display:flex;flex-direction:column;gap:var(--space-5);justify-content:center;min-height:50vh}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #ffffff1a;border-radius:var(--radius-full);border-top:4px solid var(--color-success);height:50px;width:50px}@keyframes spin{to{transform:rotate(1turn)}}.error-state{gap:var(--space-4);text-align:center}.error-icon{font-size:48px}.retry-button{background:var(--color-success);border:none;border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-size:var(--text-base);padding:var(--space-3) var(--space-6);transition:background var(--duration-fast)}.retry-button:hover{background:var(--color-success-dark)}.learning-mode-header{border-bottom:1px solid #ffffff1a;margin-bottom:var(--space-6);padding:var(--space-4) 0;text-align:center}.header-content h1{font-size:var(--text-3xl);font-weight:var(--font-semibold);margin:0}.subtitle{color:#fff9;font-size:var(--text-sm);margin:var(--space-1) 0 0}.close-button{background:#ffffff1a;border:none;border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-size:var(--text-2xl);height:40px;transition:background var(--duration-fast);width:40px}.close-button:hover{background:#fff3}.track-selector{background:#0003;border-radius:var(--radius-lg);margin:0 auto var(--space-6);padding:var(--space-2);width:fit-content}.track-selector,.track-tab{display:flex;gap:var(--space-2)}.track-tab{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);color:#fff9;cursor:pointer;font-size:var(--text-base);font-weight:var(--font-medium);padding:var(--space-3) var(--space-6);transition:all var(--duration-fast) ease}.track-tab:hover{background:#ffffff1a;color:#ffffffe6}.track-tab.active{background:var(--color-success);box-shadow:0 2px 8px #40c0574d;color:var(--text-primary);font-weight:var(--font-semibold)}.track-icon{font-size:var(--text-lg)}.track-label{font-size:var(--text-base)}@media (max-width:480px){.track-selector{width:100%}.track-tab{flex:1 1;justify-content:center;padding:var(--space-3) var(--space-4)}}.overall-progress-bar{background:#ffffff0d;border-radius:var(--radius-lg);margin-bottom:var(--space-8);padding:var(--space-5)}.progress-info{display:flex;justify-content:space-between;margin-bottom:var(--space-3)}.progress-label{font-weight:var(--font-medium)}.progress-value{color:#fff9}.progress-track{background:#ffffff1a;border-radius:var(--radius-sm);height:12px;overflow:hidden}.progress-fill{background:var(--gradient-progress);border-radius:var(--radius-sm);transition:width var(--duration-normal) ease}.progress-percentage{color:#fff9;display:block;font-size:var(--text-sm);margin-top:var(--space-2);text-align:right}.level-grid{grid-gap:var(--space-5);display:grid;gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.level-card{background:#ffffff0d;border:2px solid #0000;border-radius:var(--radius-lg);cursor:pointer;padding:var(--space-5);transition:all var(--duration-fast)}.level-card:hover:not(.locked){background:#ffffff14;transform:translateY(-2px)}.level-card.selected{background:#4caf501a;border-color:var(--color-success)}.level-card.locked{cursor:not-allowed;opacity:.5}.level-card.completed{border-color:var(--color-success)}.level-card.in-progress{border-color:var(--color-accent-blue)}.level-card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-3)}.level-number{color:#ffffff80;font-size:var(--text-xs);letter-spacing:1px;text-transform:uppercase}.level-status-icon{font-size:var(--text-xl)}.level-name{font-size:var(--text-lg);font-weight:var(--font-medium);margin:0 0 var(--space-4)}.level-progress{align-items:center;display:flex;gap:var(--space-3)}.level-progress .progress-track{flex:1 1;height:8px}.progress-text{color:#fff9;font-size:var(--text-sm);min-width:40px;text-align:right}.level-skills{border-top:1px solid #ffffff1a;margin-top:var(--space-5);padding-top:var(--space-5)}.convention-list,.skill-list{display:flex;flex-direction:column;gap:var(--space-3)}.skill-item{align-items:center;background:#ffffff0d;border-left:4px solid #0000;border-radius:var(--radius-md);display:flex;justify-content:space-between;padding:var(--space-3);transition:all var(--duration-fast)}.skill-status-indicator{align-items:center;border-radius:var(--radius-full);display:flex;flex-shrink:0;font-size:var(--text-lg);height:28px;justify-content:center;margin-right:var(--space-3);width:28px}.skill-item.status-not-started{border-left-color:#fff3}.skill-item.status-not-started .skill-status-indicator{background:#0000;border:2px solid #ffffff4d;color:#fff6}.skill-item.status-in-progress{background:#2196f31a;border-left-color:var(--color-accent-blue)}.skill-item.status-in-progress .skill-status-indicator{background:#2196f333;border:2px solid var(--color-accent-blue);color:var(--color-accent-blue)}.skill-item.status-mastered{background:#4caf501a;border-left-color:var(--color-success)}.skill-item.status-mastered .skill-status-indicator{background:var(--color-success);border:2px solid var(--color-success);color:var(--text-primary);font-weight:var(--font-bold)}.skill-item.status-mastered .skill-name{color:var(--color-success-light)}.skill-info{display:flex;flex:1 1;flex-direction:column;gap:var(--space-1)}.skill-name{font-weight:var(--font-medium)}.skill-meta{color:#ffffff80;font-size:var(--text-xs)}.practice-button{background:var(--color-success);border:none;border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font-size:var(--text-sm);padding:var(--space-2) var(--space-4);transition:background var(--duration-fast)}.practice-button:hover{background:var(--color-success-dark)}@media (max-width:768px){.learning-mode{padding:var(--space-4)}.learning-mode-header{flex-direction:column;gap:var(--space-4);text-align:center}.level-grid{grid-template-columns:1fr}.skill-item{flex-direction:column;gap:var(--space-3);text-align:center}}.skill-practice{background:linear-gradient(135deg,#1a1a2e,#16213e);color:#fff;display:flex;flex-direction:column;min-height:100%}.practice-header{align-items:center;background:#0003;display:flex;justify-content:space-between;padding:20px}.back-button{background:#ffffff1a;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px;transition:background .2s}.back-button:hover{background:#fff3}.skill-title{flex:1 1;font-size:20px;font-weight:500;margin:0;text-align:center}.progress-indicator{align-items:flex-end;display:flex;flex-direction:column;gap:4px}.progress-stats{align-items:center;gap:16px}.hand-counter{background:#ffffff26;border-radius:16px;color:#fff;font-size:16px;font-weight:600;padding:4px 12px}.accuracy-label{color:#ffffffb3;font-size:14px}.accuracy-value{color:#4caf50;font-weight:600}.score-display{color:#ffffff80;font-size:13px}.hand-navigation{background:#00000026;gap:8px;padding:12px 20px}.hand-navigation,.nav-arrow{align-items:center;display:flex;justify-content:center}.nav-arrow{background:#ffffff1a;border:1px solid #fff3;border-radius:50%;color:#fff;cursor:pointer;font-size:20px;height:32px;transition:all .2s;width:32px}.nav-arrow:hover:not(:disabled){background:#fff3}.nav-arrow:disabled{cursor:not-allowed;opacity:.3}.hand-dots{display:flex;gap:8px}.hand-dot{align-items:center;background:#ffffff26;border:2px solid #ffffff4d;border-radius:50%;color:#ffffffb3;cursor:pointer;display:flex;font-size:12px;font-weight:600;height:28px;justify-content:center;transition:all .2s;width:28px}.hand-dot:hover{background:#ffffff40;transform:scale(1.1)}.hand-dot.active{background:#ffffff4d;border-color:#fff;color:#fff;transform:scale(1.15)}.hand-dot.correct{background:#4caf504d;border-color:#4caf50}.hand-dot.correct.active{background:#4caf5080}.hand-dot.incorrect{background:#f443364d;border-color:#f44336}.hand-dot.incorrect.active{background:#f4433680}.hand-dot.future{background:#ffffff0d;border-color:#ffffff26;color:#ffffff4d;cursor:default}.hand-dot.future:hover{background:#ffffff0d;transform:none}.hand-display-area{align-items:center;display:flex;flex:1 1;justify-content:center;padding:30px}.hand-card{background:#ffffff14;border-radius:16px;min-width:300px;padding:30px;text-align:center}.hand-card.visual-hand{align-items:center;display:flex;flex-direction:column}.hand-card.visual-hand .learning-hand{box-shadow:0 4px 12px #0000004d}.hand-card h3{color:#fff9;font-size:16px;margin:0 0 20px}.hand-text{background:#0003;border-radius:8px;font-family:Monaco,Menlo,monospace;font-size:24px;line-height:1.6;margin:0;padding:20px;text-align:left}.hand-stats{color:#ffffffb3;display:flex;font-size:14px;gap:20px;justify-content:center;margin-top:20px}.hand-stats span{background:#ffffff0d;border-radius:4px;padding:6px 12px}.hand-stats-toggle{margin-top:20px}.reveal-stats-button{background:#ffffff1a;border:1px dashed #ffffff4d;border-radius:8px;color:#fff9;cursor:pointer;font-size:14px;padding:10px 20px;transition:all .2s}.reveal-stats-button:hover{background:#ffffff26;border-color:#ffffff80;color:#fffc}.question-area{background:#0000004d;padding:30px}.question-area.centered{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;min-height:60vh}.question-prompt{margin-bottom:25px;text-align:center}.question-prompt h3{font-size:20px;font-weight:500;margin:0}.answer-form{align-items:center;display:flex;flex-direction:column;gap:20px;margin:0 auto;max-width:500px}.answer-input{background:#ffffff1a;border:2px solid #fff3;border-radius:12px;color:#fff;font-size:20px;padding:16px 20px;text-align:center;transition:border-color .2s;width:100%}.answer-input:focus{border-color:#4caf50;outline:none}.answer-input::placeholder{color:#fff6}.hcp-input{max-width:150px}.yes-no-buttons{display:flex;gap:20px}.yn-button{background:#ffffff1a;border:2px solid #fff3;border-radius:12px;color:#fff;cursor:pointer;font-size:18px;font-weight:500;padding:20px 40px;transition:all .2s}.yn-button:hover{background:#ffffff26}.yn-button.selected{background:#4caf50;border-color:#4caf50}.bid-input-area{align-items:center;display:flex;flex-direction:column;gap:15px;width:100%}.bid-shortcuts{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.bid-shortcut{background:#fffffff2;border:2px solid #d0d0d0;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#1a1a1a;cursor:pointer;font-size:16px;font-weight:600;padding:10px 16px;transition:all .2s}.bid-shortcut:hover{background:#fff;box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.bid-shortcut.selected{background:#4caf50;border-color:#4caf50;color:#fff}.bid-shortcut.suit-spade{border-color:#888;color:#1a1a1a}.bid-shortcut.suit-diamond,.bid-shortcut.suit-heart{border-color:#d40000;color:#d40000}.bid-shortcut.suit-club{border-color:#888;color:#1a1a1a}.bid-shortcut.suit-club:hover,.bid-shortcut.suit-spade:hover{background:#f0f0f0;border-color:#1a1a1a}.bid-shortcut.suit-diamond:hover,.bid-shortcut.suit-heart:hover{background:#fff0f0;border-color:#b30000}.suit-buttons{display:flex;flex-wrap:wrap;gap:15px;justify-content:center}.suit-button{align-items:center;background:#fffffff2;border:2px solid #d0d0d0;border-radius:12px;box-shadow:0 2px 4px #0000001a;cursor:pointer;display:flex;flex-direction:column;font-size:16px;min-width:90px;padding:20px 25px;transition:all .2s}.suit-button.black{border-color:#888;color:#1a1a1a}.suit-button.red{border-color:#d40000;color:#d40000}.suit-button:hover{background:#fff;box-shadow:0 4px 8px #00000026;transform:translateY(-3px)}.suit-button.black:hover{border-color:#1a1a1a}.suit-button.red:hover{border-color:#b30000}.suit-button.selected{background:#4caf50;border-color:#4caf50;color:#fff}.suit-symbol{font-size:32px;margin-bottom:5px}.suit-name{color:#333;font-size:12px;opacity:.7}.suit-button.selected .suit-name{color:#fff;opacity:1}.points-buttons{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.points-button{background:#ffffff1a;border:2px solid #fff3;border-radius:12px;color:#fff;cursor:pointer;font-size:20px;font-weight:600;min-width:70px;padding:16px 24px;transition:all .2s}.points-button:hover{background:#ffffff26;transform:translateY(-2px)}.points-button.selected{background:#4caf50;border-color:#4caf50}.submit-button{background:#4caf50;border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:18px;font-weight:600;padding:16px 48px;transition:all .2s}.submit-button:hover:not(:disabled){background:#45a049;transform:translateY(-2px)}.submit-button:disabled{cursor:not-allowed;opacity:.5}.feedback-display{align-items:center;background:#0003;border-radius:16px;display:flex;flex-direction:column;gap:20px;margin:0 auto;max-width:500px;padding:30px;position:relative;text-align:center}.feedback-display.correct{border:2px solid #4caf50}.feedback-display.incorrect{border:2px solid #f44336}.feedback-icon{align-items:center;border-radius:50%;display:flex;font-size:32px;font-weight:700;height:60px;justify-content:center;width:60px}.feedback-display.correct .feedback-icon{background:#4caf50;color:#fff}.feedback-display.incorrect .feedback-icon{background:#f44336;color:#fff}.feedback-display.reviewing{opacity:.9}.reviewing-badge{background:#fff3;border-radius:12px;color:#fffc;font-size:11px;letter-spacing:.5px;padding:4px 10px;position:absolute;right:10px;text-transform:uppercase;top:10px}.review-hint{color:#ffffff80;font-size:13px;font-style:italic;margin:0}.feedback-content h4{font-size:24px;margin:0}.feedback-text{color:#fffc;font-size:16px;margin:10px 0 0}.explanation{color:#fff9;font-size:14px;font-style:italic;margin:10px 0 0}.feedback-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.replay-button{background:#ffffff1a;border:2px solid #ffffff4d;border-radius:10px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:14px 32px;transition:all .2s}.replay-button:hover{background:#fff3;border-color:#ffffff80}.continue-button{background:#2196f3;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:14px 40px;transition:all .2s}.continue-button:hover{background:#1976d2}.error-state{align-items:center;justify-content:center;min-height:50vh}.error-state,.play-deal-display{display:flex;flex-direction:column;gap:20px}.play-deal-display{max-width:800px;width:100%}.contract-info{align-items:center;background:#4caf5033;border:1px solid #4caf5066;border-radius:12px;display:flex;gap:16px;justify-content:center;padding:12px 24px}.contract-label{color:#ffffffb3;font-size:14px}.contract-value{color:#4caf50;font-size:24px;font-weight:700}.combined-hcp{border-left:1px solid #fff3;color:#fff9;font-size:14px;padding-left:16px}.dual-hand-display{display:flex;flex-wrap:wrap;gap:30px;justify-content:center}.dual-hand-display .hand-card{flex:0 1 auto;min-width:280px}.dummy-hand h3{color:#64b4ffe6}.declarer-hand h3{color:#4caf50e6}.play-answer-area{align-items:center;display:flex;flex-direction:column;gap:15px;width:100%}.play-number-input{font-size:28px;font-weight:600;max-width:120px}.number-shortcuts{flex-wrap:wrap;gap:6px;max-width:400px}.number-shortcut,.number-shortcuts{display:flex;justify-content:center}.number-shortcut{align-items:center;background:#ffffff1a;border:2px solid #fff3;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;height:44px;transition:all .2s;width:44px}.number-shortcut:hover{background:#fff3;transform:translateY(-2px)}.number-shortcut.selected{background:#4caf50;border-color:#4caf50}.direction-buttons{display:flex;flex-wrap:wrap;gap:20px;justify-content:center}.direction-button{background:#ffffff1a;border:2px solid #fff3;border-radius:12px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:20px 30px;transition:all .2s}.direction-button:hover{background:#ffffff26;transform:translateY(-2px)}.direction-button.selected{background:#4caf50;border-color:#4caf50}.choice-buttons{display:flex;flex-wrap:wrap;gap:20px;justify-content:center}.choice-button{background:#ffffff1a;border:2px solid #fff3;border-radius:12px;color:#fff;cursor:pointer;font-size:18px;font-weight:600;padding:24px 40px;transition:all .2s}.choice-button:hover{background:#ffffff26;transform:translateY(-2px)}.choice-button.selected{background:#4caf50;border-color:#4caf50}@media (max-width:768px){.practice-header{flex-direction:column;gap:15px;text-align:center}.hand-card{min-width:auto;width:100%}.hand-text{font-size:18px}.hand-stats{flex-wrap:wrap}.yes-no-buttons{flex-direction:column;width:100%}.yn-button{width:100%}.bid-shortcuts{max-width:300px}.dual-hand-display{flex-direction:column;gap:20px}.dual-hand-display .hand-card{min-width:auto;width:100%}.contract-info{flex-wrap:wrap;gap:12px}.combined-hcp{border-left:none;padding-left:0;text-align:center;width:100%}.number-shortcuts{max-width:100%}.choice-buttons,.direction-buttons{flex-direction:column;width:100%}.choice-button,.direction-button{width:100%}}.learning-card{align-items:center;background:#fff;border:1px solid #d0d0d0;border-radius:6px;box-shadow:0 2px 4px #0000001a;display:flex;flex-shrink:0;justify-content:center;position:relative}.learning-card.small{height:63px;width:45px}.learning-card.medium{height:84px;width:60px}.learning-card.large{height:100px;width:70px}.learning-card.card-red{color:#d40000}.learning-card.card-black{color:#1a1a1a}.card-corner{align-items:center;display:flex;flex-direction:column;line-height:1;position:absolute}.card-corner.top-left{left:4px;top:3px}.card-corner.bottom-right{bottom:3px;right:4px;transform:rotate(180deg)}.learning-card.small .card-rank{font-size:12px;font-weight:700}.learning-card.small .card-suit{font-size:10px}.learning-card.small .card-suit-large{font-size:22px}.learning-card.medium .card-rank{font-size:14px;font-weight:700}.learning-card.medium .card-suit{font-size:12px}.learning-card.medium .card-suit-large{font-size:28px}.learning-card.large .card-rank{font-size:16px;font-weight:700}.learning-card.large .card-suit{font-size:14px}.learning-card.large .card-suit-large{font-size:36px}.card-center{align-items:center;display:flex;justify-content:center}.learning-hand{background:#3d4a5c;border-radius:12px;display:flex;flex-direction:column;gap:8px;max-width:fit-content;padding:16px}.learning-hand.empty{color:#ffffffb3;font-style:italic;padding:20px}.suit-row{display:flex;gap:0}.suit-row .learning-card:not(:first-child){margin-left:-25px}.suit-row .learning-card.small:not(:first-child){margin-left:-20px}.suit-row .learning-card.large:not(:first-child){margin-left:-30px}.suit-row .learning-card{transition:transform .2s ease,z-index 0s}.suit-row .learning-card:hover{transform:translateY(-8px);z-index:10}@media (max-width:600px){.learning-card.medium{height:70px;width:50px}.learning-card.medium .card-rank{font-size:12px}.learning-card.medium .card-suit{font-size:10px}.learning-card.medium .card-suit-large{font-size:24px}.suit-row .learning-card:not(:first-child){margin-left:-22px}}.skill-intro{background:linear-gradient(135deg,#1a1a2e,#16213e);color:#fff;display:flex;flex-direction:column;min-height:100%;padding:20px}.intro-header{border-bottom:1px solid #ffffff1a;margin-bottom:30px;padding:20px 0 30px;position:relative;text-align:center}.skill-intro .back-button{background:#ffffff1a;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;left:0;padding:10px 20px;position:absolute;top:20px;transition:background .2s}.skill-intro .back-button:hover{background:#fff3}.intro-title{color:#4caf50;font-size:28px;font-weight:600;margin:0 0 10px}.intro-subtitle{color:#ffffffb3;font-size:16px;margin:0}.intro-content{flex:1 1;margin:0 auto;max-width:700px;width:100%}.intro-section{background:#ffffff0d;border-radius:12px;margin-bottom:20px;padding:20px 25px}.intro-section h3{color:#81d4fa;font-size:18px;font-weight:500;margin:0 0 15px}.section-content{color:#ffffffe6;font-size:15px;line-height:1.7;margin:0;white-space:pre-line}.practice-tip{align-items:flex-start;background:#4caf5026;border:1px solid #4caf504d;border-radius:12px;display:flex;gap:12px;margin:20px auto;max-width:700px;padding:16px 20px;width:100%}.tip-icon{flex-shrink:0;font-size:24px}.tip-text{color:#a5d6a7;font-size:15px;line-height:1.5}.intro-actions{padding:30px 0;text-align:center}.start-practice-button{background:#4caf50;border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:18px;font-weight:600;padding:16px 48px;transition:all .2s}.start-practice-button:hover{background:#45a049;box-shadow:0 4px 20px #4caf504d;transform:translateY(-2px)}@media (max-width:768px){.skill-intro{padding:15px}.intro-title{font-size:24px}.intro-section{padding:15px 20px}.section-content{font-size:14px}.skill-intro .back-button{margin-bottom:20px;position:static}.intro-header{padding-top:0}}:root{--mode-bg-gradient:linear-gradient(135deg,#2d5a3d,#3d6b52 50%,#4a7c5f);--mode-primary:#2d5a3d;--mode-primary-light:#4a7c5f;--gradient-learning:linear-gradient(135deg,#5c7cfa,#4263eb);--gradient-learning-hover:linear-gradient(135deg,#4263eb,#364fc7);--gradient-bid:linear-gradient(135deg,#51cf66,#40c057);--gradient-bid-hover:linear-gradient(135deg,#40c057,#37b24d);--gradient-play:linear-gradient(135deg,#845ef7,#7950f2);--gradient-play-hover:linear-gradient(135deg,#7950f2,#6741d9);--gradient-progress:linear-gradient(135deg,#fcc419,#fab005);--gradient-progress-hover:linear-gradient(135deg,#fab005,#f59f00);--feedback-bg:#059669e6;--feedback-border:#059669;--feedback-hover:#047857}.mode-selector-container{align-items:center;background:linear-gradient(135deg,#2d5a3d,#3d6b52 50%,#4a7c5f);background:var(--mode-bg-gradient);bottom:0;display:flex;justify-content:center;left:0;overflow-y:auto;padding:20px;padding:var(--space-5,20px);position:fixed;right:0;top:64px;z-index:900}@media (max-width:768px){.mode-selector-container{top:56px}}.mode-selector-feedback-button{background:#059669e6;background:var(--feedback-bg);border:1px solid #059669;border:1px solid var(--feedback-border);border-radius:8px;border-radius:var(--radius-md,8px);box-shadow:0 2px 8px #0003;box-shadow:var(--shadow-md,0 2px 8px #0003);color:#fff;color:var(--text-primary,#fff);cursor:pointer;font-size:14px;font-size:var(--text-sm,14px);font-weight:500;padding:10px 18px;padding:var(--space-2,10px) var(--space-4,18px);position:fixed;right:20px;right:var(--space-5,20px);top:80px;transition:all .2s ease;transition:all var(--duration-fast,.2s) ease;z-index:901}@media (max-width:768px){.mode-selector-feedback-button{top:72px}}.mode-selector-feedback-button:hover{background:#047857;background:var(--feedback-hover);box-shadow:0 4px 12px #0000004d;box-shadow:var(--shadow-lg,0 4px 12px #0000004d);transform:translateY(-1px)}.mode-selector-feedback-button:focus-visible{outline:2px solid #fff;outline:2px solid var(--text-primary,#fff);outline-offset:2px}.mode-selector-feedback-button:active{transform:translateY(0)}.mode-selector-content{align-items:center;display:flex;flex-direction:column;gap:24px;gap:var(--space-6,24px);max-width:1200px;width:100%}.mode-selector-header{margin-bottom:8px;margin-bottom:var(--space-2,8px);text-align:center}.mode-selector-title{color:#fff;color:var(--text-primary,#fff);font-size:2.5rem;font-size:var(--text-3xl,2.5rem);font-weight:700;margin:0 0 12px;margin:0 0 var(--space-3,12px) 0;text-shadow:2px 2px 4px #0000004d}.mode-selector-subtitle{color:#ffffffd9;font-size:1.1rem;font-size:var(--text-lg,1.1rem);margin:0;max-width:500px}.mode-selector-welcome{color:#ffffffb3;font-size:1rem;font-size:var(--text-base,1rem);font-style:italic;margin:12px 0 0;margin:var(--space-3,12px) 0 0 0}.mode-selector-prompt{text-align:center}.mode-selector-prompt h2{color:#fff;color:var(--text-primary,#fff);font-size:1.5rem;font-size:var(--text-2xl,1.5rem);font-weight:600;margin:0}.mode-cards-grid{grid-gap:20px;grid-gap:var(--space-5,20px);display:grid;gap:20px;gap:var(--space-5,20px);grid-template-columns:repeat(2,1fr);max-width:900px;width:100%}.mode-card{background:#fffffff2;border-radius:12px;border-radius:var(--radius-lg,12px);box-shadow:0 4px 20px #00000026;box-shadow:var(--shadow-lg,0 4px 20px #00000026);display:flex;flex-direction:column;gap:12px;gap:var(--space-3,12px);padding:24px;padding:var(--space-6,24px);transition:transform .2s ease,box-shadow .2s ease;transition:transform var(--duration-fast,.2s) ease,box-shadow var(--duration-fast,.2s) ease}.mode-card:hover{box-shadow:0 8px 30px #00000040;box-shadow:var(--shadow-xl,0 8px 30px #00000040);transform:translateY(-4px)}.mode-card-header{align-items:center;display:flex;gap:12px;gap:var(--space-3,12px)}.mode-icon{font-size:2rem;font-size:var(--text-3xl,2rem);line-height:1}.mode-title{color:#2d5a3d;color:var(--mode-primary,#2d5a3d);font-size:1.4rem;font-weight:700;margin:0}.mode-subtitle{color:#555;color:var(--text-secondary,#555);font-size:.95rem;font-size:var(--text-sm,.95rem);line-height:1.4;margin:0}.mode-features{flex-grow:1;list-style:none;margin:8px 0;margin:var(--space-2,8px) 0;padding:0}.mode-features li{color:#444;font-size:.9rem;font-size:var(--text-sm,.9rem);line-height:1.4;margin-bottom:6px;margin-bottom:var(--space-2,6px);padding-left:20px;padding-left:var(--space-5,20px);position:relative}.mode-features li:before{color:#4a7c5f;color:var(--mode-primary-light,#4a7c5f);content:"✓";font-weight:700;left:0;position:absolute}.mode-description{border-top:1px solid #eee;color:#666;color:var(--text-secondary,#666);font-size:.85rem;font-size:var(--text-xs,.85rem);font-style:italic;margin:0;padding-top:8px;padding-top:var(--space-2,8px)}.mode-button{border:none;border-radius:8px;border-radius:var(--radius-md,8px);cursor:pointer;font-size:1rem;font-size:var(--text-base,1rem);font-weight:600;margin-top:auto;padding:14px 20px;padding:var(--space-3,14px) var(--space-5,20px);transition:all .2s ease;transition:all var(--duration-fast,.2s) ease;width:100%}.mode-button:hover{transform:scale(1.02)}.mode-button:focus-visible{outline:3px solid #2d5a3d;outline:3px solid var(--mode-primary,#2d5a3d);outline-offset:2px}.mode-button:active{transform:scale(.98)}.mode-button-learning{background:linear-gradient(135deg,#5c7cfa,#4263eb);background:var(--gradient-learning);color:#fff;color:var(--text-primary,#fff)}.mode-button-learning:hover{background:linear-gradient(135deg,#4263eb,#364fc7);background:var(--gradient-learning-hover)}.mode-button-bid{background:linear-gradient(135deg,#51cf66,#40c057);background:var(--gradient-bid);color:#fff;color:var(--text-primary,#fff)}.mode-button-bid:hover{background:linear-gradient(135deg,#40c057,#37b24d);background:var(--gradient-bid-hover)}.mode-button-play{background:linear-gradient(135deg,#845ef7,#7950f2);background:var(--gradient-play);color:#fff;color:var(--text-primary,#fff)}.mode-button-play:hover{background:linear-gradient(135deg,#7950f2,#6741d9);background:var(--gradient-play-hover)}.mode-button-progress{background:linear-gradient(135deg,#fcc419,#fab005);background:var(--gradient-progress);color:#333}.mode-button-progress:hover{background:linear-gradient(135deg,#fab005,#f59f00);background:var(--gradient-progress-hover)}.mode-selector-hint{color:#fff9;font-size:.85rem;font-size:var(--text-xs,.85rem);margin:8px 0 0;margin:var(--space-2,8px) 0 0 0;text-align:center}@media (max-width:768px){.mode-selector-container{align-items:flex-start;padding:16px;padding:var(--space-4,16px);padding-top:40px;padding-top:var(--space-10,40px)}.mode-selector-content{gap:20px;gap:var(--space-5,20px)}.mode-selector-title{font-size:1.8rem}.mode-selector-subtitle{font-size:1rem;font-size:var(--text-base,1rem)}.mode-cards-grid{gap:16px;gap:var(--space-4,16px);grid-template-columns:1fr}.mode-card{padding:20px;padding:var(--space-5,20px)}.mode-title{font-size:1.2rem}.mode-icon{font-size:1.6rem}}@media (max-width:480px){.mode-selector-container{padding:12px;padding:var(--space-3,12px);padding-top:24px;padding-top:var(--space-6,24px)}.mode-selector-title{font-size:1.5rem;font-size:var(--text-2xl,1.5rem)}.mode-selector-subtitle{font-size:.9rem;font-size:var(--text-sm,.9rem)}.mode-selector-prompt h2{font-size:1.2rem}.mode-card{padding:16px;padding:var(--space-4,16px)}.mode-button{padding:12px 16px;padding:var(--space-3,12px) var(--space-4,16px)}}@media (max-width:360px){.mode-selector-container{padding:8px;padding:var(--space-2,8px);padding-top:16px;padding-top:var(--space-4,16px)}.mode-cards-grid{gap:12px;gap:var(--space-3,12px)}.mode-card{padding:12px;padding:var(--space-3,12px)}.mode-title{font-size:1.1rem}.mode-features li{font-size:.8rem}.mode-button{font-size:.9rem;padding:8px 12px;padding:var(--space-2,8px) var(--space-3,12px)}}@media (prefers-reduced-motion:reduce){.mode-button,.mode-card,.mode-selector-feedback-button{transition:none}.mode-button:active,.mode-button:hover,.mode-card:hover,.mode-selector-feedback-button:hover{transform:none}}.bidding-workspace{display:flex;flex-direction:column;gap:var(--space-4);width:100%}.workspace-tabs{background:var(--bg-card-dark);border-radius:var(--radius-lg);display:flex;gap:var(--space-1);margin:0 auto;padding:var(--space-2);width:fit-content}.workspace-tab{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);color:#ffffffb3;cursor:pointer;display:flex;font-size:var(--text-base);font-weight:var(--font-medium);gap:var(--space-2);padding:var(--space-3) var(--space-5);transition:all var(--duration-fast) ease}.workspace-tab:hover{background:#ffffff1a;color:#ffffffe6}.workspace-tab.active{background:var(--bg-card);box-shadow:var(--shadow-md);color:var(--color-primary);font-weight:var(--font-semibold)}.tab-icon{font-size:var(--text-lg)}.tab-label{font-size:var(--text-base)}.workspace-content{width:100%}.tab-panel{display:flex;flex-direction:column;gap:var(--space-4)}.panel-header{align-items:center;background:#00000026;border-radius:var(--radius-md);display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;padding:var(--space-3) var(--space-4)}.panel-description{color:#ffffffd9;flex:1 1;font-size:var(--text-base);margin:0;min-width:min(200px,100%)}.primary-action-button{background:var(--gradient-bid);border:none;border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-size:var(--text-base);font-weight:var(--font-semibold);padding:var(--space-3) var(--space-6);transition:all var(--duration-fast) ease;white-space:nowrap}.primary-action-button:hover{background:var(--gradient-bid-hover);box-shadow:0 4px 12px #40c0574d;transform:translateY(-1px)}.primary-action-button:active{transform:translateY(0)}.convention-grid{grid-gap:var(--space-5);display:grid;gap:var(--space-5);grid-template-columns:repeat(3,1fr);margin-top:var(--space-2)}.convention-grid-loading{color:#ffffffb3;padding:var(--space-10);text-align:center}.convention-column{background:var(--bg-card);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden}.column-header{background:#f8f9fa;border-bottom:3px solid;padding:var(--space-4)}.column-header h3{color:var(--text-primary-dark);font-size:var(--text-lg);margin:0 0 var(--space-1) 0}.level-description{color:var(--text-secondary-dark);font-size:var(--text-xs);margin:0}.convention-cards{display:flex;flex:1 1;flex-direction:column;gap:var(--space-2);padding:var(--space-3)}.convention-card{align-items:flex-start;background:var(--bg-card);border:1px solid #e0e0e0;border-radius:var(--radius-md);cursor:pointer;display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4);text-align:left;transition:all var(--duration-fast) ease;width:100%}.convention-card:hover{background:#f0f7f4;border-color:var(--color-primary-lighter);transform:translateX(4px)}.convention-name{color:var(--color-primary);font-size:var(--text-base);font-weight:var(--font-semibold)}.convention-desc{color:var(--text-secondary-dark);font-size:var(--text-xs);line-height:1.3}.no-conventions{color:var(--text-muted);font-style:italic;margin:0;padding:var(--space-5);text-align:center}.session-history-empty{background:#ffffff1a;border-radius:var(--radius-lg);padding:var(--space-10) var(--space-5);text-align:center}.session-history-empty p{color:#ffffffd9;margin:0}.session-history-empty .hint{color:#fff9;font-size:var(--text-sm);margin-top:var(--space-2)}.session-history{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-4)}.history-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:300px;overflow-y:auto}.history-item{align-items:center;background:#f8f9fa;border-radius:var(--radius-md);display:flex;justify-content:space-between;padding:var(--space-3) var(--space-4);transition:background var(--duration-fast) ease}.history-item:hover{background:#e9ecef}.history-info{align-items:center;display:flex;gap:var(--space-4)}.history-number{color:var(--text-secondary-dark);font-weight:var(--font-semibold);min-width:30px}.history-hcp{background:#e3f2fd;border-radius:var(--radius-sm);color:var(--color-accent-blue-dark);font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-1) var(--space-3)}.history-contract{color:var(--text-primary-dark);font-weight:var(--font-semibold)}.history-result{border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--font-semibold);padding:var(--space-1) var(--space-3)}.history-result.made{background:#e8f5e9;color:var(--color-success-dark)}.history-result.down{background:#ffebee;color:var(--color-danger-dark)}.history-item .replay-button{background:var(--color-primary);border:none;border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-2) var(--space-4);transition:all var(--duration-fast) ease}.history-item .replay-button:hover{background:var(--color-primary-light);transform:scale(1.02)}@media (min-width:769px) and (max-width:1024px){.convention-grid{gap:var(--space-3)}.convention-card{padding:var(--space-2) var(--space-3)}.column-header{padding:var(--space-3)}}@media (min-width:601px) and (max-width:900px){.convention-grid{gap:var(--space-3);grid-template-columns:repeat(2,1fr)}.convention-column{max-height:none}@supports (grid-column:span 2){.convention-column:first-child{grid-column:span 2}}}@media (max-width:600px){.convention-grid{gap:var(--space-3);grid-template-columns:1fr}.convention-column{max-height:none}.workspace-tabs{justify-content:center;width:100%}.workspace-tab{flex:1 1;justify-content:center;min-height:44px;padding:var(--space-2) var(--space-4)}.tab-label{display:none}.tab-icon{font-size:var(--text-xl)}.panel-header{flex-direction:column;text-align:center}.primary-action-button{min-height:44px;width:100%}.history-info{flex-wrap:wrap;gap:var(--space-2)}.history-item .replay-button{min-height:44px;min-width:80px}}@media (max-width:360px){.workspace-tabs{gap:var(--space-1)}.workspace-tab{min-width:0;padding:var(--space-2) var(--space-2)}.panel-description{font-size:var(--text-sm)}.convention-grid{gap:var(--space-2)}.convention-card{padding:var(--space-2)}.convention-card h4{font-size:var(--text-sm)}.convention-examples span{font-size:var(--text-xs);padding:2px 6px}}@media (hover:none) and (pointer:coarse){.workspace-tab:active{transform:scale(.97);transition:transform .1s ease}.convention-card:active{transform:translateX(2px) scale(.98);transition:transform .1s ease}.primary-action-button:active{transform:scale(.98);transition:transform .1s ease}}.play-workspace{width:100%}.play-options-container{margin:0 auto;max-width:900px;padding:20px}.play-header{margin-bottom:32px;text-align:center}.play-header h2{color:#fff;font-size:1.8rem;margin:0 0 8px}.play-header p{color:#fffc;font-size:1.05rem;margin:0}.play-options-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(3,1fr);margin-bottom:32px}.play-option-card{align-items:center;background:#fffffff2;border-radius:12px;display:flex;flex-direction:column;gap:12px;padding:24px;text-align:center;transition:transform .2s ease,box-shadow .2s ease}.play-option-card:hover:not(.disabled){box-shadow:0 8px 24px #0003;transform:translateY(-4px)}.play-option-card.disabled{opacity:.6}.option-icon{font-size:2.5rem;line-height:1}.play-option-card h3{color:#2d5a3d;font-size:1.2rem;margin:0}.play-option-card p{color:#666;flex:1 1;font-size:.9rem;line-height:1.5;margin:0}.option-button{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;margin-top:auto;padding:12px 20px;transition:all .2s ease;width:100%}.option-button:disabled{cursor:not-allowed;opacity:.5}.option-button.primary{background:linear-gradient(135deg,#845ef7,#7950f2);color:#fff}.option-button.primary:hover:not(:disabled){background:linear-gradient(135deg,#7950f2,#6741d9);transform:scale(1.02)}.option-button.secondary{background:#2d5a3d;color:#fff}.option-button.secondary:hover:not(:disabled){background:#3d6b52;transform:scale(1.02)}.play-tips{background:#ffffff1a;border-radius:12px;padding:20px 24px}.play-tips h4{color:#fff;font-size:1rem;margin:0 0 12px}.play-tips ul{color:#fffc;margin:0;padding-left:20px}.play-tips li{font-size:.9rem;margin-bottom:6px}.play-tips li:last-child{margin-bottom:0}@media (min-width:769px) and (max-width:1024px){.play-options-grid{gap:16px}.play-option-card{padding:20px}.play-option-card p{font-size:.85rem}}@media (min-width:601px) and (max-width:900px){.play-options-grid{gap:16px;grid-template-columns:repeat(2,1fr)}.play-option-card{flex-direction:column;gap:12px;text-align:center}.play-option-card p{display:block;font-size:.85rem;line-height:1.4}.option-icon{font-size:2rem}.play-option-card h3{font-size:1.1rem}.play-option-card:nth-child(3){grid-column:1/-1;justify-self:center;max-width:400px}}@media (max-width:600px){.play-options-container{padding:12px}.play-options-grid{gap:12px;grid-template-columns:1fr}.play-header h2{font-size:1.5rem}.play-option-card{grid-gap:8px 12px;align-items:center;display:grid;gap:8px 12px;grid-template-columns:auto 1fr;grid-template-rows:auto auto;padding:14px}.option-icon{align-self:start;flex-shrink:0;font-size:1.5rem;grid-row:1/3;padding-top:4px}.play-option-card h3{font-size:.95rem;grid-column:2;grid-row:1;margin:0}.play-option-card p{display:none}.option-button{font-size:.85rem;grid-column:2;grid-row:2;max-width:180px;min-height:44px;overflow:hidden;padding:10px 14px;text-overflow:ellipsis;white-space:nowrap;width:100%}}@media (max-width:360px){.play-options-container{padding:8px}.play-option-card{gap:6px 10px;padding:12px}.option-icon{font-size:1.3rem}.play-option-card h3{font-size:.9rem}.option-button{font-size:.8rem;max-width:150px;padding:8px 12px}}@media (hover:none) and (pointer:coarse){.play-option-card:active:not(.disabled){transform:scale(.98);transition:transform .1s ease}.option-button:active:not(:disabled){transform:scale(.95);transition:transform .1s ease}}.session-score-panel{background:linear-gradient(135deg,#1e3a5f,#2a5a8f);border-radius:12px;box-shadow:0 4px 12px #0003;color:#fff;margin-bottom:20px;padding:20px;position:relative}.session-score-panel-collapsed{padding:0}.session-collapse-toggle{align-items:center;background:#0000;border:none;color:#fff;cursor:pointer;display:flex;font-size:.95rem;gap:12px;padding:12px 16px;transition:background .2s ease;width:100%}.session-collapse-toggle:hover{background:#ffffff1a}.session-collapse-expanded{border-radius:6px;padding:8px;position:absolute;right:8px;top:8px;width:auto}.collapse-badge{background:#fff3;border-radius:10px;font-weight:500;padding:4px 10px}.collapse-score{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.collapse-icon{font-size:.8rem;margin-left:auto;opacity:.7}.session-header{margin-bottom:20px}.session-title{align-items:center;display:flex;gap:12px;margin-bottom:12px}.session-title h3{font-size:1.5rem;font-weight:600;margin:0}.session-type-badge{background:#fff3;border-radius:12px;font-size:.85rem;font-weight:500;padding:4px 12px}.session-progress{display:flex;flex-direction:column;gap:6px}.progress-label{font-size:.95rem;opacity:.9}.progress-bar{background:#fff3;border-radius:4px;height:8px;overflow:hidden;width:100%}.progress-fill{background:linear-gradient(90deg,#4caf50,#81c784);border-radius:4px;height:100%;transition:width .5s ease}.session-scores{align-items:center;border-bottom:1px solid #fff3;border-top:1px solid #fff3;display:flex;justify-content:space-around;padding:24px 0}.partnership-score{align-items:center;border-radius:8px;display:flex;flex-direction:column;gap:8px;min-width:150px;padding:12px;transition:all .3s ease}.partnership-score.leading{background:#4caf5033;border:2px solid #4caf5080}.user-score{border:2px solid #ffffff4d}.opponent-score{border:2px solid #fff3}.score-label{font-size:.9rem;opacity:.9;text-align:center}.score-value{font-feature-settings:"tnum";font-size:2.5rem;font-variant-numeric:tabular-nums;font-weight:700}.leader-badge{animation:pulse 2s ease-in-out infinite;color:#81c784;font-size:.85rem;font-weight:600}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.score-divider{align-items:center;display:flex;flex-direction:column;gap:4px;padding:0 20px}.vs-label{font-size:1.2rem;font-weight:600;opacity:.7}.score-difference{font-feature-settings:"tnum";font-size:.9rem;font-variant-numeric:tabular-nums;opacity:.8}.current-hand-info{gap:24px;justify-content:center;margin-top:20px;padding-top:16px}.current-hand-info,.info-item{align-items:center;display:flex}.info-item{gap:8px}.info-label{font-size:.9rem;opacity:.8}.info-value{background:#ffffff26;border-radius:6px;font-size:1rem;font-weight:600;padding:4px 12px}.info-value.vuln-none{background:#4caf5033;color:#81c784}.info-value.vuln-ew,.info-value.vuln-ns{background:#f4433633;color:#ef5350}.info-value.vuln-both{background:#f443364d;color:#ff6b6b;font-weight:700}.view-history-btn{background:#ffffff26;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:6px 16px;transition:all .3s ease}.view-history-btn:hover{background:#ffffff40;border-color:#ffffff80}@media (max-width:768px){.session-scores{flex-direction:column;gap:16px}.score-divider{margin:8px 0;transform:rotate(90deg)}.current-hand-info{flex-wrap:wrap;gap:12px}.partnership-score{min-width:200px}}.simple-login-overlay{align-items:center;animation:fadeIn var(--duration-fast) ease-in;background:var(--bg-overlay);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:var(--z-modal)}.simple-login-modal{animation:slideUp var(--duration-normal) ease-out;background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:440px;padding:var(--space-10);position:relative;width:90%}.simple-login-modal .close-button{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:32px;height:32px;line-height:1;padding:0;position:absolute;right:var(--space-4);top:var(--space-4);transition:color var(--duration-fast);width:32px}.simple-login-modal .close-button:hover,.simple-login-modal h2{color:var(--text-primary-dark)}.simple-login-modal h2{font-size:var(--text-2xl);margin:0 0 var(--space-6) 0;text-align:center}.login-method-toggle{background:#f5f5f5;border-radius:var(--radius-md);gap:var(--space-2);margin-bottom:var(--space-6);padding:var(--space-1)}.toggle-btn{background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text-secondary-dark);cursor:pointer;flex:1 1;font-size:var(--text-base);font-weight:var(--font-medium);padding:var(--space-3);transition:all var(--duration-fast)}.toggle-btn.active{background:var(--bg-card);box-shadow:var(--shadow-sm);color:var(--color-success)}.login-subtitle{color:var(--text-secondary-dark);font-size:var(--text-base);margin:0 0 var(--space-6) 0;text-align:center}.form-group{margin-bottom:var(--space-5)}.form-group label{color:var(--text-primary-dark);display:block;font-size:var(--text-sm);font-weight:var(--font-medium);margin-bottom:var(--space-2)}.form-group input{background-color:var(--bg-card);border:1px solid #ddd;border-radius:var(--radius-sm);box-sizing:border-box;color:var(--text-primary-dark);font-size:var(--text-base);padding:var(--space-3);transition:border-color var(--duration-fast);width:100%}.form-group input::placeholder{color:var(--text-muted)}.form-group input:focus{border-color:var(--color-success);box-shadow:0 0 0 3px #4caf501a;outline:none}.input-hint{color:var(--text-muted);display:block;font-size:var(--text-xs);margin-top:var(--space-2)}.btn-primary,.btn-secondary{border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-base);font-weight:var(--font-medium);padding:var(--space-3);transition:all var(--duration-fast);width:100%}.btn-primary{background:var(--color-success);color:var(--text-primary)}.btn-primary:hover:not(:disabled){background:var(--color-success-dark);box-shadow:0 2px 8px #4caf504d;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{background:#ccc;cursor:not-allowed}.btn-secondary{background:var(--bg-card);border:1px solid #ddd;color:var(--text-secondary-dark)}.btn-secondary:hover{background:#f5f5f5;border-color:#ccc}.divider{margin:var(--space-5) 0;position:relative;text-align:center}.divider:before{background:#ddd;content:"";height:1px;left:0;position:absolute;top:50%;width:100%}.divider span{background:var(--bg-card);color:var(--text-muted);font-size:var(--text-sm);padding:0 var(--space-3);position:relative}.simple-login-modal .error-message{align-items:center;background:#ffebee;border-radius:var(--radius-sm);color:var(--color-danger-dark);display:flex;font-size:var(--text-sm);gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3)}.simple-login-modal .error-message:before{content:"⚠️"}.privacy-note{color:var(--text-muted);font-size:var(--text-xs);line-height:1.6;margin-top:var(--space-5)}@media (max-width:480px){.simple-login-modal{padding:var(--space-6);width:95%}.simple-login-modal h2{font-size:var(--text-xl)}}.registration-prompt-overlay{align-items:center;animation:fadeIn .2s ease-out;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.registration-prompt-modal{animation:slideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:420px;padding:32px;position:relative;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.registration-prompt-modal .close-button{background:none;border:none;border-radius:4px;color:#666;cursor:pointer;font-size:24px;line-height:1;padding:4px 8px;position:absolute;right:12px;top:12px}.registration-prompt-modal .close-button:hover{background:#f0f0f0;color:#333}.prompt-header{margin-bottom:16px;text-align:center}.prompt-icon{display:block;font-size:48px;margin-bottom:8px}.prompt-header h2{color:#1a5f2a;font-size:24px;margin:0}.prompt-message{color:#555;font-size:16px;line-height:1.5;margin-bottom:20px;text-align:center}.progress-stats{background:#f8f9fa;border-radius:12px;display:flex;gap:24px;justify-content:center;margin-bottom:20px;padding:16px}.stat{text-align:center}.stat-value{color:#1a5f2a;display:block;font-size:32px;font-weight:700}.stat-label{color:#666;font-size:12px;letter-spacing:.5px;text-transform:uppercase}.benefits-list{margin-bottom:20px}.benefit{align-items:center;color:#444;display:flex;gap:12px;padding:8px 0}.benefit-icon{font-size:20px}.login-method-toggle{display:flex;gap:8px;margin-bottom:16px}.login-method-toggle .toggle-btn{background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;flex:1 1;font-size:14px;padding:10px;transition:all .2s}.login-method-toggle .toggle-btn:hover{border-color:#1a5f2a}.login-method-toggle .toggle-btn.active{background:#e8f5e9;border-color:#1a5f2a;color:#1a5f2a}.registration-form{display:flex;flex-direction:column;gap:12px}.registration-form input{background-color:#fff;border:2px solid #e0e0e0;border-radius:8px;color:var(--text-primary-dark);font-size:16px;padding:14px 16px;transition:border-color .2s}.registration-form input::placeholder{color:var(--text-muted)}.registration-form input:focus{border-color:#1a5f2a;outline:none}.registration-form .btn-primary{background:#1a5f2a;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px 24px;transition:background .2s}.registration-form .btn-primary:hover{background:#145022}.registration-form .btn-primary:disabled{background:#aaa;cursor:not-allowed}.registration-form .error-message{background:#ffebee;border-radius:6px;color:#d32f2f;font-size:14px;padding:8px 12px}.prompt-footer{align-items:center;border-top:1px solid #eee;display:flex;gap:12px;justify-content:center;margin-top:16px;padding-top:16px}.btn-text{background:none;border:none;color:#666;cursor:pointer;font-size:14px;padding:4px 8px}.btn-text:hover{color:#1a5f2a;text-decoration:underline}.btn-text.muted{color:#999;font-size:12px}.separator{color:#ccc}.privacy-note{color:#888;font-size:12px;margin-bottom:0;margin-top:12px;text-align:center}@media (max-width:480px){.registration-prompt-modal{margin:16px;padding:24px 20px;width:calc(100% - 32px)}.prompt-icon{font-size:40px}.prompt-header h2{font-size:20px}.stat-value{font-size:28px}}.dds-status-indicator{background:#fff;border-radius:8px;bottom:20px;box-shadow:0 2px 8px #00000026;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;max-width:320px;position:fixed;right:20px;z-index:1000}.dds-status-indicator.loading{opacity:.7;padding:12px 16px}.dds-status-indicator.error{border-left:3px solid #ff9800;padding:12px 16px}.dds-status-indicator.dds-enabled{border-left:3px solid #4caf50}.dds-status-indicator.dds-disabled{border-left:3px solid #ff9800}.status-main{align-items:center;cursor:pointer;display:flex;gap:8px;padding:12px 16px;transition:background-color .2s;-webkit-user-select:none;user-select:none}.status-main:hover{background-color:#f5f5f5}.status-dot{font-size:18px;line-height:1}.status-text{color:#333;flex:1 1;font-size:14px;font-weight:500}.expand-icon{color:#666;font-size:10px;transition:transform .2s}.status-details{animation:slideDown .2s ease-out;background-color:#fafafa;border-top:1px solid #e0e0e0;padding:12px 16px}.status-detail-section{margin-bottom:16px}.status-detail-section:last-child{margin-bottom:0}.status-detail-section h4{color:#666;font-size:12px;font-weight:600;letter-spacing:.5px;margin:0 0 8px;text-transform:uppercase}.status-info{background:#fff;border-radius:4px;font-size:13px;padding:8px 12px}.info-row{display:flex;justify-content:space-between;line-height:1.4;margin-bottom:6px}.info-row:last-child{margin-bottom:0}.info-label{color:#666;font-weight:500}.info-value{color:#333;font-weight:400}.info-value.success{color:#4caf50;font-weight:500}.info-value.warning{color:#ff9800;font-weight:500}.info-description{border-top:1px solid #f0f0f0;color:#666;font-size:12px;line-height:1.4;margin-top:8px;padding-top:8px}.all-difficulties{background:#fff;border-radius:4px;padding:8px 12px}.difficulty-row{display:flex;font-size:12px;justify-content:space-between;margin-bottom:6px}.difficulty-row:last-child{margin-bottom:0}.difficulty-name{color:#666;text-transform:capitalize}.difficulty-rating{color:#333}@media (max-width:768px){.dds-status-indicator{bottom:10px;max-width:calc(100vw - 20px);right:10px}.status-text{font-size:13px}}.ai-difficulty-selector{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:16px 0}.difficulty-header{align-items:center;display:flex;gap:12px}.difficulty-label{color:#666;font-size:14px;font-weight:600}.difficulty-current{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;font-family:inherit;gap:8px;padding:8px 16px;transition:all .2s}.difficulty-current:hover{border-color:#2196f3;box-shadow:0 2px 8px #2196f333}.difficulty-emoji{font-size:20px}.difficulty-name{color:#333;font-size:14px;font-weight:600}.difficulty-rating{background:#f5f5f5;border-radius:4px;color:#666;font-family:Courier New,monospace;font-size:12px;font-weight:500;padding:2px 6px}.expand-arrow{color:#999;font-size:10px;margin-left:4px}.difficulty-options{animation:slideDown .2s ease-out;background:#fafafa;border:1px solid #e0e0e0;border-radius:8px;margin-top:12px;padding:16px}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.difficulty-option{background:#fff;border:2px solid #e0e0e0;border-left-width:4px;border-radius:6px;cursor:pointer;display:block;font-family:inherit;margin-bottom:8px;padding:12px 16px;text-align:left;transition:all .2s;width:100%}.difficulty-option:last-of-type{margin-bottom:0}.difficulty-option:hover:not(.disabled):not(.active){border-color:#2196f3;box-shadow:0 2px 8px #0000001a;transform:translateX(4px)}.difficulty-option.active{border-right:2px solid;border-right-color:inherit;font-weight:500}.difficulty-option.disabled{cursor:not-allowed;opacity:.6}.option-header{align-items:center;display:flex;gap:8px;margin-bottom:4px}.option-emoji{font-size:18px}.option-name{color:#333;flex:1 1;font-size:14px;font-weight:600}.option-rating{background:#f5f5f5;border-radius:3px;color:#666;font-family:Courier New,monospace;font-size:11px;font-weight:600;padding:2px 6px}.active-indicator{color:#4caf50;font-size:16px;font-weight:700}.option-description{color:#666;font-size:12px;line-height:1.4;margin-left:26px}.dds-status-banner{align-items:center;border-radius:6px;display:flex;flex-wrap:wrap;font-size:13px;gap:8px;margin-bottom:12px;padding:10px 14px}.dds-status-banner.dds-active{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.dds-status-banner.dds-inactive{background:#fff3cd;border:1px solid #ffeeba;color:#856404}.dds-status-icon{font-size:16px}.dds-status-text{font-weight:600}.dds-reason{font-size:11px;font-style:italic;margin-top:4px;opacity:.85;width:100%}.fallback-badge{background:#ffc107;border-radius:3px;color:#856404;font-size:10px;font-weight:600;margin-left:4px;padding:2px 6px;text-transform:uppercase}.difficulty-note{background:#fff3cd;border-left:3px solid #ffc107;border-radius:4px;color:#856404;font-size:12px;line-height:1.5;margin-top:12px;padding:12px}.difficulty-note strong{font-weight:600}@media (max-width:768px){.difficulty-header{align-items:flex-start;flex-direction:column}.difficulty-current{justify-content:space-between;width:100%}.option-description{margin-left:0;margin-top:4px}}:root{--nav-learn-color:#4263eb;--nav-learn-light:#5c7cfa;--nav-bid-color:#40c057;--nav-bid-light:#51cf66;--nav-play-color:#7950f2;--nav-play-light:#845ef7;--nav-progress-color:#fab005;--nav-progress-light:#fcc419}.top-navigation{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-lighter) 100%);border-bottom:1px solid #ffffff26;box-shadow:0 2px 12px #00000026;height:64px;left:0;position:fixed;right:0;top:0;z-index:1000}.top-nav-content{gap:var(--space-4);height:100%;justify-content:space-between;margin:0 auto;max-width:1400px;padding:0 var(--space-4)}.nav-modules,.top-nav-content{align-items:center;display:flex}.nav-modules{gap:var(--space-2)}.nav-icon{align-items:center;background:#ffffff1a;border:1px solid #ffffff26;border-radius:var(--radius-lg);cursor:pointer;display:flex;flex-direction:column;height:48px;justify-content:center;padding:var(--space-1) var(--space-2);position:relative;transition:all .2s ease;width:56px}.nav-icon:hover{background:#fff3;transform:translateY(-2px)}.nav-icon:focus{box-shadow:0 0 0 2px #ffffff80;outline:none}.nav-icon:active{transform:translateY(0)}.nav-icon-emoji{filter:grayscale(20%);font-size:20px;line-height:1;transition:filter .2s ease}.nav-icon.active .nav-icon-emoji,.nav-icon:hover .nav-icon-emoji{filter:grayscale(0)}.nav-icon-label{color:#ffffffb3;font-size:10px;font-weight:600;letter-spacing:.5px;margin-top:2px;text-transform:uppercase;transition:color .2s ease}.nav-icon:hover .nav-icon-label{color:#ffffffe6}.nav-icon:after{border-radius:3px 3px 0 0;bottom:-1px;content:"";height:3px;left:50%;position:absolute;transform:translateX(-50%);transition:all .2s ease;width:0}.nav-icon.active:after{width:32px}.nav-icon-learning.active{background:linear-gradient(135deg,#5c7cfa,#4263eb);background:linear-gradient(135deg,var(--nav-learn-light) 0,var(--nav-learn-color) 100%);border-color:#4263eb;border-color:var(--nav-learn-color);box-shadow:0 4px 12px #4263eb66}.nav-icon-learning.active .nav-icon-label{color:#fff}.nav-icon-learning.active:after{background:#5c7cfa;background:var(--nav-learn-light)}.nav-icon-learning:hover:not(.active){border-color:#5c7cfa80}.nav-icon-bid.active{background:linear-gradient(135deg,#51cf66,#40c057);background:linear-gradient(135deg,var(--nav-bid-light) 0,var(--nav-bid-color) 100%);border-color:#40c057;border-color:var(--nav-bid-color);box-shadow:0 4px 12px #40c05766}.nav-icon-bid.active .nav-icon-label{color:#fff}.nav-icon-bid.active:after{background:#51cf66;background:var(--nav-bid-light)}.nav-icon-bid:hover:not(.active){border-color:#51cf6680}.nav-icon-play.active{background:linear-gradient(135deg,#845ef7,#7950f2);background:linear-gradient(135deg,var(--nav-play-light) 0,var(--nav-play-color) 100%);border-color:#7950f2;border-color:var(--nav-play-color);box-shadow:0 4px 12px #7950f266}.nav-icon-play.active .nav-icon-label{color:#fff}.nav-icon-play.active:after{background:#845ef7;background:var(--nav-play-light)}.nav-icon-play:hover:not(.active){border-color:#845ef780}.nav-icon-progress.active{background:linear-gradient(135deg,#fcc419,#fab005);background:linear-gradient(135deg,var(--nav-progress-light) 0,var(--nav-progress-color) 100%);border-color:#fab005;border-color:var(--nav-progress-color);box-shadow:0 4px 12px #fab00566}.nav-icon-progress.active .nav-icon-label{color:#1a1a1a}.nav-icon-progress.active:after{background:#fcc419;background:var(--nav-progress-light)}.nav-icon-progress:hover:not(.active){border-color:#fcc41980}.nav-title-section{align-items:center;display:flex;flex:1 1;justify-content:center}.nav-app-title{color:#fff;font-size:var(--text-xl);font-weight:600;margin:0;text-shadow:0 1px 2px #0000001a}.nav-right-section{align-items:center;display:flex;gap:var(--space-2);justify-content:flex-end;min-width:200px}.nav-utility-button{align-items:center;background:#ffffff26;border:1px solid #fff3;border-radius:var(--radius-md);color:#fff;cursor:pointer;display:flex;font-size:var(--text-sm);font-weight:500;gap:var(--space-1);padding:var(--space-2) var(--space-3);transition:all .2s ease;white-space:nowrap}.nav-utility-button:hover{background:#ffffff40;transform:translateY(-1px)}.nav-utility-button:focus{box-shadow:0 0 0 2px #ffffff80;outline:none}.nav-utility-button:active{transform:translateY(0)}.nav-feedback-button{background:#05966999;border-color:#059669cc}.nav-feedback-button:hover{background:#059669cc}.nav-right-section .user-menu{align-items:center;display:flex;gap:var(--space-2)}.nav-right-section .auth-button,.nav-right-section .user-display{color:#fff;font-size:var(--text-sm);font-weight:500}.nav-right-section .auth-button{background:#4caf50cc;border:1px solid #4caf50;border-radius:var(--radius-md);cursor:pointer;padding:var(--space-2) var(--space-3);transition:all .2s ease}.nav-right-section .auth-button:hover{background:#4caf50;transform:translateY(-1px)}.nav-right-section .logout-button{background:#ffffff26;border:1px solid #ffffff4d;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-size:var(--text-sm);padding:var(--space-2) var(--space-3);transition:all .2s ease}.nav-right-section .logout-button:hover{background:#ffffff40}@media (min-width:769px) and (max-width:1024px){.top-navigation{height:60px}.nav-icon{height:46px;width:52px}.nav-icon-emoji{font-size:19px}.nav-icon-label{font-size:9px}.nav-app-title{font-size:var(--text-lg)}.nav-right-section{gap:var(--space-2)}}@media (max-width:768px){.top-navigation{height:56px}.nav-icon{height:44px;width:48px}.nav-icon-emoji{font-size:18px}.nav-icon-label{font-size:9px}.nav-app-title{font-size:var(--text-lg)}.nav-right-section{gap:var(--space-1);min-width:auto}.nav-utility-button{padding:var(--space-1) var(--space-2)}.nav-utility-label{display:none}}@media (max-width:480px){.top-nav-content{gap:var(--space-2);padding:0 var(--space-2)}.nav-modules{gap:var(--space-1)}.nav-icon{height:44px;padding:var(--space-1);width:44px}.nav-icon-emoji{font-size:18px}.nav-icon-label,.nav-title-section{display:none}.nav-icon.active:after{width:24px}.nav-utility-button{align-items:center;display:flex;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-1)}.nav-right-section .user-display{display:none}}@media (hover:none) and (pointer:coarse){.nav-icon:active,.nav-utility-button:active{transform:scale(.95);transition:transform .1s ease}}@keyframes navIconPulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.nav-icon.active{animation:navIconPulse .3s ease-out}@media (prefers-reduced-motion:reduce){.nav-icon,.nav-icon-emoji,.nav-icon-label,.nav-icon:after{transition:none}.nav-icon.active{animation:none}}
/*# sourceMappingURL=main.ecd593aa.css.map*/