.cmd-root {
    --cmd-bg: rgba(8, 5, 15, 0.96);
    --cmd-panel: rgba(18, 13, 30, 0.98);
    --cmd-border: #8f87a7;
    --cmd-border-hot: #c8a6ff;
    --cmd-system: #ddb9ff;
    --cmd-command: #f8f4ff;
    --cmd-warning: #ffd36a;
    --cmd-error: #ff7d9c;
    --cmd-route: #83ffd8;
    --cmd-meta: #8dd7ff;
    --cmd-shadow: 8px 8px 0 rgba(0, 0, 0, 0.82), 0 0 22px rgba(138, 43, 226, 0.24);
    --cmd-font: "JetBrains Mono", "Cascadia Mono", "Cascadia Code", Consolas, "Lucida Console", var(--font-terminal, "VT323", monospace);
    font-family: var(--cmd-font);
    font-variant-ligatures: none;
    position: fixed;
    z-index: 9000;
    inset: auto max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) auto;
    text-align: left;
}

@font-face {
    font-family: "JetBrains Mono";
    src: url("../assets/fonts/jetbrains-mono/jetbrains-mono-latin-400-normal.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 400;
}

@font-face {
    font-family: "JetBrains Mono";
    src: url("../assets/fonts/jetbrains-mono/jetbrains-mono-latin-500-normal.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 500;
}

@font-face {
    font-family: "JetBrains Mono";
    src: url("../assets/fonts/jetbrains-mono/jetbrains-mono-latin-700-normal.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 700;
}

@font-face {
    font-family: "JetBrains Mono";
    src: url("../assets/fonts/jetbrains-mono/jetbrains-mono-latin-800-normal.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 800;
}


body.overlay-open .cmd-root:not(.is-open) {
    display: none;
}

.cmd-taskbar {
    min-width: 132px;
    min-height: 44px;
    border: 2px solid var(--cmd-border);
    border-color: #f3edff #555064 #555064 #f3edff;
    background: linear-gradient(180deg, #2a223a, #151120);
    color: var(--cmd-command);
    box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.75);
    cursor: pointer;
    font: 600 20px/1.1 var(--cmd-font);
    letter-spacing: 0;
    padding: 8px 14px;
    text-align: left;
}

.cmd-root.is-open {
    z-index: 100140;
}

body:has(.cmd-root.is-open) .mitsuki-trigger-container {
    z-index: 100150;
}

.cmd-taskbar {
    display: none !important;
}

.cmd-taskbar:hover,
.cmd-taskbar:focus-visible,
.cmd-window button:focus-visible,
.cmd-window a:focus-visible,
.cmd-input:focus-visible,
.cmd-output:focus-visible {
    outline: 3px solid var(--neon-cyan, #00ffff);
    outline-offset: 3px;
}

.cmd-window {
    position: fixed;
    right: max(14px, env(safe-area-inset-right));
    bottom: max(14px, env(safe-area-inset-bottom));
    width: min(720px, calc(100dvw - 28px));
    height: min(520px, calc(100dvh - 28px));
    max-height: calc(100dvh - 28px);
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto auto auto auto;
    background: var(--cmd-bg);
    border: 3px solid var(--cmd-border);
    box-shadow: var(--cmd-shadow);
    color: var(--cmd-system);
    text-align: left;
    text-shadow: 0 0 7px rgba(221, 185, 255, 0.36);
}

.cmd-window[hidden],
.cmd-taskbar[hidden] {
    display: none !important;
}

.cmd-titlebar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 10px;
    background: linear-gradient(90deg, #4b1f73, #222035 58%, #583b75);
    border-bottom: 3px solid var(--cmd-border);
}

.cmd-titlebar h2 {
    margin: 0;
    color: #fff;
    font: 700 20px/1.1 var(--cmd-font);
    letter-spacing: 0;
}

.cmd-window-controls {
    display: flex;
    gap: 6px;
}

.cmd-window-control,
.cmd-history-btn {
    width: 36px;
    height: 32px;
    border: 2px solid #d9d0e8;
    background: #221b2d;
    color: #fff;
    cursor: pointer;
    font: 700 18px/1 var(--cmd-font);
}

.cmd-output {
    min-height: 0;
    overflow: auto;
    padding: 14px;
    background:
        linear-gradient(rgba(255, 255, 255, 0.028) 50%, rgba(0, 0, 0, 0.18) 50%),
        linear-gradient(90deg, rgba(0, 255, 255, 0.055), transparent 26%, rgba(255, 61, 242, 0.045)),
        #040207;
    background-size: 100% 4px, auto, auto;
    color: var(--cmd-system);
    font-size: 17px;
    line-height: 1.38;
    text-align: left;
}

.cmd-line {
    margin: 0 0 6px;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
    text-align: left;
}

.cmd-root.is-program-render-animated .cmd-line[data-manual-entry="true"] {
    animation: cmdManualLineIn 260ms ease-out both;
}

.cmd-root.is-command-render-animated .cmd-line[data-cmd-block="true"] {
    position: relative;
    animation: cmdBlockLineIn 220ms steps(5, end) both;
    animation-delay: min(calc(var(--cmd-block-order, 0) * 38ms), 340ms);
}

.cmd-root.is-command-render-animated .cmd-line[data-cmd-block="true"]::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(131, 255, 216, 0.16), transparent 70%);
    opacity: 0;
    animation: cmdBlockScan 220ms steps(4, end) both;
    animation-delay: min(calc(var(--cmd-block-order, 0) * 38ms), 340ms);
}

.cmd-root.is-program-render-animated .cmd-line[data-manual-entry="true"]:nth-child(2) { animation-delay: 18ms; }
.cmd-root.is-program-render-animated .cmd-line[data-manual-entry="true"]:nth-child(3) { animation-delay: 36ms; }
.cmd-root.is-program-render-animated .cmd-line[data-manual-entry="true"]:nth-child(4) { animation-delay: 54ms; }
.cmd-root.is-program-render-animated .cmd-line[data-manual-entry="true"]:nth-child(5) { animation-delay: 72ms; }
.cmd-root.is-program-render-animated .cmd-line[data-manual-entry="true"]:nth-child(6) { animation-delay: 90ms; }
.cmd-root.is-program-render-animated .cmd-line[data-manual-entry="true"]:nth-child(n+7) { animation-delay: 108ms; }

.cmd-line-command {
    color: var(--cmd-command);
    font-weight: 600;
}

.cmd-line-command:not(:first-child) {
    margin-top: 14px;
}

.cmd-line-warning {
    color: var(--cmd-warning);
}

.cmd-line-error {
    color: var(--cmd-error);
}

.cmd-line-system {
    color: var(--cmd-system);
    font-weight: 500;
}

.cmd-line-route {
    color: var(--cmd-route);
    font-weight: 650;
}

.cmd-line-meta,
.cmd-line-label {
    color: var(--cmd-meta);
    font-weight: 700;
}

.cmd-line-manual {
    color: #f7f3ff;
    font-weight: 430;
    margin-bottom: 8px;
    padding-left: 10px;
    border-left: 1px solid rgba(247, 243, 255, 0.16);
    text-shadow: 0 0 5px rgba(255, 255, 255, 0.16);
}

.cmd-line-manual-title {
    color: #efe7ff;
    font-size: 1.08em;
    font-weight: 800;
    margin: 0 0 10px;
    padding-bottom: 7px;
    border-bottom: 1px solid rgba(221, 185, 255, 0.32);
    text-shadow: 0 0 9px rgba(221, 185, 255, 0.48);
}

.cmd-line-manual-cover-brand,
.cmd-line-manual-cover-title,
.cmd-line-manual-cover-subtitle {
    margin: 0 0 8px;
    padding-left: 12px;
    color: #f8f4ff;
    border-left: 1px solid rgba(141, 215, 255, 0.34);
    text-shadow: 0 0 7px rgba(255, 255, 255, 0.2);
}

.cmd-line-manual-cover-brand {
    color: #bfeeff;
    font-weight: 800;
}

.cmd-line-manual-cover-title {
    color: #fff;
    font-weight: 800;
    letter-spacing: 0;
}

.cmd-line-manual-cover-subtitle {
    color: #f7f3ff;
    font-weight: 550;
    padding-bottom: 9px;
    border-bottom: 1px dashed rgba(141, 215, 255, 0.26);
}

.cmd-line-manual-section {
    color: #d9bdff;
    font-size: 1.04em;
    font-weight: 800;
    margin: 4px 0 12px;
    padding: 7px 9px;
    border: 1px solid rgba(217, 189, 255, 0.28);
    background: rgba(217, 189, 255, 0.07);
}

.cmd-line-manual-topic {
    color: #9ee9ff;
    font-weight: 750;
    margin: 6px 0 10px;
    padding: 0 0 6px 10px;
    border-bottom: 1px dashed rgba(158, 233, 255, 0.34);
}

.cmd-line-manual-subhead {
    color: #ffd36a;
    font-size: 0.92em;
    font-weight: 800;
    margin: 13px 0 7px;
    padding-top: 8px;
    border-top: 1px solid rgba(255, 211, 106, 0.28);
    text-transform: uppercase;
    text-shadow: 0 0 8px rgba(255, 211, 106, 0.36);
}

.cmd-line-manual-entity,
.cmd-line-manual-key,
.cmd-line-manual-status,
.cmd-line-manual-explanation,
.cmd-line-manual-question,
.cmd-line-manual-answer,
.cmd-line-manual-schedule,
.cmd-line-manual-command {
    color: #f7f3ff;
    font-weight: 440;
    margin: 0 0 8px;
    padding: 5px 9px 6px 11px;
    border-left: 2px solid rgba(247, 243, 255, 0.18);
}

.cmd-line-manual-explanation {
    background: rgba(141, 215, 255, 0.035);
    border-left-color: rgba(141, 215, 255, 0.36);
}

.cmd-line-manual-entity {
    background: rgba(142, 255, 229, 0.055);
    border-left-color: rgba(142, 255, 229, 0.42);
}

.cmd-line-manual-key {
    background: rgba(255, 211, 106, 0.07);
    border-left-color: rgba(255, 211, 106, 0.62);
}

.cmd-line-manual-status {
    background: linear-gradient(90deg, rgba(255, 211, 106, 0.08), rgba(255, 125, 156, 0.035) 70%, transparent);
    border-left-color: rgba(255, 211, 106, 0.66);
}

.cmd-line-manual-question {
    background: rgba(141, 215, 255, 0.055);
    border-left-color: rgba(141, 215, 255, 0.58);
}

.cmd-line-manual-answer {
    background: rgba(199, 125, 255, 0.045);
    border-left-color: rgba(199, 125, 255, 0.5);
}

.cmd-line-manual-schedule {
    margin-bottom: 5px;
    padding-block: 3px;
    background: rgba(255, 255, 255, 0.025);
    border-left-color: rgba(141, 215, 255, 0.3);
}

.cmd-line-manual-command {
    color: #83ffd8;
    background: rgba(131, 255, 216, 0.055);
    border-left-color: rgba(131, 255, 216, 0.62);
    font-weight: 700;
}

.cmd-line-manual-final-clause {
    margin: 0 0 0;
    padding: 7px 10px;
    color: #fff;
    background: rgba(14, 8, 22, 0.92);
    border-left: 2px solid #9d63d9;
    text-shadow: none;
}

.cmd-line-manual-final-clause[data-final-clause="label"] {
    margin-top: 4px;
    padding: 4px 10px;
    color: #fff;
    background: #9d63d9;
    border-left: 0;
    font-weight: 800;
}

.cmd-line-manual-final-clause[data-final-clause="statement"] {
    font-weight: 700;
}

.cmd-line-manual-final-clause[data-final-clause="note"] {
    margin-bottom: 12px;
    padding-bottom: 11px;
    border-bottom: 1px solid rgba(157, 99, 217, 0.72);
    font-weight: 450;
}

.cmd-line-manual-alert {
    margin: 9px 0 10px;
    padding: 7px 9px;
    border-left: 3px solid var(--cmd-warning);
    background: rgba(255, 211, 106, 0.08);
    color: #ffe49a;
    font-weight: 700;
}

.cmd-manual-entity,
.cmd-manual-key,
.cmd-manual-status,
.cmd-manual-explanation,
.cmd-manual-question,
.cmd-manual-answer,
.cmd-manual-schedule {
    font-weight: 800;
}

.cmd-manual-entity {
    color: #8effe5;
    text-shadow: 0 0 8px rgba(142, 255, 229, 0.32);
}

.cmd-manual-key {
    color: #ffd36a;
    text-shadow: 0 0 8px rgba(255, 211, 106, 0.28);
}

.cmd-manual-status {
    color: #ffd36a;
    text-shadow: 0 0 8px rgba(255, 211, 106, 0.26);
}

.cmd-manual-explanation {
    color: #bfeeff;
    font-weight: 750;
}

.cmd-manual-question {
    color: #8dd7ff;
}

.cmd-manual-answer {
    color: #d9bdff;
}

.cmd-manual-schedule {
    color: #8dd7ff;
    font-weight: 800;
}

.cmd-manual-punctuation {
    color: #c77dff;
    font-weight: 800;
}

.cmd-manual-signal {
    color: #ff8acb;
    font-weight: 800;
    text-shadow: 0 0 7px rgba(255, 138, 203, 0.28);
}

.cmd-manual-quote {
    color: #bfeeff;
    font-weight: 650;
}

.cmd-manual-code,
.cmd-inline-code,
.cmd-inline-tag,
.cmd-inline-label {
    display: inline;
    margin: 0 0.08em;
    padding: 0.02em 0.34em;
    border: 1px solid rgba(131, 255, 216, 0.32);
    background: rgba(131, 255, 216, 0.075);
    color: #83ffd8;
    font-weight: 800;
    text-shadow: 0 0 7px rgba(131, 255, 216, 0.28);
}

.cmd-inline-tag {
    border-color: rgba(255, 211, 106, 0.34);
    background: rgba(255, 211, 106, 0.075);
    color: #ffd36a;
    text-shadow: 0 0 7px rgba(255, 211, 106, 0.24);
}

.cmd-inline-label {
    border-color: rgba(141, 215, 255, 0.3);
    background: rgba(141, 215, 255, 0.06);
    color: #bfeeff;
    text-shadow: 0 0 7px rgba(141, 215, 255, 0.22);
}

.cmd-inline-body {
    color: inherit;
}

.cmd-line[data-manual-dialogue="true"] {
    margin-bottom: 7px;
    padding: 4px 9px 5px 11px;
    background: rgba(255, 255, 255, 0.026);
    border-left: 2px solid currentColor;
}

.cmd-manual-speaker {
    font-weight: 800;
}

.cmd-root.is-program-render-animated .cmd-line[data-manual-entry="true"] span {
    animation: cmdManualGlyphIn 180ms ease-out both;
}

.cmd-line-akane,
.cmd-line[data-character="akane"] { color: #c77dff; font-weight: 650; }
.cmd-line-rika,
.cmd-line[data-character="rika"] { color: #ff8a4b; font-weight: 650; }
.cmd-line-momo,
.cmd-line[data-character="momo"] { color: #ff8acb; font-weight: 650; }
.cmd-line-jun,
.cmd-line[data-character="jun"] { color: #63d8ff; font-weight: 650; }
.cmd-line-reiko,
.cmd-line[data-character="reiko"] { color: #b889ff; font-weight: 650; }
.cmd-line-mitsuki,
.cmd-line[data-character="mitsuki"] { color: #ff7a9e; font-weight: 650; }
.cmd-line-hoshi,
.cmd-line[data-character="hoshi"] { color: #ff5f79; font-weight: 650; }

.cmd-line-action {
    color: var(--cmd-route);
    margin: 5px 0;
}

.cmd-action-option {
    display: block;
    width: 100%;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font: inherit;
    letter-spacing: 0;
    padding: 3px 6px;
    text-align: left;
    text-shadow: inherit;
}

.cmd-line-action.is-selected .cmd-action-option,
.cmd-action-option:hover {
    background: rgba(131, 255, 216, 0.16);
    color: #f8fffb;
    text-shadow: 0 0 8px rgba(131, 255, 216, 0.65);
}

.cmd-program-nav {
    display: none;
}

.cmd-program-nav-btn {
    width: 40px;
    height: 56px;
    border: 2px solid rgba(131, 255, 216, 0.76);
    background: rgba(5, 2, 10, 0.86);
    color: var(--cmd-route);
    cursor: pointer;
    font: 800 30px/1 var(--cmd-font);
    text-shadow: 0 0 8px rgba(131, 255, 216, 0.55);
}

.cmd-program-footer {
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 9px;
    border-top: 1px solid rgba(200, 166, 255, 0.26);
    background: rgba(6, 3, 12, 0.96);
    color: rgba(248, 244, 255, 0.72);
    font-size: 11px;
    font-weight: 400;
    line-height: 1.25;
}

.cmd-root.is-program-active .cmd-program-footer {
    display: flex;
}

.cmd-program-footer-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cmd-program-footer-actions {
    display: flex;
    flex: 0 0 auto;
    gap: 5px;
}

.cmd-program-footer-btn {
    min-width: 30px;
    min-height: 25px;
    border: 1px solid rgba(131, 255, 216, 0.45);
    background: rgba(131, 255, 216, 0.08);
    color: var(--cmd-route);
    cursor: pointer;
    font: 700 12px/1 var(--cmd-font);
}

.cmd-suggestions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 8px 10px;
    border-top: 2px solid rgba(200, 166, 255, 0.34);
    background: rgba(18, 13, 30, 0.98);
}

.cmd-suggestions[hidden] {
    display: none;
}

.cmd-suggestion {
    border: 1px solid rgba(221, 185, 255, 0.55);
    background: rgba(255, 255, 255, 0.06);
    color: var(--cmd-system);
    cursor: pointer;
    font: 500 14px/1.25 var(--cmd-font);
    padding: 6px 8px;
    text-align: left;
}

.cmd-form {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    padding: 10px;
    border-top: 3px solid var(--cmd-border);
    background: var(--cmd-panel);
    text-align: left;
}

.cmd-prompt {
    color: #ffffff;
    font-size: 23px;
    white-space: nowrap;
}

.cmd-input {
    width: 100%;
    min-width: 0;
    min-height: 40px;
    border: 2px solid rgba(221, 185, 255, 0.48);
    background: #05020a;
    color: #ffffff;
    caret-color: var(--neon-cyan, #00ffff);
    font: 500 18px/1.2 var(--cmd-font);
    padding: 7px 10px;
    text-align: left;
}

.cmd-touch-history {
    display: none;
    gap: 5px;
}

@media (max-width: 700px) {
    .cmd-root {
        inset: auto max(10px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) auto;
    }

    .cmd-taskbar {
        width: auto;
        min-width: 0;
        max-width: min(46vw, 172px);
        min-height: 48px;
        padding-inline: 12px;
        white-space: nowrap;
    }

    .cmd-window {
        inset: 0;
        width: 100dvw;
        height: 100dvh;
        max-height: 100dvh;
        border-width: 0;
        box-shadow: none;
    }

    .cmd-output {
        font-size: 15px;
        padding: 12px;
    }

    .cmd-root.is-program-active .cmd-output {
        padding-inline: 12px;
    }

    .cmd-root.is-program-active .cmd-program-nav {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        padding: 7px 10px 4px;
        border-top: 1px solid rgba(131, 255, 216, 0.24);
        background: rgba(4, 2, 7, 0.98);
    }

    .cmd-program-nav-btn {
        flex: 1 1 0;
        width: auto;
        height: 38px;
        font-size: 22px;
    }

    .cmd-program-footer {
        align-items: stretch;
        flex-direction: column;
        gap: 6px;
        padding: 5px 10px 7px;
        font-size: 10px;
    }

    .cmd-program-footer-text {
        white-space: normal;
    }

    .cmd-program-footer-actions {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .cmd-program-footer-btn {
        min-height: 32px;
    }

    .cmd-form {
        grid-template-columns: 1fr auto;
        padding: 9px max(10px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));
    }

    .cmd-prompt {
        grid-column: 1 / -1;
        font-size: 20px;
    }

    .cmd-touch-history {
        display: flex;
    }

    .cmd-suggestion {
        font-size: 13px;
    }

    body:has(.cmd-root.is-open) #sidebarToggle {
        display: none !important;
    }

    body:has(.cmd-root.is-open) .mitsuki-trigger-container {
        display: none !important;
    }
}

@media (prefers-reduced-motion: no-preference) {
    .cmd-taskbar,
    .cmd-window {
        transition: transform var(--cg-motion-fast, 180ms) var(--cg-ease-ui, ease),
            opacity var(--cg-motion-fast, 180ms) var(--cg-ease-ui, ease);
    }
}

@media (prefers-reduced-motion: reduce) {
    .cmd-taskbar,
    .cmd-window {
        transition: none;
    }

    .cmd-root.is-program-active .cmd-line {
        animation: none;
    }

    .cmd-root.is-program-render-animated .cmd-line[data-manual-entry="true"],
    .cmd-root.is-program-render-animated .cmd-line[data-manual-entry="true"] span,
    .cmd-root.is-command-render-animated .cmd-line[data-cmd-block="true"],
    .cmd-root.is-command-render-animated .cmd-line[data-cmd-block="true"]::after {
        animation: none;
    }
}

@keyframes cmdBlockLineIn {
    0% {
        opacity: 0;
        clip-path: inset(0 100% 0 0);
        transform: translateX(-6px);
        filter: brightness(1.6);
    }

    62% {
        opacity: 1;
        clip-path: inset(0 14% 0 0);
    }

    100% {
        opacity: 1;
        clip-path: inset(0 0 0 0);
        transform: translateX(0);
        filter: none;
    }
}

@keyframes cmdBlockScan {
    0% { opacity: 0; transform: translateX(-18%); }
    42% { opacity: 1; }
    100% { opacity: 0; transform: translateX(18%); }
}

@keyframes cmdManualLineIn {
    from {
        clip-path: inset(0 100% 0 0);
        opacity: 0;
        transform: translateY(4px);
    }
    to {
        clip-path: inset(0 0 0 0);
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes cmdManualGlyphIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
