/**
 * PWNBOX CYBER COMMAND — OPERATIVE NOTES & INLINE PAYLOAD VAULT STYLES
 * Bauhaus Cyberpunk Layout & In-Stream Code Block Editor
 */

/* 1. Global Viewport & Zoom Fix (Eliminates bottom black strip) */
html.notes-html,
body.notes-body {
    zoom: 1 !important;
    height: 100vh !important;
    max-height: 100vh !important;
    width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background-color: var(--bg-base) !important;
    box-sizing: border-box !important;
}

.notes-app-container {
    display: flex;
    flex-direction: column;
    height: 100vh !important;
    max-height: 100vh !important;
    width: 100vw !important;
    background-color: var(--bg-base);
    color: var(--text-main);
    overflow: hidden;
    position: relative;
    box-sizing: border-box;
}

/* 2. Notes Top Header */
.notes-top-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 20px;
    background: var(--bg-panel);
    border-bottom: var(--border-width) solid var(--border-color);
    box-shadow: 0 2px 0 var(--border-color);
    z-index: 100;
    gap: 12px;
    flex-shrink: 0;
}

.notes-header-left {
    display: flex;
    align-items: center;
    gap: 12px;
}

.notes-header-logo {
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: var(--text-main);
}

.notes-header-title {
    font-family: 'Space Mono', monospace;
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: 0.5px;
}

.notes-header-tag {
    font-family: 'Space Mono', monospace;
    font-size: 0.65rem;
    background: #9333ea;
    color: #fff;
    padding: 2px 8px;
    border: 1px solid #000;
    font-weight: 800;
    letter-spacing: 1px;
}

.notes-header-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.notes-nav-btn {
    font-family: 'Space Mono', monospace;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 6px 12px;
    border: 2px solid var(--border-color);
    background: var(--bg-base);
    color: var(--text-main);
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-shadow: 2px 2px 0 var(--border-color);
    transition: transform 0.1s, box-shadow 0.1s;
}

.notes-nav-btn:hover {
    transform: translate(-1px, -1px);
    box-shadow: 3px 3px 0 var(--border-color);
}

.notes-nav-btn:active {
    transform: translate(1px, 1px);
    box-shadow: 1px 1px 0 var(--border-color);
}

.notes-sync-badge {
    font-family: 'Space Mono', monospace;
    font-size: 0.72rem;
    padding: 6px 12px;
    border: 2px solid var(--border-color);
    background: rgba(16, 185, 129, 0.12);
    color: #10b981;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.notes-sync-badge.guest {
    background: rgba(245, 158, 11, 0.12);
    color: #f59e0b;
    cursor: pointer;
}

/* 3. Two-Panel Body Workspace */
.notes-workspace {
    display: flex;
    flex: 1;
    min-height: 0;
    overflow: hidden;
    position: relative;
}

/* Left Sidebar (Notes List) */
.notes-sidebar {
    width: 340px;
    min-width: 280px;
    max-width: 420px;
    background: var(--bg-panel);
    border-right: var(--border-width) solid var(--border-color);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    z-index: 10;
    flex-shrink: 0;
}

.notes-sidebar-header {
    padding: 12px 14px;
    border-bottom: 2px solid var(--border-color);
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: var(--bg-base);
}

.notes-new-btn {
    width: 100%;
    padding: 10px;
    background: var(--bauhaus-red);
    color: #ffffff;
    border: 2px solid var(--border-color);
    box-shadow: 3px 3px 0 var(--border-color);
    font-family: 'Space Mono', monospace;
    font-size: 0.85rem;
    font-weight: 800;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: transform 0.1s;
}

.notes-new-btn:hover {
    transform: translate(-1px, -1px);
    box-shadow: 4px 4px 0 var(--border-color);
}

.notes-search-box {
    position: relative;
    width: 100%;
}

.notes-search-input {
    width: 100%;
    padding: 8px 30px 8px 10px;
    background: var(--bg-panel);
    border: 2px solid var(--border-color);
    color: var(--text-main);
    font-family: 'Space Mono', monospace;
    font-size: 0.78rem;
    box-sizing: border-box;
}

.notes-search-clear {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    font-weight: bold;
    display: none;
}

/* Category Filter Pills */
.notes-filter-bar {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    padding: 6px 14px 10px;
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-base);
    scrollbar-width: thin;
}

.notes-filter-pill {
    padding: 4px 10px;
    border: 1px solid var(--border-color);
    background: var(--bg-panel);
    color: var(--text-muted);
    font-family: 'Space Mono', monospace;
    font-size: 0.68rem;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s, color 0.15s;
}

.notes-filter-pill.active {
    background: var(--text-main);
    color: var(--bg-base);
    border-color: var(--text-main);
}

/* Notes List Feed */
.notes-list {
    flex: 1;
    overflow-y: auto;
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.note-item-card {
    padding: 12px;
    border: 2px solid var(--border-color);
    background: var(--bg-base);
    cursor: pointer;
    box-shadow: 2px 2px 0 var(--border-color);
    transition: transform 0.1s, box-shadow 0.1s, border-color 0.15s;
    display: flex;
    flex-direction: column;
    gap: 6px;
    position: relative;
}

.note-item-card:hover {
    transform: translate(-1px, -1px);
    box-shadow: 3px 3px 0 var(--border-color);
}

.note-item-card.active {
    border-color: #9333ea;
    background: var(--bg-panel);
    box-shadow: 4px 4px 0 #9333ea;
}

.note-item-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.note-item-title {
    font-family: 'Space Mono', monospace;
    font-size: 0.85rem;
    font-weight: 800;
    color: var(--text-main);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}

.note-item-badge {
    font-family: 'Space Mono', monospace;
    font-size: 0.62rem;
    padding: 2px 6px;
    border: 1px solid var(--border-color);
    font-weight: 700;
    text-transform: uppercase;
}

.note-item-snippet {
    font-size: 0.75rem;
    color: var(--text-muted);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 1.4;
}

.note-item-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-family: 'Space Mono', monospace;
    font-size: 0.65rem;
    color: var(--text-muted);
    margin-top: 4px;
}

.note-item-code-count {
    background: rgba(147, 51, 234, 0.15);
    color: #9333ea;
    padding: 1px 6px;
    border-radius: 2px;
    font-weight: 800;
}

.notes-sidebar-footer {
    padding: 10px 14px;
    border-top: 2px solid var(--border-color);
    background: var(--bg-base);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    font-family: 'Space Mono', monospace;
    font-size: 0.72rem;
    flex-shrink: 0;
}

/* 4. Right Main Panel (Note Editor) */
.notes-editor-panel {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
    background: var(--bg-base);
}

.editor-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 18px;
    background: var(--bg-panel);
    border-bottom: 2px solid var(--border-color);
    gap: 10px;
    flex-wrap: wrap;
    flex-shrink: 0;
}

.editor-toolbar-left {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.editor-toolbar-right {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.editor-btn {
    font-family: 'Space Mono', monospace;
    font-size: 0.75rem;
    font-weight: 800;
    padding: 6px 12px;
    border: 2px solid var(--border-color);
    background: var(--bg-base);
    color: var(--text-main);
    box-shadow: 2px 2px 0 var(--border-color);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: transform 0.1s;
    user-select: none;
}

.editor-btn:hover {
    transform: translate(-1px, -1px);
    box-shadow: 3px 3px 0 var(--border-color);
}

.editor-btn:active {
    transform: translate(1px, 1px);
    box-shadow: 1px 1px 0 var(--border-color);
}

.editor-btn.btn-save {
    background: var(--bauhaus-blue);
    color: #ffffff;
}

.editor-btn.btn-view-toggle {
    background: #059669;
    color: #ffffff;
}

.editor-btn.btn-delete {
    background: transparent;
    color: var(--bauhaus-red);
    border-color: var(--bauhaus-red);
}

.editor-save-indicator {
    font-family: 'Space Mono', monospace;
    font-size: 0.72rem;
    margin-left: 4px;
}

/* 5. In-Stream Tactical Code Block & Markdown Insert Toolbar */
.instream-code-toolbar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 24px;
    background: var(--bg-panel);
    border-bottom: 1px solid var(--border-color);
    flex-wrap: wrap;
    flex-shrink: 0;
}

.instream-tool-btn {
    font-family: 'Space Mono', monospace;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 4px 10px;
    background: var(--bg-base);
    color: var(--text-main);
    border: 1px solid var(--border-color);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: background 0.15s, color 0.15s;
}

.instream-tool-btn:hover {
    background: var(--text-main);
    color: var(--bg-base);
}

.instream-lang-select {
    padding: 4px 8px;
    font-family: 'Space Mono', monospace;
    font-size: 0.72rem;
    font-weight: 700;
    background: var(--bg-base);
    color: var(--text-main);
    border: 1px solid var(--border-color);
    outline: none;
    cursor: pointer;
}

/* 6. Editor Scrollable Body */
.editor-body {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 20px 28px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-width: 1040px;
    margin: 0 auto;
    width: 100%;
    box-sizing: border-box;
}

/* Note Meta Inputs (Title, Category, Tags) */
.note-title-input {
    width: 100%;
    font-family: 'Space Mono', monospace;
    font-size: 1.6rem;
    font-weight: 900;
    color: var(--text-main);
    background: transparent;
    border: none;
    border-bottom: 2px solid var(--border-color);
    padding: 6px 0;
    outline: none;
    box-sizing: border-box;
    flex-shrink: 0;
}

.note-title-input:focus {
    border-bottom-color: #9333ea;
}

.note-meta-row {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
    flex-shrink: 0;
}

.note-category-select,
.note-tags-input {
    padding: 6px 12px;
    font-family: 'Space Mono', monospace;
    font-size: 0.8rem;
    background: var(--bg-panel);
    border: 2px solid var(--border-color);
    color: var(--text-main);
    outline: none;
}

/* Note Content Main Textarea (Full-Height, In-Stream Code Writing) */
.editor-text-container {
    flex: 1;
    min-height: 280px;
    display: flex;
    flex-direction: column;
}

.note-content-textarea {
    width: 100%;
    flex: 1;
    min-height: 380px;
    padding: 16px;
    font-family: 'Space Mono', monospace;
    font-size: 0.92rem;
    line-height: 1.65;
    background: var(--bg-panel);
    border: 2px solid var(--border-color);
    box-shadow: 4px 4px 0 var(--border-color);
    color: var(--text-main);
    outline: none;
    resize: none;
    box-sizing: border-box;
    tab-size: 4;
    white-space: pre-wrap;
    word-break: break-word;
}

.note-content-textarea:focus {
    border-color: #9333ea;
}

/* 7. Tactical Rendered Preview View (With Terminal Code Blocks & Copy Buttons) */
.note-rendered-view {
    display: none;
    flex: 1;
    min-height: 380px;
    padding: 24px;
    background: var(--bg-panel);
    border: 2px solid var(--border-color);
    box-shadow: 4px 4px 0 var(--border-color);
    overflow-y: auto;
    font-family: 'Work Sans', sans-serif;
    font-size: 0.95rem;
    line-height: 1.7;
    box-sizing: border-box;
}

.note-rendered-view h1,
.note-rendered-view h2,
.note-rendered-view h3 {
    font-family: 'Space Mono', monospace;
    color: var(--text-main);
    margin: 18px 0 10px;
}

.note-rendered-view h1 { font-size: 1.5rem; border-bottom: 2px solid var(--border-color); padding-bottom: 6px; }
.note-rendered-view h2 { font-size: 1.25rem; color: #9333ea; }
.note-rendered-view h3 { font-size: 1.05rem; }

.note-rendered-view p {
    margin-bottom: 14px;
    white-space: pre-line;
}

.note-rendered-view ul,
.note-rendered-view ol {
    margin-left: 24px;
    margin-bottom: 14px;
}

.note-rendered-view code.inline-code {
    background: rgba(147, 51, 234, 0.15);
    color: #9333ea;
    padding: 2px 6px;
    border-radius: 3px;
    font-family: 'Space Mono', monospace;
    font-size: 0.85rem;
    border: 1px solid rgba(147, 51, 234, 0.3);
}

/* Rendered Terminal Code Box */
.terminal-code-box {
    margin: 16px 0;
    background: #0d1117;
    border: 2px solid var(--border-color);
    box-shadow: 5px 5px 0 var(--border-color);
    overflow: hidden;
    position: relative;
}

.terminal-code-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 14px;
    background: #161b22;
    border-bottom: 1px solid #30363d;
}

.terminal-dots {
    display: flex;
    align-items: center;
    gap: 6px;
}

.terminal-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
}

.t-dot-red { background: #ff5f56; }
.t-dot-yellow { background: #ffbd2e; }
.t-dot-green { background: #27c93f; }

.terminal-lang-badge {
    font-family: 'Space Mono', monospace;
    font-size: 0.7rem;
    font-weight: 800;
    color: #58a6ff;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.terminal-copy-btn {
    background: #21262d;
    color: #c9d1d9;
    border: 1px solid #30363d;
    font-family: 'Space Mono', monospace;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 4px 10px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: background 0.15s, color 0.15s;
}

.terminal-copy-btn:hover {
    background: #30363d;
    color: #ffffff;
}

.terminal-code-body {
    padding: 14px 16px;
    margin: 0;
    background: #0d1117;
    color: #7ee787;
    font-family: 'Space Mono', monospace;
    font-size: 0.88rem;
    line-height: 1.55;
    overflow-x: auto;
    white-space: pre;
    tab-size: 4;
}

/* 8. Empty Editor State */
.editor-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: var(--text-muted);
    text-align: center;
    padding: 40px;
}

.editor-empty-icon {
    font-size: 3.5rem;
    margin-bottom: 16px;
    filter: drop-shadow(2px 2px 0 var(--border-color));
}

.editor-empty-title {
    font-family: 'Space Mono', monospace;
    font-size: 1.2rem;
    font-weight: 800;
    margin-bottom: 8px;
    color: var(--text-main);
}

.editor-empty-desc {
    font-size: 0.85rem;
    max-width: 420px;
    margin-bottom: 20px;
    line-height: 1.5;
}

/* 9. Footer Status Bar (Pinned to exact bottom of viewport) */
.notes-status-bar {
    padding: 8px 20px;
    background: var(--bg-panel);
    border-top: 2px solid var(--border-color);
    display: flex;
    justify-content: space-between;
    font-family: 'Space Mono', monospace;
    font-size: 0.68rem;
    color: var(--text-muted);
    flex-shrink: 0;
}

/* Responsive Rules */
@media (max-width: 860px) {
    .notes-sidebar {
        width: 100%;
        max-width: none;
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        transition: transform 0.25s ease;
    }

    .notes-sidebar.hidden {
        transform: translateX(-100%);
    }

    .editor-body {
        padding: 14px;
    }
}
