/* /Components/ActionMenu.razor.rz.scp.css */
.collapse[b-sm9l1z76ui] {
    /* Never collapse the sidebar for wide screens */
    display: block;
}

.nav-scrollable[b-sm9l1z76ui] {
    background-color: white;
    width: 150px;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow-y: auto;
    border-right: solid 3px black;
}

.sign-out-button[b-sm9l1z76ui] {
    user-select: none;
    padding: 10px;
    font-size: 20px;
    text-align: center;
}

.sign-out-button:hover[b-sm9l1z76ui] {
    cursor: pointer;
    font-size: 20px;
}

.action[b-sm9l1z76ui] {
    color: black;
    text-decoration: none;
    text-align: center;
    font-size: 24px;
    padding: 5px;
    display: block;
    width: 100%;
    user-select: none;
}

.action:hover[b-sm9l1z76ui] {
    cursor: pointer;
}
/* /Components/BackupDialog.razor.rz.scp.css */
.panel[b-cg11bnxkdr] {
    border: 3px solid black;
    width: 175px;
    height: 175px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

    .panel:hover[b-cg11bnxkdr] {
        background-color: #eee;
        cursor: pointer;
    }

.top-area[b-cg11bnxkdr] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-grow: 1;
}

.name[b-cg11bnxkdr] {
    font-size: 20px;
    width: 100%;
    text-align: center;
    font-weight: bold;
    user-select: none;
}

.title[b-cg11bnxkdr] {
    width: fit-content;
    font-size: 20px;
    font-weight: 900;
    user-select: none;
    border-bottom: 3px dotted black;
}

.backup-dialog[b-cg11bnxkdr] {
    display: flex;
    padding: 10px;
    gap: 20px;
    flex-direction: column;
}

.choices[b-cg11bnxkdr] {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.description[b-cg11bnxkdr] {
    font-size: 15px;
    text-align: center;
    user-select: none;
}
/* /Components/CommonButton.razor.rz.scp.css */
.button-container[b-h4xlg2hwwj] {
    width: fit-content;
}

.inactive[b-h4xlg2hwwj] {
    background-color: gray !important;
    box-shadow: none !important;
}

.inactive:hover[b-h4xlg2hwwj] {
    cursor: default !important;
    opacity: 1 !important;
}

.inactive:active[b-h4xlg2hwwj] {
    transform: none !important;
}

.has-border[b-h4xlg2hwwj] {
    border-width: 3px;
    border-style: solid;
    box-shadow: 4px 4px 0px 0px black;
    transition: transform 0.1s, box-shadow 0.1s;
}

.has-border:active[b-h4xlg2hwwj] {
    transform: translate(2px, 2px);
    box-shadow: 2px 2px 0px 0px black;
}

.button[b-h4xlg2hwwj] {
    text-decoration: none;
    display: flex;
    justify-content: center;
    align-items: center;
    width: fit-content;
    color: transparent;
    cursor: pointer;
}

.button:hover[b-h4xlg2hwwj] {
    opacity: 0.7;
    user-select: none;
    cursor: pointer;
    color: transparent;
}
/* /Components/CommonDialog.razor.rz.scp.css */
.common-dialog[b-3rrtpnan09] {
    user-select: none;
    padding: 20px;
    display: flex;
    flex-flow: column;
    gap: 20px;
}

.buttons[b-3rrtpnan09] {
    display: flex;
    gap: 30px;
    justify-content: center;
}

.ok-button[b-3rrtpnan09] {
    text-align: center;
    width: 50px;
    color: black;
}
/* /Components/Compose/ControlPanel.razor.rz.scp.css */
.control-panel[b-78mpn35aub] {
    display: flex;
    align-items: center;
    flex-grow: 1;
}

.center[b-78mpn35aub] {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: center;
    flex-grow: 1;
}

.playback-buttons[b-78mpn35aub] {
    display: flex;
    border: 3px solid transparent;
}

.bpm-display[b-78mpn35aub] {
    display: flex;
    align-items: center;
    gap: 8px;
    height: 36px;
    padding: 0 10px;
    background: black;
    border: 3px solid black;
}

.bpm-label[b-78mpn35aub] {
    font-weight: bold;
    font-size: 9px;
    color: #f59e0b;
    letter-spacing: 1px;
}

.bpm-display[b-78mpn35aub]  .picom-components-inline-number-editor {
    background: transparent;
    color: white;
    font-weight: bold;
    font-size: 13px;
    width: 70px;
    padding: 2px 4px;
    border: none;
}

.bpm-display[b-78mpn35aub]  .picom-components-inline-number-editor:focus {
    border: none;
    outline: 1px solid #f59e0b;
}

.time-signature-display[b-78mpn35aub] {
    display: flex;
    align-items: center;
    gap: 2px;
    height: 36px;
    padding: 0 6px;
    background: black;
    border: 3px solid black;
}

.time-signature-display[b-78mpn35aub]  .picom-components-inline-number-editor {
    background: transparent;
    color: white;
    font-weight: bold;
    font-size: 13px;
    width: 32px;
    padding: 2px 4px;
    border: none;
    text-align: center;
}

.time-signature-display[b-78mpn35aub]  .picom-components-inline-number-editor:focus {
    border: none;
    outline: 1px solid #f59e0b;
}

.time-signature-separator[b-78mpn35aub] {
    color: #f59e0b;
    font-weight: bold;
    font-size: 13px;
}

.time-signature-display[b-78mpn35aub]  .drop-down .select-wrapper {
    border-color: transparent !important;
    height: 28px;
}

.time-signature-display[b-78mpn35aub]  .drop-down .closed {
    background-color: transparent;
    color: white;
    font-weight: bold;
    font-size: 13px;
    display: flex;
    align-items: center;
}

.time-signature-display[b-78mpn35aub]  .drop-down .closed:hover {
    background-color: rgba(255, 255, 255, 0.15);
}

.time-signature-display[b-78mpn35aub]  .drop-down .options {
    border-color: black !important;
}

.time-signature-display[b-78mpn35aub]  .drop-down .options>li {
    padding: 2px 6px;
}

.time-display[b-78mpn35aub] {
    display: flex;
    align-items: center;
    height: 36px;
    padding: 0 12px;
    background: white;
    border: 3px solid black;
}

.time-value[b-78mpn35aub] {
    font-weight: bold;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.5px;
}

.title-editor[b-78mpn35aub] {
    max-width: 160px;
    flex-shrink: 1;
    min-width: 0;
    border: 3px solid black;
    padding: 0 8px;
    height: 36px;
    display: flex;
    align-items: center;
    background: white;
}

.title-editor[b-78mpn35aub]  input {
    border: none;
    font-weight: bold;
    font-size: 13px;
    width: 100%;
    min-width: 0;
}

.title-editor[b-78mpn35aub]  input:focus {
    border: none;
    outline: none;
}

.right[b-78mpn35aub] {
    display: flex;
    gap: 10px;
    margin-right: 10px;
}

/* モバイル対応 */
@media (max-width: 768px) {
    .center[b-78mpn35aub] {
        gap: 4px;
    }

    .bpm-display[b-78mpn35aub] {
        padding: 0 6px;
    }

    .time-signature-display[b-78mpn35aub] {
        display: none;
    }

    .time-display[b-78mpn35aub] {
        display: none;
    }

    .right[b-78mpn35aub] {
        display: none;
    }

    .title-editor[b-78mpn35aub] {
        display: none;
    }
}

.playing-disabled[b-78mpn35aub] {
    opacity: 0.5;
    pointer-events: none;
}
/* /Components/Compose/ExportDialog.razor.rz.scp.css */
.panel[b-rfpuz19qdj] {
    border: 3px solid black;
    width: 175px;
    height: 175px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

    .panel:hover[b-rfpuz19qdj] {
        background-color: #eee;
        cursor: pointer;
    }

.top-area[b-rfpuz19qdj] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-grow: 1;
}

.name[b-rfpuz19qdj] {
    font-size: 20px;
    width: 100%;
    text-align: center;
    font-weight: bold;
    user-select: none;
}

.title[b-rfpuz19qdj] {
    width: fit-content;
    font-size: 20px;
    font-weight: 900;
    user-select: none;
    border-bottom: 3px dotted black;
}

.export-dialog[b-rfpuz19qdj] {
    display: flex;
    padding: 10px;
    gap: 20px;
    flex-direction: column;
}

.choices[b-rfpuz19qdj] {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.description[b-rfpuz19qdj] {
    font-size: 15px;
    text-align: center;
    user-select: none;
}
/* /Components/Compose/MusicBox.razor.rz.scp.css */
.metadata-box[b-97rj1iqvhy] {
    border: 3px solid black;
    padding: 10px;
}

.metadata-header[b-97rj1iqvhy] {
    display: flex;
    justify-content: space-between;
}

.header-text[b-97rj1iqvhy] {
    font-size: 20px;
    user-select: none;
    font-weight: 900;
    border-bottom: 3px dotted black;
}

.close-button[b-97rj1iqvhy] {
    width: fit-content;
}

.delete-button[b-97rj1iqvhy] {
    display: flex;
    justify-content: end;
    margin-top: 10px;
}
/* /Components/Compose/NoteDetails.razor.rz.scp.css */
.note-details[b-vrr04g2frs] {
    border: 3px solid black;
    padding: 10px;
}

.metadata-header[b-vrr04g2frs] {
    display: flex;
}

.header-text[b-vrr04g2frs] {
    font-size: 20px;
    user-select: none;
    font-weight: 900;
    border-bottom: 3px dotted black;
}

.detail-editor[b-vrr04g2frs] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 12px;
}

.field-group[b-vrr04g2frs] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.field-label[b-vrr04g2frs] {
    font-size: 12px;
    font-weight: bold;
    color: #666;
    user-select: none;
}

.field-value[b-vrr04g2frs] {
    font-size: 13px;
    font-weight: bold;
    padding: 6px 8px;
    border: 3px solid black;
    background-color: #f3f4f6;
}

.pitch-editor[b-vrr04g2frs] {
    display: flex;
    gap: 4px;
    align-items: center;
}

.pitch-editor[b-vrr04g2frs]  > *:first-child {
    flex: 1;
}

.pitch-editor[b-vrr04g2frs]  > *:last-child {
    width: 50px;
}

.delete-button-box[b-vrr04g2frs] {
    display: flex;
    justify-content: flex-end;
}

.note-details-empty[b-vrr04g2frs] {
    padding: 16px;
    text-align: center;
    color: #999;
    font-size: 12px;
}

.dotted-toggle[b-vrr04g2frs] {
    display: flex;
    align-items: center;
    gap: 2px;
    font-size: 12px;
    font-weight: bold;
    cursor: pointer;
    user-select: none;
    flex-shrink: 0;
}

.tie-action-buttons[b-vrr04g2frs] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.tie-convert-button-box[b-vrr04g2frs] {
    display: flex;
}
/* /Components/Compose/NoteEffectEditor.razor.rz.scp.css */
.effect-editor[b-0n8ob17kup] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.effect-header[b-0n8ob17kup] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.effect-title[b-0n8ob17kup] {
    font-size: 14px;
    font-weight: 900;
    user-select: none;
}

.effect-empty[b-0n8ob17kup] {
    text-align: center;
    color: #999;
    font-size: 12px;
    padding: 8px;
}

.effect-chain[b-0n8ob17kup] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.effect-item[b-0n8ob17kup] {
    border: 3px solid black;
    background-color: #f9fafb;
    cursor: pointer;
    transition: background-color 0.1s;
}

.effect-item:hover[b-0n8ob17kup] {
    background-color: #f3f4f6;
}

.effect-item.selected[b-0n8ob17kup] {
    background-color: #fef3c7;
    border-color: #f59e0b;
}

.effect-item-header[b-0n8ob17kup] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 8px;
}

.effect-type-label[b-0n8ob17kup] {
    font-size: 12px;
    font-weight: bold;
    user-select: none;
}

.effect-item-actions[b-0n8ob17kup] {
    display: flex;
    gap: 2px;
}

.effect-item-actions[b-0n8ob17kup]  .button-container {
    flex-shrink: 0;
}

.effect-params[b-0n8ob17kup] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 8px;
    border-top: 2px solid #e5e7eb;
}

.effect-params .field-group[b-0n8ob17kup] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.effect-params .field-label[b-0n8ob17kup] {
    font-size: 11px;
    font-weight: bold;
    color: #666;
    user-select: none;
}

.arpeggio-custom-input[b-0n8ob17kup] {
    font-size: 13px;
    font-weight: bold;
    padding: 6px 8px;
    border: 3px solid black;
    background-color: white;
    font-family: monospace;
}

.arpeggio-custom-input:focus[b-0n8ob17kup] {
    outline: none;
    border-color: #f59e0b;
}
/* /Components/Compose/PianoRoll/NoteGrid.razor.rz.scp.css */
.note-grid[b-uvriq9ywa9] {
    background-color: #fafafa;
    position: relative;
}

.grid-content[b-uvriq9ywa9] {
    position: relative;
}

.grid-lines[b-uvriq9ywa9] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
}

.grid-lines-quarter[b-uvriq9ywa9] {
    z-index: 1;
}

.grid-lines-measure[b-uvriq9ywa9] {
    z-index: 2;
}

.seek-line[b-uvriq9ywa9] {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background-color: orange;
    z-index: 9;
    pointer-events: none;
}

/* スクロールバースタイルは親コンテナ(.piano-roll-main)に定義 */
/* /Components/Compose/PianoRoll/PianoRoll.razor.rz.scp.css */
.piano-roll[b-q3e0eg9gw8] {
    display: flex;
    flex-direction: column;
    height: 100%;
    max-height: 100%;
    overflow: hidden;
    background-color: white;
    border: 3px solid black;
    user-select: none;
}

.piano-roll-main[b-q3e0eg9gw8] {
    flex: 1;
    min-height: 0;
    display: flex;
    position: relative;
}

.scroll-area[b-q3e0eg9gw8] {
    flex: 1;
    min-width: 0;
    overflow: auto;
}

.scroll-area[b-q3e0eg9gw8]::-webkit-scrollbar {
    width: 12px;
    height: 12px;
}

.scroll-area[b-q3e0eg9gw8]::-webkit-scrollbar-track {
    background: #e0e0e0;
    border: 2px solid black;
}

.scroll-area[b-q3e0eg9gw8]::-webkit-scrollbar-thumb {
    background: #888;
    border: 2px solid black;
}

.scroll-area[b-q3e0eg9gw8]::-webkit-scrollbar-thumb:hover {
    background: #666;
}

.scroll-area[b-q3e0eg9gw8]::-webkit-scrollbar-corner {
    background: #e0e0e0;
}

.scroll-layout[b-q3e0eg9gw8] {
    display: grid;
    grid-template-columns: 60px max-content;
    grid-template-rows: 24px max-content;
    width: max-content;
}

.corner-spacer[b-q3e0eg9gw8] {
    position: sticky;
    top: 0;
    left: 0;
    z-index: 12;
    background-color: #333;
    border-right: 3px solid black;
    border-bottom: 2px solid black;
}

.seek-pico-icon[b-q3e0eg9gw8] {
    position: absolute;
    top: 0;
    width: 30px;
    height: 30px;
    background-image: url('/loading_picos/pico_1.svg');
    background-size: 30px 60px;
    background-position: 0 -30px;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 9;
    display: none;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .scroll-layout[b-q3e0eg9gw8] {
        grid-template-columns: 48px max-content;
    }
}

.piano-roll-footer[b-q3e0eg9gw8] {
    border-top: 3px solid black;
    background-color: #f5f5f5;
    padding: 8px;
    display: flex;
    flex-direction: column;
    transition: opacity 0.2s;
    gap: 8px;
    overflow: visible;
    position: relative;
}

/* 行1: ナビゲーション (モバイルのみ) */
.footer-row-nav[b-q3e0eg9gw8] {
    display: none;
    justify-content: space-between;
    align-items: center;
}

.undo-redo-mobile[b-q3e0eg9gw8] {
    display: flex;
    gap: 4px;
}

.footer-row-nav[b-q3e0eg9gw8]  .button {
    font-size: 11px;
}

/* 行2: ツール行 */
.footer-row-tools[b-q3e0eg9gw8] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.control-group[b-q3e0eg9gw8] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.control-group-zoom[b-q3e0eg9gw8] {
    flex: 1;
    min-width: 100px;
}

.control-label[b-q3e0eg9gw8] {
    font-size: 10px;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* 行3: LENGTH セクション */
.footer-row-length[b-q3e0eg9gw8] {
    border: 2px solid black;
    background-color: #f0f0f0;
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.length-header[b-q3e0eg9gw8] {
    display: flex;
    gap: 12px;
    align-items: center;
}

.length-modifiers[b-q3e0eg9gw8] {
    display: flex;
    gap: 6px;
}

.length-buttons[b-q3e0eg9gw8] {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    padding-bottom: 4px;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.length-buttons[b-q3e0eg9gw8]::-webkit-scrollbar {
    display: none;
}

.dot-button[b-q3e0eg9gw8] {
    padding: 8px 16px;
    font-size: 12px;
    font-weight: bold;
    border: 3px solid black;
    background-color: #e5e5e5;
    cursor: pointer;
    box-shadow: 4px 4px 0px 0px black;
    transition: transform 0.1s, box-shadow 0.1s;
}

.dot-button:active[b-q3e0eg9gw8] {
    transform: translate(2px, 2px);
    box-shadow: 2px 2px 0px 0px black;
}

.dot-button.active[b-q3e0eg9gw8] {
    background-color: #f59e0b;
}

.length-btn[b-q3e0eg9gw8] {
    padding: 8px 16px;
    font-size: 12px;
    font-weight: bold;
    border: 3px solid black;
    background-color: #e5e5e5;
    cursor: pointer;
    box-shadow: 4px 4px 0px 0px black;
    transition: transform 0.1s, box-shadow 0.1s;
    white-space: nowrap;
    flex-shrink: 0;
}

.length-btn:active[b-q3e0eg9gw8] {
    transform: translate(2px, 2px);
    box-shadow: 2px 2px 0px 0px black;
}

.length-btn.active[b-q3e0eg9gw8] {
    background-color: black;
    color: white;
    box-shadow: none;
    transform: translate(2px, 2px);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .footer-row-nav[b-q3e0eg9gw8] {
        display: flex;
    }

    .piano-roll-footer[b-q3e0eg9gw8] {
        padding: 6px;
        gap: 6px;
    }

    .footer-row-tools[b-q3e0eg9gw8] {
        gap: 8px;
        flex-wrap: wrap;
    }

    .control-group-zoom[b-q3e0eg9gw8] {
        flex-basis: 100%;
        order: 1;
    }

    .control-label[b-q3e0eg9gw8] {
        font-size: 9px;
    }
}

.playing-disabled[b-q3e0eg9gw8] {
    opacity: 0.5;
    pointer-events: none;
}
/* /Components/Compose/PianoRoll/PianoRollKeyboard.razor.rz.scp.css */
.piano-keyboard[b-hc425lml8h] {
    position: sticky;
    left: 0;
    z-index: 10;
    border-right: 3px solid black;
    background-color: #f0f0f0;
    -webkit-touch-callout: none;
}

.keys-container[b-hc425lml8h] {
    display: flex;
    flex-direction: column;
}

.piano-key[b-hc425lml8h] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-right: 4px;
    box-sizing: border-box;
    flex-shrink: 0;
}

.white-key[b-hc425lml8h] {
    background-color: white;
    border-bottom: 1px solid #ccc;
}

.black-key[b-hc425lml8h] {
    background-color: #333;
    width: 70%;
    margin-left: auto;
    border: 1px solid #222;
    border-right: none;
}

.key-label[b-hc425lml8h] {
    font-size: 9px;
    color: #888;
    font-weight: normal;
}

.key-label-c[b-hc425lml8h] {
    font-weight: bold;
    color: #333;
}

/* プレビュー押下中のキー */
.piano-key.key-preview-active[b-hc425lml8h] {
    transition: background-color 0.05s ease;
}

.piano-key[b-hc425lml8h] {
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
}

/* 再生中のキーハイライト */
.piano-key[b-hc425lml8h] {
    position: relative;
    overflow: visible;
}

.piano-key.key-highlighted[b-hc425lml8h] {
    transition: background-color 0.05s ease;
}

.black-key.key-highlighted[b-hc425lml8h] {
    background-blend-mode: screen;
}

/* ノートオンセット時のパーティクル */
.piano-key.key-onset[b-hc425lml8h]::before,
.piano-key.key-onset[b-hc425lml8h]::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    pointer-events: none;
    will-change: transform, opacity;
}

.piano-key.key-onset[b-hc425lml8h]::before {
    background-color: var(--particle-color, coral);
    box-shadow:
        6px -6px 0 0 var(--particle-color, coral),
        14px -10px 0 -1px var(--particle-color, coral),
        -4px -12px 0 0 white,
        10px -3px 0 -1px var(--particle-color, coral),
        20px -7px 0 -1px var(--particle-color, coral),
        3px -18px 0 -1px white,
        -6px -5px 0 0 var(--particle-color, coral),
        18px -14px 0 -1px white,
        2px -9px 0 0 var(--particle-color, coral),
        12px -15px 0 -1px white,
        -2px -6px 0 -1px var(--particle-color, coral),
        16px -4px 0 0 var(--particle-color, coral),
        8px -20px 0 -1px var(--particle-color, coral),
        24px -12px 0 -1px white,
        -8px -10px 0 0 white,
        22px -2px 0 -1px var(--particle-color, coral);
    animation: particle-burst-up-b-hc425lml8h 0.5s ease-out forwards;
}

.piano-key.key-onset[b-hc425lml8h]::after {
    background-color: var(--particle-color, coral);
    box-shadow:
        8px 5px 0 0 var(--particle-color, coral),
        16px 8px 0 -1px white,
        -3px 10px 0 0 var(--particle-color, coral),
        12px 2px 0 -1px var(--particle-color, coral),
        22px 4px 0 -1px white,
        5px 15px 0 -1px var(--particle-color, coral),
        -5px 3px 0 0 white,
        19px 12px 0 -1px var(--particle-color, coral),
        4px 8px 0 0 var(--particle-color, coral),
        14px 14px 0 -1px white,
        -1px 4px 0 -1px var(--particle-color, coral),
        18px 1px 0 0 var(--particle-color, coral),
        10px 18px 0 -1px var(--particle-color, coral),
        24px 10px 0 -1px white,
        -7px 8px 0 0 white,
        20px 6px 0 -1px var(--particle-color, coral);
    animation: particle-burst-down-b-hc425lml8h 0.5s ease-out forwards;
}

@keyframes particle-burst-up-b-hc425lml8h {
    0% {
        transform: translate(0, 0) scale(1);
        opacity: 1;
    }

    40% {
        opacity: 1;
    }

    100% {
        transform: translate(24px, -16px) scale(0.1);
        opacity: 0;
    }
}

@keyframes particle-burst-down-b-hc425lml8h {
    0% {
        transform: translate(0, 0) scale(1);
        opacity: 1;
    }

    40% {
        opacity: 1;
    }

    100% {
        transform: translate(20px, 14px) scale(0.1);
        opacity: 0;
    }
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .piano-keyboard[b-hc425lml8h] {
        width: 48px;
    }

    .key-label[b-hc425lml8h] {
        font-size: 8px;
    }
}
/* /Components/Compose/PianoRoll/PianoRollNote.razor.rz.scp.css */
.piano-roll-note[b-nsscvx7f66] {
    position: absolute;
    border-radius: 2px;
    cursor: pointer;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding-left: 4px;
    box-sizing: border-box;
    transition: transform 0.1s ease;
}

.active-note[b-nsscvx7f66] {
    background-color: #f9a825;
    border: 3px solid black;
    z-index: 8;
}

.active-note:hover[b-nsscvx7f66] {
    filter: brightness(1.1);
}

.ghost-note[b-nsscvx7f66] {
    background-color: rgba(200, 200, 200, 0.5);
    border: 1px solid #aaa;
    z-index: 5;
}

.ghost-note:hover[b-nsscvx7f66] {
    background-color: rgba(200, 200, 200, 0.7);
}

.ghost-note-playing[b-nsscvx7f66] {
    border: 2px solid rgba(0, 0, 0, 0.3);
    z-index: 5;
}

.ghost-note-playing:hover[b-nsscvx7f66] {
    filter: brightness(1.1);
}

.selected-note[b-nsscvx7f66] {
    border-color: #f59e0b;
}

.tie-note[b-nsscvx7f66] {
    border-style: dashed;
}

.tuplet-note[b-nsscvx7f66] {
    background-color: #f59e0b;
}

.note-marker[b-nsscvx7f66] {
    font-size: 8px;
    font-weight: bold;
    color: black;
    background-color: rgba(255, 255, 255, 0.8);
    padding: 0 2px;
    border-radius: 2px;
    margin-right: 2px;
}

.tie-marker[b-nsscvx7f66] {
    background-color: #dbeafe;
}

.tuplet-marker[b-nsscvx7f66] {
    background-color: #fef3c7;
}

/* ドラッグ中のプレースホルダースタイル */
.piano-roll-note.dragging-placeholder[b-nsscvx7f66] {
    opacity: 0.3;
    border-style: dashed;
}

/* リサイズハンドル（将来の拡張用） */
.piano-roll-note[b-nsscvx7f66]::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 6px;
    cursor: ew-resize;
}
/* /Components/Compose/PianoRoll/PianoRollTrackPanel.razor.rz.scp.css */
.track-panel[b-01xpfwmt5f] {
    width: 140px;
    border-right: 3px solid black;
    display: flex;
    flex-direction: column;
    background-color: #f5f5f5;
    flex-shrink: 0;
    z-index: 12;
}

.track-panel-header[b-01xpfwmt5f] {
    padding: 4px 8px;
    font-size: 10px;
    font-weight: bold;
    letter-spacing: 0.05em;
    border-bottom: 2px solid black;
    background-color: #333;
    color: white;
    text-align: center;
    height: 24px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.track-panel-list[b-01xpfwmt5f] {
    flex: 1;
    overflow-y: auto;
    min-height: 0;
}

.track-panel-list[b-01xpfwmt5f]::-webkit-scrollbar {
    width: 8px;
}

.track-panel-list[b-01xpfwmt5f]::-webkit-scrollbar-track {
    background: #e0e0e0;
}

.track-panel-list[b-01xpfwmt5f]::-webkit-scrollbar-thumb {
    background: #888;
    border: 1px solid black;
}

.track-panel-item[b-01xpfwmt5f] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
    border-bottom: 1px solid #ddd;
    cursor: pointer;
    font-size: 11px;
    font-weight: bold;
    transition: background-color 0.1s ease;
}

.track-panel-item:hover[b-01xpfwmt5f] {
    background-color: #e8e8e8;
}

.track-panel-item.active[b-01xpfwmt5f] {
    background-color: #f59e0b;
    box-shadow: inset 4px 0 0 black;
}

.track-panel-item.muted[b-01xpfwmt5f] {
    opacity: 0.5;
}

.track-panel-item.active.muted[b-01xpfwmt5f] {
    opacity: 0.7;
}

.track-color-stripe[b-01xpfwmt5f] {
    width: 4px;
    height: 20px;
    border: 1px solid black;
    flex-shrink: 0;
    border-radius: 1px;
}

.track-panel-name[b-01xpfwmt5f] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.track-panel-item[b-01xpfwmt5f]  .button-container {
    flex-shrink: 0;
}

.track-panel-item[b-01xpfwmt5f]  .has-border {
    box-shadow: none;
    border-width: 2px;
}

.track-mute-btn[b-01xpfwmt5f] {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: bold;
    border: 2px solid black;
    background-color: white;
    cursor: pointer;
    padding: 0;
    transition: all 0.1s ease;
}

.track-mute-btn:active[b-01xpfwmt5f] {
    transform: translate(1px, 1px);
}

.track-mute-btn.muted[b-01xpfwmt5f] {
    background-color: #ef4444;
    color: white;
}

.track-panel-add[b-01xpfwmt5f] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px;
    border: none;
    border-top: 2px solid black;
    background-color: #e5e5e5;
    cursor: pointer;
    transition: background-color 0.1s ease;
}

.track-panel-add:hover[b-01xpfwmt5f] {
    background-color: #d5d5d5;
}

.track-panel-add:active[b-01xpfwmt5f] {
    background-color: #c5c5c5;
}

/* モバイル対応 */
@media (max-width: 768px) {
    .track-panel[b-01xpfwmt5f] {
        position: absolute;
        left: 0;
        top: 0;
        bottom: 0;
        z-index: 15;
        width: 140px;
        box-shadow: 4px 0 8px rgba(0, 0, 0, 0.2);
        transform: translateX(-100%);
        transition: transform 0.2s ease;
    }

    .track-panel.open[b-01xpfwmt5f] {
        transform: translateX(0);
    }
}

.playing-disabled[b-01xpfwmt5f] {
    opacity: 0.5;
    pointer-events: none;
}
/* /Components/Compose/PianoRoll/TimeRuler.razor.rz.scp.css */
.time-ruler[b-xamfk195yn] {
    position: sticky;
    top: 0;
    z-index: 9;
    display: flex;
    height: 24px;
    background-color: #f0f0f0;
    border-bottom: 2px solid black;
    overflow: hidden;
    touch-action: none;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
}

.measure-group[b-xamfk195yn] {
    display: flex;
    flex-shrink: 0;
}

.beat-marker[b-xamfk195yn] {
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 1px solid #ccc;
    box-sizing: border-box;
}

.beat-marker.measure-start[b-xamfk195yn] {
    border-left: 2px solid #999;
    background-color: #e8e8e8;
}

.beat-label[b-xamfk195yn] {
    font-size: 10px;
    font-weight: bold;
    color: #666;
    user-select: none;
}

.measure-start .beat-label[b-xamfk195yn] {
    color: #333;
}
/* /Components/Compose/TieDialog.razor.rz.scp.css */
.tie-dialog[b-w0sl1ksdgs] {
    display: flex;
    padding: 10px;
    gap: 16px;
    flex-direction: column;
    width: 280px;
}

@media (min-width: 768px) {
    .tie-dialog[b-w0sl1ksdgs] {
        width: 360px;
    }
}

.title[b-w0sl1ksdgs] {
    width: fit-content;
    font-size: 20px;
    font-weight: 900;
    user-select: none;
    border-bottom: 3px dotted black;
}

.description-text[b-w0sl1ksdgs] {
    font-size: 13px;
    color: #666;
}

.section-label[b-w0sl1ksdgs] {
    font-size: 12px;
    font-weight: bold;
    color: #666;
    user-select: none;
}

.length-list-section[b-w0sl1ksdgs] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.length-list[b-w0sl1ksdgs] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    border: 3px solid black;
    padding: 8px;
    background-color: #f9fafb;
    max-height: 150px;
    overflow-y: auto;
}

.length-list-item[b-w0sl1ksdgs] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.length-list-index[b-w0sl1ksdgs] {
    font-size: 12px;
    font-weight: bold;
    color: #666;
    min-width: 16px;
    text-align: center;
}

.length-list-value[b-w0sl1ksdgs] {
    font-size: 13px;
    font-weight: bold;
    flex: 1;
}

.length-list-item[b-w0sl1ksdgs]  .button-container {
    flex-shrink: 0;
}

.length-list-empty[b-w0sl1ksdgs] {
    font-size: 12px;
    color: #999;
    text-align: center;
    padding: 8px 0;
}

.length-selector[b-w0sl1ksdgs] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    border: 3px solid black;
    padding: 8px;
    background-color: #f3f4f6;
}

.selector-header[b-w0sl1ksdgs] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.length-grid[b-w0sl1ksdgs] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
}

.length-grid[b-w0sl1ksdgs]  .button-container {
    display: flex;
}

.length-grid[b-w0sl1ksdgs]  .button-container .button {
    flex: 1;
    text-align: center;
}

.dialog-buttons[b-w0sl1ksdgs] {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}
/* /Components/Compose/TrackDetail.razor.rz.scp.css */
.track-detail[b-yf6rzw9rpm] {
    border: 3px solid black;
    padding: 10px;
}

.metadata-header[b-yf6rzw9rpm] {
    display: flex;
}

.header-text[b-yf6rzw9rpm] {
    font-size: 20px;
    user-select: none;
    font-weight: 900;
    border-bottom: 3px dotted black;
}

.detail-editor[b-yf6rzw9rpm] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 12px;
}

.field-group[b-yf6rzw9rpm] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.field-group[b-yf6rzw9rpm]  .drop-down {
    width: 100%;
}

.field-label[b-yf6rzw9rpm] {
    font-size: 12px;
    font-weight: bold;
    color: #666;
    user-select: none;
}

.mute-button[b-yf6rzw9rpm] {
}

.delete-button-box[b-yf6rzw9rpm] {
    display: flex;
    justify-content: flex-end;
}
/* /Components/Compose/TrackScaleBar.razor.rz.scp.css */
.scale-bar[b-fmya8b8fpy] {
    grid-area: 1/1;
    height: 55px;
    width: 200px;
    justify-self: stretch;
    position: relative;
    touch-action: none
}

.knob[b-fmya8b8fpy] {
    width: 10px;
    height: 30px;
    background-color: orange;
    border: solid 2px black;
}

.draggable-container[b-fmya8b8fpy] {
    user-select: none;
    position: relative;
    display: flex;
    align-items: center;
    height: 35px;
    z-index: 1;
}

.scale-texts[b-fmya8b8fpy] {
    display: flex;
    height: 15px;
    width: 200px;
}

.scale-label[b-fmya8b8fpy] {
    width: 10px;
    text-align: center;
    font-size: 9px;
    line-height: 15px;
}

.scale-tick[b-fmya8b8fpy] {
    width: 10px;
}

.horizontal-grid-line[b-fmya8b8fpy] {
    position: absolute;
    height: 35px;
    left: 5px;
    width: 200px;
}

.vertical-grid-line[b-fmya8b8fpy] {
    position: absolute;
    top: 30px;
    left: 5px;
    width: 190px;
    height: 2px;
}
/* /Components/Compose/TupletDialog.razor.rz.scp.css */
.tuplet-dialog[b-hsfv9n4z16] {
    display: flex;
    padding: 10px;
    gap: 16px;
    flex-direction: column;
    width: 280px;
}

@media (min-width: 768px) {
    .tuplet-dialog[b-hsfv9n4z16] {
        width: 360px;
    }
}

.title[b-hsfv9n4z16] {
    width: fit-content;
    font-size: 20px;
    font-weight: 900;
    user-select: none;
    border-bottom: 3px dotted black;
}

.section-label[b-hsfv9n4z16] {
    font-size: 12px;
    font-weight: bold;
    color: #666;
    user-select: none;
}

.count-section[b-hsfv9n4z16] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.count-selector[b-hsfv9n4z16] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.count-selector[b-hsfv9n4z16]  .picom-components-inline-number-editor {
    width: 48px;
    height: 36px;
    text-align: center;
    font-size: 14px;
}

.notes-section[b-hsfv9n4z16] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.notes-list[b-hsfv9n4z16] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    border: 3px solid black;
    padding: 8px;
    background-color: #f9fafb;
    max-height: 200px;
    overflow-y: auto;
}

.note-row[b-hsfv9n4z16] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.note-index[b-hsfv9n4z16] {
    font-size: 12px;
    font-weight: bold;
    color: #666;
    min-width: 16px;
    text-align: center;
}

.note-row[b-hsfv9n4z16]  .picom-components-inline-number-editor {
    width: 48px;
    height: 30px;
    text-align: center;
    font-size: 13px;
}

.dialog-buttons[b-hsfv9n4z16] {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}
/* /Components/ConfirmDialog.razor.rz.scp.css */
.confirm-dialog[b-gxgcn0u101] {
    user-select: none;
    padding: 20px;
    display: flex;
    flex-flow: column;
    gap: 20px;
}

.buttons[b-gxgcn0u101] {
    display: flex;
    gap: 30px;
    justify-content: center;
}

.ok_button[b-gxgcn0u101] {
    color: black;
}

.cancel_button[b-gxgcn0u101] {
    color: black;
}
/* /Components/ContextMenu.razor.rz.scp.css */
.context-menu-overlay[b-tfj5d79xa0] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9;
}

.menu-dropdown[b-tfj5d79xa0] {
    position: fixed;
    background: white;
    border: 3px solid black;
    box-shadow: 4px 4px 0px 0px black;
    z-index: 10;
    min-width: 150px;
}

.menu-item[b-tfj5d79xa0] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    cursor: pointer;
    white-space: nowrap;
    font-size: 14px;
}

.menu-item:hover[b-tfj5d79xa0] {
    background-color: #f3f4f6;
}

.menu-item.disabled[b-tfj5d79xa0] {
    color: #999;
    cursor: default;
    pointer-events: none;
}
/* /Components/DialogHost.razor.rz.scp.css */
.dialog-host[b-h0sl98kgps] {
    display: flex;
    justify-content: center;
    align-items: center;
    top: 0;
    left: 0;
    position: fixed;
    z-index: 100;
    width: 100vw;
    height: 100vh;
}

.hidden[b-h0sl98kgps] {
    display: none;
}

.dialog-content-box[b-h0sl98kgps] {
    background-color: white;
    border: solid 3px black;
}

.close-button-box[b-h0sl98kgps] {
    display: flex;
    justify-content: flex-end;
}

.content-box[b-h0sl98kgps] {
    max-width: 90vw;
    max-height: 80vh;
    overflow-y: auto;
}
/* /Components/Dropdown.razor.rz.scp.css */
.drop-down[b-6vastapolu] {
    position: relative;
    width: max-content;
}

.options-sizer[b-6vastapolu] {
    height: 0;
    overflow: hidden;
    visibility: hidden;
    padding-left: 6px;
    padding-right: 6px;
    white-space: nowrap;
}

.select-wrapper[b-6vastapolu] {
    height: 32px;
    width: 100%;
    user-select: none;
}

.closed[b-6vastapolu] {
    background-color: white;
    padding-left: 6px;
    padding-right: 6px;
    height: 100%;
}

.closed:hover[b-6vastapolu] {
    background-color: lightgray;
    cursor: pointer;
}

.options[b-6vastapolu] {
    background-color: white;
    text-indent: 0.01px;
    padding-left: 6px;
    padding-right: 6px;
    margin: 0;
    position: absolute;
    top: 100%;
    width: 100%;
    z-index: 99;
    white-space: nowrap;
}

.options.expand-upward[b-6vastapolu] {
    top: auto;
    bottom: 100%;
}

.options>li[b-6vastapolu] {
    list-style: none;
    cursor: pointer;
    background-color: white;
}

.options>li:hover[b-6vastapolu] {
    background-color: lightgray;
}
/* /Components/GhostDragLayer.razor.rz.scp.css */
/* 元の位置のゴースト（プレースホルダー） */
.ghost-original[b-dyw1vuswwl] {
    position: fixed;
    opacity: 0.3;
    pointer-events: none;
    z-index: 9997;
    border: 2px dashed black;
    background-color: rgba(200, 200, 200, 0.3);
}

/* 着地予告ゴースト（スナップ位置） */
.ghost-snap[b-dyw1vuswwl] {
    position: fixed;
    opacity: 0.6;
    pointer-events: none;
    z-index: 9998;
    border: 3px dashed black;
}

/* ドラッグ中のノート（不透明、マウス追従） */
.ghost-dragging[b-dyw1vuswwl] {
    position: fixed;
    opacity: 1;
    pointer-events: none;
    z-index: 9999;
    border: 3px solid black;
    box-shadow: 4px 4px 0px 0px rgba(0, 0, 0, 0.3);
    display: flex;
    align-items: center;
    padding-left: 10px;
}
/* /Components/LoadingOverlay.razor.rz.scp.css */
.loading-overlay[b-tavz3xmv7y] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 200;
    background-color: rgba(255, 255, 255, 0.8);
}

.overlay-flipbook[b-tavz3xmv7y] {
    width: 200px;
    height: 200px;
    flex-grow: 0;
}

.overlay-message[b-tavz3xmv7y] {
    font-size: 24px;
    font-weight: bold;
    margin-top: 16px;
    user-select: none;
}

.progress-bar-container[b-tavz3xmv7y] {
    width: 240px;
    height: 16px;
    border: 3px solid black;
    margin-top: 12px;
    background-color: white;
}

.progress-bar-fill[b-tavz3xmv7y] {
    height: 100%;
    background-color: #f59e0b;
    transition: width 0.2s ease;
}

.progress-text[b-tavz3xmv7y] {
    font-size: 16px;
    font-weight: bold;
    margin-top: 4px;
    user-select: none;
}
/* /Components/PicomIcon.razor.rz.scp.css */
.picom-icon[b-q4x765enl8] {
    user-select: none;
    display: inline-block;
    vertical-align: middle;
}
/* /Components/RenameDialog.razor.rz.scp.css */
.rename-dialog[b-92foao9d7h] {
    user-select: none;
    padding: 20px;
    display: flex;
    flex-flow: column;
    gap: 20px;
}

.label[b-92foao9d7h] {
    font-weight: bold;
}

.rename-input[b-92foao9d7h] {
    padding: 12px;
    border: 3px solid black;
    font-size: 16px;
    width: 100%;
    box-sizing: border-box;
}

.rename-input:focus[b-92foao9d7h] {
    outline: none;
    border-color: #f59e0b;
}

.buttons[b-92foao9d7h] {
    display: flex;
    gap: 30px;
    justify-content: center;
}

.ok-button[b-92foao9d7h] {
    color: black;
}

.cancel-button[b-92foao9d7h] {
    color: black;
}
/* /Components/ThreeDotsMenu.razor.rz.scp.css */
.three-dots-menu[b-583u4mcxle] {
    position: relative;
}

.dots-button[b-583u4mcxle] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 8px;
    background: transparent;
    border: none;
    cursor: pointer;
    border-radius: 4px;
}

.dots-button:hover[b-583u4mcxle] {
    background-color: rgba(0, 0, 0, 0.1);
}

.dot[b-583u4mcxle] {
    width: 4px;
    height: 4px;
    background-color: black;
    border-radius: 50%;
}

.menu-overlay[b-583u4mcxle] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9;
}

.menu-dropdown[b-583u4mcxle] {
    position: absolute;
    right: 0;
    top: 100%;
    background: white;
    border: 3px solid black;
    box-shadow: 4px 4px 0px 0px black;
    z-index: 10;
    min-width: 150px;
}

.menu-item[b-583u4mcxle] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    cursor: pointer;
    white-space: nowrap;
}

.menu-item:hover[b-583u4mcxle] {
    background-color: #f3f4f6;
}
/* /Components/ToggleButton.razor.rz.scp.css */
.toggle-button[b-ogkdbhy924] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    width: 40px;
    height: 25px;
    border: solid 2px black;
    background-color: gray;
}

.bar[b-ogkdbhy924] {
    border: solid 2px darkgray;
    background-color: white;
}

.on[b-ogkdbhy924] {
    grid-row: 1;
    grid-column: 2;
    background-color: lightgreen;
}

.off[b-ogkdbhy924] {
    grid-row: 1;
    grid-column: 1;
    background-color: white;
}
/* /Components/VersionIndicator.razor.rz.scp.css */
.version-box[b-4i8n3uu7qm] {
    padding: 16px;
    background-color: #f3f4f6;
    border: 3px solid black;
}

.version-text[b-4i8n3uu7qm] {
    font-size: 10px;
    margin: 0 0 4px 0;
}

.alpha-text[b-4i8n3uu7qm] {
    display: inline-block;
    padding: 2px 6px;
    margin: 0 0 8px 0;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: white;
    background-color: #ef4444;
    border: 2px solid black;
}

.color-indicators[b-4i8n3uu7qm] {
    display: flex;
    gap: 8px;
}

.indicator[b-4i8n3uu7qm] {
    width: 12px;
    height: 12px;
    border: 2px solid black;
}

.indicator.red[b-4i8n3uu7qm] {
    background-color: #ef4444;
}

.indicator.green[b-4i8n3uu7qm] {
    background-color: #22c55e;
}

.indicator.blue[b-4i8n3uu7qm] {
    background-color: #3b82f6;
}
/* /Layout/EmptyLayout.razor.rz.scp.css */
main[b-s2cbyyijvr] {
    height: 100vh;
}
/* /Layout/MainLayout.razor.rz.scp.css */
.body[b-9a6s34ahc3] {
    height: 100vh;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    width: 100%;
}

main[b-9a6s34ahc3] {
    height: 100vh;
    display: flex;
}
/* /Pages/Compose.razor.rz.scp.css */
/* Compose Header */
.compose-header[b-s4d3bfrd7g] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 56px;
    background-color: white;
    border-bottom: 4px solid black;
    display: flex;
    align-items: center;
    padding: 0 16px;
    z-index: 100;
    gap: 16px;
}

.header-left[b-s4d3bfrd7g] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.header-logo[b-s4d3bfrd7g] {
    height: 32px;
}

.undo-redo-buttons[b-s4d3bfrd7g] {
    display: flex;
    gap: 4px;
    margin-left: 8px;
    padding-left: 8px;
    border-left: 2px dotted black;
}

/* 2列レイアウト */
.compose-layout[b-s4d3bfrd7g] {
    display: flex;
    margin-top: 60px;
    height: calc(100vh - 60px);
    overflow: hidden;
}

/* 左サイドバー */
.sidebar[b-s4d3bfrd7g] {
    width: 256px;
    border-right: 4px solid black;
    background-color: white;
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    overflow-y: auto;
    transition: margin-left 0.3s ease;
}

.sidebar-closed[b-s4d3bfrd7g] {
    margin-left: -260px;
}

.sidebar-header[b-s4d3bfrd7g] {
    padding: 12px 16px;
    border-bottom: 2px solid black;
    background-color: #f3f4f6;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sidebar-title[b-s4d3bfrd7g] {
    font-weight: bold;
    font-size: 14px;
    margin: 0;
}

.sidebar-tabs[b-s4d3bfrd7g] {
    display: flex;
    border-bottom: 3px solid black;
}

.sidebar-tab[b-s4d3bfrd7g] {
    flex: 1;
    padding: 8px;
    border: none;
    background-color: #f3f4f6;
    font-weight: bold;
    font-size: 12px;
    cursor: pointer;
}

.sidebar-tab.active[b-s4d3bfrd7g] {
    background-color: white;
    color: #f59e0b;
    border-bottom: 3px solid #f59e0b;
    margin-bottom: -3px;
}

.sidebar-tab:not(.active):hover[b-s4d3bfrd7g] {
    background-color: #e5e7eb;
}

.multi-select-message[b-s4d3bfrd7g] {
    padding: 16px;
    text-align: center;
    color: #666;
    font-size: 12px;
    font-weight: bold;
}

.sidebar-content[b-s4d3bfrd7g] {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    flex: 1;
}

/* メインコンテンツ */
.main-content[b-s4d3bfrd7g] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    position: relative;
    padding: 8px;
}

.sidebar-toggle[b-s4d3bfrd7g] {
    position: absolute;
    top: 8px;
    left: 8px;
    width: 40px;
    height: 40px;
    border: 3px solid black;
    background-color: white;
    box-shadow: 3px 3px 0px black;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    transition: transform 0.1s, box-shadow 0.1s;
}

.sidebar-toggle:active[b-s4d3bfrd7g] {
    transform: translate(2px, 2px);
    box-shadow: 1px 1px 0px black;
}

.sidebar-toggle.hidden[b-s4d3bfrd7g] {
    display: none;
}


/* デスクトップではハンバーガーとDrawerアクションを非表示 */
.mobile-hamburger[b-s4d3bfrd7g] {
    display: none;
}

.home-button[b-s4d3bfrd7g] {
    display: flex;
}

.drawer-actions[b-s4d3bfrd7g] {
    display: none;
}

.drawer-backdrop[b-s4d3bfrd7g] {
    display: none;
}

.drawer-button-content[b-s4d3bfrd7g] {
    display: flex;
    align-items: center;
    gap: 8px;
    color: black;
    font-weight: bold;
    font-size: 12px;
}

.drawer-action-item[b-s4d3bfrd7g] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.drawer-label[b-s4d3bfrd7g] {
    font-size: 10px;
    font-weight: bold;
    color: #666;
}

.drawer-time-signature[b-s4d3bfrd7g] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.drawer-time-signature-separator[b-s4d3bfrd7g] {
    font-weight: bold;
    font-size: 13px;
}

/* モバイル対応 */
@media (max-width: 768px) {
    .compose-header[b-s4d3bfrd7g] {
        padding: 0 8px;
        gap: 8px;
    }

    .header-logo[b-s4d3bfrd7g] {
        display: none;
    }

    .mobile-hamburger[b-s4d3bfrd7g] {
        display: flex;
    }

    .sidebar[b-s4d3bfrd7g] {
        position: fixed;
        top: 60px;
        left: 0;
        bottom: 0;
        z-index: 50;
        box-shadow: 4px 0 8px rgba(0, 0, 0, 0.2);
    }

    .sidebar-closed[b-s4d3bfrd7g] {
        margin-left: -260px;
    }

    .sidebar-open[b-s4d3bfrd7g] {
        margin-left: 0;
    }

    .drawer-actions[b-s4d3bfrd7g] {
        display: flex;
        flex-direction: column;
        gap: 12px;
        margin-top: auto;
        padding: 16px;
        border-top: 2px dotted black;
    }

    .drawer-button-row[b-s4d3bfrd7g] {
        display: flex;
        gap: 12px;
    }

    .drawer-button-row[b-s4d3bfrd7g]  .button-container {
        flex: 1;
    }

    .drawer-backdrop[b-s4d3bfrd7g] {
        display: block;
        position: fixed;
        top: 60px;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.3);
        z-index: 49;
    }

    .main-content[b-s4d3bfrd7g] {
        padding: 8px;
    }

    .sidebar-toggle[b-s4d3bfrd7g] {
        display: none !important;
    }

    .home-button[b-s4d3bfrd7g] {
        display: none;
    }

    .undo-redo-buttons[b-s4d3bfrd7g] {
        display: none;
    }

}

.playing-disabled[b-s4d3bfrd7g] {
    opacity: 0.5;
    pointer-events: none;
}
/* /Pages/Home.razor.rz.scp.css */
.home-layout[b-rftxp20wbf] {
    display: flex;
    height: 100vh;
}

/* Sidebar */
.sidebar[b-rftxp20wbf] {
    width: 256px;
    border-right: 4px solid black;
    background-color: white;
    display: flex;
    flex-direction: column;
    padding: 24px;
    flex-shrink: 0;
}

.sidebar-header[b-rftxp20wbf] {
    margin-bottom: 48px;
}

.sidebar-logo[b-rftxp20wbf] {
    width: 100%;
    height: auto;
}

.sidebar-nav[b-rftxp20wbf] {
    flex-grow: 1;
}

.nav-item[b-rftxp20wbf] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    background-color: #f59e0b;
    border: 3px solid black;
    box-shadow: 4px 4px 0px 0px black;
    text-decoration: none;
    color: black;
    font-weight: bold;
    font-size: 10px;
}

.sidebar-footer[b-rftxp20wbf] {
    margin-top: auto;
}

/* Main Content */
.main-content[b-rftxp20wbf] {
    flex: 1;
    overflow-y: auto;
    padding: 32px;
    background-image: radial-gradient(circle, #cbd5e1 1px, transparent 1px);
    background-size: 20px 20px;
}

/* Page Header */
.page-header[b-rftxp20wbf] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 40px;
    flex-wrap: wrap;
    gap: 16px;
}

.page-title[b-rftxp20wbf] {
    font-size: 28px;
    font-weight: bold;
    user-select: none;
    margin: 0;
}

.action-buttons[b-rftxp20wbf] {
    display: flex;
    gap: 16px;
}

.action-buttons[b-rftxp20wbf]  .button {
    font-size: 14px;
    gap: 16px;
    user-select: none;
}

/* Projects Section */
.section-title[b-rftxp20wbf] {
    font-size: 20px;
    font-weight: bold;
    border-bottom: 4px solid #f59e0b;
    padding-bottom: 4px;
    margin-bottom: 32px;
    display: inline-block;
}

.projects-grid[b-rftxp20wbf] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 32px;
}

/* Project Card */
.project-card[b-rftxp20wbf] {
    border: 4px solid black;
    box-shadow: 4px 4px 0px 0px black;
    background-color: white;
    position: relative;
}

.card-preview[b-rftxp20wbf] {
    height: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #f3f4f6;
    cursor: pointer;
    overflow: hidden;
}

.card-preview:hover[b-rftxp20wbf] {
    background-color: #e5e7eb;
}

.card-info[b-rftxp20wbf] {
    padding: 16px;
    border-top: 4px solid black;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.card-text[b-rftxp20wbf] {
    flex: 1;
    min-width: 0;
    cursor: pointer;
}

.card-title[b-rftxp20wbf] {
    font-size: 14px;
    font-weight: bold;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.card-date[b-rftxp20wbf] {
    font-size: 10px;
    color: #666;
    display: block;
    margin-top: 4px;
}

/* Responsive: 768px breakpoint */
@media (max-width: 768px) {
    .home-layout[b-rftxp20wbf] {
        flex-direction: column;
    }

    .sidebar[b-rftxp20wbf] {
        width: 100%;
        border-right: none;
        border-bottom: 4px solid black;
        padding: 16px;
        flex-direction: row;
        align-items: center;
    }

    .sidebar-header[b-rftxp20wbf] {
        margin-bottom: 0;
        flex-shrink: 0;
    }

    .sidebar-logo[b-rftxp20wbf] {
        width: 140px;
    }

    .sidebar-nav[b-rftxp20wbf] {
        display: none;
    }

    .sidebar-footer[b-rftxp20wbf] {
        margin-top: 0;
        margin-left: auto;
    }

    .page-header[b-rftxp20wbf] {
        flex-direction: column;
        align-items: flex-start;
    }

    .action-buttons[b-rftxp20wbf] {
        width: 100%;
        flex-direction: column;
    }

    .action-buttons[b-rftxp20wbf]  .button-container {
        width: 100%;
    }

    .action-buttons[b-rftxp20wbf]  .button {
        width: 100%;
    }

    .projects-grid[b-rftxp20wbf] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Settings.razor.rz.scp.css */
.settings-layout[b-nedkobuxaz] {
    display: flex;
    flex-direction: column;
    height: 100vh;
    background: #f9fafb;
}

.settings-header[b-nedkobuxaz] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: white;
    border-bottom: 3px solid black;
}

.header-logo[b-nedkobuxaz] {
    height: 28px;
}

.settings-title[b-nedkobuxaz] {
    font-size: 18px;
    font-weight: bold;
    margin: 0;
}

.settings-content[b-nedkobuxaz] {
    padding: 24px 16px;
    max-width: 480px;
}

.settings-group[b-nedkobuxaz] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.settings-label[b-nedkobuxaz] {
    font-weight: bold;
    font-size: 14px;
}
