@import"https://fonts.googleapis.com/css2?family=Kanit:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap";/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-blue-600:oklch(54.6% .245 262.881);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-white:#fff;--spacing:.25rem;--container-md:28rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--font-weight-bold:700;--radius-2xl:1rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}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;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mt-4{margin-top:calc(var(--spacing)*4)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.block{display:block}.flex{display:flex}.grid{display:grid}.inline{display:inline}.table{display:table}.h-12{height:calc(var(--spacing)*12)}.min-h-screen{min-height:100vh}.w-12{width:calc(var(--spacing)*12)}.w-full{width:100%}.max-w-md{max-width:var(--container-md)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.rounded-2xl{border-radius:var(--radius-2xl)}.border{border-style:var(--tw-border-style);border-width:1px}.bg-gray-100{background-color:var(--color-gray-100)}.bg-white{background-color:var(--color-white)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.text-center{text-align:center}.text-left{text-align:left}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.text-blue-600{color:var(--color-blue-600)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.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-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\:underline:hover{text-decoration-line:underline}}@media (min-width:48rem){.md\:justify-end{justify-content:flex-end}.md\:justify-start{justify-content:flex-start}}}*{box-sizing:border-box;margin:0;padding:0;font-family:Arial,sans-serif!important}.app-container{flex-direction:column;min-height:100vh;display:flex}.admin-layout{display:flex}.admin-layout .content-area{flex:1;margin-left:280px;transition:margin-left .3s}.admin-layout.sidebar-closed .content-area{margin-left:0}@media (max-width:768px){.admin-layout .content-area{margin-left:0}}.sidebar{transition:transform .3s}.sidebar-closed .sidebar{transform:translate(-100%)}@media (min-width:769px){.sidebar-closed .sidebar{transform:translate(0)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb 70%,#f5576c);position:relative;overflow:hidden;padding:20px}.background-elements{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.circle{position:absolute;border-radius:50%;background:#ffffff1a;animation:float 6s ease-in-out infinite}.circle-1{width:200px;height:200px;top:10%;left:10%;animation-delay:0s}.circle-2{width:150px;height:150px;top:60%;right:15%;animation-delay:2s}.circle-3{width:100px;height:100px;bottom:20%;left:20%;animation-delay:4s}.wave{position:absolute;width:200%;height:200px;background:#ffffff0d;animation:wave 8s linear infinite}.wave-1{top:20%;left:-50%;border-radius:0 0 50% 50%}.wave-2{bottom:30%;right:-50%;border-radius:50% 50% 0 0;animation-delay:4s}.login-content{display:grid;grid-template-columns:1fr 1fr;max-width:1200px;width:100%;gap:60px;align-items:center;z-index:1}.login-left{display:flex;flex-direction:column;justify-content:center;color:#fff;padding:40px}.brand-section{max-width:500px}.brand-logo{display:flex;align-items:center;margin-bottom:24px}.logo-icon{font-size:48px;margin-right:16px;animation:pulse 2s infinite}.brand-title{font-size:48px;font-weight:700;margin:0;background:linear-gradient(45deg,#fff,#f0f8ff);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:2px 2px 4px rgba(0,0,0,.1)}.brand-subtitle{font-size:18px;margin-bottom:40px;opacity:.9;line-height:1.6}.feature-list{display:flex;flex-direction:column;gap:20px}.feature-item{display:flex;align-items:center;font-size:16px;opacity:.9}.feature-icon{font-size:24px;margin-right:16px;width:40px;text-align:center}.login-right{display:flex;justify-content:center;align-items:center}.login-card{width:100%;max-width:450px;border-radius:20px;box-shadow:0 20px 60px #0000004d;border:none;background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);overflow:hidden}.login-card .ant-card-body{padding:40px}.login-header{text-align:center;margin-bottom:32px}.login-title{font-size:32px;font-weight:700;color:#2c3e50;margin-bottom:8px;background:linear-gradient(135deg,#667eea,#764ba2);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.login-subtitle{font-size:16px;color:#7f8c8d;margin:0}.login-form{margin-bottom:24px}.login-form .ant-form-item-label>label{font-weight:600;color:#2c3e50;font-size:14px}.custom-input{height:48px;border-radius:12px;border:2px solid #e9ecef;transition:all .3s ease;background:#f8f9fa}.custom-input:hover,.custom-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;background:#fff}.input-icon{color:#6c757d;font-size:16px}.form-options{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.forgot-link{color:#667eea;text-decoration:none;font-size:14px;font-weight:500;transition:color .3s ease}.forgot-link:hover{color:#764ba2}.login-button-item{margin-bottom:24px}.login-button{height:48px;border-radius:12px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;font-size:16px;font-weight:600;box-shadow:0 4px 20px #667eea4d;transition:all .3s ease}.login-button:hover{background:linear-gradient(135deg,#5a6fd8,#6a4190);transform:translateY(-2px);box-shadow:0 8px 30px #667eea66}.login-divider{margin:24px 0;color:#6c757d;font-size:14px}.login-divider .ant-divider-inner-text{background:#fffffff2;padding:0 16px}.social-login{margin-bottom:24px}.social-button{height:48px;border-radius:12px;border:2px solid #e9ecef;background:#fff;color:#495057;font-weight:500;transition:all .3s ease}.social-button:hover{border-color:#667eea;color:#667eea;transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.social-icon{margin-right:8px;font-size:18px}.signup-link{text-align:center;font-size:14px;color:#6c757d}.signup-text{color:#667eea;font-weight:600;text-decoration:none;transition:color .3s ease}.signup-text:hover{color:#764ba2}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes wave{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@media (max-width: 1024px){.login-content{grid-template-columns:1fr;gap:40px;text-align:center}.login-left{order:2;padding:20px}.login-right{order:1}.brand-title{font-size:36px}.brand-subtitle{font-size:16px}}@media (max-width: 768px){.login-container{padding:20px 16px}.login-card .ant-card-body{padding:32px 24px}.login-title{font-size:28px}.brand-title{font-size:32px}.feature-list{gap:16px}.feature-item{font-size:14px}.feature-icon{font-size:20px;width:32px}}@media (max-width: 480px){.login-left{display:none}.login-content{grid-template-columns:1fr}.login-card{margin:0;border-radius:16px}.login-card .ant-card-body{padding:24px 20px}.login-title{font-size:24px}}.sidebar{width:280px;height:100vh;background:linear-gradient(180deg,#2c3e50,#34495e,#2c3e50);padding:20px 0;display:flex;flex-direction:column;box-shadow:4px 0 20px #00000026;position:fixed;left:0;top:0;overflow-y:auto;border-right:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.sidebar:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 20% 80%,rgba(120,119,198,.3) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,255,255,.05) 0%,transparent 50%),radial-gradient(circle at 40% 40%,rgba(120,119,198,.1) 0%,transparent 50%);pointer-events:none}.sidebar-logo{display:flex;align-items:center;padding:0 24px;margin-bottom:40px;position:relative;z-index:2}.logo-icon{width:40px!important;height:40px!important;object-fit:contain!important;filter:none!important;border-radius:8px;padding:4px;background:linear-gradient(135deg,#ffffff1a,#ffffff0d);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);transition:all .3s ease}.logo-icon:hover{transform:scale(1.1) rotate(5deg);box-shadow:0 4px 15px #fff3}.logo-text{font-size:22px!important;font-weight:700!important;color:#fff!important;margin-left:12px!important;background:linear-gradient(135deg,#fff,#e8f4f8)!important;background-clip:text!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;text-shadow:0 2px 4px rgba(0,0,0,.3)!important;position:relative}.logo-text:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);border-radius:1px}.sidebar-nav{display:flex;flex-direction:column;gap:8px;padding:0 12px;position:relative;z-index:2;flex:1}.nav-item{display:flex;align-items:center;padding:16px 20px;color:#fffc;font-size:16px;font-weight:500;border-radius:12px;transition:all .3s ease;cursor:pointer;text-decoration:none;position:relative;margin-bottom:4px;background:#ffffff08;border:1px solid rgba(255,255,255,.05);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.nav-item:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:0;background:linear-gradient(180deg,#7877c6,#a8e6cf);border-radius:0 2px 2px 0;transition:height .3s ease}.nav-item:hover:before{height:60%}.nav-item:hover{background:#ffffff1a;color:#fff;transform:translate(8px);border-color:#fff3;box-shadow:0 4px 15px #0003}.nav-item.active{background:linear-gradient(135deg,#7877c64d,#a8e6cf33);color:#fff;border-color:#7877c680;transform:translate(8px);box-shadow:0 4px 20px #7877c64d}.nav-item.active:before{height:80%}.nav-item svg{font-size:20px;margin-right:16px;transition:all .3s ease}.nav-item:hover svg,.nav-item.active svg{transform:scale(1.1);filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.logout-item{margin-top:auto;margin-bottom:20px;background:#e74c3c1a;border-color:#e74c3c33;color:#ffffffe6}.logout-item:hover{background:#e74c3c33;border-color:#e74c3c66;color:#fff;box-shadow:0 4px 15px #e74c3c4d}.logout-item:before{background:linear-gradient(180deg,#e74c3c,#c0392b)}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.sidebar::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px;transition:background .3s ease}.sidebar::-webkit-scrollbar-thumb:hover{background:#ffffff4d}@media (max-width: 768px){.sidebar{width:100%;height:auto;position:relative;padding:10px 0;background:linear-gradient(135deg,#2c3e50,#34495e,#2c3e50)}.sidebar.collapsed{display:none}.sidebar-logo{margin-bottom:20px;justify-content:center}.logo-text{font-size:18px!important}.nav-item{padding:12px 16px;font-size:14px}.nav-item svg{font-size:18px;margin-right:12px}}@keyframes slideInLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.sidebar{animation:slideInLeft .5s ease-out}@keyframes glow{0%,to{box-shadow:4px 0 20px #00000026}50%{box-shadow:4px 0 25px #7877c633}}.sidebar{animation:slideInLeft .5s ease-out,glow 4s ease-in-out infinite}.dashboard-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background-color:#fff;border-bottom:1px solid #f0f0f0;box-shadow:0 2px 4px #0000000d}.header-left{display:flex;align-items:center;gap:16px}.sidebar-toggle{display:none;border:none;background:transparent;font-size:18px;padding:8px;cursor:pointer}.title{font-size:1.5rem;font-weight:700;color:#1a2b4e;margin:0}.header-user{display:flex;align-items:center}.user-info{display:flex;align-items:center;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background-color .2s}.user-info:hover{background-color:#f5f6fa}.user-details{margin-left:8px}.user-name{font-size:14px;font-weight:500;color:#1a2b4e}@media (max-width: 768px){.sidebar-toggle{display:block}.dashboard-header{padding:12px 16px}.title{font-size:1.2rem}.ant-breadcrumb{display:none}}.chord-display-container{width:100%;max-width:100%;overflow:hidden}.chord-controls{margin-bottom:24px;padding:24px;background:#f8f9fa;border-radius:16px;border:none;box-shadow:0 2px 12px #00000014;max-width:100%;overflow:hidden}.key-control-section{text-align:center;margin-bottom:32px}.key-section-title{font-size:18px;font-weight:600;color:#2c3e50;margin-bottom:20px}.key-selector-container{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:16px}.transpose-btn{width:48px;height:48px;border-radius:50%;border:none;background:#2c3e50;color:#fff;font-size:24px;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.transpose-btn:hover{background:#34495e;transform:scale(1.05)}.transpose-btn:active{transform:scale(.95)}.current-key-display{min-width:120px;height:48px;background:#f4648b;color:#fff;border:none;border-radius:24px;font-size:18px;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.current-key-display:hover{background:#f4648b;transform:translateY(-2px);box-shadow:0 4px 12px #ff45004d}.original-key-info{font-size:14px;color:#666;margin-bottom:12px}.reset-btn{background:transparent;border:2px solid #ddd;color:#666;padding:8px 24px;border-radius:24px;font-size:14px;cursor:pointer;transition:all .3s ease}.reset-btn:hover{border-color:#f4648b;color:#f4648b}.reset-btn:disabled{opacity:.5;cursor:not-allowed}.view-controls{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:24px}.view-label{font-size:16px;font-weight:500;color:#2c3e50}.view-toggle{display:flex;background:#f0f0f0;border-radius:8px;padding:4px}.view-option{padding:8px 16px;border:none;background:transparent;color:#666;font-size:14px;cursor:pointer;border-radius:6px;transition:all .3s ease;display:flex;align-items:center;gap:6px;white-space:nowrap}.view-option.active{background:#fff;color:#f4648b;box-shadow:0 2px 4px #0000001a}.font-controls{display:flex;align-items:center;gap:12px}.font-size-btn{width:32px;height:32px;border:2px solid #ddd;background:#fff;color:#666;border-radius:6px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600}.font-size-btn:hover{border-color:#f4648b;color:#f4648b}.font-reset-btn{background:#007bff;color:#fff;border:none;padding:6px 16px;border-radius:16px;font-size:12px;cursor:pointer;transition:all .3s ease}.font-reset-btn:hover{background:#0056b3}.scroll-controls{display:flex;align-items:center;gap:16px;justify-content:center}.scroll-toggle{display:flex;background:#f0f0f0;border-radius:24px;padding:4px}.scroll-option{padding:8px 24px;border:none;background:transparent;color:#666;font-size:14px;cursor:pointer;border-radius:20px;transition:all .3s ease;min-width:80px}.scroll-option.active{background:#2c3e50;color:#fff}.scroll-option:hover:not(.active){background:#e0e0e0}.speed-controls{margin-top:20px;padding:16px;background:#ff45000d;border-radius:12px;border:1px solid rgba(255,69,0,.1)}.speed-section{margin-bottom:16px}.speed-label{font-size:14px;font-weight:500;color:#2c3e50;margin-bottom:8px;display:block}.speed-buttons{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.speed-btn{width:40px;height:40px;border:2px solid #ddd;background:#fff;color:#666;border-radius:8px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600}.speed-btn:hover{border-color:#f4648b;color:#f4648b}.speed-btn.active{background:#f4648b;border-color:#f4648b;color:#fff;transform:scale(1.1)}.scroll-action-buttons{display:flex;gap:12px;justify-content:center}.scroll-control-btn{padding:10px 20px;border:2px solid #ddd;background:#fff;color:#666;border-radius:25px;cursor:pointer;transition:all .3s ease;font-size:14px;font-weight:500;min-width:120px}.scroll-control-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.scroll-control-btn.start{border-color:#52c41a;color:#52c41a}.scroll-control-btn.start:hover{background:#52c41a;color:#fff}.scroll-control-btn.stop{border-color:#f4648b;color:#f4648b;background:#ff4d4f1a}.scroll-control-btn.stop:hover{background:#f4648b;color:#fff}.scroll-control-btn.reset{border-color:#1890ff;color:#1890ff}.scroll-control-btn.reset:hover{background:#1890ff;color:#fff}.key-info{text-align:center;background:linear-gradient(135deg,#e3f2fd,#bbdefb);padding:12px 20px;border-radius:12px;border:1px solid #90caf9;font-size:14px;color:#1565c0;margin-top:16px}.transpose-info{font-weight:600;color:#2e7d32}.chord-display{font-family:Sarabun,Kanit,sans-serif;font-size:clamp(16px,3vw,22px);line-height:2.4;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;padding:0;margin:0;background-color:transparent;border:none;border-radius:0;min-height:auto;max-height:none;overflow:visible;box-shadow:none;position:relative;scroll-behavior:smooth;width:100%;max-width:100%;box-sizing:border-box}.chord-display.text-left{text-align:left}.chord-display.text-center{text-align:center;white-space:pre-line}.chord-display.text-compact{text-align:left;line-height:1.8;font-size:clamp(14px,2.5vw,18px)}.chord-display.text-compact .chord-word{margin-right:2px}.chord-display.text-compact .chord-text{font-size:.6em;top:-1.2em}.chord-word{display:inline;position:relative;vertical-align:bottom;word-break:keep-all}.chord-text{position:absolute;top:-1.3em;left:0;font-weight:700;font-size:clamp(.6em,2.2vw,1em);color:#1890ff;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:1;padding:2px 6px;border-radius:4px;line-height:1.2}.word-text{position:relative;z-index:0;font-weight:400;word-break:break-word}.no-lyrics{text-align:center;color:#999;font-style:italic;padding:60px 20px;font-size:16px}.chord-display.auto-scrolling:before{content:"🎵 กำลังเลื่อนอัตโนมัติ... (ความเร็ว " attr(data-speed) ")";position:fixed;top:20px;right:20px;background:linear-gradient(135deg,#ff4500,#ff6500);color:#fff;padding:8px 16px;border-radius:20px;font-size:12px;font-weight:600;z-index:1000;animation:pulse 2s infinite;box-shadow:0 4px 12px #ff45004d}.chord-word.inline{display:inline;position:relative}.inline-chord{font-weight:700;font-size:.7em;background-color:#fff;padding:2px 6px;border-radius:4px;border:1px solid rgb(255,255,255);margin-right:4px;-webkit-user-select:none;user-select:none;color:#1890ff;white-space:nowrap}.chord-word.above{display:inline;position:relative;vertical-align:bottom}.chord-word.above .chord-text{position:absolute;top:-1.2em;left:0;font-weight:700;font-size:clamp(.6em,2.2vw,.8em);color:#1890ff;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:1;padding:2px 6px;border-radius:4px;line-height:1.2}@media (max-width: 768px){.chord-controls{padding:16px;margin-bottom:16px}.key-selector-container{gap:12px}.transpose-btn{width:44px;height:44px;font-size:20px}.current-key-display{min-width:100px;height:44px;font-size:16px}.view-controls{flex-direction:column;gap:16px;align-items:stretch}.view-section,.font-controls,.scroll-controls{flex-direction:column;align-items:center;gap:12px}.scroll-toggle{width:100%;justify-content:center}.scroll-option{flex:1;text-align:center}.speed-controls{margin-top:16px;padding:12px}.speed-buttons{gap:6px}.speed-btn{width:36px;height:36px;font-size:14px}.scroll-action-buttons{flex-direction:column;gap:8px}.scroll-control-btn{width:100%;padding:8px 16px;font-size:13px;min-width:auto}.chord-display{font-size:clamp(16px,3.5vw,20px);line-height:2.2;padding:0 8px}.chord-display.text-compact{font-size:clamp(14px,3vw,16px);line-height:1.8}.chord-text{font-size:clamp(.6em,2.5vw,.95em)}.inline-chord{font-size:.85em;padding:2px 4px;margin-right:3px}.chord-word.above .chord-text{font-size:clamp(.6em,2.5vw,.95em)}.chord-display.auto-scrolling:before{top:10px;right:10px;font-size:11px;padding:4px 12px}}@media (max-width: 480px){.chord-controls{padding:12px;margin-bottom:12px}.key-section-title{font-size:16px}.key-selector-container{gap:8px}.transpose-btn{width:40px;height:40px;font-size:18px}.current-key-display{min-width:80px;height:40px;font-size:14px}.view-label,.scroll-label{font-size:14px}.view-option,.scroll-option{padding:6px 12px;font-size:12px}.speed-controls{margin-top:12px;padding:10px}.speed-buttons{gap:4px}.speed-btn{width:32px;height:32px;font-size:12px}.scroll-action-buttons{flex-direction:column;gap:6px}.scroll-control-btn{padding:6px 12px;font-size:12px;min-width:auto}.chord-display{font-size:clamp(15px,4.5vw,18px);line-height:2.1;padding:0 4px}.chord-display.text-compact{font-size:clamp(13px,4vw,15px);line-height:1.7}.chord-text{font-size:clamp(.6em,3vw,.8em);top:-1.3em}.inline-chord{font-size:.8em;padding:1px 3px;margin-right:2px}.chord-word.above .chord-text{font-size:clamp(.6em,3vw,.8em);top:-1.4em}.chord-display.auto-scrolling:before{top:10px;right:10px;font-size:clamp(9px,2vw,11px);padding:3px 10px}}@media (min-width: 1200px){.chord-display{font-size:clamp(14px,2vw,22px)}.chord-display.text-compact{font-size:clamp(18px,1.8vw,22px)}.chord-text{font-size:clamp(.6em,3vw,.8em)}.inline-chord{font-size:.95em}.chord-word.above .chord-text{font-size:clamp(.6em,3vw,.8em)}}@media (max-width: 320px){.chord-display{font-size:clamp(14px,5.5vw,16px);line-height:1.9;padding:0 2px}.chord-display.text-compact{font-size:clamp(12px,5vw,14px);line-height:1.6}.chord-text{font-size:clamp(.6em,2.2vw,.8em);padding:1px 4px;top:-1.2em}.inline-chord{font-size:.75em;padding:1px 2px;margin-right:1px}.chord-word.above .chord-text{font-size:clamp(.6em,2.2vw,.8em);top:-1.4em}.chord-display.auto-scrolling:before{top:5px;right:5px;font-size:9px;padding:2px 8px}}.chord-display::-webkit-scrollbar{display:none}.chord-display{-ms-overflow-style:none;scrollbar-width:none}@media print{.chord-controls{display:none}.chord-display{font-size:clamp(12pt,2vw,16pt)!important;line-height:2;border:none;box-shadow:none;background:transparent;max-height:none;overflow:visible;padding:0;margin:0}.chord-display.text-compact{font-size:clamp(10pt,1.5vw,14pt)!important;line-height:1.6;padding:0}.chord-text{color:#000!important;font-size:clamp(.6em,2.2vw,.8em)!important;background:transparent!important;border:none!important}.chord-display.auto-scrolling:before{display:none}.inline-chord{color:#000!important;background:transparent!important;border:1px solid #ffffff!important;font-size:.8em!important}.chord-word.above .chord-text{color:#000!important;background:transparent!important;border:none!important;font-size:clamp(.6em,2.2vw,.8em)!important}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@media (max-width: 768px){.chord-display-container{padding:0 4px}body{overflow-x:hidden}.song-detail-container{padding-left:8px;padding-right:8px;overflow-x:hidden}}.image-viewer-modal{z-index:9999}.image-viewer-modal .ant-modal-content{height:90vh;display:flex;flex-direction:column;background:#000;border-radius:8px;overflow:hidden}.image-viewer-modal.fullscreen .ant-modal-content{height:100vh;width:100vw;border-radius:0}.viewer-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#000c;color:#fff;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.viewer-info{display:flex;flex-direction:column;gap:4px}.image-title{font-size:16px;font-weight:500;color:#fff}.image-counter{font-size:14px;color:#ffffffb3}.viewer-controls{display:flex;align-items:center;gap:8px}.viewer-controls .ant-btn{color:#fff;border:none;background:transparent;display:flex;align-items:center;justify-content:center;height:32px;width:32px}.viewer-controls .ant-btn:hover{background:#ffffff1a;color:#fff}.viewer-controls .ant-btn:disabled{color:#ffffff4d;background:transparent}.zoom-level{color:#fff;font-size:12px;min-width:40px;text-align:center}.viewer-content{flex:1;position:relative;background:#000;overflow:hidden;display:flex;align-items:center;justify-content:center}.nav-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:10;background:#0009!important;color:#fff!important;border:none!important;width:48px!important;height:48px!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;transition:all .3s ease!important}.nav-arrow:hover{background:#000c!important;transform:translateY(-50%) scale(1.1)!important}.nav-arrow:disabled{background:#0000004d!important;color:#ffffff4d!important;cursor:not-allowed!important}.nav-arrow-left{left:20px}.nav-arrow-right{right:20px}.image-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.viewer-image{max-width:100%;max-height:100%;object-fit:contain;transform-origin:center;transition:opacity .3s ease;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.image-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#fff}.image-loading p{margin-top:16px;color:#ffffffb3}.viewer-thumbnails{background:#000c;padding:12px;border-top:1px solid rgba(255,255,255,.1);flex-shrink:0}.thumbnails-container{display:flex;gap:8px;overflow-x:auto;padding:4px 0;justify-content:center}.thumbnails-container::-webkit-scrollbar{height:4px}.thumbnails-container::-webkit-scrollbar-track{background:#ffffff1a;border-radius:2px}.thumbnails-container::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:2px}.thumbnail{width:60px;height:60px;border-radius:4px;overflow:hidden;cursor:pointer;border:2px solid transparent;transition:all .3s ease;flex-shrink:0}.thumbnail:hover{border-color:#ffffff80;transform:scale(1.05)}.thumbnail.active{border-color:#1890ff;box-shadow:0 0 8px #1890ff80}.thumbnail-image{width:100%;height:100%;object-fit:cover}.viewer-instructions{position:absolute;bottom:80px;right:20px;background:#000000b3;color:#fff;padding:8px 12px;border-radius:6px;font-size:12px;line-height:1.4;opacity:.8;pointer-events:none;z-index:5}.instruction-item{margin-bottom:2px}.instruction-item:last-child{margin-bottom:0}@media (max-width: 768px){.viewer-header{padding:8px 12px;flex-wrap:wrap;gap:8px}.viewer-info{order:1;flex:1}.viewer-controls{order:2;flex-wrap:wrap}.viewer-controls .ant-btn{width:36px;height:36px}.image-title{font-size:14px}.image-counter{font-size:12px}.nav-arrow{width:40px!important;height:40px!important}.nav-arrow-left{left:10px}.nav-arrow-right{right:10px}.thumbnail{width:50px;height:50px}.viewer-instructions{display:none}}@media (max-width: 480px){.viewer-header{padding:6px 8px}.viewer-controls{gap:4px}.viewer-controls .ant-btn{width:32px;height:32px}.zoom-level{font-size:11px;min-width:35px}.thumbnails-container{gap:6px}.thumbnail{width:45px;height:45px}.nav-arrow{width:36px!important;height:36px!important}}@media (max-width: 768px){.viewer-content:after{content:"แตะ 2 ครั้งเพื่อซูม • ปัดซ้าย-ขวาเพื่อเลื่อนภาพ";position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:#000000b3;color:#fff;padding:6px 12px;border-radius:4px;font-size:11px;pointer-events:none;opacity:.7;z-index:5}}.image-viewer-modal.fullscreen{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:10000}.image-viewer-modal.fullscreen .ant-modal-wrap{padding:0}.image-viewer-modal.fullscreen .ant-modal{top:0;margin:0;max-width:100vw;height:100vh}.viewer-image{transition:transform .3s ease,opacity .3s ease}.thumbnail{transition:border-color .3s ease,transform .3s ease,box-shadow .3s ease}.nav-arrow{transition:background-color .3s ease,transform .3s ease!important}@media (max-width: 768px){.image-container{touch-action:pan-x pan-y}}.image-gallery-card{border-radius:16px;border:none;box-shadow:0 4px 20px #00000014;margin-bottom:24px;overflow:hidden;@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes dragPulse{0%,to{box-shadow:0 0 #1890ff66}50%{box-shadow:0 0 0 10px #1890ff00}}}.image-gallery-card .image-gallery-card .ant-card-head{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-bottom:1px solid #dee2e6}.image-gallery-card .image-gallery-card .ant-card-head-title{font-size:18px;font-weight:600;color:#2c3e50}.image-gallery-card .loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.image-gallery-card .loading-container p{margin-top:16px;color:#666;font-size:16px}.image-gallery-card .empty-images{padding:60px 20px}.image-gallery-card .images-grid{min-height:120px}.image-gallery-card .image-item{position:relative;border-radius:12px;overflow:hidden;transition:all .3s ease;background:#f8f9fa;border:2px solid transparent}.image-gallery-card .image-item:hover{transform:translateY(-4px);box-shadow:0 8px 25px #00000026}.image-gallery-card .image-item.dragging{transform:rotate(5deg);box-shadow:0 8px 25px #00000040;border-color:#1890ff;background:#f0f8ff}.image-gallery-card .image-item.image-error{border-color:#faad14;background:#fffbe6}.image-gallery-card .image-wrapper{position:relative;width:100%;padding-bottom:75%;overflow:hidden;border-radius:8px;background:#f0f0f0}.image-gallery-card .gallery-image{position:absolute!important;top:0;left:0;width:100%!important;height:100%!important;object-fit:cover;transition:transform .3s ease}.image-gallery-card .image-item:hover .gallery-image{transform:scale(1.05)}.image-gallery-card .image-error-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fafafa;border:2px dashed #d9d9d9;color:#666;text-align:center;padding:20px}.image-gallery-card .image-error-placeholder p{margin:8px 0;font-size:12px}.image-gallery-card .preview-mask{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-size:16px;gap:8px}.image-gallery-card .preview-mask .anticon{font-size:24px}.image-gallery-card .image-controls{position:absolute;top:8px;right:8px;display:flex;flex-direction:column;gap:4px;opacity:0;transition:opacity .3s ease}.image-gallery-card .image-info{padding:12px;background:#fff;display:flex;flex-direction:column;gap:4px}.image-gallery-card .image-filename{font-size:13px;font-weight:500;color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-gallery-card .image-size{font-size:11px;color:#6c757d}.image-gallery-card .image-status{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.image-gallery-card .image-status.error{color:#ff4d4f}.image-gallery-card .upload-modal-content{padding:16px 0}.image-gallery-card .upload-info{margin-bottom:24px;padding:16px;background:#f8f9fa;border-radius:8px;border-left:4px solid #1890ff}.image-gallery-card .upload-info p{margin-bottom:8px;font-size:14px}.image-gallery-card .upload-info p:last-child{margin-bottom:0}.image-gallery-card .upload-note{color:#6c757d!important;font-style:italic}.image-gallery-card .upload-dragger{border:2px dashed #d9d9d9!important;border-radius:12px!important;background:#fafafa!important;transition:all .3s ease!important}.image-gallery-card .upload-dragger:hover{border-color:#1890ff!important;background:#f0f8ff!important}.image-gallery-card .upload-dragger .ant-upload-drag-icon{margin-bottom:16px}.image-gallery-card .upload-dragger .ant-upload-drag-icon .anticon{font-size:48px;color:#1890ff}.image-gallery-card .upload-dragger .ant-upload-text{font-size:16px;font-weight:500;color:#2c3e50;margin-bottom:8px}.image-gallery-card .upload-dragger .ant-upload-hint{font-size:14px;color:#6c757d}.image-gallery-card .uploading-status{margin-top:16px;text-align:center;padding:16px;background:#f0f8ff;border-radius:8px;color:#1890ff;font-weight:500}.image-gallery-card .uploading-status .ant-spin{margin-right:8px}@media (max-width: 768px){.image-gallery-card .image-gallery-card .ant-card-head-title{font-size:16px}.image-gallery-card .image-gallery-card .ant-card-extra{margin-top:8px}.image-gallery-card .image-wrapper{padding-bottom:100%}.image-gallery-card .image-controls{opacity:1;top:4px;right:4px;gap:2px}.image-gallery-card .drag-handle,.image-gallery-card .delete-btn{padding:4px!important;font-size:12px}.image-gallery-card .image-info{padding:8px}.image-gallery-card .image-filename{font-size:12px}.image-gallery-card .image-size{font-size:10px}.image-gallery-card .upload-modal-content{padding:8px 0}.image-gallery-card .upload-info{margin-bottom:16px;padding:12px}.image-gallery-card .upload-dragger .ant-upload-drag-icon .anticon{font-size:36px}.image-gallery-card .upload-dragger .ant-upload-text{font-size:14px}.image-gallery-card .upload-dragger .ant-upload-hint{font-size:12px}.image-gallery-card .image-error-placeholder{padding:12px}.image-gallery-card .image-error-placeholder .anticon{font-size:20px!important}}@media (max-width: 480px){.image-gallery-card .loading-container,.image-gallery-card .empty-images{padding:40px 20px}.image-gallery-card .image-item{margin-bottom:16px}.image-gallery-card .upload-info p{font-size:13px}.image-gallery-card .image-error-placeholder{padding:8px}.image-gallery-card .image-error-placeholder p{font-size:11px}}.image-gallery-card .images-grid .ant-col{transition:transform .2s ease}.image-gallery-card .images-grid .ant-col:hover{z-index:1}.image-gallery-card .gallery-image.ant-image-img{transition:opacity .3s ease}.image-gallery-card .gallery-image.ant-image-img[loading]{opacity:.5}.image-gallery-card .upload-success{margin-top:16px;text-align:center;padding:16px;background:#f6ffed;border-radius:8px;color:#52c41a;font-weight:500;border:1px solid #b7eb8f}.image-gallery-card .image-item.image-error .image-wrapper{border:2px solid #faad14}.image-gallery-card .image-item.image-error .image-info{background:#fffbe6}.image-gallery-card .ant-alert-warning{border-radius:8px;border-color:#fadb14}.image-gallery-card .image-error-placeholder .ant-btn{font-size:11px;height:auto;padding:4px 8px}.image-gallery-card .image-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2}.image-gallery-card .image-overlay .preview-mask{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-size:16px;gap:8px;text-align:center}@media (max-width: 768px){.image-gallery-card .image-overlay .preview-mask{font-size:14px}.image-gallery-card .image-overlay .preview-mask .anticon{font-size:20px}.image-gallery-card .image-error-placeholder{padding:12px}.image-gallery-card .image-error-placeholder .anticon{font-size:20px!important}.image-gallery-card .image-error-placeholder p{font-size:11px}}@media (max-width: 480px){.image-gallery-card .image-overlay .preview-mask{font-size:12px}.image-gallery-card .image-overlay .preview-mask .anticon{font-size:18px}.image-gallery-card .image-error-placeholder{padding:8px}.image-gallery-card .image-error-placeholder .anticon{font-size:18px!important}.image-gallery-card .image-error-placeholder p{font-size:10px}}.image-gallery-card .image-item[draggable=true]{cursor:grab;transition:all .3s ease}.image-gallery-card .image-item[draggable=true]:active{cursor:grabbing}.image-gallery-card .image-item.dragging{opacity:.5;transform:rotate(5deg) scale(.95);box-shadow:0 8px 25px #00000040;border-color:#1890ff;background:#f0f8ff;z-index:1000}.image-gallery-card .image-item.drag-over{border:2px dashed #1890ff;background:#1890ff1a;transform:scale(1.05)}.image-gallery-card .image-item.drag-over:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#1890ff33;border-radius:12px;z-index:1;pointer-events:none}.image-gallery-card .drag-handle{background:#000000b3;color:#fff;padding:6px;border-radius:6px;cursor:grab;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.image-gallery-card .drag-handle:hover{background:#000000e6;transform:scale(1.1)}.image-gallery-card .drag-handle:active{cursor:grabbing}.image-gallery-card .image-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;border-radius:8px;background:#f0f0f0}.image-gallery-card .gallery-image-fixed{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;transition:transform .3s ease!important;display:block!important;border:none!important;outline:none!important}.image-gallery-card .image-item:hover .gallery-image-fixed{transform:scale(1.05)}.image-gallery-card .image-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;border-radius:8px}.image-gallery-card .image-item:hover .image-overlay{opacity:1}.image-gallery-card .image-overlay .preview-mask{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-size:16px;gap:8px;text-align:center;pointer-events:none}.image-gallery-card .image-overlay .preview-mask .anticon{font-size:24px}.image-gallery-card .gallery-image{display:none!important}.image-gallery-card .image-error-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#fafafa,#f0f0f0);border:2px dashed #d9d9d9;color:#666;text-align:center;padding:20px;border-radius:8px}.image-gallery-card .image-error-placeholder .anticon{margin-bottom:8px}.image-gallery-card .image-error-placeholder p{margin:4px 0;font-size:12px;line-height:1.4}.image-gallery-card .image-error-placeholder .ant-btn{margin-top:8px;font-size:11px;height:auto;padding:4px 8px}.image-gallery-card .image-controls{position:absolute;top:8px;right:8px;display:flex;flex-direction:column;gap:4px;opacity:0;transition:opacity .3s ease;z-index:10}.image-gallery-card .image-item:hover .image-controls{opacity:1}.image-gallery-card .delete-btn{background:#ff4d4fe6!important;color:#fff!important;border:none!important;border-radius:6px!important;padding:6px!important;transition:all .3s ease!important}.image-gallery-card .delete-btn:hover{background:#ff4d4f!important;transform:scale(1.1)}@media (max-width: 768px){.image-gallery-card .image-overlay .preview-mask{font-size:14px}.image-gallery-card .image-overlay .preview-mask .anticon{font-size:20px}.image-gallery-card .image-error-placeholder{padding:8px}.image-gallery-card .image-error-placeholder .anticon{font-size:18px!important}.image-gallery-card .image-error-placeholder p{font-size:10px}}.image-gallery-card .image-item{animation:slideInUp .3s ease-out}.image-gallery-card .image-item.drag-over{animation:dragPulse 1s infinite}.image-gallery-card .image-loading-state{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;background:#ffffffe6;padding:10px;border-radius:8px}.image-gallery-card .ant-modal-body::-webkit-scrollbar{width:6px}.image-gallery-card .ant-modal-body::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.image-gallery-card .ant-modal-body::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.image-gallery-card .ant-modal-body::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.image-gallery-card -placeholder{padding:12px}.image-gallery-card .image-error-placeholder .anticon{font-size:20px!important}.image-gallery-card .image-error-placeholder p{font-size:11px}.image-gallery-card .image-controls{opacity:1;top:4px;right:4px;gap:2px}.image-gallery-card .drag-handle,.image-gallery-card .delete-btn{padding:4px!important;font-size:12px}.dashboard-container{padding:20px;background-color:#f9f9f9;min-height:calc(100vh - 64px)}.content-wrapper{width:100%;max-width:1200px;margin:0 auto}.song-management-card{border-radius:8px;box-shadow:0 2px 8px #0000000d}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.card-header h4{margin:0}.card-actions{display:flex;align-items:center;gap:16px}.pagination-container{margin-top:16px;display:flex;justify-content:flex-end}.song-header{margin-bottom:20px}.song-header h2,.song-header p{margin-bottom:8px}.lyrics-card{margin-top:20px}.lyrics-display{font-family:monospace;font-size:16px;line-height:1.5;padding:20px;background-color:#fff;border-radius:4px}.lyrics-line{position:relative;margin-bottom:1.5em;padding-top:1.5em}.empty-line{height:1.5em}.chord-line{position:absolute;top:0;left:0;color:#1890ff;font-weight:700;white-space:pre}.chord{display:inline-block;margin-right:1.5em}.text-line{position:relative;white-space:pre}.chord-controls{margin-top:20px;padding-top:16px;border-top:1px solid #f0f0f0}@media (max-width: 768px){.dashboard-container{padding:16px}.card-header{flex-direction:column;align-items:flex-start}.card-actions{margin-top:16px;flex-direction:column;width:100%}.card-actions input,.card-actions .ant-select{width:100%!important;margin-right:0!important;margin-bottom:8px}.card-actions button{width:100%}.lyrics-display{font-size:14px;padding:12px}.lyrics-line{margin-bottom:1.2em;padding-top:1.2em}}@media print{.lyrics-display{font-size:12pt}.chord-line{color:#000}}.public-navbar{background:linear-gradient(135deg,#667eea,#764ba2,#f093fb 70%,#f5576c);padding:0;box-shadow:0 4px 20px #764ba24d;position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(255,255,255,.2)}.navbar-container{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:70px}.navbar-logo{display:flex;align-items:center}.logo-link{display:flex;align-items:center;text-decoration:none;color:#fff;transition:all .3s ease}.logo-link:hover{transform:scale(1.05);color:#fff}.logo-icon{width:40px;height:40px;margin-right:12px;filter:brightness(0) invert(1);transition:transform .3s ease}.logo-link:hover .logo-icon{transform:rotate(360deg)}.logo-text{font-size:24px;font-weight:700;color:#fff;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.navbar-nav{display:flex;align-items:center;gap:32px;flex:1;justify-content:center}.nav-link{color:#fff;text-decoration:none;font-size:16px;font-weight:500;padding:10px 20px;border-radius:25px;transition:all .3s ease;position:relative;overflow:hidden}.nav-link:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s ease}.nav-link:hover:before{left:100%}.nav-link:hover{color:#fff;background:#fff3;transform:translateY(-2px);box-shadow:0 6px 20px #0003}.nav-link.active{background:#ffffff40;color:#fff}.navbar-auth{display:flex;align-items:center;gap:12px}.register-btn{background:#ffffff1a;border:2px solid rgba(255,255,255,.7);color:#fff;font-weight:500;height:42px;border-radius:25px;padding:0 24px;transition:all .3s ease}.register-btn:hover{background:#fff3;border-color:#fff;color:#fff;transform:translateY(-2px);box-shadow:0 6px 20px #fff3}.login-btn{background:#fff;border:none;color:#764ba2;font-weight:600;height:42px;border-radius:25px;padding:0 28px;transition:all .3s ease;box-shadow:0 4px 15px #0000001a}.login-btn:hover{background:#f8f9fa;color:#667eea;transform:translateY(-2px);box-shadow:0 8px 25px #667eea4d}.login-btn .anticon,.register-btn .anticon{font-size:16px}@media (max-width: 768px){.navbar-container{padding:0 16px;height:60px;justify-content:center;position:relative}.navbar-nav{display:none}.navbar-logo{position:absolute;left:50%;transform:translate(-50%)}.navbar-auth{position:absolute;right:16px;gap:8px}.logo-text{font-size:20px}.logo-icon{width:32px;height:32px;margin-right:8px}.register-btn,.login-btn{height:38px;padding:0 20px;font-size:14px}.register-btn span,.login-btn span{display:none}.register-btn .anticon,.login-btn .anticon{margin:0}}@media (max-width: 480px){.navbar-container{padding:0 12px}.navbar-logo{position:absolute;left:50%;transform:translate(-50%)}.logo-text{display:none}.navbar-auth{right:12px}.register-btn,.login-btn{width:42px;height:42px;padding:0;border-radius:50%}}.logo-link:hover .logo-text{text-shadow:2px 2px 8px rgba(255,255,255,.5)}.public-songs-page{min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.songs-container{max-width:1200px;margin:0 auto;padding:40px 24px}.search-section{text-align:center;margin-bottom:40px}.search-header{margin-bottom:32px}.page-title{font-size:2.5rem;font-weight:700;background:linear-gradient(135deg,#0219d9,#1ed760);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:12px;text-shadow:2px 2px 4px rgba(0,0,0,.1)}.page-subtitle{font-size:1.1rem;color:#666;margin:0}.search-controls{display:flex;justify-content:center;align-items:center;gap:24px;flex-wrap:wrap}.search-input-wrapper{flex:1;max-width:500px}.search-input{border-radius:25px;overflow:hidden;box-shadow:0 4px 12px #0000001a}.search-input .ant-input{border:none;padding:12px 20px;font-size:16px}.search-input .ant-btn{background:linear-gradient(135deg,#0219d9,#1ed760);border:none;height:auto;font-weight:600;padding:12px 24px}.search-input .ant-btn:hover{background:linear-gradient(135deg,#0f72a0,#1ed760)}.filter-section{display:flex;align-items:center;gap:16px}.category-filter{border-radius:20px;overflow:hidden}.category-filter .ant-select-selector{border-radius:20px;padding:8px 16px;border:2px solid #e0e6ed}.songs-content{margin-top:40px}.loading-container{text-align:center;padding:80px 0}.empty-text{font-size:16px;color:#999}.results-info{margin-bottom:24px}.results-count{font-size:16px;color:#666;margin:0}.songs-grid{margin-bottom:20px}.song-card{border-radius:12px;border:1px solid #e8e8e8;box-shadow:0 2px 8px #0000000f;transition:all .3s ease;background:#fff}.song-card:hover{box-shadow:0 4px 16px #0000001f;border-color:#1890ff;transform:translateY(-2px)}.song-card .ant-card-body{padding:4px 6px}.song-card-content{display:flex;justify-content:space-between;align-items:center;width:100%}.song-info-left{flex:1;min-width:0}.song-title{font-size:16px;font-weight:600;color:#1a1a1a;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song-artist{font-size:14px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song-actions-right{flex-shrink:0;margin-left:16px}.view-chord-btn{background:linear-gradient(135deg,#1ed760,#0f72a0);border:none;border-radius:20px;padding:8px 20px;height:auto;font-weight:500;font-size:14px;transition:all .3s ease}.view-chord-btn:hover{background:linear-gradient(135deg,#0f72a0,#0219d9);transform:translateY(-1px);box-shadow:0 4px 12px #1ed7604d}.song-cover,.song-cover-overlay,.play-icon,.song-key-badge,.card-action,.artist-info,.artist-icon,.artist-name,.song-stats,.word-count{display:none}.pagination-container{display:flex;justify-content:center;margin-top:40px}.songs-pagination{background:#fff;padding:16px 24px;border-radius:24px;box-shadow:0 4px 12px #00000014}.songs-pagination .ant-pagination-item-active{background:linear-gradient(135deg,#0219d9,#1ed760);border-color:transparent}.songs-pagination .ant-pagination-item-active a{color:#fff}@media (max-width: 768px){.songs-container{padding:24px 16px}.page-title{font-size:2rem}.search-controls{flex-direction:column;gap:16px}.search-input-wrapper{width:100%;max-width:none}.filter-section{width:100%;justify-content:center}.category-filter{width:100%;max-width:300px}.song-card-content{flex-direction:column;align-items:flex-start;gap:16px}.song-info-left{width:100%}.song-actions-right{width:100%;margin-left:0;display:flex;justify-content:flex-end}.view-chord-btn{padding:10px 24px;font-size:16px}}@media (max-width: 480px){.page-title{font-size:1.5rem}.page-subtitle{font-size:1rem}.song-card .ant-card-body{padding:16px 20px}.song-title{font-size:16px}.song-artist{font-size:14px}.view-chord-btn{width:100%;text-align:center}.song-actions-right{justify-content:stretch}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.loading-container .ant-spin{animation:pulse 2s infinite}.song-header-content-compact{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:16px 0;margin-bottom:20px;border-bottom:1px solid #f0f0f0}.song-main-info-compact{flex:1;min-width:0}.song-title-compact{font-size:1.6rem;font-weight:700;color:#2c3e50;margin:0 0 12px;background:linear-gradient(135deg,#0219d9,#1ed760);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.song-meta-compact{display:flex;flex-direction:column;gap:8px}.meta-item-compact{display:flex;align-items:center;gap:6px;font-size:14px}.meta-icon-compact{color:#999;font-size:13px;flex-shrink:0}.artist-name-compact{font-weight:600;color:#555;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-tag-compact{font-size:12px;border-radius:8px;margin:0;padding:2px 8px}.created-date-compact{color:#999;font-size:13px}.song-stats-compact{display:flex;gap:12px;align-items:center;flex-shrink:0}.stat-item-compact{text-align:center;padding:10px 12px;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef;min-width:60px}.stat-value-compact{font-size:1.3rem;font-weight:700;color:#0219d9;margin-bottom:2px;line-height:1}.stat-label-compact{font-size:11px;color:#999;text-transform:uppercase;letter-spacing:.5px;font-weight:500}.section-divider{margin:16px 0;border-color:#00000014}@media (max-width: 768px){.song-header-content-compact{flex-direction:column;gap:16px;padding:14px 0;text-align:center}.song-title-compact{font-size:1.4rem;margin-bottom:10px}.song-meta-compact{align-items:center}.song-stats-compact{justify-content:center;width:100%}.stat-item-compact{flex:1;min-width:50px;padding:8px 10px}.stat-value-compact{font-size:1.2rem}.stat-label-compact{font-size:10px}}@media (max-width: 480px){.song-header-content-compact{padding:12px 0;gap:12px}.song-title-compact{font-size:1.3rem;margin-bottom:8px}.song-meta-compact{gap:6px}.meta-item-compact{font-size:13px;justify-content:center}.meta-icon-compact{font-size:12px}.category-tag-compact{font-size:11px;padding:1px 6px}.created-date-compact{font-size:12px}.song-stats-compact{gap:8px}.stat-item-compact{padding:6px 8px}.stat-value-compact{font-size:1.1rem}.stat-label-compact{font-size:9px}}@media (max-width: 320px){.song-header-content-compact{padding:10px 0;gap:10px}.song-title-compact{font-size:1.2rem;margin-bottom:6px}.meta-item-compact{font-size:12px}.meta-icon-compact{font-size:11px}.category-tag-compact{font-size:10px;padding:1px 4px}.created-date-compact{font-size:11px}.song-stats-compact{gap:6px}.stat-item-compact{padding:5px 6px;min-width:45px}.stat-value-compact{font-size:1rem}.stat-label-compact{font-size:8px}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.song-header-content-compact{animation:fadeInUp .5s ease-out}.stat-item-compact:hover{background:#e9ecef;transform:translateY(-1px);transition:all .3s ease}@media print{.song-header-content-compact{border-bottom:1px solid #ddd;break-inside:avoid}.song-title-compact{color:#000!important;background:none!important;-webkit-text-fill-color:initial!important}.stat-item-compact{border:1px solid #ddd;background:#fff}}.public-song-detail-page{min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.song-detail-container{max-width:1000px;margin:0 auto;padding:24px}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center}.loading-text{margin-top:16px;font-size:16px;color:#666}.back-section{margin-bottom:24px}.back-button{color:#0219d9;font-weight:500;font-size:16px;height:auto;padding:8px 0;border:none;background:transparent;transition:all .3s ease}.back-button:hover{color:#1ed760;background:#1ed7601a;border-radius:8px;padding:8px 16px}.song-header-card{border-radius:16px;border:none;box-shadow:0 4px 20px #00000014;margin-bottom:24px;overflow:hidden;background:linear-gradient(135deg,#1ed7600d,#0219d90d)}.song-header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:32px}.song-main-info{flex:1}.song-title{font-size:2.5rem;font-weight:700;color:#2c3e50;margin-bottom:16px;background:linear-gradient(135deg,#0219d9,#1ed760);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.song-meta{display:flex;flex-direction:column;gap:12px}.meta-item{display:flex;align-items:center;gap:8px;font-size:16px}.meta-icon{color:#666;font-size:16px}.artist-name{font-weight:500;color:#2c3e50}.category-tag{font-size:14px;border-radius:12px;margin:0}.created-date{color:#666;font-size:14px}.song-stats{display:flex;gap:24px;align-items:center}.stat-item{text-align:center;padding:16px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;min-width:80px}.stat-value{font-size:1.5rem;font-weight:700;color:#0219d9;margin-bottom:4px}.stat-label{font-size:12px;color:#666;text-transform:uppercase;letter-spacing:.5px}.section-divider{margin:32px 0;border-color:#0000001a}.auto-scroll-card{border-radius:16px;border:none;box-shadow:0 4px 20px #00000014;margin-bottom:24px;background:linear-gradient(135deg,#667eea0d,#f093fb0d);border:1px solid rgba(102,126,234,.1)}.auto-scroll-controls{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:8px 0}.scroll-toggle{display:flex;align-items:center;gap:12px}.scroll-label{font-size:16px;font-weight:500;color:#2c3e50}.speed-control{display:flex;align-items:center;gap:12px}.speed-label{font-size:14px;font-weight:500;color:#666;min-width:fit-content}.speed-control .ant-select{border-radius:8px}.speed-control .ant-select-selector{border-radius:8px;border:2px solid #e9ecef;transition:all .3s ease}.speed-control .ant-select-focused .ant-select-selector{border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.reset-button{border-radius:8px;border:2px solid #e9ecef;color:#666;font-weight:500;transition:all .3s ease}.reset-button:hover{border-color:#667eea;color:#667eea;background:#667eea0d}.scroll-toggle .ant-switch{background-color:#e9ecef}.scroll-toggle .ant-switch-checked{background:linear-gradient(135deg,#667eea,#764ba2)}.scroll-toggle .ant-switch:hover:not(.ant-switch-disabled){background-color:#d6d8db}.scroll-toggle .ant-switch-checked:hover:not(.ant-switch-disabled){background:linear-gradient(135deg,#5a6fd8,#6a4190)}.auto-scroll-controls.scrolling{background:#667eea0d;border-radius:12px;padding:16px;margin:-8px 0}.auto-scroll-controls.scrolling .scroll-label{color:#667eea;font-weight:600}.auto-scroll-controls.scrolling:before{content:"";position:absolute;left:0;top:0;width:4px;height:100%;background:linear-gradient(180deg,#667eea,#764ba2);border-radius:0 2px 2px 0}.ant-select-dropdown .ant-select-item-option{border-radius:6px;margin:2px 4px;padding:8px 12px}.ant-select-dropdown .ant-select-item-option-selected{background:linear-gradient(135deg,#667eea1a,#764ba21a);color:#667eea;font-weight:500}@media (max-width: 768px){.auto-scroll-controls{flex-direction:column;gap:16px;align-items:stretch}.scroll-toggle{justify-content:center}.speed-control{justify-content:space-between}.speed-control .ant-select{flex:1;max-width:200px}.reset-button{align-self:center;width:fit-content}}@media (max-width: 480px){.auto-scroll-controls{gap:12px}.scroll-label,.speed-label{font-size:14px}.speed-control{flex-direction:column;gap:8px;align-items:center}}.song-content-card{border-radius:16px;border:none;box-shadow:0 4px 20px #00000014;margin-bottom:32px}.chord-section{padding:8px 0}.section-title{font-size:1.5rem;font-weight:700;color:#2c3e50;margin-bottom:24px;display:flex;align-items:center;gap:8px}.section-title:before{content:"";width:4px;height:24px;background:linear-gradient(135deg,#0219d9,#1ed760);border-radius:2px}.no-lyrics{padding:40px 0}.action-section{display:flex;justify-content:center;gap:16px;margin-top:32px;padding:24px 0}.action-button{height:48px;padding:0 32px;border-radius:24px;font-size:16px;font-weight:500;transition:all .3s ease}.action-button:not(.print-button){border:2px solid #0219d9;color:#0219d9;background:transparent}.action-button:not(.print-button):hover{background:#0219d9;color:#fff;transform:translateY(-2px);box-shadow:0 6px 16px #0219d94d}.print-button{background:linear-gradient(135deg,#0219d9,#1ed760);border:none;color:#fff}.print-button:hover{background:linear-gradient(135deg,#0f72a0,#1ed760);transform:translateY(-2px);box-shadow:0 6px 16px #1ed7604d}@media (max-width: 768px){.song-detail-container{padding:16px}.song-header-content{flex-direction:column;gap:24px;text-align:center}.song-title{font-size:2rem}.song-meta{align-items:center}.song-stats{justify-content:center;width:100%}.stat-item{flex:1;min-width:auto}.action-section{flex-direction:column;align-items:center}.action-button{width:100%;max-width:300px}}@media (max-width: 480px){.song-title{font-size:1.5rem}.song-stats{gap:12px}.stat-item{padding:12px 8px}.stat-value{font-size:1.2rem}.back-button{font-size:14px}}@media print{.public-song-detail-page{background:#fff}.song-detail-container{max-width:none;padding:0}.back-section,.action-section{display:none}.song-header-card,.song-content-card{box-shadow:none;border:1px solid #ddd;break-inside:avoid}.section-divider{page-break-before:avoid}.chord-section{page-break-inside:avoid}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.song-header-card,.song-content-card{animation:fadeInUp .6s ease-out}.song-header-card{animation-delay:.1s}.song-content-card{animation-delay:.2s}.song-detail-modal .ant-modal-body{max-height:80vh;overflow-y:auto;padding:24px}.song-detail-modal .ant-modal-header{border-bottom:2px solid #f0f0f0}.song-detail-modal .ant-modal-title{font-size:18px;font-weight:600}.song-detail{padding:0}.song-detail .song-header{margin-bottom:16px;padding:16px;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.song-detail .song-header p{margin-bottom:8px;font-size:14px}.song-detail .song-header strong{color:#2c3e50;font-weight:600}.song-detail .lyrics-card{margin-bottom:24px;border-radius:12px;border:none;box-shadow:0 2px 8px #0000000f}.song-detail .lyrics-card .ant-card-head{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-bottom:1px solid #dee2e6;border-radius:12px 12px 0 0}.song-detail .lyrics-card .ant-card-head-title{font-size:16px;font-weight:600;color:#2c3e50}.song-detail .lyrics-card .ant-card-body{padding:20px}.view-controls-section{margin:16px 0;padding:16px;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.view-controls{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:16px}.view-section{display:flex;align-items:center;gap:12px}.view-label{font-size:14px;font-weight:500;color:#495057;white-space:nowrap}.view-toggle{display:flex;background:#fff;border:1px solid #dee2e6;border-radius:6px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.view-option{padding:8px 16px;border:none;background:#fff;color:#495057;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border-right:1px solid #dee2e6;white-space:nowrap}.view-option:last-child{border-right:none}.view-option:hover{background:#f8f9fa;color:#212529}.view-option.active{background:#007bff;color:#fff}.view-option.active:hover{background:#0056b3}@media (max-width: 768px){.view-controls-section{margin:12px 0;padding:12px}.view-controls{flex-direction:column;align-items:flex-start;gap:12px}.view-section{width:100%;justify-content:space-between}.view-toggle{flex:1;min-width:200px}.view-option{flex:1;text-align:center;padding:10px 12px;font-size:13px}}@media (max-width: 480px){.view-option{padding:8px 10px;font-size:12px}}
