*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body,html{height:100%;height:100dvh;font-family:Noto Sans KR,sans-serif}body.user-page{overflow:hidden}body.user-page #mob-cal,body.user-page .mob-cal-nav,body.user-page .mob-header,body.user-page .mob-tabs{display:none}.user-app-root{display:flex;flex-direction:column;height:100dvh;width:100vw;overflow:hidden}.main-container{display:flex;flex:1 1;overflow:hidden;width:100%}.sb{width:160px;background:#fff;border-right:1px solid #eee;display:flex;flex-direction:column;flex-shrink:0;height:100vh;height:100dvh}.sb-logo{padding:20px 16px 16px;border-bottom:1px solid #f0f0f0}.sb-logo-name{font-size:15px;font-weight:900;color:#222}.sb-logo-bc{font-size:8px;color:#aaa;margin-top:4px}.nav{padding:12px 0;flex:1 1;overflow-y:auto}.ni{padding:10px 14px;font-size:17px;font-weight:600;color:#bbb;cursor:pointer;border-radius:10px;margin:3px 10px;display:flex;align-items:center;gap:8px;transition:all .15s}.ni.on,.ni:hover{background:#fdf0f3;color:#c0102e}.ni.on{font-weight:700}.ni.yt{color:#bbb}.ni.yt.on,.ni.yt:hover{background:#f0eeff;color:#5040a0}.sb-admin{padding:14px 16px;border-top:1px solid #f0f0f0}.sb-admin a{font-size:12px;color:#ccc;text-decoration:none}.sb-admin a:hover{color:#c0102e}.mn{flex:1 1;display:flex;background:#fafafa}.mn,.pg{overflow:hidden;flex-direction:column}.pg{display:none;flex:1 1}.pg.on{display:flex;animation:pgFadeIn .2s ease-out}@keyframes pgFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.pg-scroll{overflow-y:auto;padding:24px 28px;flex:1 1}#cal{padding:20px 24px 16px}.mnav{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:16px;flex-shrink:0}.mlbl{font-size:29px;font-weight:900;color:#222}.mbtn{width:30px;height:30px;border:1px solid #ddd;background:#fff;border-radius:50%;cursor:pointer;font-size:13px;color:#888;display:flex;align-items:center;justify-content:center}.mbtn:hover{border-color:#c0102e;color:#c0102e}.cal-head{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px;flex-shrink:0;margin-bottom:6px}.dh{padding:8px 4px;text-align:center;font-size:16px;font-weight:700;border-radius:20px}.dh0{background:#fde5d8;color:#b05030}.dh1{background:#fefce5;color:#a08020}.dh2{background:#e5f5df;color:#2a7a30}.dh3{background:#d8f0ec;color:#1a7060}.dh4{background:#ece5f8;color:#5040a0}.dh5{background:#dce8f8;color:#2050a0}.dh6{background:#fce5e5;color:#c02020}.cal-body{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px;flex:1 1;overflow:hidden}.cal-body.rows5{grid-template-rows:repeat(5,1fr)}.cal-body.rows6{grid-template-rows:repeat(6,1fr)}.dc{padding:8px;border-radius:10px;background:#fff;border:1px solid #f0f0f0;overflow:hidden}.dc-empty{background:transparent!important;border:none!important}.dc-today{outline:2px solid #c0102e;outline-offset:-2px}.dn{font-size:16px;font-weight:700;color:#333;margin-bottom:5px}.dn.sat{color:#2050a0}.dn.sun{color:#c02020}.dn.td{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:#c0102e;color:#fff;border-radius:50%;font-size:11px}.ev{margin-bottom:4px}.tb{display:inline-block;font-size:13px;font-weight:700;padding:2px 7px;border-radius:20px;margin-bottom:2px}.tb0{background:#fde5d8;color:#9a4020}.tb1{background:#fefce5;color:#907010}.tb2{background:#e5f5df;color:#1a6020}.tb3{background:#d8f0ec;color:#0a6050}.tb4{background:#ece5f8;color:#402090}.tb5{background:#dce8f8;color:#1040a0}.tb6{background:#fce5e5;color:#b01010}.ek{font-size:14px;color:#222;font-weight:500;line-height:1.4}.ek,.eloc{display:block}.eloc{font-size:12px}.eloc,.er{color:#aaa}.er{font-size:13px;font-weight:500}.sec-t{font-weight:700;letter-spacing:.8px;margin-bottom:16px;text-transform:uppercase}.loading,.sec-t{font-size:16px;color:#bbb}.loading{text-align:center;padding:30px}.skel{background:linear-gradient(90deg,#f0f0f0 25%,#f8f8f8 50%,#f0f0f0 75%);background-size:200% 100%;animation:skelShimmer 1.5s infinite;border-radius:4px;transition:opacity .3s}@keyframes skelShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.fade-in{animation:fadeIn .4s ease-out forwards}.empty-box{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:#ccc}.empty-box .icon{font-size:48px;margin-bottom:12px;opacity:.5}.empty-box .msg{font-size:15px;font-weight:600}#songs,.songs-layout{overflow:hidden}.songs-layout{display:flex;height:100%}.songs-left{width:160px;overflow-y:auto;padding:14px 10px;border-right:1px solid #f0f0f0;background:#fff;flex-shrink:0}.songs-right{flex:1 1;display:flex;flex-direction:column;overflow:hidden}.songs-search-wrap{padding:14px 16px 10px;flex-shrink:0}.songs-search-box{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #eee;border-radius:24px;padding:9px 16px}.songs-search-box input{border:none;outline:none;font-size:13px;font-family:inherit;flex:1 1;background:transparent;color:#222}.songs-search-box input::placeholder{color:#bbb}.songs-list{flex:1 1;overflow-y:auto;padding:0 16px 16px}.cat-section{margin-bottom:14px}.cat-label{font-size:10px;font-weight:700;color:#bbb;letter-spacing:.8px;margin-bottom:6px;text-transform:uppercase}.cat-btn{padding:7px 10px;border-radius:10px;border:1px solid #eee;background:#fff;font-size:12px;font-weight:600;color:#888;cursor:pointer;margin-bottom:5px;width:100%;text-align:center;transition:all .12s;display:flex;align-items:center;justify-content:center;gap:5px}.cat-btn:hover{border-color:#fde5d8;color:#c0102e}.cat-btn.on{background:#c0102e;color:#fff;border-color:#c0102e}.artist-section{margin-top:4px}.artist-btn{padding:7px 10px;border-radius:10px;border:1px solid #eee;background:#fff;font-size:12px;font-weight:600;color:#666;cursor:pointer;margin-bottom:5px;width:100%;text-align:left;transition:all .12s;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.artist-btn:hover{border-color:#fde5d8;color:#c0102e}.artist-btn.on{background:#c0102e;color:#fff;border-color:#c0102e}.artist-initial-header{font-size:9px;font-weight:800;color:silver;letter-spacing:1px;padding:6px 4px 2px;margin-top:2px}.song-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;margin-bottom:6px;background:#fff;border:1px solid #f0f0f0;transition:all .1s;cursor:pointer;position:relative}.song-row:hover{border-color:#ddd;background:#fafafa}.song-row:active{transform:scale(.99)}.copy-toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);background:#222;color:#fff;font-size:12px;font-weight:700;padding:8px 18px;border-radius:20px;opacity:0;transition:opacity .3s;pointer-events:none;z-index:999;white-space:nowrap}.copy-toast.show{opacity:1}.song-thumb{width:50px;height:50px;border-radius:8px;object-fit:cover;background:#f0f0f0;flex-shrink:0}.song-info{flex:1 1;overflow:hidden}.song-title{font-size:14px;font-weight:700;color:#222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-artist-name{font-size:12px;color:#aaa;margin-top:2px}.song-genre-tag{font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px;white-space:nowrap;flex-shrink:0}.tag-뮤지컬{background:#f0e6ff;color:#6020a0}.tag-한식{background:#fff0e0;color:#a05010}.tag-일식{background:#e0f0ff;color:#105090}.tag-양식{background:#e0ffe8;color:#10702a}.tag-중식{background:#ffe0e0;color:#901010}.tag-LoveLive{background:#fff0f5;color:#db2777;border:1px solid #fbcfe8}.songs-empty{text-align:center;padding:40px;color:#bbb;font-size:13px}.hw-item{background:#fff;border-radius:12px;padding:12px 16px;margin-bottom:8px;display:flex;align-items:center;gap:14px;border:1px solid #f0f0f0}.hwn{font-weight:900;color:#ddd;min-width:24px}.hwn,.hwt{font-size:16px}.hwt{font-weight:700;color:#222}.hws{font-size:14px;color:#bbb;margin-top:2px}.hwb{margin-left:auto;font-size:13px;font-weight:700;padding:3px 10px;border-radius:20px;white-space:nowrap}.by{background:#d4edda;color:#155724}.bn{background:#fff3cd;color:#856404}.bp{background:#f0f0f0;color:#888}.prog-item{background:#fafafa;border-radius:10px;padding:11px 14px;margin-bottom:6px;border:1px solid #f0f0f0;transition:all .15s ease;position:relative}.prog-item:hover{border-color:#ddd;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.06)}.prog-row{display:flex;justify-content:space-between;margin-bottom:4px;align-items:center}.prog-tit{font-size:13px;font-weight:700;color:#222}.prog-pct{font-size:13px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#c0102e}.prog-bar-container{position:relative;height:6px;margin:4px 0;background:#eee;border-radius:10px;overflow:hidden}.prog-bar-track{height:100%;border-radius:10px;transition:width .3s ease}.prog-slider{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:2}.prog-sub{font-size:11px;color:#aaa;margin-top:2px}.prof-hero{text-align:center;padding:24px 0 16px}.prof-avatar{width:80px;height:80px;border-radius:50%;background:#fde5d8;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;font-size:28px;border:3px solid #e0b0a0}.prof-name{font-size:20px;font-weight:900;color:#222;margin-bottom:4px}.prof-bc{font-size:8px;color:#bbb;margin-bottom:6px}.prof-tag{font-size:12px;color:#999}.link-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-top:14px}.lnk{background:#fff;border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:10px;cursor:pointer;border:1px solid #eee;text-decoration:none;transition:border .1s}.lnk:hover{border-color:#fde5d8}.lnk-ic{font-size:20px}.lnk-nm{font-size:15px;font-weight:700;color:#222}.lnk-sb{font-size:13px;color:#bbb}.prof-foot{text-align:center;margin-top:24px;font-size:11px;color:#ccc}#yt-pg{overflow:hidden}.yt-layout{height:100%;padding:18px 22px}.yt-cols,.yt-layout{display:flex;gap:14px;overflow:hidden}.yt-cols{flex:1 1}.yt-wrap{flex:1 1;flex-direction:column;border-radius:14px;border:1px solid #eee;overflow:hidden}.yt-section-head,.yt-wrap{display:flex;background:#fff}.yt-section-head{font-size:13px;font-weight:700;color:#222;padding:12px 14px;align-items:center;justify-content:space-between;border-bottom:1px solid #f0f0f0;flex-shrink:0}.yt-section-head a{font-size:11px;color:#c0102e;text-decoration:none;font-weight:600}.yt-video-list{flex:1 1;overflow-y:auto;padding:8px 14px 14px}.yt-item{display:flex;gap:10px;margin-bottom:8px;text-decoration:none;padding:7px;border-radius:10px;transition:background .1s;align-items:flex-start}.yt-item:hover{background:#f5f5f5}.yt-thumb{width:110px;height:62px;border-radius:8px;object-fit:cover;flex-shrink:0;background:#f0f0f0}.yt-title{font-size:12px;font-weight:700;color:#222;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.yt-date{font-size:10px;color:#aaa;margin-top:4px}@media(max-width:768px){body.user-page{flex-direction:column;overflow:hidden;height:100vh;height:100dvh}body.user-page .sb{display:none}body.user-page .mob-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:52px;background:#fff;border-bottom:1px solid #eee;flex-shrink:0;z-index:10}.mob-logo-name{font-size:14px;font-weight:900;color:#222}.mob-logo-bc{font-size:7px;color:#aaa}.mob-admin-link{font-size:11px;color:#ccc;text-decoration:none}body.user-page .mob-tabs{display:flex;background:#fff;border-top:1px solid #eee;flex-shrink:0;z-index:10;padding-bottom:env(safe-area-inset-bottom)}.mob-tab{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 4px 10px;cursor:pointer;gap:3px;position:relative}.mob-tab:after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:0;height:3px;background:#c0102e;border-radius:3px 3px 0 0;transition:width .2s}.mob-tab.on:after{width:24px}.mob-tab-icon{font-size:18px;line-height:1}.mob-tab-label{font-size:9px;font-weight:600;color:#bbb}.mob-tab.on .mob-tab-label{color:#c0102e}.mob-tab.yt-t .mob-tab-label{color:#bbb}.mob-tab.yt-t.on .mob-tab-label{color:#5040a0}.mob-tab.yt-t.on:after{background:#5040a0}.mn{flex:1 1}.mn,.pg{overflow:hidden}.pg-scroll{padding:16px}#cal{padding:0}.cal-body,.cal-head,.mnav{display:none}body.user-page .mob-cal-nav{display:flex;align-items:center;justify-content:center;gap:16px;padding:14px 16px 10px;flex-shrink:0}.mob-cal-lbl{font-size:20px;font-weight:900;color:#222}.mob-cal-btn{width:28px;height:28px;border:1px solid #ddd;background:#fff;border-radius:50%;cursor:pointer;font-size:12px;color:#888;display:flex;align-items:center;justify-content:center}body.user-page #mob-cal{display:block;flex:1 1;overflow-y:auto;padding:0 14px 16px}.mob-day{background:#fff;border-radius:14px;margin-bottom:8px;border:1px solid #f0f0f0;overflow:hidden}.mob-day.today{border:2px solid #c0102e}.mob-day-header{display:flex;align-items:center;gap:8px;padding:12px 14px;background:#fafafa}.mob-day.today .mob-day-header{background:#fff8f8}.mob-dn{font-size:13px;font-weight:700;color:#888;min-width:16px}.mob-dn.sat{color:#2050a0}.mob-dn.sun{color:#c02020}.mob-ddate{font-size:16px;font-weight:900;color:#222}.mob-today-badge{background:#c0102e;color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;margin-left:4px}.mob-event{display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid #f5f5f5}.mob-event-time{font-size:14px;font-weight:700;color:#c0102e;min-width:50px}.mob-event-body{flex:1 1}.mob-event-title{font-size:14px;font-weight:500;color:#222;display:block}.mob-event-loc{font-size:11px;color:#aaa;display:block;margin-top:1px}.mob-rest{padding:10px 14px;border-top:1px solid #f5f5f5;font-size:13px;color:#bbb}#songs.on{display:flex}#songs.on,#songs.on .songs-layout{overflow:hidden;flex-direction:column}#songs.on .songs-layout{height:100%}#songs.on .songs-left{width:100%;height:auto;border-right:none;border-bottom:1px solid #f0f0f0;padding:10px 12px 6px;display:flex;flex-direction:column;gap:4px;flex-shrink:0}#songs.on .cat-section{margin-bottom:2px;display:flex;align-items:center}#songs.on .cat-section .cat-label{width:100%;font-size:10px;margin-bottom:4px}#songs.on .artist-section .artist-btn,#songs.on .cat-section .cat-btn{display:inline-block;width:auto;margin:0 4px 4px 0;padding:5px 12px;font-size:11px}#songs.on .artist-section{display:block;width:100%}#songs.on .artist-section .cat-label{width:100%;font-size:10px;margin-bottom:4px}#songs.on #artist-list{display:flex;flex-wrap:wrap;overflow-y:auto;max-height:220px;transition:max-height .3s ease-out;padding-bottom:4px}#songs.on #artist-list.mob-collapsed{max-height:36px!important;overflow:hidden}#songs.on .songs-right{flex:1 1;display:flex;flex-direction:column;overflow:hidden}#songs.on .songs-search-wrap{padding:10px 12px 6px;flex-shrink:0}#songs.on .songs-list{flex:1 1;overflow-y:auto;padding:0 12px 12px}#songs.on .cat-section{gap:5px;flex-wrap:wrap}#songs.on .cat-btn{width:auto;margin:0;padding:5px 13px;border-radius:20px;height:auto;min-width:unset;flex:none;font-size:11px;font-weight:600;color:#666;background:#f5f5f5;border:1px solid #e0e0e0}#songs.on .cat-btn .cat-emoji{display:none}#songs.on .cat-btn .cat-text{font-size:11px;line-height:1}#songs.on .cat-btn.on{background:#c0102e;color:#fff;border-color:#c0102e}#songs.on .cat-btn:hover:not(.on){background:#fde5d8;border-color:#fde5d8;color:#c0102e}.yt-layout{padding:0;height:100%;overflow:hidden}.yt-cols{flex-direction:column;height:100%;gap:0}.yt-wrap{flex:1 1;border-radius:0;border-left:none;border-right:none;border-top:none}.yt-wrap:first-child{border-bottom:1px solid #eee}.yt-wrap:last-child{border-bottom:none}.yt-section-head{font-size:11px;padding:8px 12px}.yt-video-list{padding:4px 10px 60px}.yt-thumb{width:80px;height:45px}.yt-title{font-size:12px}.yt-date{font-size:10px}.link-grid{gap:8px}.lnk{padding:10px 12px}}body.admin-page{background:#f5f5f5}#gate,body.admin-page{min-height:100vh;min-height:100dvh}#gate{display:flex;align-items:center;justify-content:center}.gate-box{background:#fff;border-radius:16px;padding:40px;text-align:center;width:320px;border:1px solid #eee}.gate-logo{font-size:16px;font-weight:900;color:#222;margin-bottom:2px}.gate-bc{font-size:8px;color:#aaa;margin-bottom:28px}.gate-box input{width:100%;padding:12px 14px;border:1px solid #ddd;border-radius:10px;font-size:15px;font-family:inherit;margin-bottom:12px;outline:none;text-align:center;letter-spacing:4px}.gate-box input[type=email]{letter-spacing:0}.gate-box input:focus{border-color:#c0102e}.gate-box button{width:100%;padding:12px;background:#c0102e;color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit}.gate-box button:hover{background:#a00020}.gate-err{color:#c0102e;font-size:12px;margin-top:10px}.header{background:#fff;border-bottom:1px solid #eee;padding:14px 24px;justify-content:space-between;position:-webkit-sticky;position:sticky;top:0;z-index:10;box-shadow:0 1px 4px rgba(0,0,0,.05)}.header,.header-left{display:flex;align-items:center}.header-left{gap:12px}.header-logo{font-size:15px;font-weight:900;color:#222}.header-logo span{color:#c0102e}.header-bc{font-size:8px;color:#aaa}.header-right{display:flex;gap:10px;align-items:center}.header-right a{font-size:12px;color:#aaa;text-decoration:none;cursor:pointer;padding:5px 10px;border-radius:6px;transition:all .15s}.header-right a:hover{color:#c0102e;background:#fff0f0}.tabs{background:#fff;border-bottom:1px solid #eee;display:flex;padding:0 24px;position:-webkit-sticky;position:sticky;top:53px;z-index:9;overflow-x:auto}.tab{padding:13px 16px;font-size:13px;font-weight:600;color:#bbb;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s;white-space:nowrap;flex-shrink:0}.tab:hover{color:#555}.tab.on{color:#c0102e;border-bottom-color:#c0102e}.content{max-width:860px;margin:28px auto;padding:0 24px 60px}body.admin-page .pg{display:none;flex-direction:row;flex:initial;overflow:initial}body.admin-page .pg.on{display:block;animation:fadeIn .18s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.card{background:#fff;border-radius:14px;padding:20px;border:1px solid #eee}.card,.card-title{margin-bottom:16px}.card-title{font-size:13px;font-weight:700;color:#888;display:flex;align-items:center;gap:8px}.form-row{display:grid;grid-gap:12px;gap:12px;margin-bottom:12px}.form-row.c2{grid-template-columns:1fr 1fr}.form-row.c3{grid-template-columns:1fr 1fr 1fr}.form-row.c4{grid-template-columns:1fr 1fr 1fr 1fr}.form-group label{font-size:11px;font-weight:700;color:#bbb;display:block;margin-bottom:5px;letter-spacing:.5px;text-transform:uppercase}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 13px;border:1px solid #eee;border-radius:9px;font-size:13px;font-family:inherit;outline:none;background:#fafafa;color:#222;transition:border .15s,box-shadow .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#c0102e;background:#fff;box-shadow:0 0 0 3px rgba(192,16,46,.07)}.form-group textarea{resize:vertical;min-height:60px}.form-group input[type=range]{padding:0;background:none;border:none;box-shadow:none;accent-color:#c0102e}.form-group input[type=range]:focus{box-shadow:none}.btn{padding:10px 20px;border:none;border-radius:9px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s}.btn:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(0,0,0,.12)}.btn:active{transform:translateY(0);box-shadow:none}.btn-primary{background:#c0102e;color:#fff}.btn-primary:hover{background:#a00020}.btn-gray{background:#f0f0f0;color:#666}.btn-gray:hover{background:#e0e0e0}.btn-danger{background:#fff0f0;color:#c0102e;border:1px solid #fcc}.btn-danger:hover{background:#ffe0e0}.btn-sm{padding:5px 12px;font-size:11px}.btn-sm:hover{transform:translateY(-1px);box-shadow:0 2px 5px rgba(0,0,0,.1)}.btn-row{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap}.btn-edit{background:#fff8f0;color:#c07020;border:1px solid #f0d0a0}.btn-edit:hover{background:#fff0e0}.list-wrap{margin-top:20px}.list-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.list-title{font-size:13px;font-weight:700;color:#555}.list-count{font-size:12px;color:#bbb}.list-item{background:#fafafa;border-radius:10px;padding:11px 14px;margin-bottom:6px;display:flex;align-items:center;gap:12px;border:1px solid #f0f0f0;transition:all .15s;position:relative}.list-item:hover{border-color:#ddd;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.06)}.list-item.li-hoverable .li-actions-hover{opacity:0;transition:opacity .15s}.list-item.li-hoverable:hover .li-actions-hover{opacity:1}.li-main{flex:1 1;min-width:0}.li-title{font-size:13px;font-weight:700;color:#222}.li-sub{font-size:11px;color:#aaa;margin-top:2px}.li-badge{font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px;white-space:nowrap;flex-shrink:0}.badge-합방{background:#e8d5f5;color:#6020a0}.badge-야구{background:#dce8f8;color:#1040a0}.badge-방송{background:#fde5d8;color:#9a4020}.badge-휴식일{background:#f0f0f0;color:#888}.badge-완료{background:#d4edda;color:#155724}.badge-진행중{background:#fff3cd;color:#856404}.badge-예정{background:#f0f0f0;color:#888}.li-actions,.li-actions-hover{display:flex;gap:6px;align-items:center;flex-shrink:0}.prog-preview{height:5px;background:#f0f0f0;border-radius:10px;overflow:hidden;margin-top:5px;width:100%;max-width:120px}.prog-preview-fill{height:100%;border-radius:10px;transition:width .3s ease}.li-actions input[type=range],.li-actions-hover input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:4px;background:#e2e8f0;outline:none;cursor:pointer;vertical-align:middle}.li-actions input[type=range]::-webkit-slider-thumb,.li-actions-hover input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#c0102e;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.25);-webkit-transition:transform .1s;transition:transform .1s}.li-actions input[type=range]::-webkit-slider-thumb:hover,.li-actions-hover input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.25)}.toast{position:fixed;bottom:24px;right:24px;background:#1e293b;color:#fff;padding:12px 20px;border-radius:10px;font-size:13px;font-weight:600;opacity:0;transition:opacity .25s,transform .25s;z-index:9999;pointer-events:none;transform:translateY(8px);box-shadow:0 4px 16px rgba(0,0,0,.2)}.toast.show{opacity:1;transform:translateY(0)}.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:200;align-items:center;justify-content:center}.modal-bg.show{display:flex;animation:modalBgIn .2s ease}@keyframes modalBgIn{0%{opacity:0}to{opacity:1}}.modal{background:#fff;border-radius:16px;padding:28px;width:520px;max-width:94vw;max-height:90vh;overflow-y:auto;animation:modalIn .22s cubic-bezier(.34,1.56,.64,1)}@keyframes modalIn{0%{opacity:0;transform:scale(.92) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-title{font-size:15px;font-weight:900;color:#222;margin-bottom:20px;display:flex;align-items:center;justify-content:space-between}.modal-close{background:none;border:none;font-size:20px;cursor:pointer;color:#aaa;line-height:1;transition:color .1s}.modal-close:hover{color:#c0102e}.modal-btns{display:flex;gap:8px;margin-top:20px;justify-content:flex-end}@media(max-width:768px){.content{margin:16px auto;padding:0 12px 60px}.card{padding:16px}.form-row.c2,.form-row.c3,.form-row.c4{grid-template-columns:1fr}.header{padding:12px 16px}.tabs{padding:0 8px}.tab{padding:11px 12px;font-size:12px}.list-item{padding:10px 12px;gap:8px}.li-title{font-size:12px}.list-item.li-hoverable .li-actions-hover{opacity:1}.btn-row{gap:6px}.btn{padding:9px 14px}.btn-sm{padding:4px 10px}.modal{padding:20px;border-radius:14px}.squat-item{display:flex!important;flex-direction:column!important;gap:8px!important;align-items:stretch!important}.squat-panel-desktop{display:none!important}.squat-panel-mobile{display:flex!important}.squat-close-btn{display:block!important}}.squat-panel-desktop{display:flex}.squat-close-btn,.squat-panel-mobile{display:none}