/*! tailwindcss v4.2.2 | 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-outline-style:solid;--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;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--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}::-webkit-calendar-picker-indicator{line-height:1}:-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{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.isolate{isolation:isolate}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.grow{flex-grow:1}.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}.border{border-style:var(--tw-border-style);border-width:1px}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.break-all{word-break:break-all}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,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))}}:root{--academy-primary:#1b3a6b;--academy-accent:#f5a623;--academy-primary-fg:#fff;--samsung-blue:#4a5d6a;--samsung-blue-dark:#2d3a42;--ice-blue:#f0f4f5;--white:#fff;--black:#1a2629;--gray-text:#5c6b73;--tech-line:#4a5d6a1f;--tech-line-light:#fff3;--accent-red:#f5b82e;--font-body:"Pretendard", -apple-system, sans-serif;--font-display:"Oswald", sans-serif;--font-mono:"JetBrains Mono", monospace;--font-kr:"IBM Plex Sans KR", "Pretendard", sans-serif;--nav-height:60px;--bottom-nav-height: calc(65px + env(safe-area-inset-bottom)) ;--pad:20px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{overflow-x:hidden}body{font-family:var(--font-body);color:var(--black);background-color:#e8ebf0;justify-content:center;width:100%;min-height:100dvh;display:flex;position:relative;overflow-x:hidden}#root{justify-content:center;width:100%;min-height:100dvh;display:flex}.app-container{background:var(--white);width:100%;max-width:480px;min-height:100dvh;padding-top:var(--nav-height);padding-bottom:calc(var(--bottom-nav-height) + 16px);position:relative;overflow-x:hidden;box-shadow:0 0 60px #00000014}@media(max-width:480px){body{background-color:var(--white)}.app-container{box-shadow:none}}.app-container:before{content:"";opacity:.04;pointer-events:none;z-index:9999;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");width:100%;height:100%;position:absolute;top:0;left:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.t-mono{font-family:var(--font-mono);text-transform:uppercase}.t-display{font-family:var(--font-display);text-transform:uppercase;letter-spacing:-.02em;font-weight:700}.text-xs{letter-spacing:.05em;font-size:.65rem}.text-sm{font-size:.8rem}.tech-bracket-container{padding:2px;position:relative}.tech-bracket-container:before,.tech-bracket-container:after,.tech-bracket-container .inner-bracket:before,.tech-bracket-container .inner-bracket:after{content:"";border-color:var(--samsung-blue);border-style:solid;width:6px;height:6px;position:absolute}.tech-bracket-container:before{border-width:1px 0 0 1px;top:0;left:0}.tech-bracket-container:after{border-width:1px 1px 0 0;top:0;right:0}.tech-bracket-container .inner-bracket:before{border-width:0 0 1px 1px;bottom:0;left:0}.tech-bracket-container .inner-bracket:after{border-width:0 1px 1px 0;bottom:0;right:0}.section-header{padding:0 var(--pad);border-bottom:1px solid var(--tech-line);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:8px;display:flex}.section-title{color:var(--samsung-blue);align-items:center;gap:8px;font-size:.75rem;font-weight:700;display:flex}.section-title:before{content:"+";font-family:var(--font-mono);font-weight:400}.bg-swoops{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.bg-swoops svg{opacity:.35;width:200%;height:200%;transform:translate(-25%,-25%)}.app-header{width:100%;max-width:480px;height:var(--nav-height);-webkit-backdrop-filter:blur(10px);padding:0 var(--pad);z-index:1000;border-bottom:1px solid var(--tech-line);background:#ffffffe6;justify-content:space-between;align-items:center;margin:0 auto;display:flex;position:fixed;top:0;left:0;right:0}.hamburger,.login-icon{width:24px;height:24px;color:var(--samsung-blue);justify-content:center;align-items:center;display:flex}.header-logo{justify-content:center;align-items:center;display:flex}.header-logo-img{object-fit:contain;width:auto;height:40px}.hero{clip-path:polygon(0 0,100% 0,100% calc(100% - 20px),0 100%);background:#0d1f3c;justify-content:center;align-items:center;height:55vh;min-height:380px;max-height:480px;margin-bottom:40px;display:flex;position:relative;overflow:hidden}.hero-img{object-fit:cover;object-position:center 65%;opacity:.6;filter:grayscale(20%)contrast(120%);width:100%;height:100%;position:absolute;top:0;left:0}.hero-video-fade{transition:opacity .3s ease-in-out}.hero-video-dim{opacity:0}.hero-overlay{mix-blend-mode:multiply;background:linear-gradient(135deg,#0236a8d9,#1a2629f2);width:100%;height:100%;position:absolute;top:0;left:0}.hero-content{z-index:10;text-align:center;width:100%;padding:0 var(--pad);position:relative}.hero-logo-mark{border:1px solid var(--tech-line-light);border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin:0 auto 20px;display:flex;position:relative}.hero-logo-mark:before{content:"";background:var(--tech-line-light);z-index:-1;width:200%;height:1px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hero-headline{color:var(--white);letter-spacing:-.04em;word-break:keep-all;text-shadow:0 4px 12px #00000080;overflow-wrap:break-word;max-width:100%;margin-bottom:12px;font-size:clamp(1.4rem,5.5vw,2.2rem);font-weight:800;line-height:1.2}.hero-meta{color:#fff9;justify-content:center;align-items:center;gap:12px;display:flex}.hero-meta span{align-items:center;gap:4px;display:flex}.hero-meta .dot{background:var(--accent-red);border-radius:50%;width:4px;height:4px}.stats-grid{background:var(--tech-line);margin:0 var(--pad) 40px;border:1px solid var(--tech-line);counter-reset:stat-counter;grid-template-columns:1fr 1fr;gap:1px;display:grid}.stat-card{background:var(--white);flex-direction:column;justify-content:center;padding:24px 16px;display:flex;position:relative}.stat-card:active{background:var(--ice-blue)}.stat-num{color:var(--samsung-blue);align-items:flex-start;margin-bottom:4px;font-size:2.5rem;line-height:1;display:flex}.stat-unit{margin-top:4px;margin-left:2px;font-size:1rem}.stat-label{color:var(--gray-text);font-weight:500}.stat-card:before{content:"0" counter(stat-counter) "°";counter-increment:stat-counter;font-family:var(--font-mono);color:var(--gray-text);font-size:.5rem;position:absolute;top:8px;right:8px}.coach-section{margin-bottom:40px;position:relative}.coach-arrow{z-index:10;background:var(--white);border:1px solid var(--tech-line);width:32px;height:32px;color:var(--samsung-blue);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:130px;box-shadow:0 2px 8px #0000001a}.coach-arrow:hover{background:var(--samsung-blue);color:var(--white)}.coach-arrow--left{left:6px}.coach-arrow--right{right:6px}@media(hover:hover)and (pointer:fine){.coach-arrow{display:flex}}.coach-scroll{padding:0 var(--pad);scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:16px;display:flex;overflow-x:auto}.coach-scroll::-webkit-scrollbar{display:none}.coach-card{scroll-snap-align:start;flex:0 0 200px;position:relative}.coach-img-wrap{background:var(--ice-blue);justify-content:center;align-items:flex-end;height:240px;margin-bottom:10px;display:flex;position:relative;overflow:hidden}.coach-img-wrap img{object-fit:contain;object-position:bottom center;width:90%;height:90%;transition:all .3s}.coach-img-wrap:before{content:"";background:var(--samsung-blue);opacity:.1;border-radius:50%;width:160px;height:160px;position:absolute;top:20px}.coach-info{border-bottom:1px solid var(--black);justify-content:space-between;align-items:baseline;padding:8px 0 6px;display:flex}.coach-name{font-size:1rem;font-weight:800}.coach-role{color:var(--samsung-blue);font-weight:700}.coach-subtitle{color:var(--gray-text);margin-top:6px;padding:0 4px;font-weight:400;line-height:1.3}.notices-section{padding:0 var(--pad);margin-bottom:40px}.notice-list{border-top:1px solid var(--tech-line);list-style:none}.notice-item{border-bottom:1px solid var(--tech-line);color:inherit;align-items:center;padding:16px 0;text-decoration:none;display:flex}.notice-date{width:80px;color:var(--gray-text);flex-direction:column;flex-shrink:0;display:flex}.notice-title{white-space:nowrap;text-overflow:ellipsis;flex-grow:1;font-weight:500;overflow:hidden}.notice-new{background:var(--accent-red);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-left:8px}.contact-section{background:var(--samsung-blue-dark);color:var(--white);padding:40px var(--pad);clip-path:polygon(0 20px,100% 0,100% 100%,0 100%);position:relative}.contact-section .section-header{border-color:#ffffff1a;padding:0}.contact-section .section-title{color:var(--ice-blue);margin-top:10px}.contact-grid{grid-template-columns:1fr;gap:24px;margin-top:24px;display:grid}.contact-info{flex-direction:column;gap:16px;display:flex}.contact-list{grid-template-columns:1fr;gap:12px;display:grid}.contact-row{border-left:3px solid var(--samsung-blue);background:#ffffff0d;border-radius:8px;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;display:flex}.contact-row--accent{border-left-color:var(--accent-red)}.contact-row-icon{flex-shrink:0}.contact-row-label{color:#ffffff80;display:block}.contact-row-value{color:var(--white);font-size:.9rem;display:block}.contact-sns{background:#ffffff08;border-radius:8px;margin-top:16px;padding:16px}.contact-sns-grid{flex-wrap:wrap;gap:8px;display:flex}.contact-sns-btn{min-width:80px;color:var(--white);white-space:nowrap;background:#ffffff14;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:4px;padding:10px 8px;font-size:.65rem;text-decoration:none;display:flex}.contact-sns-btn:hover{background:#ffffff26}.contact-copyright{text-align:center;color:#fff6;border-top:1px solid #ffffff1a;margin-top:32px;padding-top:20px}.btn-kakao{color:#000;background:#fee500;justify-content:center;align-items:center;gap:8px;padding:16px;font-size:.95rem;font-weight:700;text-decoration:none;display:flex;position:relative}.map-wrap{border:1px solid #ffffff1a;border-radius:8px;height:200px;text-decoration:none;display:block;position:relative;overflow:hidden}.map-wrap iframe{filter:grayscale()invert(92%)sepia(20%)hue-rotate(180deg)brightness(.85)contrast(1.1)}.map-label-overlay{z-index:10;pointer-events:none;position:absolute;top:8px;right:8px}.map-label-text{color:var(--white);background:#000000b3;border-radius:4px;padding:4px 8px;font-size:.7rem;font-weight:600}.bottom-nav{width:100%;max-width:480px;height:var(--bottom-nav-height);background:var(--white);border-top:1px solid var(--tech-line);padding-top:10px;padding-bottom:env(safe-area-inset-bottom);z-index:1000;justify-content:space-around;align-items:flex-start;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-item{color:var(--gray-text);opacity:.5;flex-direction:column;align-items:center;gap:4px;width:20%;text-decoration:none;transition:color .15s;display:flex;position:relative}.tab-item:active{transform:scale(.9)}.tab-item.active{color:var(--samsung-blue);opacity:1}.tab-item.active:after{content:"";background:var(--samsung-blue);border-radius:2px;width:24px;height:3px;position:absolute;top:-10px;left:50%;transform:translate(-50%)}.tab-icon{width:22px;height:22px}.tab-label{font-family:var(--font-kr);font-size:.6rem;font-weight:600}.desktop-side-panel{z-index:100;display:none;position:fixed;bottom:140px}@media(min-width:1280px){.desktop-side-panel{display:block;left:calc(50% + 280px)}}.side-panel-card{background:var(--white);border-radius:16px;flex-direction:column;align-items:center;gap:16px;width:200px;padding:24px 20px;display:flex;box-shadow:0 4px 24px #00000014}.side-panel-logo{flex-direction:column;align-items:center;gap:8px;display:flex}.side-panel-logo-img{object-fit:contain;width:auto;height:36px}.side-panel-divider{background:var(--tech-line);width:100%;height:1px}.side-panel-qr{flex-direction:column;align-items:center;gap:8px;display:flex}.qr-placeholder{border:1px solid var(--tech-line);border-radius:8px;justify-content:center;align-items:center;width:120px;height:120px;display:flex;overflow:hidden}.qr-label{color:var(--gray-text);text-align:center}.side-panel-stores{flex-direction:column;gap:8px;width:100%;display:flex}.store-btn{background:var(--black);color:var(--white);border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:.75rem;font-weight:600;text-decoration:none;transition:opacity .2s;display:flex}.store-btn:hover{opacity:.85}.greeting-section{padding:24px var(--pad);background:var(--samsung-blue-dark);color:var(--white);clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),0 100%);margin-bottom:24px;padding-bottom:40px;position:relative}.greeting-header{justify-content:space-between;align-items:flex-end;margin-bottom:16px;display:flex}.greeting-text{font-size:1.5rem;font-weight:700;line-height:1.2}.greeting-text span{color:var(--ice-blue);opacity:.8;margin-bottom:4px;font-size:.8rem;font-weight:400;display:block}.child-info-card{background:#ffffff1a;border:1px solid #fff3;align-items:center;gap:16px;padding:16px;display:flex}.child-info-card .inner-bracket:before,.child-info-card .inner-bracket:after,.child-info-card:before,.child-info-card:after{border-color:#fff6}.child-avatar{background:var(--ice-blue);width:48px;height:48px;color:var(--samsung-blue);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.2rem;font-weight:700;display:flex}.child-details{flex-grow:1}.child-name{align-items:center;gap:8px;margin-bottom:4px;font-size:1.1rem;font-weight:700;display:flex}.child-status{font-size:.6rem;font-family:var(--font-mono);background:#fff3;border-radius:4px;padding:2px 6px}.child-meta{color:#ffffffb3;align-items:center;gap:8px;font-size:.8rem;display:flex}.child-meta .divider{background:#ffffff4d;width:1px;height:10px}.shortcuts-grid{background:var(--tech-line);margin:0 var(--pad) 32px;border:1px solid var(--tech-line);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.shortcut-item{background:var(--white);color:var(--black);flex-direction:column;align-items:center;gap:12px;padding:20px 10px;text-decoration:none;transition:background .2s;display:flex}.shortcut-item:active{background:var(--ice-blue)}.shortcut-icon{width:32px;height:32px;color:var(--samsung-blue);background:var(--ice-blue);border-radius:8px;justify-content:center;align-items:center;display:flex}.shortcut-label{font-size:.75rem;font-weight:600}.class-card{margin:0 var(--pad);background:var(--white);border:1px solid var(--samsung-blue);margin-bottom:32px;padding:20px;position:relative}.class-card:after{content:"";border:1px solid var(--tech-line);z-index:-1;position:absolute;top:4px;right:-4px;bottom:-4px;left:4px}.class-time{align-items:center;gap:12px;margin-bottom:16px;display:flex}.time-badge{background:var(--samsung-blue);color:var(--white);padding:4px 8px;font-size:1.2rem;line-height:1}.class-status-indicator{color:#e11d48;align-items:center;gap:4px;font-size:.75rem;font-weight:600;display:flex}.class-status-indicator:before{content:"";background:#e11d48;border-radius:50%;width:6px;height:6px}.class-info-list{flex-direction:column;gap:8px;list-style:none;display:flex}.class-info-item{align-items:flex-start;font-size:.85rem;display:flex}.info-label{width:60px;color:var(--gray-text);flex-shrink:0;margin-top:2px;font-size:.7rem}.info-value{flex-grow:1;font-weight:500}.alerts-section{padding:0 var(--pad);margin-bottom:32px}.alert-list{border-top:1px solid var(--tech-line);list-style:none}.alert-item{border-bottom:1px solid var(--tech-line);color:inherit;align-items:center;gap:12px;padding:16px 0;text-decoration:none;display:flex}.alert-type{font-family:var(--font-mono);border:1px solid var(--tech-line);color:var(--samsung-blue);flex-shrink:0;padding:2px 6px;font-size:.6rem}.alert-type.att{color:#e11d48;border-color:#e11d48}.alert-type.pay{color:#10b981;border-color:#10b981}.alert-content{flex-direction:column;flex-grow:1;gap:4px;display:flex}.alert-title{font-size:.85rem;font-weight:500}.alert-time{color:var(--gray-text);font-size:.7rem}.attendance-summary{margin:0 var(--pad) 40px;background:var(--ice-blue);padding:20px;position:relative}.summary-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.summary-title{color:var(--samsung-blue);font-size:.9rem;font-weight:700}.summary-month{color:var(--gray-text);font-size:.75rem}.summary-stats{justify-content:space-between;margin-bottom:16px;display:flex}.att-stat-item{flex-direction:column;align-items:center;gap:4px;display:flex}.att-stat-value{font-family:var(--font-display);color:var(--black);font-size:1.5rem;line-height:1}.att-stat-value.present{color:var(--samsung-blue)}.att-stat-value.absent{color:#e11d48}.att-stat-value.late{color:#f59e0b}.att-stat-value.total{color:var(--gray-text)}.att-stat-label{color:var(--gray-text);font-size:.75rem;font-weight:500}.bar-chart{background:#0000001a;border-radius:4px;height:8px;display:flex;overflow:hidden}.bar-present{background:var(--samsung-blue)}.bar-absent{background:#e11d48}.bar-late{background:#f59e0b}.sub-hero{background:var(--samsung-blue-dark);padding:40px var(--pad) 60px;color:var(--white);clip-path:polygon(0 0,100% 0,100% calc(100% - 24px),0 100%);position:relative;overflow:hidden}.sub-hero:after{content:"";z-index:1;background:linear-gradient(135deg,#4a5d6ae6,#2d3a42f2);position:absolute;top:0;right:0;bottom:0;left:0}.sub-hero-bg{object-fit:cover;opacity:.3;mix-blend-mode:overlay;width:100%;height:100%;position:absolute;top:0;left:0}.sub-hero-content{z-index:2;position:relative}.breadcrumb{color:var(--ice-blue);opacity:.8;align-items:center;gap:6px;margin-bottom:12px;font-size:.65rem;display:flex}.sub-hero-title{letter-spacing:-.02em;margin-bottom:8px;font-size:1.8rem;font-weight:800;line-height:1.2}.page-tabs{border-bottom:1px solid var(--tech-line);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);top:var(--nav-height);z-index:100;background:#fffffff2;display:flex;position:sticky}.page-tab-btn{text-align:center;color:var(--gray-text);cursor:pointer;font-size:.9rem;font-weight:600;font-family:var(--font-body);background:0 0;border:none;outline:none;flex:1;padding:16px 0;transition:color .2s;position:relative}.page-tab-btn.active{color:var(--samsung-blue)}.page-tab-btn.active:after{content:"";background:var(--samsung-blue);width:100%;height:2px;position:absolute;bottom:-1px;left:0}.content-section{padding:32px var(--pad)}.headline{color:var(--samsung-blue);letter-spacing:-.02em;margin-bottom:16px;font-size:1.5rem;font-weight:700;line-height:1.3}.headline:after{content:"";background:var(--accent-red);width:40px;height:3px;margin-top:12px;display:block}.desc-text{color:var(--gray-text);word-break:keep-all;margin-bottom:32px;font-size:.95rem;line-height:1.6}.about-stats-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:40px;display:grid}.about-stat-card{background:var(--ice-blue);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px 16px;display:flex}.about-stat-val{color:var(--samsung-blue);font-size:1.8rem;line-height:1}.about-stat-lbl{color:var(--black);font-size:.75rem;font-weight:600}.about-photo{background:var(--samsung-blue-dark);height:180px;margin-bottom:40px;position:relative;overflow:hidden}.about-photo-img{object-fit:cover;object-position:center center;filter:grayscale(80%)contrast(1.2)brightness(.85);opacity:.9;width:100%;height:100%}.about-photo-overlay{mix-blend-mode:multiply;background:linear-gradient(#2d3a424d,#2d3a420d,#2d3a4266);position:absolute;top:0;right:0;bottom:0;left:0}.info-card{background:var(--ice-blue);margin-bottom:32px;padding:24px;position:relative}.info-card:after{content:"";border:1px solid var(--tech-line);z-index:-1;position:absolute;top:4px;right:-4px;bottom:-4px;left:4px}.info-list{flex-direction:column;gap:16px;margin-bottom:24px;list-style:none;display:flex}.info-item{align-items:flex-start;gap:12px;display:flex}.info-icon{width:20px;height:20px;color:var(--samsung-blue);flex-shrink:0;margin-top:2px}.info-text{color:var(--black);font-size:.95rem;font-weight:600;line-height:1.5}.info-sub{color:var(--gray-text);margin-top:2px;font-size:.75rem;font-weight:400;display:block}.about-map-wrap{border:1px solid var(--tech-line);border-radius:4px;width:100%;height:200px;position:relative;overflow:hidden}.about-map-wrap iframe{filter:grayscale()invert(92%)sepia(20%)hue-rotate(180deg)brightness(.85)contrast(1.1);transition:filter .3s}.about-map-wrap:hover iframe{filter:grayscale(80%)invert(92%)sepia(10%)hue-rotate(180deg)brightness(.9)contrast(1.05)}.about-map-overlay{z-index:10;pointer-events:none;color:var(--white);background:#000000b3;border-radius:4px;padding:4px 8px;font-size:.65rem;position:absolute;top:8px;right:8px}.vert-text{transform-origin:50%;color:var(--tech-line);white-space:nowrap;position:absolute;top:50%;left:4px;transform:translateY(-50%)rotate(-90deg)}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}.side-drawer-wrapper{position:fixed;top:0;left:0;right:0;bottom:0;max-width:480px;margin:0 auto;z-index:2000;overflow:hidden;pointer-events:none;visibility:hidden;transition:visibility 0s .3s}.side-drawer-wrapper.open{pointer-events:auto;visibility:visible;transition:visibility 0s}.side-drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;opacity:0;transition:opacity .3s}.side-drawer-backdrop.open{opacity:1}.side-drawer{position:absolute;top:0;left:0;bottom:0;width:85%;max-width:320px;height:100%;max-height:100dvh;background:var(--white);z-index:1;display:flex;flex-direction:column;box-shadow:2px 0 20px #0000001a;transform:translate(-100%);transition:transform .3s ease;overflow:hidden}.side-drawer.open{transform:translate(0)}.side-drawer-header{background:linear-gradient(135deg,var(--samsung-blue) 0%,var(--samsung-blue-dark) 100%);padding:40px 20px 20px;color:var(--white);position:relative;overflow:hidden;flex-shrink:0}@media(max-height:700px){.side-drawer-header{padding:20px 20px 14px}.side-drawer-avatar{width:48px;height:48px;font-size:1.2rem}.side-drawer-profile{margin-bottom:10px}}.side-drawer-header-swoops{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.side-drawer-close{position:absolute;top:20px;right:20px;color:var(--white);z-index:10;padding:8px;background:#ffffff1a;border-radius:50%;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center}.side-drawer-profile{position:relative;z-index:1;display:flex;align-items:center;gap:14px;margin-bottom:16px}.side-drawer-avatar{width:64px;height:64px;border-radius:50%;background:#ffffff26;border:2px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;color:var(--white);flex-shrink:0}.side-drawer-profile-info{display:flex;flex-direction:column;gap:2px}.side-drawer-profile-name{font-size:1.1rem;font-weight:700}.side-drawer-profile-role{font-size:.8rem;font-family:var(--font-mono);color:#ffffffb3}.side-drawer-header-actions{position:relative;z-index:1;display:flex;gap:8px}.side-drawer-header-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:#ffffff1f;border:none;border-radius:8px;color:var(--white);font-size:.8rem;font-weight:600;font-family:var(--font-kr);cursor:pointer;transition:background .2s}.side-drawer-header-btn:hover,.side-drawer-header-btn:active{background:#fff3}.side-drawer-content{flex:1 1 0;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:20px;-ms-overflow-style:none;scrollbar-width:none}.side-drawer-content::-webkit-scrollbar{display:none}.side-drawer-group-title{font-size:.75rem;color:var(--gray-text);font-weight:700;font-family:var(--font-mono);text-transform:uppercase;margin-bottom:12px;margin-top:24px}.side-drawer-group-title:first-child{margin-top:0}.side-drawer-menu-item{display:flex;align-items:center;gap:16px;padding:14px 16px;color:var(--black);text-decoration:none;border-radius:12px;font-weight:600;font-size:1rem;transition:all .2s;border:none;background:none;width:100%;cursor:pointer;font-family:var(--font-body)}.side-drawer-menu-item:hover,.side-drawer-menu-item:active{background:var(--ice-blue);color:var(--samsung-blue)}.side-drawer-menu-item.active{background:var(--samsung-blue);color:var(--white)}.side-drawer-footer{padding:20px;border-top:1px solid var(--tech-line);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.side-drawer-footer-version{display:flex;flex-direction:column;gap:2px}.side-drawer-footer-label{font-size:.65rem;font-family:var(--font-mono);color:var(--gray-text);text-transform:uppercase;font-weight:600}.side-drawer-footer-value{font-size:.85rem;font-family:var(--font-mono);color:var(--samsung-blue);font-weight:700}.side-drawer-footer-settings{width:40px;height:40px;border-radius:50%;background:var(--ice-blue);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--gray-text);transition:all .2s}.side-drawer-footer-settings:hover,.side-drawer-footer-settings:active{background:var(--samsung-blue);color:var(--white)}.coaches-scroll{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;padding:8px 20px 32px;-webkit-overflow-scrolling:touch}.coaches-scroll::-webkit-scrollbar{display:none}.coaches-scroll{-ms-overflow-style:none;scrollbar-width:none}.coaches-scroll-wrap{position:relative}.coaches-arrow{display:none;position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:32px;height:32px;border-radius:50%;background:var(--white);border:1px solid var(--tech-line);color:var(--samsung-blue);align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0000001a;transition:all .2s}.coaches-arrow:hover{background:var(--samsung-blue);color:var(--white)}.coaches-arrow--left{left:6px}.coaches-arrow--right{right:6px}@media(hover:hover)and (pointer:fine){.coaches-arrow{display:flex}}.coach-detail-card{flex:0 0 92%;scroll-snap-align:center;display:flex;flex-direction:column}.coach-detail-inner{padding:24px;display:flex;flex-direction:column;height:100%;border:1px solid var(--tech-line);background:var(--white);box-shadow:0 1px 3px #0000000d;position:relative;z-index:1}.coach-detail-profile{display:flex;flex-direction:column;gap:18px;margin-bottom:22px;align-items:stretch}.coach-detail-photo{width:100%;height:340px;flex-shrink:0;overflow:hidden;background:linear-gradient(180deg,var(--ice-blue) 0%,#e3e9eb 100%);border:1px solid var(--tech-line);display:flex;align-items:flex-end;justify-content:center;position:relative}.coach-detail-photo:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(74,93,106,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(74,93,106,.04) 1px,transparent 1px);background-size:12px 12px}.coach-detail-photo img{width:100%;height:100%;object-fit:contain;object-position:bottom center;position:relative;z-index:1}.coach-detail-info{display:flex;flex-direction:column;justify-content:flex-start;text-align:left;padding-top:4px}.coach-detail-role{font-family:var(--font-mono);font-size:.7rem;color:var(--samsung-blue);font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.coach-detail-name{font-size:1.6rem;font-weight:800;color:var(--black);letter-spacing:-.02em;margin-bottom:10px}.coach-detail-slogan{font-size:.9rem;color:var(--samsung-blue);font-weight:600;line-height:1.5;word-break:keep-all}@media(min-width:480px){.coach-detail-photo{height:380px}}.coach-highlights{list-style:none;display:flex;flex-direction:column;gap:8px;margin-bottom:16px;flex-grow:1}.coach-highlight-item{display:flex;align-items:flex-start;gap:8px;font-size:.85rem;color:var(--gray-text);font-weight:500;line-height:1.5}.coach-highlight-dot{color:var(--samsung-blue);font-size:.6rem;margin-top:4px;flex-shrink:0}.coach-details-toggle{border-top:1px dashed var(--tech-line);padding-top:12px;margin-top:auto}.coach-details-summary{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;font-weight:700;color:var(--gray-text);cursor:pointer;outline:none;list-style:none}.coach-details-summary::-webkit-details-marker{display:none}.coach-details-summary svg{transition:transform .2s}details[open] .coach-details-summary svg{transform:rotate(180deg)}.coach-details-body{list-style:none;padding:12px 12px 12px 16px;margin-top:12px;background:var(--ice-blue);border-radius:6px;font-size:.78rem;color:var(--gray-text);line-height:1.5;display:flex;flex-direction:column;gap:6px}.coach-details-body li{padding-left:12px;position:relative}.coach-details-body li:before{content:"-";position:absolute;left:0;color:var(--samsung-blue);font-weight:700}.coach-contact{margin-top:16px;padding-top:16px;border-top:1px solid var(--tech-line);display:flex;align-items:center;gap:8px;color:var(--samsung-blue);font-weight:700}.coach-contact-number{font-family:var(--font-mono);font-size:.85rem;text-transform:uppercase}.director-profile{display:flex;flex-direction:column;gap:20px;margin-bottom:24px;align-items:stretch}.director-photo-placeholder{width:100%;height:360px;background:linear-gradient(180deg,var(--ice-blue) 0%,#e3e9eb 100%);border:1px solid var(--tech-line);flex-shrink:0;position:relative;overflow:hidden;display:flex;align-items:flex-end;justify-content:center}@media(min-width:480px){.director-photo-placeholder{height:420px}}.director-photo-placeholder:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-image:linear-gradient(rgba(74,93,106,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(74,93,106,.05) 1px,transparent 1px);background-size:10px 10px}.director-info{display:flex;flex-direction:column;justify-content:flex-start;text-align:left}.director-title{font-family:var(--font-mono);font-size:.65rem;color:var(--gray-text);margin-bottom:4px;text-transform:uppercase}.director-name{font-size:1.5rem;font-weight:800;color:var(--samsung-blue);letter-spacing:-.02em;margin-bottom:12px}.director-name span{font-size:.8rem;font-weight:500;color:var(--black);margin-left:4px}.director-slogan{font-size:.9rem;color:var(--black);line-height:1.4;font-weight:600;word-break:keep-all}.history-list{list-style:none;display:flex;flex-direction:column;gap:12px}.history-item{font-size:.85rem;color:var(--gray-text);display:flex;align-items:flex-start;gap:8px;line-height:1.5}.history-item:before{content:"";display:block;width:4px;height:4px;background:var(--samsung-blue);border-radius:50%;margin-top:6px;flex-shrink:0}.direct-contact-label{font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;color:var(--samsung-blue);font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:8px}.direct-contact-dot{width:8px;height:8px;background:var(--samsung-blue);border-radius:50%}.admin-academies{padding:24px 16px 80px}.admin-academies-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.admin-academies-header h1{font-size:1.4rem;color:var(--samsung-blue, #4a5d6a);margin:0}.admin-academies-list{display:flex;flex-direction:column;gap:6px}.admin-academy-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;background:var(--white, #ffffff);border:1px solid rgba(74,93,106,.12)}.admin-academy-row.inactive{opacity:.5}.admin-academy-info{flex:1;min-width:0}.admin-academy-slug{font-family:var(--font-mono, "JetBrains Mono", monospace);color:var(--samsung-blue, #4a5d6a);font-size:12px;letter-spacing:.5px}.admin-academy-name{font-weight:600;margin-left:8px}.admin-academy-domains{font-size:12px;color:#5c6b73;margin-top:4px;word-break:break-all}.admin-academy-domain-verified{color:#2d8a4f;margin-left:6px}.attendance-page{padding:16px 20px 80px;font-family:var(--font-body)}.attendance-page h1{font-size:22px;font-weight:700;color:var(--black);margin-bottom:16px}.attendance-page-sub{font-size:14px;color:var(--gray-text);margin-bottom:16px;word-break:keep-all}.date-navigator{display:flex;align-items:center;gap:8px;background:var(--ice-blue);border-radius:8px;padding:4px;margin-bottom:16px;position:relative}.date-nav-arrow{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--samsung-blue);cursor:pointer;border-radius:6px}.date-nav-arrow:active{background:#4a5d6a14}.date-nav-label{flex:1;height:44px;display:flex;align-items:center;justify-content:center;gap:8px;background:transparent;border:none;cursor:pointer;font-family:var(--font-mono);font-size:14px;color:var(--black)}.date-nav-label-text{font-family:var(--font-mono)}.date-nav-today{font-size:12px;color:var(--samsung-blue);font-weight:600;background:var(--white);padding:2px 6px;border-radius:4px}.date-nav-hidden-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.roster-list{display:flex;flex-direction:column;gap:4px;margin-bottom:80px}.roster-row{min-height:56px;display:flex;flex-direction:column;gap:8px;padding:12px 12px 12px 16px;background:var(--white);border:1px solid var(--tech-line);border-radius:8px;border-left:4px solid transparent}.roster-row--pending{border-left-color:var(--ice-blue);background:#f0f4f566}.roster-row-info{display:flex;align-items:center;gap:8px;word-break:keep-all}.roster-row-name{font-size:14px;font-weight:600;color:var(--black)}.roster-row-localid{font-family:var(--font-mono);font-size:12px;color:var(--gray-text)}.roster-row-controls{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.roster-row-note-btn,.roster-row-history-btn{min-width:36px;height:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--tech-line);border-radius:6px;background:var(--white);color:var(--gray-text);cursor:pointer}.roster-row-note-btn.has-note{color:var(--samsung-blue);border-color:var(--samsung-blue)}.roster-row-note-btn:active,.roster-row-history-btn:active{background:var(--ice-blue)}.status-toggle-group{display:flex;gap:4px;flex:1;flex-wrap:nowrap}.status-toggle{flex:1;min-width:48px;min-height:44px;padding:4px 6px;font-size:12px;font-weight:600;font-family:var(--font-kr);color:var(--gray-text);background:var(--ice-blue);border:1px solid var(--tech-line);border-radius:6px;cursor:pointer;transition:transform .05s}.status-toggle:active{transform:scale(.97)}.status-toggle--active{color:var(--white)}.status-toggle--PRESENT.status-toggle--active{background:#4a5d6a;border-color:#4a5d6a}.status-toggle--ABSENT.status-toggle--active{background:#f5b82e;border-color:#f5b82e;color:var(--black)}.status-toggle--LATE.status-toggle--active{background:#5c6b73;border-color:#5c6b73}.status-toggle--EARLY_LEAVE.status-toggle--active{background:#2d3a42;border-color:#2d3a42}.sticky-save-bar{position:fixed;bottom:var(--bottom-nav-height);left:0;right:0;max-width:480px;margin:0 auto;padding:12px 20px;background:var(--white);border-top:1px solid var(--tech-line);z-index:100}.sticky-save-bar button{width:100%;height:48px;background:var(--samsung-blue);color:var(--white);border:none;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer}.sticky-save-bar button:disabled{opacity:.5;cursor:not-allowed}.note-editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:2000;padding:16px}.note-editor{width:100%;max-width:460px;max-height:90vh;background:var(--white);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:12px}.note-editor-header{display:flex;justify-content:space-between;align-items:center}.note-editor-header h3{font-size:16px;font-weight:600}.note-editor-counter{font-family:var(--font-mono);font-size:12px;color:var(--gray-text)}.note-editor-textarea{width:100%;min-height:160px;resize:vertical;border:1px solid var(--tech-line);border-radius:6px;padding:12px;font-family:var(--font-body);font-size:14px;color:var(--black);outline:none}.note-editor-textarea:focus{border-color:var(--samsung-blue);outline:2px solid var(--samsung-blue);outline-offset:-1px}.note-editor-actions{display:flex;gap:8px;justify-content:flex-end}.attendance-page-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.attendance-page-header-back{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--samsung-blue);cursor:pointer}.attendance-empty{text-align:center;padding:48px 16px;color:var(--gray-text)}.attendance-empty-title{font-size:16px;font-weight:600;color:var(--black);margin-bottom:8px}.attendance-loading{text-align:center;padding:24px 16px;color:var(--gray-text)}.attendance-chart-card{background:var(--white);border:1px solid var(--tech-line);border-radius:12px;padding:20px;margin-bottom:16px}.attendance-chart-card h3{font-size:16px;font-weight:600;margin-bottom:12px;color:var(--black)}.attendance-page-tabs{display:flex;border-bottom:1px solid var(--tech-line);margin-bottom:16px}.attendance-page-tab{flex:1;padding:12px 0;background:none;border:none;cursor:pointer;font-size:14px;font-weight:600;color:var(--gray-text);position:relative;font-family:inherit}.attendance-page-tab.active{color:var(--samsung-blue)}.attendance-page-tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--samsung-blue)}.attendance-stats-filters{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.attendance-stats-filters select{padding:8px 12px;font-size:13px;border:1px solid var(--tech-line);border-radius:6px;background:var(--white)}.absence-ranking{list-style:none;padding:0;margin:0}.absence-ranking-item{display:flex;align-items:center;padding:12px 0;border-bottom:1px solid var(--tech-line);gap:12px;cursor:pointer}.absence-ranking-item:last-child{border-bottom:none}.absence-ranking-rank{font-family:var(--font-mono);font-size:14px;font-weight:700;color:var(--samsung-blue);min-width:28px}.absence-ranking-name{flex:1;font-size:14px;font-weight:500}.absence-ranking-count{font-family:var(--font-mono);font-size:13px;color:var(--accent-red);font-weight:600}.attendance-log-list{display:flex;flex-direction:column;gap:0;max-height:60vh;overflow-y:auto}.attendance-log-item{padding:12px 0;border-bottom:1px solid var(--tech-line)}.attendance-log-meta{display:flex;gap:8px;align-items:center;margin-bottom:4px;font-size:12px;color:var(--gray-text)}.attendance-log-time{font-family:var(--font-mono)}.attendance-log-action{font-weight:700;padding:2px 6px;border-radius:4px;font-size:11px}.attendance-log-action--CREATE{color:var(--samsung-blue);background:var(--ice-blue)}.attendance-log-action--UPDATE{color:var(--gray-text);background:var(--ice-blue)}.attendance-log-action--DELETE{color:#c0392b;background:#c0392b14}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.attendance-toast{position:fixed;bottom:calc(var(--bottom-nav-height) + 80px);left:50%;transform:translate(-50%);background:var(--samsung-blue-dark);color:var(--white);padding:12px 20px;border-radius:24px;font-size:14px;z-index:3000;box-shadow:0 4px 16px #0000002e;max-width:90%;text-align:center}.attendance-toast--error{background:#c0392b}.ghost-btn--samsung{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:600;color:var(--samsung-blue);background:transparent;border:1px solid var(--samsung-blue);border-radius:6px;cursor:pointer;font-family:inherit}.ghost-btn--samsung:active{background:var(--ice-blue)}.child-attendance-counters{margin-top:12px;padding:12px;background:var(--ice-blue);border-radius:8px}.child-attendance-counters .label-12{font-size:12px;font-weight:600;color:var(--samsung-blue);margin-bottom:8px}.counter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.counter-cell{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;background:var(--white);border-radius:6px}.counter-label{font-size:11px;color:var(--gray-text);font-weight:500}.counter-number{font-size:22px;font-weight:700;line-height:1;color:var(--samsung-blue);font-family:var(--font-body)}.counter-unit{font-size:11px;color:var(--gray-text)}.counter-link{display:block;margin-top:8px;text-align:right;font-size:12px;color:var(--samsung-blue);text-decoration:none;font-weight:600}.child-attendance-counters .empty{font-size:13px;color:var(--gray-text);text-align:center;padding:8px 0}.student-attendance-tab{padding:16px 0}.student-attendance-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:16px}.student-attendance-rate{font-size:13px;color:var(--samsung-blue);font-weight:600;margin-bottom:12px;text-align:center}.attendance-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:12px}.attendance-calendar-head{font-size:11px;color:var(--gray-text);text-align:center;font-weight:600;padding:4px 0}.attendance-calendar-cell{aspect-ratio:1;border:1px solid var(--tech-line);border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2px;font-size:11px;background:var(--white);cursor:pointer}.attendance-calendar-cell--empty{border:1px dashed rgba(74,93,106,.1);background:transparent;cursor:default}.attendance-calendar-day{font-size:11px;color:var(--black)}.attendance-calendar-dot{width:8px;height:8px;border-radius:50%;margin-top:2px}.admin-classes{padding:24px 20px 80px;font-family:var(--font-body)}.admin-classes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.admin-classes-header h1{font-size:1.4rem;font-weight:800;color:var(--black);margin:0}.admin-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;font-size:.85rem;font-weight:600;border:1px solid transparent;cursor:pointer;font-family:inherit;transition:all .15s ease}.admin-btn.primary{background:var(--samsung-blue);color:var(--white);border-color:var(--samsung-blue)}.admin-btn.primary:hover{background:var(--samsung-blue-dark)}.admin-btn.primary:disabled{opacity:.6;cursor:not-allowed}.admin-btn.ghost{background:var(--white);color:var(--samsung-blue);border-color:var(--tech-line)}.admin-btn.ghost:hover{background:var(--ice-blue)}.admin-btn.danger{background:var(--white);color:#c0392b;border-color:#c0392b4d}.admin-btn.danger:hover{background:#c0392b14}.admin-classes-list{display:flex;flex-direction:column;gap:8px}.admin-class-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;background:var(--white);border:1px solid var(--tech-line);box-shadow:0 2px 6px #2d3a420a}.admin-class-row.inactive{opacity:.55;background:var(--ice-blue)}.admin-class-info{flex:1;min-width:0}.admin-class-title-row{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}.admin-class-level{font-family:var(--font-mono);font-size:.65rem;font-weight:700;background:var(--samsung-blue);color:var(--white);padding:2px 6px}.admin-class-name{font-size:.95rem;font-weight:700;color:var(--black)}.admin-class-status{font-size:.65rem;background:var(--gray-text);color:var(--white);padding:2px 6px;font-family:var(--font-mono)}.admin-class-meta{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--gray-text);flex-wrap:wrap}.admin-class-price{font-family:var(--font-display);font-weight:700;color:var(--samsung-blue-dark)}.admin-class-actions{display:flex;gap:4px;flex-shrink:0}.admin-empty{padding:40px 20px;text-align:center;background:var(--ice-blue);border:1px solid var(--tech-line);color:var(--gray-text)}.admin-empty.error{background:#c0392b0d;color:#c0392b;border-color:#c0392b33}.admin-form-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2d3a428c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.admin-form{width:100%;max-width:460px;max-height:90vh;overflow-y:auto;background:var(--white);padding:24px;display:flex;flex-direction:column;gap:12px;font-family:var(--font-body)}.admin-form h2{font-size:1.15rem;font-weight:800;margin:0 0 4px;color:var(--black)}.admin-form label{display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:var(--gray-text)}.admin-form label>span{font-weight:600}.admin-form input[type=text],.admin-form input[type=number],.admin-form textarea{font-family:inherit;font-size:.9rem;padding:8px 10px;border:1px solid var(--tech-line);background:var(--white);color:var(--black);width:100%}.admin-form input:focus,.admin-form textarea:focus{outline:2px solid var(--samsung-blue);outline-offset:-1px}.admin-form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-checkbox{flex-direction:row!important;align-items:center;gap:8px!important;font-size:.85rem!important;color:var(--black)!important;cursor:pointer}.admin-form-error{padding:8px 10px;background:#c0392b14;border-left:3px solid #c0392b;font-size:.8rem;color:#c0392b}.admin-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.admin-class-card{display:flex;flex-direction:column}.admin-class-info-button{display:flex;align-items:center;gap:10px;background:transparent;border:none;cursor:pointer;padding:0;text-align:left;font-family:inherit;color:inherit;width:100%;min-width:0}.admin-class-info-text{flex:1;min-width:0}.class-card-caret{flex-shrink:0;color:var(--gray-text);transition:transform .2s ease}.class-card-caret.open{transform:rotate(180deg);color:var(--samsung-blue)}.class-student-list{margin-top:8px;padding:16px;background:var(--ice-blue);border:1px solid var(--tech-line);display:flex;flex-direction:column;gap:8px}.class-students-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.class-students-title{font-size:.85rem;font-weight:700;color:var(--black)}.class-students-empty{padding:16px 12px;text-align:center;font-size:.8rem;color:var(--gray-text);background:var(--white);border:1px dashed var(--tech-line)}.class-students-empty p{margin:0}.class-students-empty .hint{margin-top:4px;font-size:.75rem;opacity:.75}.class-student-row{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--white);border:1px solid var(--tech-line)}.class-student-thumb{width:40px;height:40px;flex-shrink:0;border:1px solid var(--tech-line);background:var(--ice-blue);display:flex;align-items:center;justify-content:center;color:var(--gray-text);overflow:hidden}.class-student-thumb img{width:100%;height:100%;object-fit:cover}.class-student-info{flex:1;min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.class-student-name{font-size:.9rem;font-weight:600;color:var(--black)}.class-student-meta{font-size:.75rem;color:var(--gray-text)}.student-local-id-chip{font-family:var(--font-mono);font-size:.65rem;font-weight:700;background:var(--samsung-blue);color:var(--white);padding:2px 6px}.admin-form.student-picker{max-width:420px}.student-picker-list{display:flex;flex-direction:column;gap:6px;max-height:320px;overflow-y:auto}.student-picker-row{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--white);border:1px solid var(--tech-line);font-family:inherit;text-align:left;cursor:pointer;transition:background .12s ease}.student-picker-row:hover:not(:disabled){background:var(--ice-blue)}.student-picker-row:disabled{opacity:.5;cursor:not-allowed}.fitness-items-page{padding:16px}.fitness-items-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.fitness-items-header h1{font-size:20px;font-weight:600;color:#4a5d6a;margin:0}.fitness-add-btn{background:#f5b82e;color:#1a2629;border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;font-family:IBM Plex Sans KR,sans-serif;cursor:pointer}.fitness-add-btn:hover{filter:brightness(1.05)}.fitness-items-list{display:flex;flex-direction:column;gap:8px}.fitness-item-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px;border:1px solid rgba(74,93,106,.12);border-radius:8px;background:#fff}.fitness-item-row.system{background:#f0f4f5}.fitness-item-row.custom{background:#fff;border-left:2px solid #f5b82e}.fitness-item-main{flex:1;min-width:0}.fitness-item-head{display:flex;align-items:center;gap:8px}.fitness-item-name{font-size:14px;font-weight:600;color:#1a2629}.fitness-item-badge{font-size:10px;padding:2px 6px;border-radius:999px;background:#f0f4f5;color:#5c6b73;font-family:IBM Plex Sans KR,sans-serif}.fitness-item-badge.system{background:#f0f4f5;color:#5c6b73}.fitness-item-badge.custom{background:#f5b82e2e;color:#8b6a13}.fitness-item-badge.override{background:#4a5d6a1f;color:#4a5d6a}.fitness-item-meta{display:flex;gap:8px;margin-top:4px;font-family:JetBrains Mono,monospace;font-size:11px;color:#5c6b73}.fitness-item-hidden-tag{color:#d14b4b;font-weight:500}.fitness-item-actions{display:flex;gap:4px}.fitness-icon-btn{background:transparent;border:1px solid rgba(74,93,106,.12);border-radius:6px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;color:#5c6b73;cursor:pointer}.fitness-icon-btn:hover{background:#f0f4f5}.fitness-icon-btn.danger{color:#d14b4b}.fitness-sessions-page{padding:16px}.fitness-sessions-list{display:flex;flex-direction:column;gap:8px}.fitness-session-card{display:flex;justify-content:space-between;gap:12px;padding:12px;background:#fff;border:1px solid rgba(74,93,106,.12);border-radius:8px;cursor:pointer;text-align:left}.fitness-session-card:hover{border-color:#4a5d6a}.fitness-session-date{font-family:Oswald,sans-serif;font-size:18px;font-weight:600;color:#1a2629}.fitness-session-meta{font-size:12px;color:#5c6b73;margin-top:4px}.fitness-session-counts{font-family:JetBrains Mono,monospace;font-size:12px;color:#4a5d6a;align-self:center}.fitness-empty p{font-size:13px;margin:0 0 16px}.fitness-detail-page{padding:16px}.fitness-grid-save-bar{position:sticky;top:0;z-index:3;background:#fff;padding:8px 0;display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid rgba(74,93,106,.12)}.fitness-save-btn{background:#f5b82e;color:#1a2629;border:none;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600;font-family:IBM Plex Sans KR,sans-serif;cursor:pointer}.fitness-save-btn:disabled{opacity:.5;cursor:not-allowed}.fitness-detail-meta{font-size:12px;color:#5c6b73}.fitness-detail-meta strong{font-size:13px;color:#1a2629;margin-right:6px}.fitness-grid-scroll{overflow-x:auto;max-width:100%;margin-top:12px}.fitness-grid{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.fitness-grid th,.fitness-grid td{min-width:64px;height:44px;border:1px solid rgba(74,93,106,.12);padding:4px;background:#fff}.fitness-grid th{background:#f0f4f5;font-size:11px;color:#4a5d6a;font-weight:600;font-family:IBM Plex Sans KR,sans-serif}.fitness-grid-th-name{font-size:11px}.fitness-grid-th-unit{font-size:10px;color:#5c6b73;font-family:JetBrains Mono,monospace;font-weight:400}.fitness-grid th:first-child,.fitness-grid td:first-child{position:sticky;left:0;z-index:2;background:#f0f4f5;width:96px;min-width:96px;text-align:left;font-weight:600}.fitness-grid-corner{z-index:4!important}.fitness-grid-student{font-size:13px;color:#1a2629}.fitness-cell-wrap{position:relative;width:100%;height:100%}.fitness-cell-input{width:100%;height:36px;border:none;padding:4px;text-align:center;font-family:JetBrains Mono,monospace;font-size:12px;color:#1a2629;background:transparent}.fitness-cell-input:focus{outline:2px solid #4a5d6a;outline-offset:-2px}.fitness-cell-input.has-error{background:#d14b4b14}.fitness-cell-error{position:absolute;left:0;top:100%;font-size:10px;color:#d14b4b;white-space:nowrap;z-index:5;background:#fff;padding:2px 4px;border-radius:4px}.fitness-grid-empty{padding:24px;text-align:center;color:#5c6b73}.fitness-toast{margin-top:8px;padding:8px 12px;border-radius:6px;font-size:13px;background:#4a5d6a14;color:#1a2629}.fitness-toast.success{background:#4a5d6a14}.fitness-toast.error{background:#d14b4b1a;color:#d14b4b}.fitness-tab-page{padding:8px 0 24px}.fitness-tab-loading,.fitness-tab-error{padding:24px 16px;text-align:center;color:#5c6b73;font-size:13px}.fitness-tab-error{color:#d14b4b}.fitness-empty{padding:48px 16px;text-align:center;color:#5c6b73}.fitness-empty h3{font-size:14px;font-weight:600;margin:16px 0 8px;color:#1a2629}.fitness-empty p{font-size:13px;margin:0}.fitness-summary-grid{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.fitness-summary-card{background:#fff;border:1px solid rgba(74,93,106,.12);border-radius:8px;padding:16px;border-left:4px solid #f5b82e}.fitness-summary-card h4{font-size:12px;color:#5c6b73;margin:0 0 8px;font-weight:500;font-family:IBM Plex Sans KR,sans-serif}.fitness-summary-card .value{font-family:Oswald,sans-serif;font-size:24px;font-weight:700;color:#1a2629}.fitness-summary-card .value.mono{font-family:JetBrains Mono,monospace;font-size:18px;font-weight:600}.fitness-summary-chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}.fitness-summary-chip{flex-shrink:0;display:inline-flex;flex-direction:column;padding:6px 10px;background:#f0f4f5;border-radius:6px;min-width:64px}.fitness-summary-chip-name{font-size:11px;color:#5c6b73;font-family:IBM Plex Sans KR,sans-serif}.fitness-summary-chip-value{font-family:JetBrains Mono,monospace;font-size:13px;color:#1a2629;font-weight:600;margin-top:2px}.fitness-summary-empty{font-size:12px;color:#5c6b73}.fitness-range-filter{display:flex;gap:8px;padding:8px 0;background:#fff;margin:8px 0}.fitness-range-chip{padding:6px 12px;border-radius:999px;font-size:12px;font-family:IBM Plex Sans KR,sans-serif;font-weight:500;border:none;cursor:pointer;background:#f0f4f5;color:#5c6b73}.fitness-range-chip.active{background:#f5b82e;color:#fff}.fitness-trend-list{display:flex;flex-direction:column;gap:8px}.fitness-trend-card{background:#fff;border:1px solid rgba(74,93,106,.12);border-radius:8px;padding:16px}.fitness-trend-card h4{font-size:14px;font-weight:600;margin:0 0 8px;color:#1a2629}.fitness-unit{font-family:JetBrains Mono,monospace;font-size:12px;color:#5c6b73;font-weight:400}.admin-students{padding:24px 20px 80px;font-family:var(--font-body)}.admin-students-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.admin-students-header h1{font-size:1.4rem;font-weight:700;line-height:1.2;color:var(--black);margin:0}.admin-students-search{margin-bottom:16px}.admin-students-search input{width:100%;padding:10px 12px;font-size:.9rem;font-family:inherit;border:1px solid var(--tech-line);background:var(--white);color:var(--black)}.admin-students-search input:focus{outline:2px solid var(--samsung-blue);outline-offset:-1px}.admin-students-list{display:flex;flex-direction:column;gap:8px}.admin-students-empty{display:flex;flex-direction:column;align-items:center;padding:48px 24px;gap:6px}.admin-students-empty .empty-title{font-size:1rem;font-weight:600;color:var(--black);margin:0}.admin-students-empty .empty-body{font-size:.875rem;color:var(--gray-text);margin:0;text-align:center;word-break:keep-all}.student-row{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--white);border:1px solid var(--tech-line);box-shadow:0 2px 6px #2d3a420a;min-height:64px}.student-row:active{background:var(--ice-blue)}.student-row-main{flex:1;min-width:0;display:flex;align-items:center;gap:12px;background:transparent;border:0;padding:0;font-family:inherit;cursor:pointer;text-align:left}.student-row-thumb{width:48px;height:48px;background:var(--ice-blue);display:flex;align-items:center;justify-content:center;color:var(--gray-text);flex-shrink:0;overflow:hidden}.student-row-thumb img{width:100%;height:100%;object-fit:cover}.student-row-info{flex:1;min-width:0}.student-row-title{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}.student-local-id-chip{font-family:var(--font-mono);font-size:.75rem;font-weight:600;background:var(--samsung-blue);color:var(--white);padding:2px 6px}.student-row-name{font-size:1rem;font-weight:600;color:var(--black);word-break:keep-all}.student-row-meta{font-size:.875rem;font-family:var(--font-mono);color:var(--gray-text);line-height:1.4}.student-row-actions{display:flex;gap:4px;flex-shrink:0}.student-detail-back{margin-bottom:12px}.student-detail-tabs{display:flex;gap:0;border-bottom:1px solid var(--tech-line);margin-bottom:16px}.student-detail-tab{flex:1;padding:12px 8px;background:transparent;border:0;border-bottom:2px solid transparent;font-family:inherit;font-size:.9rem;font-weight:600;color:var(--gray-text);cursor:pointer}.student-detail-tab.active{color:var(--samsung-blue);border-bottom-color:var(--samsung-blue)}.student-profile-tab{display:flex;flex-direction:column;gap:16px}.student-profile-header{display:flex;align-items:center;gap:16px}.student-profile-id{display:flex;flex-direction:column;gap:4px;min-width:0}.student-profile-id h2{font-size:1.15rem;font-weight:700;margin:0;color:var(--black);word-break:keep-all}.student-profile-sub{font-family:var(--font-mono);font-size:.75rem;color:var(--gray-text)}.student-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:var(--ice-blue);padding:16px}.student-profile-field{display:flex;flex-direction:column;gap:2px;min-width:0}.student-profile-label{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--gray-text)}.student-profile-value{font-size:.875rem;color:var(--black);word-break:keep-all}.student-profile-block{display:flex;flex-direction:column;gap:4px;padding:12px 0;border-top:1px solid var(--tech-line)}.student-profile-block p{font-size:.875rem;color:var(--black);margin:0;line-height:1.5;white-space:pre-wrap}.student-profile-actions{display:flex;justify-content:flex-end;margin-top:8px}.student-photo-uploader-wrap{display:flex;flex-direction:column;gap:6px}.student-photo-uploader{position:relative;background:var(--ice-blue);border:1px solid var(--tech-line);color:var(--gray-text);display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;font-family:inherit}.student-photo-uploader:disabled{cursor:wait}.student-photo-uploader img{width:100%;height:100%;object-fit:cover}.student-photo-spinner{position:absolute;top:0;right:0;bottom:0;left:0;background:#2d3a428c;color:var(--white);font-size:.75rem;display:flex;align-items:center;justify-content:center}.student-photo-error{font-size:.75rem;color:#c0392b;background:#c0392b14;padding:6px 8px;max-width:240px;word-break:keep-all}.student-empty-tab{display:flex;flex-direction:column;align-items:center;gap:6px;padding:48px 24px;background:var(--ice-blue)}.student-empty-tab .empty-title{font-size:1rem;font-weight:600;color:var(--black);margin:0}.student-empty-tab .empty-body{font-size:.875rem;color:var(--gray-text);margin:0;text-align:center;word-break:keep-all}.confirm-dialog-message{font-size:.875rem;color:var(--black);line-height:1.5;margin:0;word-break:keep-all}.confirm-dialog-message.danger{color:#c0392b}.student-guardians-section{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-top:1px solid var(--tech-line)}.student-guardians-list{display:flex;flex-direction:column;gap:6px}.guardian-badge{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--ice-blue);border:1px solid var(--tech-line)}.guardian-badge-info{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.guardian-badge-relation{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--gray-text);background:var(--white);padding:2px 6px;border:1px solid var(--tech-line)}.guardian-badge-name{font-size:.875rem;font-weight:600;color:var(--black);word-break:keep-all}.guardian-badge-phone{font-family:var(--font-mono);font-size:.75rem;color:var(--gray-text)}.guardian-badge-unlink{flex-shrink:0}.enrollment-history-list{display:flex;flex-direction:column;gap:8px}.enrollment-history-row{background:var(--white);border:1px solid var(--tech-line);padding:12px;display:flex;flex-direction:column;gap:6px;box-shadow:0 2px 6px #2d3a420a}.enrollment-history-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}.enrollment-history-name{font-size:1rem;font-weight:600;color:var(--black);word-break:keep-all}.enrollment-history-coach{font-size:.875rem;color:var(--gray-text)}.enrollment-history-period{font-family:var(--font-mono);font-size:.75rem;color:var(--gray-text)}.enrollment-history-payments{display:flex;flex-wrap:wrap;gap:6px}.enrollment-history-pay{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--samsung-blue);background:var(--ice-blue);padding:2px 6px}.admin-form select{font-family:inherit;font-size:.9rem;padding:8px 10px;border:1px solid var(--tech-line);background:var(--white);color:var(--black);width:100%}.admin-form select:focus{outline:2px solid var(--samsung-blue);outline-offset:-1px}.admin-form input[type=date],.admin-form input[type=tel]{font-family:inherit;font-size:.9rem;padding:8px 10px;border:1px solid var(--tech-line);background:var(--white);color:var(--black);width:100%}.tiptap-area:focus,.tiptap-area:focus-visible{outline:none}.tiptap-area .ProseMirror{outline:none;min-height:200px;font-family:var(--font-body);font-size:15px;line-height:1.6;color:var(--black);cursor:text}.tiptap-area .ProseMirror:focus,.tiptap-area .ProseMirror:focus-visible{outline:none;box-shadow:none}.tiptap-area .ProseMirror p{margin:0 0 .6em}.tiptap-area .ProseMirror p:last-child{margin-bottom:0}.tiptap-content.is-empty:before,.tiptap-content p.is-editor-empty:first-child:before,.tiptap-area .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--gray-text);float:left;height:0;pointer-events:none}.tiptap-area .ProseMirror img{max-width:100%;height:auto;border-radius:6px;margin:8px 0}.tiptap-area .ProseMirror a{color:var(--samsung-blue);text-decoration:underline}.tiptap-area .ProseMirror ul,.tiptap-area .ProseMirror ol{padding-left:1.4em;margin:.4em 0}.tiptap-area .ProseMirror blockquote{border-left:3px solid var(--samsung-blue);padding-left:12px;color:var(--gray-text);margin:.5em 0}.tiptap-area .ProseMirror code{background:var(--ice-blue);padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-size:.85em}.admin-academy-content{max-width:480px;margin:0 auto;padding:24px 16px 96px}.admin-academy-header h1{margin:0 0 4px;color:var(--samsung-blue-dark)}.admin-academy-subtitle{font-size:13px;color:var(--gray-text);margin:0 0 24px}.admin-academy-section{background:var(--white);border:1px solid var(--tech-line);border-radius:16px;padding:16px;margin-bottom:16px}.admin-academy-section h2{font-size:14px;margin:0 0 12px;color:var(--samsung-blue-dark)}.admin-academy-contact{display:flex;flex-direction:column;gap:12px}.admin-academy-contact label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--gray-text)}.admin-academy-contact input{padding:10px 12px;border:1px solid var(--tech-line);border-radius:10px;font-family:var(--font-kr);font-size:14px}.admin-academy-save-row{display:flex;justify-content:flex-end;margin-bottom:24px}.admin-academy-save{padding:12px 20px;background:var(--accent-red);color:var(--black);border:none;border-radius:12px;font-weight:600;cursor:pointer;font-family:var(--font-kr)}.admin-academy-save:disabled{opacity:.6}.admin-academy-toast{position:fixed;bottom:96px;left:50%;transform:translate(-50%);background:var(--samsung-blue-dark);color:var(--white);padding:12px 20px;border-radius:999px;font-size:13px;z-index:1000}.banner-uploader-preview{width:100%;max-height:180px;object-fit:cover;border-radius:12px;margin-bottom:12px}.banner-uploader-actions{display:flex;gap:8px}.banner-uploader-btn,.banner-uploader-clear{display:inline-flex;gap:6px;align-items:center;padding:10px 14px;border:1px solid var(--tech-line);border-radius:10px;background:var(--white);color:var(--samsung-blue-dark);cursor:pointer;font-family:var(--font-kr);font-size:13px}.banner-uploader-clear{color:#c0392b}.banner-uploader-progress{width:100%;height:6px;background:var(--ice-blue);border-radius:3px;margin-top:8px;overflow:hidden}.banner-uploader-progress-bar{height:100%;background:var(--accent-red);transition:width .2s}.banner-uploader-error{color:#c0392b;font-size:12px;margin:6px 0 0}.program-list-editor{background:var(--white);border:1px solid var(--tech-line);border-radius:16px;padding:16px}.program-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.program-list-header h2{font-size:14px;margin:0;color:var(--samsung-blue-dark)}.program-list-add{display:inline-flex;gap:6px;align-items:center;padding:8px 12px;background:var(--samsung-blue);color:var(--white);border:none;border-radius:10px;cursor:pointer;font-family:var(--font-kr);font-size:12px}.program-list-empty{color:var(--gray-text);font-size:13px;text-align:center;padding:24px 0;margin:0}.program-list-items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.program-list-item{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--tech-line);border-radius:12px;padding:12px;gap:8px}.program-list-item-name{margin:0;font-weight:600;color:var(--samsung-blue-dark)}.program-list-item-desc{margin:2px 0 0;font-size:12px;color:var(--gray-text)}.program-list-item-price{margin:2px 0 0;font-family:var(--font-mono);font-size:12px;color:var(--samsung-blue)}.program-list-item-actions{display:flex;gap:8px;align-items:center}.program-toggle{padding:4px 10px;border-radius:999px;font-size:11px;border:1px solid var(--tech-line);background:var(--white);cursor:pointer;font-family:var(--font-mono)}.program-toggle.on{background:var(--ice-blue);color:var(--samsung-blue-dark)}.program-toggle.off{color:var(--gray-text)}.program-delete{background:transparent;border:1px solid var(--tech-line);border-radius:8px;padding:6px;cursor:pointer;color:#c0392b}.program-form{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding:12px;background:var(--ice-blue);border-radius:12px}.program-form input{padding:8px 10px;border:1px solid var(--tech-line);border-radius:8px;font-family:var(--font-kr)}.program-form-actions{display:flex;gap:8px;justify-content:flex-end}.program-form-cancel,.program-form-save{padding:8px 14px;border-radius:8px;font-family:var(--font-kr);cursor:pointer;border:1px solid var(--tech-line)}.program-form-cancel{background:var(--white);color:var(--gray-text)}.program-form-save{background:var(--samsung-blue);color:var(--white);border-color:var(--samsung-blue)}.admin-academy-empty,.admin-academy-deny{padding:60px 16px;text-align:center;color:var(--gray-text)}.admin-academy-empty.error{color:#c0392b}.admin-boards{max-width:480px;margin:0 auto;padding:24px 16px 96px}.admin-boards-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:24px}.admin-boards-header h1{margin:0 0 4px;color:var(--samsung-blue-dark)}.admin-boards-subtitle{font-size:13px;color:var(--gray-text);margin:0}.admin-boards-cta{display:inline-flex;gap:6px;align-items:center;padding:10px 14px;background:var(--accent-red);color:var(--black);border:none;border-radius:12px;font-weight:600;cursor:pointer;font-family:var(--font-kr);font-size:13px}.admin-boards-empty{background:var(--white);border:1px solid var(--tech-line);border-radius:12px;padding:32px 16px;text-align:center;color:var(--gray-text)}.admin-boards-empty.error{color:#c0392b}.admin-boards-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.admin-board-row{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--white);border:1px solid var(--tech-line);border-radius:12px;padding:14px}.admin-board-name{margin:0;font-weight:600;color:var(--samsung-blue-dark);display:flex;gap:8px;align-items:center}.admin-board-type{font-family:var(--font-mono);font-size:11px;color:var(--samsung-blue);background:var(--ice-blue);border-radius:999px;padding:2px 8px}.admin-board-slug{margin:2px 0 0;font-family:var(--font-mono);font-size:12px;color:var(--gray-text)}.admin-board-desc{margin:2px 0 0;font-size:12px;color:var(--gray-text)}.admin-board-actions{display:flex;gap:8px}.admin-board-edit,.admin-board-delete{background:transparent;border:1px solid var(--tech-line);border-radius:8px;padding:8px;cursor:pointer;color:var(--samsung-blue)}.admin-board-delete{color:#c0392b}.admin-boards-deny{padding:60px 16px;text-align:center;color:var(--gray-text)}.board-form-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a262999;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;overflow-y:auto}.board-form-modal{background:var(--white);border-radius:16px;max-width:460px;width:100%;padding:20px;max-height:90vh;overflow-y:auto}.board-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.board-form-header h3{margin:0;color:var(--samsung-blue-dark)}.board-form-close{background:transparent;border:none;cursor:pointer;color:var(--gray-text)}.board-form-body label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--gray-text);margin-bottom:12px}.board-form-body input[type=text]{padding:10px 12px;border:1px solid var(--tech-line);border-radius:10px;font-family:var(--font-kr);font-size:14px}.board-form-toggle-row{flex-direction:row!important;justify-content:space-between;align-items:center}.board-form-permissions h4{font-size:13px;margin:12px 0 8px;color:var(--samsung-blue-dark)}.board-form-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.board-form-cancel,.board-form-save{padding:10px 16px;border-radius:10px;font-family:var(--font-kr);font-weight:600;cursor:pointer;border:1px solid var(--tech-line)}.board-form-cancel{background:var(--white);color:var(--gray-text)}.board-form-save{background:var(--accent-red);color:var(--black);border-color:var(--accent-red)}.board-form-save:disabled{opacity:.6;cursor:not-allowed}.permission-presets{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.permission-preset-chip{padding:6px 12px;border:1px solid var(--tech-line);border-radius:999px;background:var(--white);color:var(--gray-text);cursor:pointer;font-family:var(--font-kr);font-size:12px}.permission-preset-chip.active{background:var(--samsung-blue);color:var(--white);border-color:var(--samsung-blue)}.permission-matrix-mobile{display:flex;flex-direction:column;gap:10px}.permission-role-card{border:1px solid var(--tech-line);border-radius:12px;padding:10px 12px}.permission-role-name{margin:0 0 8px;font-size:13px;color:var(--samsung-blue-dark);font-weight:600;display:flex;align-items:center;gap:6px}.permission-guest-info{color:var(--gray-text);display:inline-flex;cursor:help}.permission-action-chips{display:flex;gap:6px;flex-wrap:wrap}.permission-action-chip{min-width:36px;height:24px;padding:0 10px;border:1px solid var(--tech-line);border-radius:999px;background:var(--white);color:var(--gray-text);cursor:pointer;font-family:var(--font-kr);font-size:11px}.permission-action-chip.active{background:var(--samsung-blue);color:var(--white);border-color:var(--samsung-blue)}.permission-matrix-desktop{display:none}@media(min-width:1280px){.permission-matrix-mobile{display:none}.permission-matrix-desktop{display:block}.permission-matrix-desktop table{width:100%;border-collapse:collapse}.permission-matrix-desktop th,.permission-matrix-desktop td{padding:8px 10px;text-align:center;border-bottom:1px solid var(--tech-line);font-family:var(--font-kr);font-size:12px;color:var(--samsung-blue-dark)}.permission-matrix-desktop th[scope=row]{text-align:left}.permission-matrix-desktop input[type=checkbox]{width:24px;height:24px}}.admin-coaches{max-width:480px;margin:0 auto;padding:24px 16px 96px}.admin-coaches-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:24px}.admin-coaches-header h1{font-size:1.4rem;margin:0 0 4px;color:var(--samsung-blue-dark)}.admin-coaches-subtitle{font-size:13px;color:var(--gray-text);margin:0}.admin-coaches-cta{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;background:var(--accent-red);color:var(--black);font-weight:600;border:none;border-radius:12px;cursor:pointer;font-family:var(--font-kr);font-size:13px}.admin-coaches-empty{background:var(--white);border:1px solid var(--tech-line);border-radius:12px;padding:32px 16px;text-align:center;color:var(--gray-text)}.admin-coaches-empty.error{color:var(--accent-red)}.empty-heading{font-weight:600;color:var(--samsung-blue-dark);margin:0 0 6px}.empty-body{font-size:13px;margin:0}.admin-coaches-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.admin-coach-row{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--white);border:1px solid var(--tech-line);border-radius:12px;padding:12px 14px}.admin-coach-row-main{display:flex;gap:12px;align-items:center;min-width:0}.admin-coach-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover}.admin-coach-avatar.placeholder{background:var(--ice-blue)}.admin-coach-info{min-width:0}.admin-coach-name{margin:0;font-weight:600;color:var(--samsung-blue-dark)}.admin-coach-email{margin:2px 0 0;font-size:12px;color:var(--gray-text);font-family:var(--font-mono)}.admin-coach-title{margin:2px 0 0;font-size:12px;color:var(--gray-text)}.admin-coach-row-actions{display:flex;align-items:center;gap:10px}.admin-coach-status{font-size:11px;padding:4px 8px;border-radius:999px;font-family:var(--font-mono)}.admin-coach-status.status-active{background:var(--ice-blue);color:var(--samsung-blue-dark)}.admin-coach-status.status-disabled{background:#c0392b1f;color:#c0392b}.coach-toggle{width:40px;height:22px;border:none;border-radius:999px;background:var(--tech-line);position:relative;cursor:pointer;transition:background .2s}.coach-toggle.active{background:var(--samsung-blue)}.coach-toggle-knob{position:absolute;top:2px;left:2px;width:18px;height:18px;background:var(--white);border-radius:50%;transition:transform .2s}.coach-toggle.active .coach-toggle-knob{transform:translate(18px)}.coach-invite-overlay,.coach-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a262999;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.coach-invite-modal,.coach-confirm-modal{background:var(--white);border-radius:16px;max-width:360px;width:100%;padding:20px;position:relative}.coach-invite-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.coach-invite-header h3{margin:0;color:var(--samsung-blue-dark)}.coach-invite-close{background:transparent;border:none;cursor:pointer;color:var(--gray-text)}.coach-invite-help{font-size:13px;color:var(--gray-text);margin:0 0 16px}.coach-invite-cta{width:100%;padding:12px;background:var(--accent-red);color:var(--black);border:none;border-radius:12px;font-weight:600;cursor:pointer;font-family:var(--font-kr)}.coach-invite-cta:disabled{opacity:.6;cursor:not-allowed}.coach-invite-error{color:#c0392b;font-size:13px;margin:8px 0 0}.coach-invite-code-display{display:flex;align-items:center;gap:8px;background:var(--ice-blue);border-radius:12px;padding:16px;justify-content:center}.coach-invite-code{font-family:var(--font-mono);font-size:28px;font-weight:700;letter-spacing:4px;color:var(--samsung-blue-dark)}.coach-invite-copy{background:transparent;border:1px solid var(--tech-line);border-radius:8px;padding:6px;cursor:pointer;color:var(--samsung-blue)}.coach-invite-expires{margin:12px 0 0;text-align:center;font-size:12px;color:var(--gray-text);font-family:var(--font-mono)}.coach-invite-toast{position:absolute;bottom:-56px;left:50%;transform:translate(-50%);background:var(--samsung-blue-dark);color:var(--white);padding:10px 16px;border-radius:999px;font-size:13px;white-space:nowrap}.coach-confirm-title{font-weight:600;color:var(--samsung-blue-dark);margin:0 0 8px}.coach-confirm-body{font-size:13px;color:var(--gray-text);margin:0 0 20px}.coach-confirm-actions{display:flex;gap:8px;justify-content:flex-end}.coach-confirm-secondary,.coach-confirm-destructive{padding:10px 16px;border-radius:10px;font-family:var(--font-kr);font-weight:600;cursor:pointer;border:1px solid var(--tech-line)}.coach-confirm-secondary{background:var(--white);color:var(--gray-text)}.coach-confirm-destructive{background:#c0392b;color:var(--white);border-color:#c0392b}.admin-coaches-deny{padding:60px 16px;text-align:center;color:var(--gray-text)}.admin-coaches-deny .muted{font-size:12px;color:var(--gray-text)}.admin-payments{padding:24px 20px 80px;font-family:var(--font-body)}.admin-payments-header{margin-bottom:16px}.admin-payments-header h1{font-size:1.4rem;font-weight:800;color:var(--black);margin:0 0 4px}.admin-payments-subtitle{font-size:.8rem;color:var(--gray-text);margin:0}.admin-payments-deny{padding:60px 20px;text-align:center}.admin-payments-deny p{color:#c0392b;font-weight:600;margin:0 0 8px}.admin-payments-deny .muted{color:var(--gray-text);font-weight:400;font-size:14px}.admin-tab-bar{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--tech-line)}.admin-tab-btn{flex:1;padding:10px 8px;font-family:var(--font-kr, var(--font-body));font-size:.8rem;font-weight:700;color:var(--gray-text);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer}.admin-tab-btn.active{color:var(--samsung-blue);border-bottom-color:var(--samsung-blue)}.admin-payments-filter-bar{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--ice-blue);border:1px solid var(--tech-line);margin-bottom:16px}.filter-row{display:flex;gap:8px;flex-wrap:wrap}.filter-field{display:flex;flex-direction:column;gap:4px;flex:1 1 calc(50% - 4px);min-width:120px}.filter-field.grow{flex:2 1 100%}.filter-field>span{font-family:var(--font-mono);font-size:.65rem;color:var(--gray-text);text-transform:uppercase}.filter-field input,.filter-field select{padding:8px 10px;font-size:.85rem;border:1px solid var(--tech-line);background:var(--white);font-family:var(--font-body);min-height:36px}.filter-apply-btn{padding:10px 16px;background:var(--samsung-blue);color:var(--white);border:none;font-family:var(--font-kr, var(--font-body));font-weight:700;font-size:.85rem;cursor:pointer;min-height:44px}.revenue-chart-card{background:var(--white);border:1px solid var(--tech-line);padding:16px;margin-bottom:16px}.revenue-chart-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.revenue-chart-header h3{margin:0;font-size:.95rem;font-weight:700;color:var(--black)}.revenue-chart-total{font-family:var(--font-display);font-size:1.1rem;color:var(--samsung-blue)}.admin-status-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.admin-status-chip{padding:6px 10px;font-family:var(--font-mono);font-size:.7rem;font-weight:700;text-transform:uppercase;background:var(--ice-blue);color:var(--samsung-blue);border:1px solid var(--tech-line)}.admin-status-chip.status-paid{background:#f5b82e26;color:#8a6d18}.admin-status-chip.status-failed,.admin-status-chip.status-canceled{background:#d143431f;color:#b03030}.admin-payments-actions{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.admin-action-btn{flex:1 1 auto;padding:10px 14px;background:var(--samsung-blue);color:var(--white);border:none;font-family:var(--font-kr, var(--font-body));font-weight:700;font-size:.85rem;cursor:pointer;min-height:44px}.payment-table{display:flex;flex-direction:column;gap:8px}.payment-table-row{display:flex;justify-content:space-between;background:var(--white);border:1px solid var(--tech-line);padding:12px;gap:12px}.payment-table-row-main{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.payment-table-row-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}.payment-student{font-weight:700;color:var(--black)}.payment-class{color:var(--gray-text);font-size:.85rem}.payment-table-row-sub{display:flex;gap:8px;font-family:var(--font-mono);font-size:.7rem;color:var(--gray-text);text-transform:uppercase}.payment-table-row-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.payment-amount{font-family:var(--font-display);font-size:1.1rem;color:var(--black)}.payment-receipt-link{font-size:.75rem;color:var(--samsung-blue);text-decoration:underline}.payment-status-badge{display:inline-block;padding:2px 8px;font-family:var(--font-mono);font-size:.65rem;font-weight:700;text-transform:uppercase;background:var(--ice-blue);color:var(--samsung-blue)}.payment-status-badge.status-paid{background:#f5b82e;color:var(--black)}.payment-status-badge.status-failed,.payment-status-badge.status-canceled{background:#d14343;color:var(--white)}.admin-refunds-list{display:flex;flex-direction:column;gap:12px}.refund-request-card{background:var(--white);border:1px solid var(--tech-line);padding:16px;position:relative}.refund-card-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.refund-card-amount{font-family:var(--font-display);font-size:1.3rem;color:var(--black)}.refund-card-date{font-family:var(--font-mono);font-size:.7rem;color:var(--gray-text)}.refund-card-reason{margin:0 0 8px;font-size:.9rem;color:var(--samsung-blue)}.refund-card-account{display:flex;gap:6px;font-size:.8rem;color:var(--gray-text);margin-bottom:12px}.refund-card-actions{display:flex;gap:8px}.refund-btn-approve{flex:1;padding:10px 14px;background:#d14343;color:var(--white);border:none;font-family:var(--font-kr, var(--font-body));font-weight:700;cursor:pointer;min-height:44px}.refund-btn-reject{flex:1;padding:10px 14px;background:var(--white);color:#d14343;border:1px solid #d14343;font-family:var(--font-kr, var(--font-body));font-weight:700;cursor:pointer;min-height:44px}.refund-btn-cancel{flex:1;padding:10px 14px;background:var(--ice-blue);color:var(--samsung-blue);border:1px solid var(--tech-line);font-family:var(--font-kr, var(--font-body));font-weight:700;cursor:pointer;min-height:44px}.refund-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2d3a428c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.refund-modal{background:var(--white);border:1px solid var(--tech-line);padding:20px;max-width:360px;width:100%;display:flex;flex-direction:column;gap:12px}.refund-modal p{margin:0;font-size:.9rem;color:var(--black);line-height:1.45}.refund-modal textarea{width:100%;padding:8px;border:1px solid var(--tech-line);font-family:var(--font-body);font-size:.85rem;resize:vertical}.refund-modal-actions{display:flex;gap:8px}.notification-usage-card{background:var(--white);border:1px solid var(--tech-line);padding:16px}.notification-usage-title{font-size:.95rem;font-weight:700;margin:0 0 12px;color:var(--black)}.notification-usage-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.notification-usage-grid>div{background:var(--ice-blue);padding:10px 12px}.notification-usage-grid dt{font-family:var(--font-mono);font-size:.65rem;color:var(--gray-text);text-transform:uppercase;margin-bottom:4px}.notification-usage-grid dd{font-family:var(--font-display);font-size:1rem;margin:0;color:var(--samsung-blue)}.admin-empty{padding:40px 20px;text-align:center;color:var(--gray-text);font-size:.9rem}.admin-empty.error{color:#c0392b}.admin-empty .empty-heading{margin:0 0 4px;font-weight:700;color:var(--black)}.admin-empty .empty-body{margin:0;font-size:.85rem}.admin-tab-panel{min-height:200px}@media(max-width:380px){.filter-field{flex-basis:100%}}.admin-reports{max-width:480px;margin:0 auto;padding:24px 16px 96px;display:flex;flex-direction:column;gap:48px}.admin-reports-header h1{margin:0 0 4px;color:var(--samsung-blue-dark)}.admin-reports-subtitle{font-size:13px;color:var(--gray-text);margin:0}.report-chart-card{background:var(--white);border:1px solid var(--tech-line);border-radius:16px;padding:16px}.report-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.report-chart-header h3{font-size:14px;margin:0;color:var(--samsung-blue-dark)}.report-chart-total{font-family:var(--font-mono);font-size:11px;color:var(--gray-text)}.report-chart-highlight{color:var(--accent-red)}.report-chart-area{width:100%;height:240px}@media(min-width:1280px){.report-chart-area{height:320px}}.report-chart-empty{height:180px;display:flex;align-items:center;justify-content:center;color:var(--gray-text);font-size:13px;background:var(--ice-blue);border-radius:12px}.admin-reports-empty{padding:32px 16px;text-align:center;color:var(--gray-text);background:var(--white);border:1px solid var(--tech-line);border-radius:12px}.admin-reports-empty.error{color:#c0392b}.admin-reports-deny{padding:60px 16px;text-align:center;color:var(--gray-text)}@keyframes att-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.att-fade-in{animation:att-fade-in .3s ease-out both}.att-view-toggle{display:flex;gap:4px;padding:4px;background:var(--ice-blue);border-radius:12px;margin:0 var(--pad) 24px}.att-view-btn{flex:1;padding:10px 0;font-size:.85rem;font-weight:700;font-family:var(--font-kr);border:none;background:transparent;color:var(--gray-text);cursor:pointer;border-radius:10px;transition:all .2s;outline:none}.att-view-btn.active{background:var(--white);color:var(--samsung-blue);box-shadow:0 2px 8px #00000014}.att-child-select-wrap{padding:0 var(--pad);margin-bottom:24px}.att-child-select-inner{position:relative;background:var(--white);border:1px solid var(--tech-line);padding:14px 16px}.att-child-select-inner select{width:100%;background:transparent;border:none;font-family:var(--font-body);font-size:.95rem;font-weight:600;color:var(--black);-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;padding-right:28px;cursor:pointer}.att-child-select-arrow{position:absolute;right:16px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--samsung-blue)}.att-calendar-wrap{padding:0 var(--pad);margin-bottom:24px}.att-calendar-card{background:var(--white);border:1px solid var(--tech-line);padding:20px 16px}.att-cal-header{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:16px}.att-cal-nav{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--tech-line);color:var(--samsung-blue);cursor:pointer;outline:none;transition:background .15s}.att-cal-nav:active{background:var(--ice-blue)}.att-cal-month{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--black);letter-spacing:.02em;min-width:100px;text-align:center}.att-cal-legend{display:flex;justify-content:center;gap:16px;margin-bottom:16px}.att-cal-legend-item{display:flex;align-items:center;gap:5px;font-size:.7rem;font-family:var(--font-mono);color:var(--gray-text);letter-spacing:.03em}.att-legend-dot{width:8px;height:8px;border-radius:50%}.att-legend-dot--present{background:#10b981}.att-legend-dot--absent{background:#e11d48}.att-legend-dot--late{background:#f59e0b}.att-cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;margin-bottom:4px}.att-cal-weekday{font-family:var(--font-mono);font-size:.6rem;font-weight:700;color:var(--gray-text);padding:4px 0;letter-spacing:.05em}.att-cal-weekday:first-child{color:#e11d48}.att-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.att-cal-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:.8rem;font-weight:500;color:var(--black);cursor:pointer;border-radius:6px;transition:all .15s;position:relative;border:none;background:none;outline:none;font-family:var(--font-body)}.att-cal-cell:hover,.att-cal-cell.today{background:var(--ice-blue)}.att-cal-cell.selected{background:var(--samsung-blue);color:var(--white)}.att-cal-cell.other-month{color:#cbd5e1;pointer-events:none}.att-cal-cell.sunday{color:#e11d48}.att-cal-cell.selected.sunday{color:var(--white)}.att-cal-dot{width:6px;height:6px;border-radius:50%}.att-cal-dot--present{background:#10b981}.att-cal-dot--absent{background:#e11d48}.att-cal-dot--late{background:#f59e0b}.att-cal-cell.selected .att-cal-dot--present{background:#6ee7b7}.att-cal-cell.selected .att-cal-dot--absent{background:#fda4af}.att-cal-cell.selected .att-cal-dot--late{background:#fde68a}.att-detail-wrap{padding:0 var(--pad);margin-bottom:32px}.att-detail-card{background:var(--white);border:1px solid var(--tech-line);padding:20px}.att-detail-row{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}.att-detail-row:last-child{margin-bottom:0}.att-detail-key{font-family:var(--font-mono);font-size:.6rem;font-weight:700;color:var(--gray-text);letter-spacing:.05em;text-transform:uppercase;flex-shrink:0;min-width:80px}.att-detail-val{font-size:.9rem;font-weight:600;color:var(--black)}.att-detail-val--display{font-family:var(--font-display);font-size:1.2rem;color:var(--samsung-blue);font-weight:700}.att-status-badge{display:inline-block;font-family:var(--font-kr);font-size:.75rem;font-weight:700;padding:3px 12px;border-radius:4px}.att-status-badge--present{background:#d1fae5;color:#065f46}.att-status-badge--absent{background:#ffe4e6;color:#9f1239}.att-status-badge--late{background:#fef3c7;color:#92400e}.att-status-badge--early-leave{background:#f1f5f9;color:#475569}.att-class-select-wrap{padding:0 var(--pad);margin-bottom:20px}.att-class-select{position:relative;background:var(--samsung-blue);border:none;padding:14px 16px}.att-class-select select{width:100%;background:transparent;border:none;font-family:var(--font-body);font-size:.95rem;font-weight:600;color:var(--white);-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;padding-right:28px;cursor:pointer}.att-class-select select option{background:var(--samsung-blue-dark);color:var(--white)}.att-class-select-arrow{position:absolute;right:16px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--white);opacity:.7}.att-bus-tabs{display:flex;overflow-x:auto;padding:0 var(--pad);margin-bottom:20px;gap:0;-webkit-overflow-scrolling:touch}.att-bus-tabs::-webkit-scrollbar{display:none}.att-bus-tabs{-ms-overflow-style:none;scrollbar-width:none}.att-bus-tab{flex-shrink:0;padding:10px 16px;font-size:.8rem;font-weight:600;font-family:var(--font-kr);border:none;background:none;color:var(--gray-text);cursor:pointer;outline:none;border-bottom:2px solid transparent;transition:all .15s;white-space:nowrap}.att-bus-tab.active{color:var(--samsung-blue);border-bottom-color:var(--samsung-blue)}.att-coach-info-row{display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);margin-bottom:16px}.att-student-count{font-family:var(--font-kr);font-size:.9rem;font-weight:700;color:var(--black)}.att-today-label{font-family:var(--font-mono);font-size:.65rem;font-weight:700;color:var(--samsung-blue);letter-spacing:.05em}.att-today-badge{display:inline-block;background:var(--samsung-blue);color:var(--white);font-family:var(--font-mono);font-size:.55rem;font-weight:700;padding:2px 6px;margin-left:6px;letter-spacing:.05em}.att-student-list{padding:0 var(--pad);display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.att-student-card{background:var(--white);border:1px solid var(--tech-line);padding:16px}.att-student-top{display:flex;align-items:center;gap:12px;margin-bottom:12px}.att-student-avatar{width:40px;height:40px;border-radius:50%;background:var(--ice-blue);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;color:var(--samsung-blue);flex-shrink:0}.att-student-info{flex:1;min-width:0}.att-student-name-row{display:flex;align-items:center;gap:8px}.att-student-name{font-size:.95rem;font-weight:700;color:var(--black)}.att-bus-badge{font-family:var(--font-mono);font-size:.6rem;font-weight:700;padding:2px 8px;background:var(--ice-blue);color:var(--samsung-blue);letter-spacing:.03em}.att-student-parent{font-size:.75rem;color:var(--gray-text);margin-top:2px;font-family:var(--font-mono);letter-spacing:.02em}.att-radio-group{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.att-radio-label{position:relative;cursor:pointer}.att-radio-label input{display:none}.att-radio-box{display:flex;align-items:center;justify-content:center;height:36px;border:1px solid var(--tech-line);background:var(--white);font-size:.8rem;font-weight:600;font-family:var(--font-kr);color:var(--gray-text);transition:all .15s;border-radius:4px}.att-radio-label input[value=present]:checked+.att-radio-box{background:#10b981;color:var(--white);border-color:#10b981}.att-radio-label input[value=absent]:checked+.att-radio-box{background:#e11d48;color:var(--white);border-color:#e11d48}.att-radio-label input[value=late]:checked+.att-radio-box{background:#f59e0b;color:var(--white);border-color:#f59e0b}.att-radio-label input[value=early-leave]:checked+.att-radio-box{background:#64748b;color:var(--white);border-color:#64748b}.att-save-area{padding:0 var(--pad);margin-bottom:32px}.att-save-notice{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--ice-blue);border:1px solid var(--tech-line);font-size:.78rem;color:var(--gray-text);margin-bottom:16px;font-family:var(--font-kr)}.att-save-notice svg{flex-shrink:0;color:var(--samsung-blue)}.att-save-btn{width:100%;background:var(--samsung-blue);color:var(--white);padding:16px;font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;outline:none;transition:background .15s;font-family:var(--font-body);box-shadow:0 4px 12px #4a5d6a40}.att-save-btn:active{background:var(--samsung-blue-dark)}.login-page{width:100%;background:var(--white);position:relative;overflow-x:hidden}@keyframes loginFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.login-view{animation:loginFadeIn .4s ease-out}.login-hero{background:var(--samsung-blue-dark);padding:60px var(--pad) 56px;position:relative;clip-path:polygon(0 0,100% 0,100% calc(100% - 24px),0 100%);overflow:hidden}.login-hero:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#4a5d6a66,#2d3a42cc);z-index:1}.login-hero-content{position:relative;z-index:2;text-align:center}.login-icon-circle{width:64px;height:64px;border-radius:50%;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;color:var(--white)}.login-hero-title{color:var(--white);font-size:1.8rem;font-weight:800;letter-spacing:-.02em;margin-bottom:8px}.login-hero-subtitle{font-family:var(--font-mono);font-size:.7rem;color:#ffffff80;letter-spacing:.08em;text-transform:uppercase}.login-social-section{padding:40px var(--pad)}.login-social-label{text-align:center;font-size:.85rem;color:var(--gray-text);margin-bottom:24px;font-weight:500}.login-social-buttons{display:flex;flex-direction:column;gap:12px}.login-social-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:56px;border-radius:12px;border:none;font-size:.95rem;font-weight:700;font-family:var(--font-body);cursor:pointer;transition:opacity .15s,transform .1s;outline:none}.login-social-btn:active{transform:scale(.98)}.login-social-btn--kakao{background:#fee500;color:#391b1b}.login-social-btn--google{background:var(--white);color:var(--black);border:1px solid var(--tech-line)}.login-social-btn--apple{background:var(--black);color:var(--white)}.login-social-icon{width:20px;height:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.login-divider{display:flex;align-items:center;gap:16px;margin:32px 0}.login-divider-line{flex:1;height:1px;background:var(--tech-line)}.login-divider-text{font-family:var(--font-mono);font-size:.65rem;color:var(--gray-text);letter-spacing:.05em;text-transform:uppercase;flex-shrink:0}.login-signup-link{text-align:center;margin-top:8px}.login-signup-link button{background:none;border:none;font-family:var(--font-body);font-size:.85rem;color:var(--samsung-blue);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.login-footer{text-align:center;padding:40px var(--pad) 32px}.login-footer-text{font-family:var(--font-mono);font-size:.6rem;color:var(--gray-text);letter-spacing:.1em;text-transform:uppercase;opacity:.6}.signup-header{padding:32px var(--pad) 24px;border-bottom:1px solid var(--tech-line)}.signup-step-badge{display:inline-block;background:var(--samsung-blue);color:var(--white);font-family:var(--font-mono);font-size:.65rem;font-weight:700;padding:4px 10px;letter-spacing:.05em;margin-bottom:12px}.signup-title{font-size:1.4rem;font-weight:800;color:var(--black);margin-bottom:6px;letter-spacing:-.02em}.signup-desc{font-size:.85rem;color:var(--gray-text);line-height:1.5}.signup-form{padding:24px var(--pad) 0}.signup-section-label{font-family:var(--font-mono);font-size:.7rem;font-weight:700;color:var(--samsung-blue);letter-spacing:.05em;text-transform:uppercase;margin-bottom:16px;display:flex;align-items:center;gap:6px}.signup-section-label:before{content:"//";opacity:.4}.signup-form-group{margin-bottom:20px}.signup-form-label{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.75rem;font-weight:700;color:var(--samsung-blue);margin-bottom:8px;text-transform:uppercase}.signup-form-label:before{content:"";display:block;width:4px;height:4px;background-color:#e11d48;border-radius:50%}.signup-input-wrap{position:relative;background:var(--white);border:1px solid var(--tech-line);transition:border-color .2s}.signup-input-wrap:focus-within{border-color:var(--samsung-blue)}.signup-input-wrap input,.signup-input-wrap select{width:100%;background:transparent;border:none;padding:14px 16px;font-family:var(--font-body);font-size:.95rem;color:var(--black);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.signup-input-wrap input::placeholder{color:#94a3b8}.signup-input-wrap input[readonly]{background-color:var(--ice-blue);color:var(--samsung-blue);font-weight:700}.signup-select-arrow{position:absolute;right:16px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--samsung-blue)}.signup-gender-group{display:flex;gap:8px}.signup-gender-option{flex:1;position:relative;cursor:pointer}.signup-gender-option input{display:none}.signup-gender-box{border:1px solid var(--tech-line);background:var(--white);height:48px;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:600;color:var(--gray-text);transition:all .15s}.signup-gender-option input:checked+.signup-gender-box{border-color:var(--samsung-blue);background:var(--ice-blue);color:var(--samsung-blue)}.signup-child-bracket{margin-bottom:24px;padding:16px}.signup-agreement{display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--ice-blue);border:1px solid var(--tech-line);margin-top:32px;margin-bottom:32px}.signup-checkbox-wrap{display:flex;align-items:center;gap:12px;cursor:pointer}.signup-checkbox{width:20px;height:20px;border:1px solid var(--samsung-blue);background:var(--white);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.signup-checkbox.checked{background:var(--samsung-blue)}.signup-agreement-text{font-size:.85rem;font-weight:600;color:var(--black)}.signup-agreement-link{font-size:.75rem;color:var(--gray-text);text-decoration:underline;font-family:var(--font-mono);flex-shrink:0;cursor:pointer;background:none;border:none}.signup-submit-btn{width:100%;background:var(--samsung-blue);color:var(--white);padding:16px;font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;outline:none;transition:background .15s;font-family:var(--font-body)}.signup-submit-btn:active{background:var(--samsung-blue-dark)}.signup-back-link{text-align:center;margin-top:24px;padding-bottom:40px}.signup-back-link button{background:none;border:none;font-family:var(--font-mono);font-size:.7rem;color:var(--gray-text);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:color .15s}.signup-back-link button:hover{color:var(--samsung-blue)}.dev-login-panel{margin-top:28px;padding:20px 16px 18px;border:1px dashed var(--accent-red, #f5b82e);border-radius:12px;background:#f5b82e0a;position:relative}.dev-login-badge{display:inline-block;font-family:var(--font-mono);font-size:.65rem;font-weight:700;letter-spacing:.12em;padding:3px 8px;background:var(--accent-red, #f5b82e);color:var(--samsung-blue-dark);border-radius:4px;margin-bottom:10px}.dev-login-desc{font-size:.75rem;color:var(--gray-text);line-height:1.5;margin-bottom:14px;font-family:var(--font-kr)}.dev-login-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.dev-login-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px;background:var(--white, #ffffff);border:1px solid var(--tech-line);border-radius:8px;cursor:pointer;text-align:left;transition:border-color .15s ease,background-color .15s ease;font-family:var(--font-kr)}.dev-login-btn:hover:not(:disabled){border-color:var(--samsung-blue);background:var(--ice-blue)}.dev-login-btn:disabled{opacity:.6;cursor:not-allowed}.dev-login-btn-label{font-size:.875rem;font-weight:700;color:var(--samsung-blue)}.dev-login-btn-desc{font-size:.7rem;color:var(--gray-text)}.dev-login-error{margin-top:10px;padding:8px 10px;border-radius:6px;background:#e11d4814;color:#c0392b;font-size:.75rem;font-family:var(--font-kr)}.board-list-wrap{padding-bottom:100px}.board-tabs{position:sticky;top:var(--nav-height, 60px);z-index:40;background:var(--white);border-bottom:1px solid var(--tech-line);padding:12px 16px}.board-tabs-inner{display:flex;gap:8px;justify-content:center;flex-wrap:nowrap;overflow-x:auto}.board-tabs-inner::-webkit-scrollbar{display:none}.board-tab{flex-shrink:0;padding:8px 16px;font-family:var(--font-kr);font-size:13px;font-weight:600;background:#4a5d6a0f;color:var(--gray-text);border:none;border-radius:999px;cursor:pointer;transition:background-color .15s ease,color .15s ease}.board-tab:hover{background:#4a5d6a1f}.board-tab--active{background:var(--samsung-blue);color:var(--white);box-shadow:0 1px 3px #4a5d6a33}.board-tab--active:hover{background:var(--samsung-blue)}.board-section-label-wrap{padding:24px 20px 8px;border-bottom:1px solid var(--tech-line)}.board-section-label{display:inline-block;font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--samsung-blue);background:var(--ice-blue);padding:4px 8px;border-radius:4px;letter-spacing:.05em}.post-list{display:flex;flex-direction:column;background:var(--white)}.post-row{display:flex;gap:12px;padding:16px;border-bottom:1px solid var(--tech-line);text-decoration:none;color:inherit;transition:background-color .15s ease;position:relative}.post-row:hover{background:#4a5d6a08}.post-row-body{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:6px}.post-row-mine{position:absolute;top:12px;right:12px;font-size:10px;font-weight:700;background:var(--accent-red);color:var(--samsung-blue-dark);padding:2px 6px;border-radius:999px;font-family:var(--font-kr);z-index:1}.post-row-title{font-family:var(--font-kr);font-size:15px;font-weight:700;color:var(--black);line-height:1.3;margin:0;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.post-row-preview{font-family:var(--font-kr);font-size:13px;color:var(--gray-text);line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-row-meta{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--gray-text);margin-top:4px}.post-row-author{font-family:var(--font-kr);font-weight:500;color:var(--gray-text)}.post-row-dot{color:#4a5d6a66}.post-row-date{font-family:var(--font-mono);letter-spacing:-.02em}.post-row-comments{margin-left:auto;display:inline-flex;align-items:center;gap:3px;color:var(--samsung-blue);font-family:var(--font-mono);font-weight:500;font-size:10px}.post-row-thumb{flex-shrink:0;width:80px;height:80px;border-radius:12px;border:1px solid var(--tech-line);overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--white)}.post-row-thumb img{width:100%;height:100%;object-fit:cover}.post-row-thumb--fallback{background:linear-gradient(135deg,#4a5d6a14,#2d3a420a);color:#4a5d6a66}.post-more-wrap{display:flex;justify-content:center;padding:32px 16px;background:var(--white)}.post-more-btn{padding:8px 24px;border:1px solid var(--tech-line);border-radius:999px;background:var(--white);color:var(--gray-text);font-family:var(--font-mono);font-size:13px;font-weight:500;letter-spacing:.05em;cursor:pointer;transition:background-color .15s ease}.post-more-btn:hover:not(:disabled){background:#4a5d6a0a}.post-more-btn:disabled{opacity:.5;cursor:not-allowed}.board-write-fab{position:fixed;right:calc(50% - 200px);bottom:calc(var(--bottom-nav-height, 80px) + 16px);display:inline-flex;align-items:center;gap:6px;padding:12px 20px;background:var(--samsung-blue);color:var(--white);border-radius:999px;text-decoration:none;font-family:var(--font-kr);font-size:14px;font-weight:700;box-shadow:0 4px 14px #4a5d6a59;z-index:30;transition:background-color .15s ease,transform .1s ease}.board-write-fab:hover{background:var(--samsung-blue-dark)}.board-write-fab:active{transform:scale(.96)}@media(max-width:520px){.board-write-fab{right:20px}}.post-row-thumb-video-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#0000000d,#00000040 60%,#00000073);pointer-events:none}.post-row-thumb-play{width:26px;height:26px;border-radius:50%;background:#ffffffeb;color:var(--samsung-blue-dark);display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #0000002e}.post-row-thumb-badge{position:absolute;top:6px;left:6px;font-family:var(--font-kr);font-size:10px;font-weight:700;color:#fff;background:var(--samsung-blue);padding:2px 6px;border-radius:4px;letter-spacing:-.01em;pointer-events:none}.post-row-thumb{position:relative}.cam-edit-page{--ce-blue: #0236a8;--ce-blue-dark: #011d5e;--ce-blue-light: #eef4ff;--ce-line: rgba(2, 54, 168, .12);--ce-gold: #f5b82e;--ce-red: #e11d48;--ce-green: #10b981;--ce-gray-text: #64748b;--ce-black: #0a0f1c;--ce-pad: 20px;--ce-bottom-bar-h: 80px;--ce-bottom-nav-h: 65px;position:relative;min-height:100vh;background:var(--white);color:var(--ce-black);padding-bottom:calc(var(--ce-bottom-bar-h) + var(--ce-bottom-nav-h) + env(safe-area-inset-bottom));overflow-x:hidden}.cam-edit-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.03;pointer-events:none;z-index:0}.cam-edit-swoops{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.cam-edit-swoops svg{width:200%;height:200%;transform:translate(-25%,-25%);opacity:.4}.cam-edit-header{position:sticky;top:0;left:0;width:100%;height:60px;background:#fffffff2;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:space-between;padding:0 var(--ce-pad);z-index:1000;border-bottom:1px solid var(--ce-line)}.cam-edit-header h1{font-weight:800;font-size:1.1rem;letter-spacing:-.02em;color:var(--ce-black);margin:0}.cam-edit-header-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:#374151;background:transparent;border:none;border-radius:999px;cursor:pointer;transition:background .15s,color .15s}.cam-edit-header-btn:hover{background:#f3f4f6;color:var(--ce-blue)}.cam-edit-header-btn--muted{color:#9ca3af}.cam-edit-main{padding:8px var(--ce-pad) 32px;position:relative;z-index:10}.cam-edit-section-title{font-size:.75rem;color:var(--ce-blue);font-weight:700;display:flex;align-items:center;text-transform:uppercase;font-family:var(--font-mono);margin-bottom:12px;margin-top:32px;letter-spacing:.05em}.cam-edit-section-title:before{content:"+";font-weight:400;margin-right:6px}.cam-edit-section-title-ko{font-family:var(--font-body);font-size:.65rem;font-weight:700;color:#9ca3af;margin-left:8px;letter-spacing:0;text-transform:none}.cam-edit-bracket{position:relative;padding:3px;margin-bottom:8px;z-index:10}.cam-edit-bracket:before,.cam-edit-bracket:after,.cam-edit-bracket>.cam-edit-bracket-inner:before,.cam-edit-bracket>.cam-edit-bracket-inner:after{content:"";position:absolute;width:8px;height:8px;border-color:var(--ce-blue);border-style:solid;pointer-events:none;opacity:.7}.cam-edit-bracket:before{top:0;left:0;border-width:1.5px 0 0 1.5px}.cam-edit-bracket:after{top:0;right:0;border-width:1.5px 1.5px 0 0}.cam-edit-bracket>.cam-edit-bracket-inner:before{bottom:0;left:0;border-width:0 0 1.5px 1.5px}.cam-edit-bracket>.cam-edit-bracket-inner:after{bottom:0;right:0;border-width:0 1.5px 1.5px 0}.cam-edit-card{position:relative;z-index:10;background:#fffc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid #f3f4f6;box-shadow:0 1px 2px #0000000a;padding:20px;display:flex;flex-direction:column;gap:20px}.cam-edit-card--no-pad{padding:4px;gap:0}.cam-edit-card--last{margin-bottom:24px}.cam-edit-label{display:block;font-size:.7rem;font-weight:700;color:var(--ce-blue);margin-bottom:6px;text-transform:uppercase;font-family:var(--font-mono);letter-spacing:.02em}.cam-edit-label--gold{color:var(--ce-gold)}.cam-edit-label-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.cam-edit-label-row .cam-edit-label{margin-bottom:0}.cam-edit-badge-readonly{font-size:.6rem;font-weight:700;color:#6b7280;background:#f3f4f6;padding:2px 8px;border-radius:4px;border:1px solid #e5e7eb;letter-spacing:.02em}.cam-edit-input{width:100%;background:#fff;border:1px solid #e2e8f0;border-radius:4px;padding:10px 12px;font-size:.875rem;color:var(--ce-black);font-family:var(--font-body);transition:border-color .2s,box-shadow .2s;outline:none}.cam-edit-input:focus{border-color:var(--ce-blue);box-shadow:0 0 0 3px #0236a81a}.cam-edit-input:disabled,.cam-edit-input[readonly]{background:#f8fafc;color:#64748b;cursor:not-allowed}.cam-edit-input--bold{font-weight:700;color:#1f2937}.cam-edit-input--mono{font-family:var(--font-mono)}.cam-edit-input--mono-readonly{font-family:var(--font-mono);color:#64748b;background:#f9fafb}.cam-edit-input--center{text-align:center;width:96px;font-size:1rem}.cam-edit-input--pw{padding-left:36px;padding-right:60px;font-family:var(--font-mono);font-size:1rem;letter-spacing:.15em}.cam-edit-input--pw-editing{letter-spacing:normal}.cam-edit-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2364748b'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:36px}.cam-edit-textarea{width:100%;background:#fff;border:1px solid #e2e8f0;border-radius:4px;padding:10px 12px;font-size:.75rem;line-height:1.6;color:var(--ce-black);font-family:var(--font-mono);resize:vertical;min-height:76px;outline:none;transition:border-color .2s,box-shadow .2s}.cam-edit-textarea:focus{border-color:var(--ce-blue);box-shadow:0 0 0 3px #0236a81a}.cam-edit-field-icon{position:relative}.cam-edit-field-icon-glyph{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9ca3af;display:flex;align-items:center;pointer-events:none}.cam-edit-grid-12{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}.cam-edit-col-4{grid-column:span 4 / span 4}.cam-edit-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.cam-edit-mode-toggle-wrap{display:flex;justify-content:flex-end;margin-bottom:16px}.cam-edit-mode-toggle{display:inline-flex;align-items:center;gap:4px;font-size:.7rem;color:#6b7280;background:none;border:none;cursor:pointer;font-weight:500;font-family:var(--font-body);padding:0;text-decoration:underline;text-underline-offset:2px;transition:color .15s}.cam-edit-mode-toggle:hover{color:var(--ce-blue)}.cam-edit-url-preview{position:relative;overflow:hidden;background:#eef4ff66;border:1px dashed rgba(2,54,168,.3);border-radius:4px;padding:12px}.cam-edit-url-preview:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:#0236a866}.cam-edit-url-preview-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.cam-edit-url-preview-label{font-family:var(--font-mono);font-size:.65rem;font-weight:700;color:var(--ce-blue);letter-spacing:.02em}.cam-edit-url-preview-icon{color:#0236a880;display:inline-flex}.cam-edit-url-preview-value{font-size:.7rem;font-family:var(--font-mono);color:#4b5563;line-height:1.6;background:#ffffff80;padding:8px;border-radius:2px;border:1px solid #fff;word-break:break-all;transition:background .3s,color .3s}.cam-edit-url-preview-value--flash{background:#0236a81a;color:var(--ce-blue)}.cam-edit-manual-hint{font-size:.65rem;color:#9ca3af;margin-top:6px;display:flex;align-items:flex-start;gap:4px}.cam-edit-manual-hint-icon{color:var(--ce-gold);margin-top:2px;display:inline-flex;flex-shrink:0}.cam-edit-divider{width:100%;height:1px;margin-top:20px;border-top:1px dashed #e5e7eb}.cam-edit-pw-btn{position:absolute;right:6px;top:6px;bottom:6px;padding:0 10px;background:#f3f4f6;color:#4b5563;font-size:.65rem;font-weight:700;border-radius:4px;border:1px solid #e5e7eb;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.cam-edit-pw-btn:hover{background:#e5e7eb}.cam-edit-pw-btn--active{background:var(--ce-blue);color:#fff;border-color:var(--ce-blue)}.cam-edit-pw-btn--active:hover{background:var(--ce-blue-dark)}.cam-edit-pw-hint{display:block;font-size:.7rem;color:#6b7280;margin-top:6px}.cam-edit-test-row{margin-top:4px;display:flex;align-items:stretch;gap:12px}.cam-edit-test-btn{flex:1;padding:10px 12px;background:#fff;color:var(--ce-blue);font-weight:700;font-size:.8rem;border-radius:4px;border:1px solid rgba(2,54,168,.3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;box-shadow:0 1px 2px #0000000a;transition:background .15s,color .15s;font-family:var(--font-body)}.cam-edit-test-btn:hover:not(:disabled){background:var(--ce-blue-light)}.cam-edit-test-btn:disabled{opacity:.7;cursor:not-allowed}.cam-edit-test-badge{flex-shrink:0;padding:10px 12px;border-radius:4px;font-weight:700;font-size:.75rem;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:90px}.cam-edit-test-badge--ok{background:#10b9811a;border:1px solid rgba(16,185,129,.2);color:var(--ce-green)}.cam-edit-test-badge--fail{background:#e11d481a;border:1px solid rgba(225,29,72,.2);color:var(--ce-red)}.cam-edit-test-hint{font-size:.7rem;color:var(--ce-gray-text);margin-top:6px}.cam-edit-row{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #f3f4f6}.cam-edit-row--alt{background:#f9fafb80}.cam-edit-row:last-child{border-bottom:none}.cam-edit-row-block{padding:16px;border-bottom:1px solid #f3f4f6}.cam-edit-label-hint{font-family:var(--font-mono);font-size:.7rem;color:var(--gray-text);letter-spacing:.04em}.cam-edit-class-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.cam-edit-class-chip{padding:6px 12px;font-family:var(--font-kr);font-size:.8125rem;background:transparent;color:var(--gray-text);border:1px solid var(--tech-line);border-radius:2px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.cam-edit-class-chip:hover{background:#4a5d6a0a}.cam-edit-class-chip--on{background:var(--samsung-blue-dark);color:var(--white);border-color:var(--samsung-blue-dark)}.cam-edit-class-chip--on:hover{background:var(--samsung-blue)}.cam-edit-class-chip-empty{font-family:var(--font-kr);font-size:.8125rem;color:var(--gray-text)}.cam-edit-row-text{display:flex;flex-direction:column}.cam-edit-row-title{font-weight:700;font-size:.85rem;color:#111827;margin-bottom:2px;display:inline-flex;align-items:center;gap:6px}.cam-edit-row-sub{font-size:.65rem;color:#6b7280}.cam-edit-status-dot{width:8px;height:8px;border-radius:999px;background:var(--ce-green)}.cam-edit-switch{position:relative;display:inline-flex;align-items:center;width:44px;height:24px;flex-shrink:0;cursor:pointer}.cam-edit-switch input{position:absolute;width:0;height:0;opacity:0}.cam-edit-switch-track{position:absolute;top:0;right:0;bottom:0;left:0;background:#e5e7eb;border-radius:999px;transition:background .2s}.cam-edit-switch-track:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border:1px solid #d1d5db;border-radius:999px;transition:transform .2s,border-color .2s}.cam-edit-switch input:checked+.cam-edit-switch-track{background:var(--ce-blue)}.cam-edit-switch input:checked+.cam-edit-switch-track:after{transform:translate(20px);border-color:#fff}.cam-edit-switch input:disabled+.cam-edit-switch-track{opacity:.5;cursor:not-allowed}.cam-edit-days-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.cam-edit-days-suffix{font-weight:700;color:#374151;font-size:.875rem}.cam-edit-info-card{display:flex;align-items:flex-start;gap:6px;padding:10px;background:#eef4ff80;border:1px solid rgba(2,54,168,.1);border-radius:4px}.cam-edit-info-card-icon{color:var(--ce-blue);margin-top:2px;flex-shrink:0;display:inline-flex}.cam-edit-info-card-text{font-size:.65rem;color:#6b7280;line-height:1.6;font-weight:500}.cam-edit-info-card-text strong{color:var(--ce-blue);font-family:var(--font-mono)}.cam-edit-error{margin:16px 0 0;padding:12px;background:#e11d480f;border:1px solid rgba(225,29,72,.2);border-radius:4px;color:var(--ce-red);font-size:.8rem;font-weight:600}.cam-edit-bottom-bar{position:fixed;bottom:65px;left:0;right:0;margin:0 auto;max-width:480px;background:#fffffff2;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--ce-line);padding:14px var(--ce-pad);display:flex;gap:12px;z-index:999}.cam-edit-btn-cancel{flex:1;padding:14px;background:#fff;color:#4b5563;font-weight:700;font-size:.85rem;border-radius:4px;border:1px solid #e5e7eb;cursor:pointer;transition:background .15s;font-family:var(--font-body);box-shadow:0 1px 2px #0000000a}.cam-edit-btn-cancel:hover{background:#f9fafb}.cam-edit-btn-submit{flex:2;padding:14px;background:var(--ce-blue);color:#fff;font-weight:700;font-size:.85rem;border-radius:4px;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .15s;font-family:var(--font-body);box-shadow:0 4px 10px #0236a84d}.cam-edit-btn-submit:hover:not(:disabled){background:var(--ce-blue-dark)}.cam-edit-btn-submit:disabled{opacity:.6;cursor:not-allowed}@keyframes cam-edit-spin{to{transform:rotate(360deg)}}.cam-edit-spin{animation:cam-edit-spin .8s linear infinite}.cctv-filter-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.cctv-day-scroll{display:flex;overflow-x:auto;gap:8px;flex-grow:1;padding-bottom:4px;-webkit-overflow-scrolling:touch}.cctv-day-scroll::-webkit-scrollbar{display:none}.cctv-day-scroll{-ms-overflow-style:none;scrollbar-width:none}.cctv-day-btn{flex-shrink:0;padding:6px 16px;font-size:.8rem;font-weight:700;border:1px solid var(--tech-line);background:var(--white);color:var(--gray-text);cursor:pointer;outline:none;transition:all .15s;font-family:var(--font-body)}.cctv-cam-public-badge{display:inline-block;margin-left:6px;padding:1px 6px;font-family:var(--font-kr);font-size:.65rem;font-weight:700;background:var(--accent-red);color:var(--samsung-blue-dark);border-radius:2px;vertical-align:middle}.cctv-day-btn.active .cctv-cam-public-badge{background:var(--white);color:var(--samsung-blue-dark)}.cctv-day-btn.active{background:var(--samsung-blue);color:var(--white);border-color:var(--samsung-blue)}.cctv-coach-select{position:relative;flex-shrink:0}.cctv-coach-select select{padding:6px 32px 6px 12px;background:var(--white);border:1px solid var(--tech-line);color:var(--gray-text);font-size:.8rem;font-weight:700;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:var(--font-body)}.cctv-coach-arrow{position:absolute;right:8px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--gray-text)}.cctv-card-list{display:flex;flex-direction:column;gap:24px}.cctv-card-inner{background:var(--white);border:1px solid var(--tech-line);box-shadow:0 1px 3px #0000000d;position:relative;z-index:1;display:flex;flex-direction:column}.cctv-video-area{height:180px;background-color:#0d1518;position:relative;overflow:hidden;border-bottom:1px solid var(--tech-line)}.cctv-video-thumb{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.85) contrast(1.1) brightness(.85)}.cctv-video-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,#0000 20%,#0d15188c),linear-gradient(180deg,#0d151800 60%,#0d1518b3);display:flex;align-items:center;justify-content:center}.cctv-live-badge{position:absolute;top:12px;left:12px;z-index:20;display:inline-flex;align-items:center;gap:6px;background:#1a2629d9;color:var(--white);padding:4px 10px;font-family:var(--font-mono);font-size:.7rem;font-weight:700;text-transform:uppercase;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1)}@keyframes cctv-pulse-red{0%{box-shadow:0 0 #e11d48b3}70%{box-shadow:0 0 0 6px #e11d4800}to{box-shadow:0 0 #e11d4800}}.cctv-live-dot{width:8px;height:8px;background:#e11d48;border-radius:50%;animation:cctv-pulse-red 2s infinite}.cctv-cam-label{position:absolute;bottom:12px;right:12px;font-family:var(--font-mono);font-size:.6rem;color:var(--samsung-blue);opacity:.5;font-weight:700;background:#ffffff80;padding:4px 8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);text-transform:uppercase}.cctv-card-info{padding:20px;display:flex;flex-direction:column}.cctv-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.cctv-card-name{font-size:1.15rem;font-weight:700;color:var(--black);letter-spacing:-.02em}.cctv-time-badge{font-family:var(--font-mono);font-size:.65rem;font-weight:700;background:var(--ice-blue);color:var(--gray-text);padding:4px 10px;border:1px solid var(--tech-line);text-transform:uppercase}.cctv-coach-info{display:flex;align-items:center;gap:8px;margin-bottom:20px}.cctv-coach-badge{font-family:var(--font-mono);font-size:.6rem;font-weight:700;color:var(--samsung-blue);background:var(--ice-blue);padding:2px 8px;text-transform:uppercase}.cctv-coach-name{font-size:.9rem;font-weight:600;color:var(--gray-text)}.cctv-watch-btn{width:100%;background:var(--samsung-blue);color:var(--white);padding:14px;font-size:.95rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--samsung-blue);cursor:pointer;outline:none;transition:background .15s;font-family:var(--font-body);position:relative;overflow:hidden}.cctv-watch-btn:active{background:var(--samsung-blue-dark)}.admin-cctv-page{padding:20px var(--pad);display:flex;flex-direction:column;gap:16px}.admin-cctv-header{display:flex;align-items:center;justify-content:space-between;gap:8px;position:relative;z-index:1}.admin-cctv-header h1{font-family:var(--font-kr);font-size:1.25rem;font-weight:700;color:var(--black)}.admin-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:transparent;border:1px solid var(--tech-line);color:var(--gray-text);font-family:var(--font-kr);font-size:.8125rem;font-weight:700;cursor:pointer;text-decoration:none;border-radius:2px}.admin-btn.primary{background:var(--samsung-blue-dark);color:var(--white);border-color:var(--samsung-blue-dark);box-shadow:0 2px 6px #2d3a4240}.admin-btn.primary:hover{background:var(--samsung-blue);border-color:var(--samsung-blue)}.admin-btn.ghost{background:var(--white);color:var(--gray-text)}.admin-btn.danger{background:#dc2626;color:var(--white);border-color:#dc2626}.admin-btn:disabled{opacity:.5;cursor:not-allowed}.admin-camera-list{display:flex;flex-direction:column;gap:8px}.admin-camera-row{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:8px 12px;padding:12px 16px;background:var(--white);border:1px solid var(--tech-line)}.admin-camera-row-main{grid-column:1 / 2;grid-row:1 / 2}.admin-camera-name{font-family:var(--font-kr);font-size:.95rem;font-weight:700;color:var(--black)}.admin-camera-key{font-size:.7rem;color:var(--gray-text)}.admin-camera-toggles{grid-column:1 / 2;grid-row:2 / 3;display:flex;gap:16px}.admin-camera-toggle{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-kr);font-size:.75rem;font-weight:700;color:var(--gray-text)}.admin-camera-toggle input[type=checkbox]:checked+span{color:var(--samsung-blue)}.admin-camera-actions{grid-column:2 / 3;grid-row:1 / 3;display:flex;align-items:center;gap:4px}.admin-camera-edit{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border:1px solid var(--tech-line);color:var(--samsung-blue);font-family:var(--font-kr);font-size:.75rem;font-weight:700;text-decoration:none;background:var(--white)}.admin-camera-menu-wrap{position:relative}.admin-camera-menu-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:0;cursor:pointer;color:var(--gray-text)}.admin-camera-menu{position:absolute;right:0;top:100%;z-index:30;min-width:96px;background:var(--white);border:1px solid var(--tech-line);box-shadow:0 4px 8px #00000014}.admin-camera-menu-item{display:block;width:100%;padding:10px 14px;background:transparent;border:0;font-family:var(--font-kr);font-size:.8125rem;font-weight:700;cursor:pointer;text-align:left}.admin-camera-menu-item.danger{color:#dc2626}.admin-form-inline{display:flex;flex-direction:column;gap:12px;background:var(--white);padding:16px;border:1px solid var(--tech-line)}.admin-field{display:flex;flex-direction:column;gap:4px;font-family:var(--font-kr);font-size:.75rem;color:var(--gray-text)}.admin-field>span{font-weight:700}.admin-field input,.admin-field select{padding:8px 10px;border:1px solid var(--tech-line);background:var(--white);font-family:var(--font-body);font-size:.875rem;color:var(--black)}.admin-field input:disabled{background:var(--ice-blue);color:var(--gray-text)}.admin-field small{color:var(--gray-text);font-size:.7rem}.admin-field-row{flex-direction:row;align-items:center;gap:8px}.admin-password-mask{display:flex;gap:8px;align-items:center}.admin-field-grid{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:8px}@media(max-width:480px){.admin-field-grid{grid-template-columns:1fr 1fr}.admin-field-grid>:last-child{grid-column:1 / -1}}.admin-field-hint{display:block;color:var(--gray-text);font-family:var(--font-mono);font-size:.75rem;line-height:1.5;word-break:break-all}.admin-link-button{background:none;border:none;padding:0;color:var(--samsung-blue);font-size:.75rem;font-family:var(--font-kr);text-decoration:underline;cursor:pointer}.admin-password-mask input{flex:1}.admin-form-actions{display:flex;gap:8px;justify-content:flex-end}.admin-form-error{color:#dc2626;font-size:.8125rem}.cctv-rtsp-test{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cctv-rtsp-ok{color:#10b981;font-family:var(--font-kr);font-size:.8125rem;font-weight:700}.cctv-rtsp-fail{color:#dc2626;font-family:var(--font-kr);font-size:.8125rem;font-weight:700}.cctv-rtsp-hint{color:var(--gray-text);font-size:.75rem}.cctv-main{padding:0 var(--pad);display:flex;flex-direction:column;gap:16px;padding-top:16px}.cctv-selector{display:flex;flex-direction:column;gap:8px}.cctv-selector-row{display:flex;align-items:center;gap:8px}.cctv-selector-label{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-kr);font-size:.75rem;font-weight:700;color:var(--gray-text);flex-shrink:0;min-width:56px}.cctv-tabs{display:flex;border-bottom:1px solid var(--tech-line)}.cctv-tab{flex:1;padding:12px 0;background:transparent;border:0;color:var(--gray-text);font-family:var(--font-kr);font-size:.8125rem;font-weight:700;cursor:pointer;position:relative}.cctv-tab.active{color:var(--samsung-blue)}.cctv-tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--samsung-blue)}.cctv-date-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cctv-date-cell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 4px;background:var(--white);border:1px solid var(--tech-line);cursor:pointer;font-family:var(--font-body)}.cctv-date-cell.active{background:var(--samsung-blue);border-color:var(--samsung-blue);color:var(--white)}.cctv-date-dow{font-family:var(--font-kr);font-size:.7rem;font-weight:700;color:var(--gray-text)}.cctv-date-cell.active .cctv-date-dow{color:#fffc}.cctv-date-num{font-family:var(--font-mono);font-size:.95rem;font-weight:700}.cctv-date-dot{width:4px;height:4px;border-radius:50%;background:var(--accent-red);margin-top:2px}.cctv-segment-list{display:flex;flex-direction:column;gap:8px}.cctv-segment-card{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:12px 16px;background:var(--white);border:1px solid var(--tech-line);cursor:pointer;text-align:left}.cctv-segment-card.active{border-color:var(--samsung-blue)}.cctv-segment-time{font-size:.75rem;color:var(--black);font-weight:700}.cctv-segment-duration{font-size:.75rem;color:var(--gray-text);font-weight:600}.cctv-segment-play{display:inline-flex;align-items:center;gap:4px;color:var(--samsung-blue);font-family:var(--font-kr);font-size:.8125rem;font-weight:700}.cctv-empty{padding:48px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;color:var(--gray-text)}.cctv-empty-title{font-family:var(--font-kr);font-size:1rem;font-weight:700;color:var(--black)}.cctv-empty-body{font-size:.875rem;color:var(--gray-text);line-height:1.5}.cctv-empty-cta{margin-top:16px;padding:10px 20px;font-family:var(--font-kr);font-size:.875rem;font-weight:600;color:#fff;background:var(--samsung-blue);border:none;border-radius:6px;cursor:pointer}.cctv-empty-cta:hover{background:var(--samsung-blue-dark)}.cctv-empty-main{padding:40px var(--pad, 20px);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px}.cctv-empty-bracket{width:100%;max-width:384px}.cctv-empty-card{position:relative;z-index:1;background:var(--white, #ffffff);border:1px solid rgba(74,93,106,.08);box-shadow:0 1px 3px #0000000a;display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 28px;min-height:300px;background-image:linear-gradient(rgba(74,93,106,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(74,93,106,.05) 1px,transparent 1px);background-size:20px 20px}.cctv-empty-icon{width:80px;height:80px;border-radius:50%;background:#4a5d6a14;color:var(--gray-text);display:flex;align-items:center;justify-content:center;margin-bottom:24px}.cctv-empty-card .cctv-empty-title{font-family:var(--font-kr);font-size:1.2rem;font-weight:700;color:var(--black);letter-spacing:-.01em;margin-bottom:8px}.cctv-empty-card .cctv-empty-body{font-size:.9rem;color:var(--gray-text);line-height:1.6;margin-bottom:28px;white-space:pre-line}.cctv-empty-actions{display:flex;gap:8px;width:100%}.cctv-vctx{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;margin:0 0 10px;background:var(--ice-blue);border-left:3px solid var(--samsung-blue);border-radius:2px;font-family:var(--font-kr);font-size:.85rem;color:var(--samsung-blue-dark)}.cctv-vctx--public{border-left-color:var(--accent-red);background:#f5b82e14;align-items:center}.cctv-vctx--admin{border-left-color:var(--gray-text);background:#4a5d6a0f;align-items:center}.cctv-vctx--enrolled{border-left-color:var(--samsung-blue);background:#4a5d6a0f}.cctv-vctx-body{display:flex;flex-direction:column;gap:2px;flex:1}.cctv-vctx-line strong{font-weight:700}.cctv-vctx-sub{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;color:var(--gray-text);font-family:var(--font-mono)}.cctv-countdown{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;margin:4px 0 20px;padding:12px;background:var(--ice-blue);border:1px solid var(--tech-line);border-radius:4px}.cctv-countdown-label{font-family:var(--font-kr);font-size:.75rem;color:var(--gray-text);letter-spacing:.04em}.cctv-countdown-value{font-family:var(--font-mono);font-size:1.5rem;font-weight:700;color:var(--samsung-blue-dark);font-variant-numeric:tabular-nums;letter-spacing:.05em}.cctv-empty-btn{flex:1;padding:12px 8px;font-family:var(--font-kr);font-size:.95rem;font-weight:700;border:1px solid var(--samsung-blue);cursor:pointer;outline:none;transition:background-color .15s ease,color .15s ease}.cctv-empty-btn--outline{background:var(--white, #ffffff);color:var(--samsung-blue)}.cctv-empty-btn--outline:hover{background:var(--ice-blue)}.cctv-empty-btn--filled{background:var(--samsung-blue);color:var(--white, #ffffff)}.cctv-empty-btn--filled:hover{background:var(--samsung-blue-dark)}.cctv-player{position:relative;width:100%;background:var(--samsung-blue-dark);overflow:hidden}.cctv-player:fullscreen,.cctv-player:-webkit-full-screen{width:100vw;height:100vh;height:100dvh;aspect-ratio:auto!important;background:#000}.cctv-player:fullscreen .cctv-player-video,.cctv-player:-webkit-full-screen .cctv-player-video{width:100%;height:100%;object-fit:contain}.cctv-player-video{width:100%;height:100%;display:block;object-fit:contain;background:var(--samsung-blue-dark)}.cctv-player-badge{position:absolute;top:12px;left:12px;z-index:20}.cctv-status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:#1a2629d9;color:var(--white);font-family:var(--font-kr);font-size:.8125rem;font-weight:700;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:2px}.cctv-status-live{color:var(--accent-red)}.cctv-status-blocked{color:#fff;background:#dc2626}.cctv-status-disconnected{color:#dc2626;background:#ffffffe6}.cctv-status-reconnecting,.cctv-status-connecting{color:var(--gray-text);background:#ffffffe6}.cctv-status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.cctv-status-dot--gray{background:var(--gray-text)}.cctv-status-dot--red{background:#dc2626}@keyframes liveDotPulse{0%,to{opacity:1}50%{opacity:.3}}.cctv-status-dot--live{background:var(--accent-red);animation:liveDotPulse 1.4s ease-in-out infinite}.cctv-status-spinner{width:12px;height:12px;border:2px solid var(--gray-text);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.cctv-player-controls{position:absolute;bottom:12px;right:12px;display:flex;gap:8px;z-index:20}.cctv-player-quality-btn{height:36px;min-width:44px;padding:0 10px;display:flex;align-items:center;justify-content:center;background:#1a2629b3;color:var(--white);border:0;border-radius:2px;font-family:var(--font-mono);font-size:.75rem;font-weight:700;letter-spacing:.04em;cursor:pointer}.cctv-player-quality-btn--hd{background:var(--accent-red);color:var(--samsung-blue-dark)}.cctv-player-quality-btn:hover{background:#1a2629d9}.cctv-player-quality-btn--hd:hover{background:var(--accent-red);filter:brightness(.95)}.cctv-player-ctrl-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#1a2629b3;color:var(--white);border:0;cursor:pointer;border-radius:4px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.cctv-player-ctrl-btn:hover{background:#1a2629e6}.cctv-player-retry{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:30;display:inline-flex;align-items:center;gap:8px;padding:12px 20px;background:var(--samsung-blue);color:var(--white);font-family:var(--font-kr);font-weight:700;font-size:.875rem;border:0;cursor:pointer;border-radius:4px}.cctv-player-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:25;text-align:center;padding:24px}.cctv-player-blocked-title{color:#dc2626;font-family:var(--font-kr);font-weight:700;font-size:1.25rem;margin-bottom:8px}.cctv-player-blocked-body{color:var(--white);font-family:var(--font-body);font-size:1rem}.cctv-offline-card{border:1px dashed var(--tech-line);background:#f0f4f580;padding:32px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;z-index:1;margin-bottom:40px}.cctv-offline-icon{width:56px;height:56px;background:var(--tech-line);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--gray-text)}.cctv-offline-title{font-size:1rem;font-weight:700;color:var(--black);margin-bottom:6px;letter-spacing:-.02em}.cctv-offline-desc{font-size:.8rem;color:var(--gray-text);font-weight:500}.cctv-empty-icon--accent{background:#4a5d6a14;color:var(--samsung-blue)}.schedule-preview{width:100%;margin:8px 0 24px;padding:12px 14px;background:#4a5d6a0a;border:1px dashed var(--tech-line);display:flex;align-items:center;justify-content:space-between;font-size:.85rem;font-family:var(--font-kr)}.schedule-preview-left{display:flex;align-items:center;gap:6px;color:var(--gray-text)}.schedule-preview-icon{color:var(--samsung-blue)}.schedule-preview-label{color:var(--black);font-weight:500;font-size:.85rem}.schedule-preview-time{color:var(--samsung-blue);font-weight:700;font-family:var(--font-mono);font-size:.85rem}.cctv-empty-btn--full{flex:1 1 100%}.cw-player{position:relative;width:100%;aspect-ratio:16 / 9;background:#050810;overflow:hidden}.cw-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:saturate(.9) contrast(1.08) brightness(.92);cursor:pointer}.cw-player:fullscreen,.cw-player:-webkit-full-screen{width:100vw;height:100vh;height:100dvh;aspect-ratio:auto;background:#000}.cw-player:fullscreen .cw-video,.cw-player:-webkit-full-screen .cw-video{object-fit:contain}.cw-player-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(74,93,106,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(74,93,106,.15) 1px,transparent 1px);background-size:30px 30px;pointer-events:none;z-index:1}.cw-player-crosshair-h,.cw-player-crosshair-v{position:absolute;z-index:2;pointer-events:none}.cw-player-crosshair-h{top:50%;left:50%;transform:translate(-50%,-50%);width:100px;height:1px;background:#4a5d6a4d}.cw-player-crosshair-v{top:50%;left:50%;transform:translate(-50%,-50%);width:1px;height:100px;background:#4a5d6a4d}.cw-player-gradient{position:absolute;bottom:0;left:0;right:0;height:80px;background:linear-gradient(to top,rgba(5,8,16,.8),transparent);pointer-events:none;z-index:3}.cw-cam-label{position:absolute;top:16px;right:16px;z-index:10;font-size:.65rem;font-weight:700;color:#ffffff80;background:#ffffff14;padding:4px 10px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1);letter-spacing:.05em}.cw-play-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;width:64px;height:64px;border-radius:50%;background:#4a5d6a99;border:2px solid rgba(255,255,255,.2);color:var(--white);display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .2s,transform .2s}.cw-play-btn:active{background:#4a5d6ad9;transform:translate(-50%,-50%) scale(.95)}.cw-controls{position:absolute;bottom:0;left:0;right:0;z-index:10;padding:0 16px 12px}.cw-progress{width:100%;height:3px;background:#ffffff26;margin-bottom:8px;position:relative}.cw-progress-fill{position:absolute;top:0;left:0;height:100%;width:30%;background:#e11d48}.cw-controls-row{display:flex;align-items:center;justify-content:space-between}.cw-time{font-size:.6rem;color:#fff9;letter-spacing:.05em}.cw-fullscreen-btn{background:none;border:none;color:#fff9;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .15s}.cw-fullscreen-btn:active{color:var(--white)}.cw-info-card{padding:24px;background:var(--ice-blue);position:relative;z-index:1}.cw-status-row{margin-bottom:12px}.cw-status-badge{display:inline-flex;align-items:center;gap:6px;background:#16a34a1a;color:#16a34a;padding:4px 12px;font-size:.75rem;font-weight:700;border:1px solid rgba(22,163,74,.2)}.cw-status-dot{width:6px;height:6px;background:#16a34a;border-radius:50%;flex-shrink:0}.cw-class-title{font-size:1.2rem;font-weight:800;color:var(--black);letter-spacing:-.02em;margin-bottom:20px}.cw-info-grid{display:flex;flex-direction:column;gap:14px}.cw-info-item{display:flex;align-items:baseline;gap:12px}.cw-info-label{font-size:.6rem;font-weight:700;color:var(--samsung-blue);min-width:52px;flex-shrink:0;letter-spacing:.08em}.cw-info-value{font-size:.9rem;font-weight:600;color:var(--black)}.cw-action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:32px}.cw-action-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px 8px;background:var(--white);border:1px solid var(--tech-line);cursor:pointer;color:var(--samsung-blue);transition:background .15s;position:relative;z-index:1}.cw-action-btn:active{background:var(--ice-blue)}.cw-action-label{font-size:.75rem;font-weight:700;color:var(--gray-text);font-family:var(--font-kr)}.cw-other-list{display:flex;flex-direction:column;gap:16px;margin-bottom:40px}.cw-other-inner{display:flex;align-items:center;gap:14px;padding:14px;background:var(--white);border:1px solid var(--tech-line);position:relative;z-index:1}.cw-other-thumb{width:96px;height:64px;flex-shrink:0;background:#0d1518;overflow:hidden;position:relative;border:1px solid var(--tech-line)}.cw-other-video{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.85) contrast(1.1) brightness(.85)}.cw-other-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0d151800 60%,#0d151899);pointer-events:none}.cw-other-watch-btn{text-decoration:none}.cw-other-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.cw-other-name{font-size:.85rem;font-weight:700;color:var(--black);letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cw-other-coach{display:flex;align-items:center;gap:6px;font-size:.8rem;font-weight:500;color:var(--gray-text)}.cw-other-watch-btn{flex-shrink:0;display:flex;align-items:center;gap:4px;padding:8px 14px;background:var(--samsung-blue);color:var(--white);border:none;font-size:.7rem;font-weight:700;cursor:pointer;font-family:var(--font-kr);transition:background .15s}.cw-other-watch-btn:active{background:var(--samsung-blue-dark)}.class-filter-scroll{display:flex;overflow-x:auto;gap:8px;padding:0 20px;margin-bottom:24px;-webkit-overflow-scrolling:touch}.class-filter-scroll::-webkit-scrollbar{display:none}.class-filter-scroll{-ms-overflow-style:none;scrollbar-width:none}.class-filter-btn{flex-shrink:0;padding:8px 20px;font-size:.85rem;font-weight:700;border:1px solid var(--tech-line);background:var(--white);color:var(--gray-text);cursor:pointer;outline:none;transition:all .15s;letter-spacing:-.02em;font-family:var(--font-body)}.class-filter-btn.active{background:var(--samsung-blue);color:var(--white);border-color:var(--samsung-blue)}.class-card-list{padding:0 20px 32px;display:flex;flex-direction:column;gap:24px}.class-card-inner{padding:16px;background:var(--white);border:1px solid var(--tech-line);box-shadow:0 1px 3px #0000000d;position:relative;z-index:1;display:flex;flex-direction:column}.class-img-wrap{height:160px;margin-bottom:16px;position:relative;overflow:hidden;border:1px solid var(--tech-line);background:var(--ice-blue)}.class-img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.05) contrast(1.03)}.class-img-wrap:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#2d3a4200 50%,#2d3a4273);pointer-events:none}.class-img-label{position:absolute;top:8px;right:8px;font-family:var(--font-mono);font-size:.6rem;color:var(--samsung-blue);opacity:.5;text-transform:uppercase}.class-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.class-card-name{font-size:1.15rem;font-weight:700;color:var(--black);letter-spacing:-.02em}.class-card-badge{font-family:var(--font-mono);font-size:.6rem;font-weight:700;color:var(--white);padding:2px 8px;margin-top:2px;text-transform:uppercase;flex-shrink:0}.class-card-desc{font-size:.85rem;color:var(--gray-text);line-height:1.6;margin-bottom:16px;word-break:keep-all}.class-info-grid{list-style:none;display:flex;flex-direction:column;gap:8px;border-top:1px dashed var(--tech-line);padding-top:12px;margin-bottom:20px;margin-top:auto}.class-info-row{display:flex;align-items:flex-start;font-size:.85rem}.class-info-key{width:70px;flex-shrink:0;font-family:var(--font-mono);font-size:.6rem;font-weight:700;color:var(--samsung-blue);text-transform:uppercase;margin-top:3px}.class-info-val{font-weight:500;color:var(--black);flex:1}.class-info-val--bold{font-weight:700}.class-cta-btn{width:100%;background:var(--samsung-blue);color:var(--white);padding:14px;font-size:.9rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--samsung-blue);cursor:pointer;outline:none;transition:background .15s;font-family:var(--font-body)}.class-cta-btn:active{background:var(--samsung-blue-dark)}.classes-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:56px 20px 64px;margin:8px 16px 32px;border:1px solid var(--tech-line);border-radius:16px;background:linear-gradient(180deg,var(--ice-blue) 0%,#ffffff 100%)}.classes-state-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;margin-bottom:16px}.classes-state-icon--mute{background:#4a5d6a14;color:var(--samsung-blue)}.classes-state-icon--warn{background:#f5b82e1f;color:var(--accent-red)}.classes-state-title{font-family:var(--font-kr);font-size:16px;font-weight:700;color:var(--black);margin:0 0 6px;letter-spacing:-.01em}.classes-state-text{font-family:var(--font-kr);font-size:13px;line-height:1.6;color:var(--gray-text);margin:0}.classes-state-retry{margin-top:18px;padding:10px 22px;font-family:var(--font-kr);font-size:13px;font-weight:600;color:#fff;background:var(--samsung-blue);border:none;border-radius:8px;cursor:pointer;transition:background .15s ease}.classes-state-retry:hover:not(:disabled){background:var(--samsung-blue-dark)}.classes-state-retry:disabled{opacity:.6;cursor:not-allowed}.classes-state-spinner{width:28px;height:28px;border:3px solid rgba(74,93,106,.15);border-top-color:var(--samsung-blue);border-radius:50%;margin-bottom:14px;animation:classes-spin .9s linear infinite}@keyframes classes-spin{to{transform:rotate(360deg)}}.enroll-info-card{background:var(--white);padding:24px;border:1px solid var(--tech-line);position:relative;margin-bottom:32px}.enroll-info-card:after{content:"";position:absolute;top:4px;left:4px;right:-4px;bottom:-4px;border:1px solid var(--tech-line);z-index:-1;background:var(--ice-blue)}.enroll-info-badge{display:inline-block;background:var(--samsung-blue);color:var(--white);font-family:var(--font-mono);font-size:.7rem;font-weight:700;padding:4px 10px;letter-spacing:.05em}.enroll-info-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.enroll-other-link{display:flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:.7rem;color:var(--gray-text);cursor:pointer;background:none;border:none;padding:0;text-decoration:none}.enroll-other-link:hover{color:var(--samsung-blue)}.enroll-info-row{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.enroll-info-key{font-family:var(--font-mono);font-size:.65rem;font-weight:700;color:var(--gray-text);letter-spacing:.05em;text-transform:uppercase;flex-shrink:0;min-width:56px}.enroll-info-val{font-size:.85rem;color:var(--black);font-weight:500}.enroll-price-row{display:flex;align-items:baseline;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--tech-line)}.enroll-price-amount{font-family:var(--font-display);font-size:1.5rem;color:var(--samsung-blue);font-weight:700;line-height:1}.enroll-price-unit{font-family:var(--font-mono);font-size:.7rem;color:var(--gray-text);letter-spacing:.03em}.enroll-form-group{margin-bottom:20px}.enroll-form-label{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.75rem;font-weight:700;color:var(--samsung-blue);margin-bottom:8px;text-transform:uppercase}.enroll-form-label:before{content:"";display:block;width:4px;height:4px;background-color:#e11d48;border-radius:50%}.enroll-input-wrap{position:relative;background:var(--white);border:1px solid var(--tech-line);transition:border-color .2s}.enroll-input-wrap:focus-within{border-color:var(--samsung-blue)}.enroll-input-wrap input,.enroll-input-wrap select,.enroll-input-wrap textarea{width:100%;background:transparent;border:none;padding:14px 16px;font-family:var(--font-body);font-size:.95rem;color:var(--black);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.enroll-input-wrap input::placeholder,.enroll-input-wrap textarea::placeholder{color:#94a3b8}.enroll-input-wrap input:disabled,.enroll-input-wrap input[readonly]{background-color:var(--ice-blue);color:var(--samsung-blue);font-weight:700}.enroll-input-wrap textarea{resize:vertical;min-height:80px}.enroll-gender-group{display:flex;gap:8px}.enroll-gender-option{flex:1;position:relative;cursor:pointer}.enroll-gender-option input{display:none}.enroll-gender-box{border:1px solid var(--tech-line);background:var(--white);height:48px;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:600;color:var(--gray-text);transition:all .15s}.enroll-gender-option input:checked+.enroll-gender-box{border-color:var(--samsung-blue);background:var(--ice-blue);color:var(--samsung-blue)}.enroll-select-arrow{position:absolute;right:16px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--samsung-blue)}.enroll-agreement{display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--ice-blue);border:1px solid var(--tech-line);margin-top:32px;margin-bottom:32px}.enroll-checkbox-wrap{display:flex;align-items:center;gap:12px;cursor:pointer}.enroll-checkbox{width:20px;height:20px;border:1px solid var(--samsung-blue);background:var(--white);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.enroll-checkbox.checked{background:var(--samsung-blue)}.enroll-agreement-text{font-size:.85rem;font-weight:600;color:var(--black)}.enroll-agreement-link{font-size:.75rem;color:var(--gray-text);text-decoration:underline;font-family:var(--font-mono);flex-shrink:0;cursor:pointer;background:none;border:none}.enroll-submit-btn{width:100%;background:var(--samsung-blue);color:var(--white);padding:16px;font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;outline:none;transition:background .15s;font-family:var(--font-body);position:relative;overflow:hidden}.enroll-submit-btn:active{background:var(--samsung-blue-dark)}.enroll-children-loading,.enroll-children-empty{padding:16px;background:var(--ice-blue);border:1px solid var(--tech-line);border-radius:6px;color:var(--gray-text);font-size:14px;text-align:center}.enroll-children-empty p{margin:0 0 12px}.enroll-children-list{display:flex;flex-direction:column;gap:8px}.enroll-child-option{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#fff;border:1px solid var(--tech-line);border-radius:6px;cursor:pointer;text-align:left;width:100%;font-family:var(--font-body);transition:border-color .15s,background .15s}.enroll-child-option:hover{border-color:var(--samsung-blue)}.enroll-child-option.selected{border-color:var(--samsung-blue);background:var(--ice-blue)}.enroll-child-thumb{width:36px;height:36px;border-radius:50%;background:var(--ice-blue);display:flex;align-items:center;justify-content:center;color:var(--gray-text);overflow:hidden;flex-shrink:0}.enroll-child-thumb img{width:100%;height:100%;object-fit:cover}.enroll-child-info{flex:1;min-width:0}.enroll-child-name{font-size:15px;font-weight:600;color:var(--black)}.enroll-child-meta{font-size:12px;color:var(--gray-text);margin-top:2px}.enroll-add-child-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;background:transparent;border:1px dashed var(--tech-line);border-radius:6px;color:var(--samsung-blue);font-size:14px;font-family:var(--font-body);cursor:pointer;align-self:stretch;justify-content:center}.enroll-add-child-btn:hover{border-color:var(--samsung-blue);background:var(--ice-blue)}.mp-page{position:relative}.mp-main{padding:0 20px 40px}.mp-section-title{font-family:var(--font-mono);font-size:.75rem;font-weight:700;color:var(--samsung-blue);text-transform:uppercase;letter-spacing:.1em;display:flex;align-items:center;gap:8px;margin:32px 0 12px}.mp-section-title:before{content:"+";font-weight:400}.mp-loading{padding:20px;text-align:center;color:var(--gray-text);font-size:.8rem}.mp-empty-card{padding:24px 20px;text-align:center;background:var(--ice-blue);border:1px solid var(--tech-line);color:var(--gray-text);font-size:.875rem;line-height:1.6}.mp-empty-link{color:var(--samsung-blue);text-decoration:underline;font-weight:600;margin-top:8px;display:inline-block;background:none;border:none;cursor:pointer;font-size:.875rem;padding:0}.mp-profile-wrap{margin-top:-20px;position:relative;z-index:2}.mp-profile-card{background:var(--white);border:1px solid var(--tech-line);padding:20px;display:flex;align-items:center;gap:16px;position:relative;z-index:1;box-shadow:0 4px 20px -10px #2d3a422e}.mp-avatar{width:64px;height:64px;border-radius:50%;background:var(--ice-blue);display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:800;color:var(--samsung-blue);border:1px solid var(--tech-line);flex-shrink:0}.mp-profile-info{flex:1;min-width:0}.mp-profile-name-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.mp-profile-name{font-size:1.1rem;font-weight:800;color:var(--black);letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-role-badge{font-family:var(--font-mono);font-size:.625rem;font-weight:700;padding:2px 6px;background:var(--samsung-blue);color:var(--white);letter-spacing:.1em;text-transform:uppercase;border-radius:2px;flex-shrink:0}.mp-profile-club{font-size:.8rem;color:var(--gray-text);font-weight:500;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-profile-phone{font-family:var(--font-mono);font-size:.78rem;color:var(--gray-text);font-weight:600;letter-spacing:.03em}.mp-edit-btn{width:32px;height:32px;border-radius:50%;border:1px solid var(--tech-line);background:var(--white);display:flex;align-items:center;justify-content:center;color:var(--gray-text);cursor:pointer;flex-shrink:0;transition:all .15s}.mp-edit-btn:hover{background:var(--ice-blue);color:var(--samsung-blue);border-color:var(--samsung-blue)}.mp-child-list{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.mp-child-wrap{position:relative}.mp-child-card{width:100%;background:var(--white);border:1px solid var(--tech-line);padding:16px;display:flex;flex-direction:column;gap:16px;font-family:inherit;text-align:left;cursor:pointer;position:relative;z-index:1;box-shadow:0 1px 3px #2d3a420f;transition:background .15s}.mp-child-card:hover{background:#f0f4f566}.mp-child-head{display:flex;align-items:center;gap:16px}.mp-child-thumb{width:48px;height:48px;border-radius:50%;background:var(--ice-blue);border:1px solid var(--tech-line);display:flex;align-items:center;justify-content:center;color:#5c6b7366;flex-shrink:0;overflow:hidden}.mp-child-thumb img{width:100%;height:100%;object-fit:cover}.mp-child-info{flex:1;min-width:0}.mp-child-name-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}.mp-child-name{font-size:1.05rem;font-weight:700;color:var(--black)}.mp-child-relation{font-size:.65rem;font-weight:700;color:var(--gray-text);background:var(--ice-blue);border:1px solid var(--tech-line);padding:2px 6px;letter-spacing:.02em;border-radius:2px;flex-shrink:0}.mp-child-meta{font-size:.75rem;color:var(--gray-text);font-weight:500}.mp-child-stats{background:#f0f4f58c;border:1px solid var(--tech-line);padding:10px;display:flex;align-items:center;justify-content:space-between;border-radius:2px}.mp-child-stat{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;border-right:1px solid var(--tech-line);padding:0 4px}.mp-child-stat:last-child{border-right:none}.mp-child-stat-label{font-size:.72rem;color:var(--gray-text);font-weight:500}.mp-child-stat-val{font-family:var(--font-mono);font-size:.95rem;font-weight:700;color:var(--black)}.mp-child-stat-val--primary{color:var(--samsung-blue)}.mp-child-stat-val--warn{color:#f59e0b}.mp-add-child-btn{width:100%;padding:14px;border:1px dashed rgba(74,93,106,.4);background:#f0f4f566;color:var(--samsung-blue);font-family:var(--font-kr);font-size:.85rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:background .15s;border-radius:2px;margin-top:4px}.mp-add-child-btn:hover{background:var(--ice-blue)}.mp-enroll-wrap{margin-bottom:12px}.mp-enroll-card{background:var(--white);border:1px solid var(--tech-line);padding:16px;display:flex;flex-direction:column;gap:16px;position:relative;z-index:1;box-shadow:0 1px 3px #2d3a420f}.mp-enroll-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mp-enroll-head-left{display:flex;flex-direction:column;gap:6px}.mp-level-badge{font-family:var(--font-mono);font-size:.625rem;font-weight:700;color:var(--samsung-blue);background:var(--ice-blue);border:1px solid var(--tech-line);padding:2px 6px;letter-spacing:.1em;border-radius:2px;width:fit-content;text-transform:uppercase}.mp-enroll-name{font-size:1.1rem;font-weight:700;color:var(--black);line-height:1.2;margin:0}.mp-enroll-status{font-family:var(--font-kr);font-size:.625rem;font-weight:700;padding:4px 8px;border-radius:2px;flex-shrink:0}.mp-enroll-status--active{color:#10b981;background:#10b9811a;border:1px solid rgba(16,185,129,.2)}.mp-enroll-status--pending{color:#f59e0b;background:#f59e0b1a;border:1px solid rgba(245,158,11,.2)}.mp-enroll-status--paused{color:var(--gray-text);background:#5c6b731a;border:1px solid var(--tech-line)}.mp-enroll-divider{height:1px;border-top:1px dashed var(--tech-line)}.mp-enroll-meta{display:flex;flex-direction:column;gap:4px}.mp-enroll-meta-row{display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.mp-enroll-meta-label{color:var(--gray-text);font-weight:500}.mp-enroll-meta-val{color:var(--black);font-weight:700}.mp-enroll-meta-val--mono{font-family:var(--font-mono)}.mp-enroll-cta{background:var(--samsung-blue);color:var(--white);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;font-size:.9rem;font-weight:700;text-decoration:none;border-radius:2px;margin-top:4px;transition:background .15s}.mp-enroll-cta:hover{background:var(--samsung-blue-dark)}.mp-payment-wrap{margin-bottom:8px}.mp-payment-list{background:var(--white);border:1px solid var(--tech-line);padding:4px;position:relative;z-index:1;box-shadow:0 1px 3px #2d3a420f}.mp-payment-item{padding:12px;border-bottom:1px solid var(--tech-line);display:flex;flex-direction:column;gap:6px}.mp-payment-item:last-child{border-bottom:none}.mp-payment-item--dim{opacity:.7}.mp-payment-top{display:flex;align-items:center;justify-content:space-between}.mp-payment-amount{font-family:var(--font-mono);font-size:1rem;font-weight:700;color:var(--black)}.mp-payment-status{font-size:.625rem;font-weight:700;padding:2px 6px;border-radius:2px;letter-spacing:.02em}.mp-payment-status--paid{color:var(--samsung-blue);background:var(--ice-blue);border:1px solid var(--tech-line)}.mp-payment-status--pending{color:#f59e0b;background:#f59e0b14;border:1px solid rgba(245,158,11,.2)}.mp-payment-status--failed,.mp-payment-status--cancelled{color:var(--gray-text);background:#5c6b7314;border:1px solid var(--tech-line)}.mp-payment-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:.7rem;color:var(--gray-text);font-weight:500}.mp-payment-meta-date{font-family:var(--font-mono);letter-spacing:.02em}.mp-payment-meta-dot{opacity:.5}.mp-payment-more{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;padding:12px;background:#f0f4f599;border:1px solid var(--tech-line);border-top:none;color:var(--gray-text);font-size:.75rem;font-weight:700;text-decoration:none;transition:background .15s;position:relative;z-index:1}.mp-payment-more:hover{background:var(--ice-blue);color:var(--samsung-blue)}.mp-noti-wrap{margin-bottom:16px}.mp-noti-list{background:var(--white);border:1px solid var(--tech-line);position:relative;z-index:1;box-shadow:0 1px 3px #2d3a420f}.mp-noti-item{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--tech-line)}.mp-noti-item:last-child{border-bottom:none}.mp-noti-info{flex:1;min-width:0;padding-right:16px;display:flex;flex-direction:column;gap:2px}.mp-noti-title{font-size:.9rem;font-weight:700;color:var(--black)}.mp-noti-desc{font-size:.72rem;color:var(--gray-text)}.mp-toggle{position:relative;width:44px;height:24px;flex-shrink:0}.mp-toggle input{display:none}.mp-toggle-track{display:block;width:100%;height:100%;border-radius:12px;background:#e2e8f0;cursor:pointer;transition:background .2s;position:relative}.mp-toggle input:checked+.mp-toggle-track{background:var(--samsung-blue)}.mp-toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--white);border:1px solid #cbd5e1;box-shadow:0 1px 2px #0000001a;transition:transform .2s,border-color .2s}.mp-toggle input:checked+.mp-toggle-track:after{transform:translate(20px);border-color:var(--white)}.mp-footer-links{display:flex;align-items:center;justify-content:center;gap:16px;margin:40px 16px 24px}.mp-footer-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:#5c6b73b3;font-family:var(--font-body);font-size:.75rem;font-weight:500;cursor:pointer;padding:4px;transition:color .15s}.mp-footer-btn:hover{color:var(--gray-text)}.mp-footer-btn--danger:hover{color:#e11d48}.mp-footer-divider{color:#5c6b734d}.mp-footer-brand{text-align:center;font-family:var(--font-mono);font-size:.65rem;color:#5c6b7359;letter-spacing:.15em;font-weight:700;margin-bottom:16px}.my-children-toast{position:fixed;bottom:90px;left:50%;transform:translate(-50%);background:var(--samsung-blue-dark);color:var(--white);padding:10px 16px;font-size:.875rem;font-weight:600;z-index:100;box-shadow:0 6px 18px #0000002e;border-radius:2px}.add-child-tabs{display:flex;gap:0;border-bottom:1px solid var(--tech-line);margin-bottom:12px}.add-child-tab{flex:1;padding:10px 8px;background:transparent;border:0;border-bottom:2px solid transparent;font-family:inherit;font-size:.875rem;font-weight:600;color:var(--gray-text);cursor:pointer}.add-child-tab.active{color:var(--samsung-blue);border-bottom-color:var(--samsung-blue)}.add-child-new-pane{display:flex;flex-direction:column;gap:12px}.add-child-help{font-size:.875rem;color:var(--gray-text);margin:0;word-break:keep-all}.academy-code-link-form{display:flex;flex-direction:column;gap:10px}.child-card-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.child-card{display:flex;align-items:center;gap:12px;background:var(--white);border:1px solid var(--tech-line);padding:12px;box-shadow:0 2px 6px #2d3a420a}.child-card-thumb{width:48px;height:48px;background:var(--ice-blue);display:flex;align-items:center;justify-content:center;color:var(--gray-text);flex-shrink:0;overflow:hidden}.child-card-thumb img{width:100%;height:100%;object-fit:cover}.child-card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.child-card-name{font-size:1rem;font-weight:600;color:var(--black);word-break:keep-all}.child-card-meta{font-family:var(--font-mono);font-size:.75rem;color:var(--gray-text)}.child-card-actions{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.child-card-empty{background:var(--ice-blue);padding:16px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;margin-bottom:12px}.child-card-empty .empty-body{font-size:.875rem;color:var(--gray-text);margin:0;word-break:keep-all}.mp-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2d3a428c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:1500;animation:mp-overlay-in .18s ease-out}@keyframes mp-overlay-in{0%{opacity:0}to{opacity:1}}.mp-modal-bracket{width:100%;max-width:360px;animation:mp-modal-in .22s ease-out}@keyframes mp-modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.mp-modal-card{position:relative;background:var(--white);padding:28px 24px 22px;display:flex;flex-direction:column;align-items:center;text-align:center}.mp-modal-icon{width:56px;height:56px;border-radius:50%;background:#e11d4814;color:#c0392b;display:flex;align-items:center;justify-content:center;margin-bottom:16px}.mp-modal-title{font-family:var(--font-kr);font-size:1.05rem;font-weight:700;color:var(--black);margin-bottom:10px;letter-spacing:-.01em}.mp-modal-body{font-size:.85rem;color:var(--gray-text);line-height:1.6;margin-bottom:20px}.mp-modal-error{width:100%;margin-bottom:14px;padding:8px 10px;border-radius:6px;background:#e11d4814;color:#c0392b;font-size:.78rem}.mp-modal-actions{display:flex;gap:8px;width:100%}.mp-modal-btn{flex:1;padding:12px 8px;font-family:var(--font-kr);font-size:.9rem;font-weight:700;border-radius:4px;cursor:pointer;transition:background-color .15s ease,color .15s ease}.mp-modal-btn:disabled{opacity:.6;cursor:not-allowed}.mp-modal-btn--outline{background:var(--white);color:var(--samsung-blue);border:1px solid var(--samsung-blue)}.mp-modal-btn--outline:hover:not(:disabled){background:var(--ice-blue)}.mp-modal-btn--danger{background:#c0392b;color:var(--white);border:1px solid #c0392b}.mp-modal-btn--danger:hover:not(:disabled){background:#962f23;border-color:#962f23}.push-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2d3a428c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:1600;animation:push-overlay-in .18s ease-out}@keyframes push-overlay-in{0%{opacity:0}to{opacity:1}}.push-modal-bracket{width:100%;max-width:360px;animation:push-modal-in .22s ease-out}@keyframes push-modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.push-modal-card{position:relative;background:var(--white);padding:32px 24px 22px;display:flex;flex-direction:column;align-items:center;text-align:center}.push-modal-close{position:absolute;top:12px;right:12px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--gray-text);cursor:pointer;transition:background-color .15s ease}.push-modal-close:hover{background:var(--ice-blue)}.push-modal-icon{width:64px;height:64px;border-radius:50%;background:var(--ice-blue);color:var(--samsung-blue);display:flex;align-items:center;justify-content:center;margin-bottom:16px}.push-modal-title{font-family:var(--font-kr);font-size:1.1rem;font-weight:700;color:var(--black);margin-bottom:10px;letter-spacing:-.01em}.push-modal-body{font-size:.85rem;color:var(--gray-text);line-height:1.6;margin-bottom:20px}.push-modal-warn,.push-modal-error{width:100%;margin-bottom:14px;padding:8px 10px;border-radius:6px;font-size:.78rem;line-height:1.5}.push-modal-warn{background:#f5b82e1f;color:#8a6d1f}.push-modal-error{background:#e11d4814;color:#c0392b}.push-modal-actions{display:flex;gap:8px;width:100%;margin-bottom:10px}.push-modal-btn{flex:1;padding:12px 8px;font-family:var(--font-kr);font-size:.92rem;font-weight:700;border-radius:4px;cursor:pointer;transition:background-color .15s ease,color .15s ease}.push-modal-btn--primary{background:var(--samsung-blue);color:var(--white);border:1px solid var(--samsung-blue)}.push-modal-btn--primary:hover{background:var(--samsung-blue-dark);border-color:var(--samsung-blue-dark)}.push-modal-btn--outline{background:var(--white);color:var(--samsung-blue);border:1px solid var(--samsung-blue)}.push-modal-btn--outline:hover{background:var(--ice-blue)}.push-modal-ghost{margin-top:6px;padding:8px 12px;background:transparent;border:none;color:var(--gray-text);font-family:var(--font-kr);font-size:.78rem;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.push-modal-ghost:hover{color:var(--samsung-blue)}.push-toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%);background:var(--samsung-blue-dark);color:#fff;padding:12px 20px;border-radius:4px;font-size:.9rem;z-index:2000;font-family:var(--font-kr)}.payment-result-shell{padding:32px 20px;font-family:var(--font-body);min-height:calc(100vh - var(--nav-height) - var(--bottom-nav-height));display:flex;flex-direction:column;justify-content:center}.payment-result-card{width:100%;padding:8px 4px}.payment-result-icon{width:64px;height:64px;border-radius:50%;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;color:var(--white)}.payment-result-icon.success{background:var(--samsung-blue)}.payment-result-icon.fail{background:#c0392b}.payment-result-icon.pending{background:var(--samsung-blue);animation:payment-pulse 1.4s ease-in-out infinite}@keyframes payment-pulse{0%,to{opacity:1}50%{opacity:.55}}.payment-spinner{width:28px;height:28px;border:3px solid rgba(255,255,255,.3);border-top-color:var(--white);border-radius:50%;animation:payment-spin .8s linear infinite}@keyframes payment-spin{to{transform:rotate(360deg)}}.payment-result-title{font-size:1.4rem;font-weight:800;color:var(--black);text-align:center;margin:0 0 6px}.payment-result-subtitle{font-size:.875rem;color:var(--gray-text);text-align:center;margin:0 0 24px;word-break:keep-all}.payment-result-label{font-family:var(--font-mono);font-size:.65rem;color:var(--samsung-blue);font-weight:700;background:var(--ice-blue);padding:4px 8px;display:inline-block;text-transform:uppercase;margin-bottom:12px}.payment-receipt{background:var(--ice-blue);border:1px solid var(--tech-line);padding:16px 18px;margin-bottom:20px}.payment-receipt-row{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;border-bottom:1px dashed var(--tech-line);gap:12px}.payment-receipt-row:last-child{border-bottom:none}.payment-receipt-key{font-size:.78rem;color:var(--gray-text);flex-shrink:0}.payment-receipt-value{font-size:.9rem;color:var(--black);font-weight:600;text-align:right;word-break:break-all}.payment-receipt-value.mono{font-family:var(--font-mono);font-size:.78rem;font-weight:500}.payment-receipt-value.amount{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--samsung-blue-dark)}.payment-result-actions{display:flex;flex-direction:column;gap:8px}.payment-result-btn{width:100%;padding:14px 20px;font-size:.95rem;font-family:var(--font-kr);font-weight:600;border:1px solid var(--samsung-blue);cursor:pointer;transition:all .15s ease}.payment-result-btn.primary{background:var(--samsung-blue);color:var(--white)}.payment-result-btn.primary:hover{background:var(--samsung-blue-dark);border-color:var(--samsung-blue-dark)}.payment-result-btn.secondary{background:var(--white);color:var(--samsung-blue)}.payment-result-btn.secondary:hover{background:var(--ice-blue)}.payment-result-label-block{display:block;text-align:center;margin-bottom:8px}.payment-result-label-fail{background:#c0392b14;color:#c0392b}.payment-result-btn-link{text-align:center;text-decoration:none;display:block}.payment-result-debug{margin-top:16px;padding:10px 12px;background:#c0392b0d;border-left:3px solid #c0392b;font-family:var(--font-mono);font-size:.7rem;color:var(--gray-text);word-break:break-all;text-align:left}.payment-pending-hint{margin-top:14px;padding:12px;background:var(--ice-blue);border-left:3px solid var(--samsung-blue);font-size:.78rem;color:var(--gray-text);text-align:left;line-height:1.5}.payment-summary-card{background:var(--white);border:1px solid var(--tech-line);padding:24px;position:relative}.payment-summary-card:after{content:"";position:absolute;top:4px;left:4px;right:-4px;bottom:-4px;border:1px solid var(--tech-line);z-index:-1}.payment-summary-label{font-family:var(--font-mono);font-size:.65rem;color:var(--samsung-blue);font-weight:700;display:inline-block;background:var(--ice-blue);padding:4px 8px;margin-bottom:8px;text-transform:uppercase}.payment-summary-title{font-size:1.4rem;font-weight:800;color:var(--black);margin-bottom:12px;letter-spacing:-.02em}.payment-summary-info{font-size:.85rem;color:var(--gray-text);margin-bottom:20px;line-height:1.5;padding-bottom:16px;border-bottom:1px dashed var(--tech-line)}.payment-summary-period{font-size:.85rem;font-weight:600;color:var(--black);margin-bottom:4px}.payment-summary-amount{font-family:var(--font-display);font-size:1.8rem;color:var(--samsung-blue);line-height:1}.payment-method-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}.payment-method-option{cursor:pointer;display:block}.payment-method-option input{display:none}.payment-method-box{border:1px solid var(--tech-line);background:var(--white);padding:16px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;transition:all .2s;height:100%}.payment-method-option input:checked+.payment-method-box{border-color:var(--samsung-blue);background:var(--ice-blue)}.payment-method-icon{color:var(--gray-text);transition:color .2s}.payment-method-option input:checked+.payment-method-box .payment-method-icon{color:var(--samsung-blue)}.payment-method-name{font-size:.75rem;font-weight:600;color:var(--gray-text);text-align:center;word-break:keep-all}.payment-method-option input:checked+.payment-method-box .payment-method-name{color:var(--samsung-blue)}.payment-toss-area{border:2px dashed var(--tech-line);background:#4a5d6a05;padding:40px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;margin-top:24px;margin-bottom:32px;position:relative}.payment-toss-badge{position:absolute;top:-10px;background:var(--white);padding:0 10px;font-family:var(--font-mono);font-size:.65rem;color:var(--gray-text);font-weight:700;text-transform:uppercase}.payment-toss-title{font-size:1rem;font-weight:700;color:var(--black);margin-bottom:8px}.payment-toss-desc{font-size:.8rem;color:var(--gray-text)}.payment-receipt{background:var(--ice-blue);padding:24px;margin-bottom:24px;position:relative}.payment-receipt:before,.payment-receipt:after{content:"";position:absolute;width:100%;height:4px;left:0;background-image:radial-gradient(circle at 4px 0,transparent 4px,var(--ice-blue) 4px);background-size:12px 10px;background-repeat:repeat-x}.payment-receipt:before{top:-4px;transform:rotate(180deg)}.payment-receipt:after{bottom:-4px;background-image:radial-gradient(circle at 4px 10px,transparent 4px,var(--ice-blue) 4px)}.payment-receipt-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:.9rem;color:var(--gray-text)}.payment-receipt-total{margin-top:16px;padding-top:16px;border-top:1px dashed rgba(74,93,106,.2);margin-bottom:0;display:flex;justify-content:space-between;align-items:flex-end}.payment-receipt-total-label{font-weight:700;font-size:1rem;color:var(--black)}.payment-receipt-total-val{font-family:var(--font-display);font-size:1.8rem;color:#e11d48;line-height:1}.payment-agree{display:flex;align-items:flex-start;gap:12px;cursor:pointer;margin-bottom:32px}.payment-checkbox{width:20px;height:20px;border:2px solid var(--tech-line);background:var(--white);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;transition:all .2s}.payment-checkbox.checked{background:var(--samsung-blue);border-color:var(--samsung-blue)}.payment-agree-text{font-size:.9rem;font-weight:600;color:var(--black);flex-grow:1}.payment-agree-link{font-size:.8rem;color:var(--gray-text);text-decoration:underline;white-space:nowrap;cursor:pointer;background:none;border:none}.payment-cta-btn{display:flex;width:100%;background:var(--samsung-blue);color:var(--white);padding:18px;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;border:none;outline:none;cursor:pointer;position:relative;overflow:hidden;font-family:var(--font-body)}.payment-cta-btn:active{background:var(--samsung-blue-dark)}.payment-secure-notice{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:12px;font-size:.75rem;color:var(--gray-text);font-family:var(--font-mono);text-transform:uppercase}.active-enrollment-card{position:relative;background:var(--white);border:1px solid var(--tech-line);border-left:4px solid #f5b82e;padding:20px;margin-bottom:12px;display:flex;flex-direction:column;gap:12px}.active-enrollment-card-header{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.active-enrollment-student{font-size:.95rem;font-weight:700;color:var(--black)}.active-enrollment-period{font-family:var(--font-mono);font-size:.7rem;color:var(--gray-text);font-weight:700;text-transform:uppercase}.active-enrollment-class{font-size:.85rem;color:var(--gray-text);line-height:1.4}.active-enrollment-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:12px;border-top:1px dashed var(--tech-line)}.active-enrollment-amount{font-family:var(--font-display);font-size:1.75rem;color:var(--samsung-blue-dark);line-height:1}.pay-now-cta{min-height:44px;padding:0 16px;background:#f5b82e;color:#1a2629;border:none;font-family:var(--font-body);font-size:.95rem;font-weight:700;cursor:pointer;white-space:nowrap}.pay-now-cta:disabled{opacity:.6;cursor:not-allowed}.pay-now-cta:active{background:#e0a826}.paid-badge{display:inline-flex;align-items:center;gap:4px;background:#f5b82e;color:#1a2629;font-family:var(--font-mono);font-size:.7rem;font-weight:700;padding:6px 10px;text-transform:uppercase}.pending-va-badge{display:inline-flex;align-items:center;gap:4px;background:#e5e7eb;color:#6b7280;font-family:var(--font-mono);font-size:.7rem;font-weight:700;padding:6px 10px;text-transform:uppercase}.active-enrollment-empty{background:var(--ice-blue);border:1px dashed var(--tech-line);padding:24px 20px;text-align:center;color:var(--gray-text);font-size:.9rem;line-height:1.5}.active-enrollment-empty strong{display:block;color:var(--black);font-weight:700;font-size:1rem;margin-bottom:6px}.active-enrollment-skeleton{background:linear-gradient(90deg,#f0f4f5,#e5ebec,#f0f4f5);height:96px;margin-bottom:12px;animation:skel-pulse 1.4s ease-in-out infinite}@keyframes skel-pulse{0%,to{opacity:.6}50%{opacity:1}}.new-enrollment-form{margin-top:32px;padding-top:24px;border-top:1px dashed var(--tech-line);display:flex;flex-direction:column;gap:16px}.new-enrollment-title{font-size:1rem;font-weight:700;color:var(--black);margin:0}.new-enrollment-label{display:flex;flex-direction:column;gap:6px;font-size:.8rem;color:var(--gray-text);font-weight:600}.new-enrollment-select{min-height:44px;padding:0 12px;background:var(--white);border:1px solid var(--tech-line);font-family:var(--font-body);font-size:.9rem;color:var(--black)}.new-enrollment-submit{min-height:48px;background:var(--samsung-blue);color:var(--white);border:none;font-family:var(--font-body);font-size:1rem;font-weight:700;cursor:pointer}.new-enrollment-submit:disabled{opacity:.5;cursor:not-allowed}.new-enrollment-error{color:#d14343;font-size:.85rem}.new-enrollment-empty{background:var(--ice-blue);border:1px dashed var(--tech-line);padding:20px;text-align:center;color:var(--gray-text)}.new-enrollment-link{display:inline-block;margin-top:8px;color:var(--samsung-blue);text-decoration:underline;font-weight:600}.refund-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a262980;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.refund-modal{background:var(--white);width:100%;max-width:440px;max-height:calc(100vh - 80px);overflow-y:auto;border:1px solid var(--tech-line);padding:24px;display:flex;flex-direction:column;gap:16px}.refund-modal-title{font-size:1.1rem;font-weight:800;color:var(--black);margin:0}.refund-modal-label{display:flex;flex-direction:column;gap:6px;font-size:.8rem;color:var(--gray-text);font-weight:600}.refund-modal-input,.refund-modal-textarea{min-height:44px;padding:10px 12px;background:var(--white);border:1px solid var(--tech-line);font-family:var(--font-body);font-size:.9rem;color:var(--black)}.refund-modal-textarea{min-height:80px;resize:vertical}.refund-modal-account-group{background:var(--ice-blue);padding:12px;display:flex;flex-direction:column;gap:8px}.refund-modal-account-group-title{font-size:.8rem;font-weight:700;color:var(--samsung-blue-dark);margin:0}.refund-modal-actions{display:flex;gap:8px;margin-top:8px}.refund-modal-cancel{flex:1;min-height:44px;background:var(--white);color:var(--gray-text);border:1px solid var(--tech-line);font-weight:600;cursor:pointer}.destructive-btn{flex:2;min-height:44px;background:#d14343;color:var(--white);border:none;font-weight:700;cursor:pointer;font-family:var(--font-body);font-size:.95rem}.destructive-btn:disabled{opacity:.5;cursor:not-allowed}.refund-modal-error{color:#d14343;font-size:.85rem}.refund-modal-confirm{background:var(--ice-blue);padding:12px;font-size:.85rem;color:var(--samsung-blue-dark);line-height:1.5}.virtual-account-pending{background:var(--ice-blue);border:1px solid var(--tech-line);padding:20px;margin-top:16px;display:flex;flex-direction:column;gap:12px}.virtual-account-pending-title{font-size:1rem;font-weight:700;color:var(--samsung-blue-dark);margin:0}.virtual-account-pending-message{font-size:.85rem;color:var(--gray-text);line-height:1.5;margin:0}.virtual-account-row{display:flex;justify-content:space-between;font-size:.85rem}.virtual-account-row-key{font-family:var(--font-mono);font-size:.7rem;color:var(--gray-text);text-transform:uppercase;font-weight:700}.virtual-account-row-value{color:var(--black);font-weight:600}.receipt-btn{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 12px;background:var(--white);color:var(--samsung-blue);border:1px solid var(--samsung-blue);font-size:.8rem;font-weight:600;cursor:pointer;text-decoration:none;font-family:var(--font-body)}.refund-request-btn{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 12px;background:var(--white);color:#d14343;border:1px solid #d14343;font-size:.8rem;font-weight:600;cursor:pointer;font-family:var(--font-body)}.history-row-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.history-status-badge{display:inline-block;font-family:var(--font-mono);font-size:.65rem;font-weight:700;padding:3px 8px;text-transform:uppercase}.history-status-badge.paid{background:#f5b82e;color:#1a2629}.history-status-badge.failed{background:#d14343;color:var(--white)}.history-status-badge.canceled,.history-status-badge.pending-va{background:#e5e7eb;color:#6b7280}.push-permission-prompt{margin:16px 20px;background:var(--white);border:1px solid var(--tech-line);border-top:3px solid #f5b82e;padding:16px;display:flex;flex-direction:column;gap:12px}.push-permission-prompt-title{font-size:.95rem;font-weight:700;color:var(--black);margin:0}.push-permission-prompt-body{font-size:.85rem;color:var(--gray-text);line-height:1.5;margin:0}.push-permission-prompt-actions{display:flex;gap:8px}.push-permission-prompt-accept{flex:1;min-height:44px;background:var(--samsung-blue);color:var(--white);border:none;font-weight:700;cursor:pointer;font-family:var(--font-body);font-size:.9rem}.push-permission-prompt-dismiss{min-width:80px;min-height:44px;background:var(--white);color:var(--gray-text);border:1px solid var(--tech-line);font-weight:600;cursor:pointer}.push-permission-prompt-ios{background:var(--ice-blue);padding:10px;font-size:.8rem;color:var(--samsung-blue-dark);line-height:1.4}.push-permission-prompt-error{color:#d14343;font-size:.8rem}
