@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap";:root{font-family:DM Sans,Noto Sans JP,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#263348;background:#f7f9fc;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a6cef9;outline-offset:2px}button{transition:background .15s,color .15s,border-color .15s}button:disabled{opacity:.45;cursor:not-allowed}.app-shell{min-height:100vh;display:flex}.sidebar{width:249px;flex:0 0 249px;background:#fff;border-right:1px solid #e6ebf1;display:flex;flex-direction:column;padding:26px 15px 18px;position:sticky;top:0;height:100vh}.sidebar-brand{display:flex;align-items:center;gap:11px;padding:0 10px 48px}.brand-mark{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#4c78ef;color:#fff;box-shadow:0 7px 14px #5079e82b}.sidebar-brand strong{font-size:13px;letter-spacing:.055em;font-weight:800;display:block;color:#1d2b43;white-space:nowrap}.sidebar-brand small{font-size:10px;display:block;margin-top:2px;color:#97a1b1}.nav-label{font-size:10px;letter-spacing:.11em;color:#a2aaba;font-weight:800;padding:0 16px;margin-bottom:12px}.section-gap{margin-top:37px}.sidebar-link,.game-link{border:0;width:100%;display:flex;align-items:center;text-align:left;gap:12px;border-radius:10px;background:transparent;color:#69778d;padding:12px 14px;font-size:12px;font-weight:700}.sidebar-link:hover,.game-link:hover{background:#f4f7fe}.sidebar-link.active{color:#4274ed;background:#eef3ff}.sidebar-dot{width:5px;height:5px;background:#4c78ef;border-radius:50%;margin-left:auto}.game-link{gap:10px;margin-bottom:5px;line-height:1.7}.game-link.selected{background:#f7f9fe;color:#2e3c56}.game-mark{display:flex;align-items:center;justify-content:center;min-width:31px;height:31px;border-radius:9px;background:#eef1f7;color:#74849b;font-size:10px;font-weight:800}.selected .game-mark{color:#537aef;background:#e7eeff}.game-link>svg{margin-left:auto;color:#577dec;flex-shrink:0}.sidebar-bottom{margin-top:auto}.sidebar-info{display:flex;gap:10px;background:#f5f8ff;padding:13px 11px;border-radius:11px;color:#557ee9}.sidebar-info strong{font-size:11px;color:#3a4b65;display:block}.sidebar-info small{font-size:10px;line-height:1.6;color:#9aa6b9;display:block;margin-top:4px}.sidebar-help{border:0;background:transparent;color:#7f8da2;display:flex;gap:10px;align-items:center;font-size:12px;padding:20px 11px 4px}.main-area{min-width:0;flex:1}.topbar{height:67px;display:flex;align-items:center;justify-content:space-between;padding:0 43px;border-bottom:1px solid #e9edf3;background:#fff}.breadcrumbs{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:600;color:#9da8b9}.breadcrumbs span{color:#cbd3dd}.breadcrumbs strong{color:#44536b}.top-actions{display:flex;align-items:center;gap:23px}.prototype-tag{display:flex;align-items:center;gap:8px;color:#6e83b5;font-size:10px;letter-spacing:.09em;font-weight:800;border:1px solid #e5ecfc;border-radius:6px;padding:7px 10px;background:#f6f9ff}.prototype-tag span{height:6px;width:6px;border-radius:50%;background:#5e98ee}.icon-button{border:0;background:transparent;color:#78869c;padding:4px}.content{max-width:1350px;margin:auto;padding:42px 43px 25px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:27px}.eyebrow{font-size:10px;letter-spacing:.18em;color:#6286e5;font-weight:800;margin-bottom:10px}h1,h2,h3,p{margin-top:0}h1{font-size:31px;letter-spacing:-.055em;margin-bottom:5px;color:#1e2c43;font-weight:800}.title-spark{color:#5b80e7}.page-subtitle{color:#97a3b4;font-size:12px;margin:0;line-height:1.9}.outline-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid #dde5ef;background:#fff;border-radius:9px;padding:11px 17px;color:#4f6078;font-size:12px;font-weight:700;box-shadow:0 2px 5px #26344b06}.outline-btn:hover{background:#f5f8ff;border-color:#b5c6f1}.game-banner{display:flex;align-items:center;gap:16px;padding:18px 21px;background:linear-gradient(110deg,#476fe2,#668af1);color:#fff;border-radius:13px;box-shadow:0 9px 24px #627fe62b;margin-bottom:36px}.game-banner-icon{width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;border-radius:12px;background:#ffffff2c}.game-banner-copy{display:flex;flex-direction:column;gap:5px}.game-banner-copy span{font-size:10px;opacity:.78;font-weight:600}.game-banner-copy strong{font-size:16px;font-weight:700}.game-banner-count{margin-left:auto;border:1px solid #ffffff48;background:#ffffff18;border-radius:7px;padding:8px 12px;font-size:11px;font-weight:700}.section-heading{display:flex;align-items:baseline;gap:13px;margin-bottom:15px}.section-heading h2{font-size:16px;letter-spacing:-.02em;color:#28364c;margin-bottom:0}.section-heading>span{font-size:11px;color:#a3acb8;font-weight:600}.summary-section{margin-bottom:26px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat-card{background:#fff;border:1px solid #e9eef4;border-radius:13px;padding:19px 20px 16px;min-width:0;box-shadow:0 3px 12px #28374f06}.stat-top{display:flex;justify-content:space-between;align-items:center;color:#77879b;font-size:11px;font-weight:700}.stat-icon{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:#f0f4fb;color:#7084a5}.stat-clear .stat-icon{background:#eaf8f2;color:#37ab7f}.stat-fc .stat-icon{background:#eaf1ff;color:#5984ec}.stat-ap .stat-icon{background:#fff7e6;color:#e3a647}.stat-number{margin-top:12px;font-size:31px;color:#24334d;font-weight:800;letter-spacing:-.06em;line-height:1.15;white-space:nowrap}.stat-number small{font-size:11px;color:#a9b1c0;font-weight:600;letter-spacing:0;margin-left:6px}.stat-progress{height:5px;border-radius:30px;background:#edf2f6;margin:17px 0 10px;overflow:hidden}.stat-progress span{display:block;height:100%;border-radius:30px;background:#4bbd91}.stat-fc .stat-progress span{background:#5c8aef}.stat-ap .stat-progress span{background:#efbc5f}.stat-footer{display:flex;justify-content:space-between;font-size:11px;color:#a9b3c2}.stat-footer strong{color:#37ad80;font-size:13px}.stat-fc .stat-footer strong{color:#5c83e4}.stat-ap .stat-footer strong{color:#dca344}.stat-foot-text{margin-top:29px}.data-warning{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid #e8edf6;border-left:3px solid #82a1ee;border-radius:10px;padding:13px 16px;margin-bottom:35px}.data-warning-icon{display:grid;place-items:center;width:33px;height:33px;border-radius:9px;color:#688ae7;background:#edf3ff;flex-shrink:0}.data-warning strong{font-size:12px;color:#3a4e72}.data-warning p{font-size:11px;color:#98a6b9;margin:4px 0 0;line-height:1.7}.data-warning button{margin-left:auto;flex-shrink:0;border:0;background:#ecf2ff;color:#5479d7;border-radius:7px;padding:8px 12px;font-size:11px;font-weight:700}.library-section{margin-top:30px}.filter-panel{border:1px solid #e7edf4;background:#fff;border-radius:13px;margin-bottom:22px;box-shadow:0 3px 12px #26374d05}.filter-main{display:flex;gap:15px;padding:18px;align-items:center}.search-box{height:40px;display:flex;align-items:center;gap:9px;border:1px solid #e5ebf1;background:#fbfcff;border-radius:8px;padding:0 12px;color:#9aacc3;flex:1;min-width:150px}.search-box:focus-within{border-color:#8eabef;box-shadow:0 0 0 3px #eaf0ff}.search-box input{border:0;background:transparent;outline:0;min-width:0;width:100%;font-size:12px;color:#34445c}.search-box input::placeholder{color:#aab5c5}.search-box button{border:0;background:transparent;color:#a2adbd;padding:2px}.select-row{display:flex;gap:10px}.select-wrap{height:40px;display:flex;align-items:center;gap:7px;border:1px solid #e5ebf1;border-radius:8px;padding:0 10px;background:#fff;color:#9aa6b7;position:relative}.select-wrap>span{font-size:10px;white-space:nowrap;color:#a0abba}.select-wrap select{max-width:175px;padding-right:18px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;outline:0;color:#526179;font-size:11px;font-weight:700;cursor:pointer}.select-wrap svg{pointer-events:none;position:absolute;right:9px}.filter-footer{border-top:1px solid #edf1f6;min-height:46px;padding:9px 19px;display:flex;align-items:center;justify-content:space-between;gap:12px}.filter-hint{display:flex;align-items:center;gap:8px;color:#9ca8b9;font-size:10px}.dot-pulse{display:inline-block;width:6px;height:6px;background:#65c5a5;border-radius:50%;flex-shrink:0}.filter-controls{display:flex;gap:10px;align-items:center}.text-btn{display:flex;gap:6px;align-items:center;border:0;background:transparent;color:#8e9bb0;font-size:11px;font-weight:600;padding:7px}.edit-toggle{display:flex;align-items:center;gap:7px;border:1px solid #dbe5f1;border-radius:7px;padding:7px 10px;color:#657896;background:#fff;font-size:11px;font-weight:700}.edit-toggle.on{color:#426ce0;background:#eaf0ff;border-color:#c5d5fc}.band-list{display:flex;flex-direction:column;gap:19px}.band-card{border:1px solid #e6edf5;background:#fff;border-radius:13px;overflow:hidden;box-shadow:0 3px 12px #26374b06}.band-heading{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;background:#fff;text-align:left;padding:15px 19px}.band-heading:hover{background:#fcfdff}.band-heading>svg{color:#a2aec1;transition:transform .2s}.band-heading>svg.rotated{transform:rotate(-90deg)}.band-heading-left{display:flex;align-items:center;gap:12px}.band-avatar{width:37px;height:37px;border-radius:10px;background:#eef2ff;color:#718be8;display:grid;place-items:center}.band-heading h3{font-size:13px;margin:0 0 3px;color:#2c3c55;font-weight:800}.band-heading-left>div>span{font-size:10px;color:#a5b1c1}.table-scroll{overflow:auto}.songs-table{border-collapse:collapse;width:100%;table-layout:fixed;min-width:655px}.songs-table th{background:#f9fbfd;border-top:1px solid #edf1f6;border-bottom:1px solid #edf1f6;color:#8492a7;text-align:center;height:43px;font-size:11px;font-weight:700}.songs-table th.song-title-th{width:40%;text-align:left;padding-left:21px}.songs-table th:not(.song-title-th){width:15%}.diff-head{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.025em;color:#80aa72}.diff-head.normal{color:#6dabe5}.diff-head.hard{color:#e1aa5d}.diff-head.expert{color:#d87389}.diff-head.special{color:#ac7ed6}.songs-table td{border-bottom:1px solid #f0f3f7;height:54px}.songs-table tr:last-child td{border-bottom:0}.songs-table tbody tr:hover{background:#fafcff}.song-cell{padding:10px 17px 10px 21px}.song-name{display:inline;overflow-wrap:anywhere;font-size:12px;font-weight:700;color:#3f4d65;line-height:1.6}.cover-tag{display:inline-block;vertical-align:middle;margin-left:8px;padding:3px 6px;border:1px solid #e7ddfc;background:#f6f2ff;color:#a08acb;border-radius:4px;font-size:9px;font-weight:800;letter-spacing:.04em}.chart-cell{text-align:center;padding:4px 5px}.chart-button{display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;min-height:43px;width:min(100%,116px);margin:auto;border:1px solid transparent;border-radius:8px;background:transparent;padding:5px 4px}.chart-button:hover{background:#f1f5fd;border-color:#e5ecfb}.chart-level{font-size:10px;color:#a5b0c1;font-weight:600}.chart-state{font-size:11px;font-weight:800;color:#9ba7b7}.progress-1 .chart-state{color:#3bad84}.progress-2 .chart-state{color:#5485e9}.progress-3 .chart-state{color:#df9d38}.no-chart{font-size:15px;color:#d8dfe8}.edit-chart{background:#f8faff;border:1px dashed #dce5f2}.edit-chart .chart-state{color:#6682b8}.edit-chart:hover{background:#ecf2ff;border-color:#9eb9ef}.edit-chart.missing-chart{background:#fcfdff}.empty{display:flex;min-height:230px;align-items:center;justify-content:center;flex-direction:column;background:#fff;border-radius:13px;border:1px dashed #d7e0ec;color:#8d9bb0;gap:10px}.empty strong{font-size:14px;color:#50617b}.empty p{font-size:12px}.page-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:36px 0 8px;color:#b0baca;font-size:10px}.page-footer>div{display:flex;gap:18px}.page-footer button{border:0;background:transparent;color:#8c9ab0;font-size:11px;display:flex;gap:6px;align-items:center}.page-footer button:hover{color:#5278dc}.center-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:17px;color:#7788a5}.center-stage p{font-size:13px}.spin{animation:rotate 1s linear infinite}@keyframes rotate{to{transform:rotate(360deg)}}.notice-box{padding:30px;max-width:460px;background:#fff;border:1px solid #e4ebf4;border-radius:14px;text-align:center}.notice-box h2{margin-top:17px;font-size:17px}.notice-box p{line-height:1.7}.notice-box .muted{color:#9ba9bc;font-size:11px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0c1d36a6;display:flex;align-items:center;justify-content:center;padding:16px}.modal{width:100%;max-width:485px;background:#fff;border-radius:18px;padding:32px;box-shadow:0 30px 70px #0a172833;position:relative}.modal-close{position:absolute;right:19px;top:19px;background:transparent;border:0;color:#98a4b5}.modal-icon{width:43px;height:43px;border-radius:12px;background:#ecf2ff;display:grid;place-items:center;color:#5f82e6;margin-bottom:18px}.modal h2{font-size:19px;color:#283853;margin-bottom:20px}.modal p{font-size:12px;line-height:1.95;color:#6e7c92;margin-bottom:12px}.modal p strong{color:#344968}.primary-btn{background:#5279e8;border:0;color:#fff;border-radius:9px;padding:12px 17px;font-size:12px;font-weight:700;margin-top:13px}.toast{position:fixed;bottom:22px;right:23px;z-index:60;display:flex;gap:10px;align-items:center;max-width:calc(100vw - 40px);color:#fff;background:#283c5c;border-radius:10px;padding:12px 15px;box-shadow:0 12px 38px #10213d42;font-size:12px}.toast button{margin-left:10px;border:0;color:#b8c8de;background:transparent}.mobile-menu-button,.mobile-sidebar,.mobile-overlay{display:none}@media (max-width:1200px){.sidebar{width:220px;flex-basis:220px}.content{padding:35px 30px}.topbar{padding:0 30px}.stat-grid{gap:10px}.stat-card{padding:17px 14px}.filter-main{flex-wrap:wrap}.search-box{flex-basis:100%}.select-row{width:100%}.select-wrap{flex:1}.select-wrap select{width:100%;max-width:none}}@media (max-width:840px){.sidebar{display:none}.mobile-menu-button{display:block}.mobile-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#14203777;z-index:39}.mobile-sidebar{display:flex;position:fixed;z-index:40;inset:0 auto 0 0;width:280px;background:#fff;flex-direction:column;padding:26px 15px 18px;box-shadow:10px 0 50px #15243d33}.mobile-close{position:absolute;right:9px;top:14px;background:transparent;border:0;color:#8b9aaf;padding:8px}.topbar{padding:0 24px;height:58px;justify-content:flex-start;gap:15px}.top-actions{margin-left:auto}.content{padding:30px 24px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{padding:18px}.game-banner{margin-bottom:29px}}@media (max-width:560px){.content{padding:25px 14px}.topbar{padding:0 15px}.breadcrumbs{font-size:11px}.prototype-tag{padding:6px 8px;font-size:9px}.help-icon{display:none}.page-header{align-items:flex-start;margin-bottom:22px}.page-header h1{font-size:27px}.page-subtitle{max-width:270px;font-size:11px}.export-button{padding:10px;flex-shrink:0}.export-button span{display:none}.game-banner{padding:14px;gap:10px}.game-banner-icon{width:38px;height:38px}.game-banner-copy strong{font-size:12px}.game-banner-count{font-size:9px;padding:6px 7px;white-space:nowrap}.stat-card{padding:15px 13px}.stat-number{font-size:26px}.stat-top{font-size:10px}.stat-icon{width:27px;height:27px}.section-heading h2{font-size:15px}.data-warning{align-items:flex-start;padding:13px}.data-warning button{display:none}.data-warning p{font-size:10px}.filter-main{padding:12px}.select-row{gap:6px}.select-wrap{padding:0 7px;min-width:0}.select-wrap>span{display:none}.select-wrap select{font-size:10px;padding-right:13px}.select-wrap svg{right:5px}.filter-footer{padding:9px 12px;flex-wrap:wrap}.filter-hint{font-size:9px}.filter-controls{margin-left:auto}.band-heading{padding:13px}.band-heading h3{font-size:12px}.songs-table th.song-title-th{width:37%}.songs-table th:not(.song-title-th){width:15.75%}.page-footer{flex-direction:column;align-items:flex-start}.page-footer>div{gap:11px}}
