:root{--bg:#1e1f22;--sidebar:#111214;--card:#2b2d31;--text:#f2f3f5;--muted:#b5bac1;--primary:#5865f2;--danger:#da373c;--border:#3f4147;--input:#1a1b1e}
*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}.layout{display:flex;min-height:100vh}.sidebar{width:260px;background:var(--sidebar);padding:24px 18px;border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar-version{margin-top:auto;padding-top:16px;color:var(--muted);font-size:12px}.brand{display:flex;gap:14px;align-items:center;margin-bottom:28px}.brand-icon{width:48px;height:48px;border-radius:14px;background:var(--primary);display:flex;align-items:center;justify-content:center;font-size:24px}.brand h1{margin:0;font-size:22px}.brand p{margin:4px 0 0;color:var(--muted);font-size:13px}.nav{display:flex;flex-direction:column;gap:8px}.nav a{color:var(--text);text-decoration:none;background:var(--card);padding:12px 14px;border-radius:12px;transition:.2s ease;display:flex;align-items:center;gap:10px}.nav a:hover{background:var(--primary)}.nav a.active{background:rgba(88,101,242,.22);border:1px solid rgba(88,101,242,.45)}.danger-link:hover{background:var(--danger)!important}.content{flex:1;padding:28px}.page-header{margin-bottom:20px}.page-header h2{margin:0 0 4px;font-size:28px}.page-header p{margin:0;color:var(--muted)}.page-header-actions{display:flex;align-items:flex-start;justify-content:flex-start;gap:16px;flex-wrap:wrap}.page-header-actions .primary-action{order:-1}.card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:20px;margin-bottom:22px;box-shadow:0 8px 30px rgba(0,0,0,.22)}.form-card,.compact-card,.list-toolbar{max-width:980px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px}.stats-grid.five-cols{grid-template-columns:repeat(5,1fr)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:22px}.form{display:flex;flex-direction:column;gap:10px}.form-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}label{font-size:14px;color:var(--muted)}input[type=text],input[type=password],input[type=number],input[type=file],select{width:100%;padding:12px 14px;background:var(--input);border:1px solid var(--border);border-radius:12px;color:var(--text);outline:none}select[multiple]{min-height:140px}button,.secondary-btn,.primary-action{margin-top:8px;padding:12px 16px;border:none;border-radius:12px;background:var(--primary);color:#fff;cursor:pointer;font-weight:600}.primary-action{margin-top:0;white-space:nowrap}.secondary-btn{background:#3a3d44}.checkbox-line{display:flex;align-items:center;gap:10px;color:var(--text)}.checkbox-line input[type=checkbox]{width:auto}.required{color:#ff8a8f}.search-box{display:flex;align-items:center;gap:10px;background:var(--input);border:1px solid var(--border);border-radius:12px;padding:0 12px}.search-box input{border:0;background:transparent}.card-header-inline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.muted-pill{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;background:rgba(255,255,255,.06);color:var(--muted);font-size:12px}.empty-state{border:1px dashed var(--border);border-radius:16px;padding:24px;text-align:center;background:rgba(255,255,255,.03)}.compact-empty{padding:18px}.runtime-card{padding:12px 14px;border:1px solid var(--border);border-radius:14px;margin-bottom:12px;background:rgba(0,0,0,.08)}.runtime-grid{margin-top:10px;display:grid;grid-template-columns:150px 1fr;gap:6px 10px;color:var(--muted)}.dashboard-actions{display:flex;gap:10px;margin-top:10px}.stat-value{font-size:28px;font-weight:700;margin-top:8px}.simple-list{list-style:none;padding:0;margin:0}.simple-list li{padding:10px 0;border-bottom:1px solid var(--border)}.compact-list li{padding:6px 0}.login-body{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top,#2b2d31,#111214)}.login-card{width:420px;background:var(--card);border:1px solid var(--border);border-radius:20px;padding:28px;box-shadow:0 10px 40px rgba(0,0,0,.35)}.alert.error{background:rgba(218,55,60,.2);color:#ff9ca0;padding:12px;border-radius:12px;margin-bottom:14px}.status-online{color:#7ef0a2;font-weight:700}.status-offline{color:#ff8a8f;font-weight:700}.toast-stack{position:fixed;top:20px;right:20px;z-index:1000;display:flex;flex-direction:column;gap:12px}.toast{min-width:340px;max-width:460px;display:grid;grid-template-columns:32px 1fr 24px;align-items:start;gap:12px;padding:14px;border-radius:16px;border:1px solid var(--border);background:rgba(32,34,37,.96);box-shadow:0 14px 34px rgba(0,0,0,.28)}.toast.success{border-color:rgba(59,165,93,.45)}.toast.error{border-color:rgba(218,55,60,.45)}.toast-icon{width:32px;height:32px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-weight:700;background:rgba(88,101,242,.18)}.toast.success .toast-icon{background:rgba(59,165,93,.18);color:#9cf5bc}.toast.error .toast-icon{background:rgba(218,55,60,.18);color:#ff9ca0}.toast-title{font-size:13px;font-weight:700}.toast-message{color:var(--muted);font-size:14px;line-height:1.4}.toast-close{background:transparent;color:var(--muted);padding:0;min-width:auto;font-size:20px;line-height:1}table{width:100%;border-collapse:collapse}table th,table td{text-align:left;padding:12px;border-bottom:1px solid var(--border);vertical-align:top}table th{color:var(--muted);font-size:13px;background:#26282d}.sortable-table th[data-sort]{cursor:pointer;user-select:none;position:relative;padding-right:24px}.sortable-table th[data-sort]::after{content:'↕';position:absolute;right:8px;color:#6f7480;font-size:11px}.sortable-table th.sort-asc::after{content:'↑';color:#bfc4cf}.sortable-table th.sort-desc::after{content:'↓';color:#bfc4cf}.ajax-badge,.badge-success,.badge-danger{display:inline-flex;align-items:center;justify-content:center;min-width:88px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700;text-align:center;white-space:nowrap}.badge-success{background:rgba(59,165,93,.18);color:#7ef0a2}.badge-danger{background:rgba(218,55,60,.18);color:#ff8a8f}.inline-test-form{display:flex;flex-direction:column;gap:8px;min-width:220px}.inline-form{display:inline}.inline-edit-row.hidden,.hidden{display:none!important}.inline-edit-form{background:rgba(0,0,0,.08);border:1px solid var(--border);border-radius:14px;padding:16px}.inline-edit-actions{display:flex;gap:10px;align-items:end}.actions-cell{min-width:180px}.actions-bar{display:inline-flex;align-items:center;gap:8px;flex-wrap:nowrap;padding:4px 0}.actions-group{display:inline-flex;align-items:center;gap:6px;padding:4px;border-radius:14px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.06)}.switch-wrap{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 2px}.switch{position:relative;display:inline-block;width:38px;height:22px;transform:scale(.92)}.switch input{opacity:0;width:0;height:0;position:absolute}.slider{position:absolute;inset:0;cursor:pointer;background:#4a4d55;border-radius:999px;transition:background .18s ease;border:1px solid rgba(255,255,255,.08)}.slider::before{content:'';position:absolute;width:18px;height:18px;left:2px;top:2px;background:#fff;border-radius:50%;transition:transform .18s ease;box-shadow:0 2px 6px rgba(0,0,0,.25)}.switch input:checked + .slider{background:var(--primary)}.switch input:checked + .slider::before{transform:translateX(16px)}.icon-action{width:34px;height:34px;min-width:34px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:10px;border:1px solid #3f4147;background:#2b2d31;color:#d7d9dc;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .12s ease,opacity .15s ease;line-height:1;text-decoration:none;opacity:.9}.icon-action:hover{opacity:1;background:#32353b;transform:translateY(-1px)}.icon-action.blue{color:#8ea1ff}.icon-action.blue:hover{border-color:#8ea1ff;background:#252b3d}.icon-action.warn{color:#f0c56a}.icon-action.warn:hover{border-color:#f0c56a;background:#3b3221}.icon-action.danger{color:#ff8f95}.icon-action.danger:hover{border-color:#ff6b6b;background:#3c2327}.modal-open{overflow:hidden}.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:24px;z-index:1500}.modal-dialog{width:min(780px,100%);max-height:calc(100vh - 48px);overflow:auto;background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:0 18px 48px rgba(0,0,0,.35)}.modal-lg{width:min(860px,100%)}.modal-xl{width:min(980px,100%)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border)}.modal-header h3{margin:0}.modal-body{padding:20px}.modal-close{margin-top:0;background:transparent;border:none;color:var(--muted);font-size:24px;padding:0 6px}.modal-close:hover{color:var(--text);background:transparent}.toolbar{margin-top:0}@media (max-width:1200px){.stats-grid,.stats-grid.five-cols,.grid-2,.form-grid-3{grid-template-columns:1fr}}@media (max-width:900px){.layout{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border)}.content{padding:16px}.runtime-grid{grid-template-columns:1fr}.form-card,.compact-card,.list-toolbar{max-width:none}}

.page-header-stacked{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.header-actions-below{display:flex;align-items:center}.secondary-link-button{display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;border-radius:12px;background:#3a3d44;color:#fff;text-decoration:none;font-weight:600}.secondary-link-button:hover{opacity:.92}
.nav-icon{width:22px;text-align:center;font-size:15px;opacity:.95}.brand-icon{box-shadow:0 8px 24px rgba(88,101,242,.35)}.card{transition:transform .14s ease, box-shadow .14s ease}.card:hover{transform:translateY(-1px);box-shadow:0 12px 32px rgba(0,0,0,.26)}.form-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.grid-span-2{grid-column:span 2}.grid-span-3{grid-column:span 3}.weekday-picker{display:flex;flex-wrap:wrap;gap:10px;padding:10px 12px;background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:12px}.weekday-picker label{display:inline-flex;align-items:center;gap:6px;color:var(--text)}.status-pill{display:inline-flex;align-items:center;justify-content:center;min-width:88px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700}.status-success{background:rgba(59,165,93,.18);color:#7ef0a2}.status-skipped{background:rgba(240,197,106,.18);color:#f0c56a}.status-error{background:rgba(218,55,60,.18);color:#ff8a8f}.status-info{background:rgba(88,101,242,.18);color:#aab4ff}.log-action-pill{display:inline-flex;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.06);color:var(--text);font-size:12px}@media (max-width:1200px){.form-grid-4{grid-template-columns:1fr}.grid-span-2,.grid-span-3{grid-column:span 1}}
.page-header-stacked{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.page-header-stacked .page-header-actions{margin-top:8px}.primary-action{box-shadow:0 8px 20px rgba(88,101,242,.25)}.bulk-toolbar{border-style:dashed}.bulk-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.bulk-form select{max-width:220px}.log-groups{display:flex;flex-direction:column;gap:14px}.log-group{border:1px solid var(--border);border-left-width:4px;border-radius:16px;background:rgba(255,255,255,.02);padding:14px}.log-group-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.log-group-title{font-weight:700}.log-group-meta,.log-item-meta{color:var(--muted);font-size:12px}.log-group-items{display:flex;flex-direction:column;gap:10px}.log-group-item{background:rgba(0,0,0,.12);border:1px solid rgba(255,255,255,.05);border-radius:12px;padding:10px}.log-item-top{display:flex;gap:8px;align-items:center;margin-bottom:6px}.log-item-body{line-height:1.4}.status-pill{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid transparent}.status-success{background:rgba(59,165,93,.18);color:#9cf5bc;border-color:rgba(59,165,93,.3)}.status-skipped{background:rgba(240,197,106,.16);color:#f5d387;border-color:rgba(240,197,106,.25)}.status-error{background:rgba(218,55,60,.18);color:#ff9ca0;border-color:rgba(218,55,60,.3)}.status-info{background:rgba(88,101,242,.18);color:#aab4ff;border-color:rgba(88,101,242,.3)}.status-border-success{border-left-color:#3ba55d}.status-border-skipped{border-left-color:#f0c56a}.status-border-error{border-left-color:#da373c}.status-border-info{border-left-color:#5865f2}.log-action-pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.06);font-size:12px;color:#d6dae1}.secondary-link-button{display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;border-radius:12px;background:#3a3d44;color:#fff;text-decoration:none;font-weight:600}.flatpickr-calendar{background:#202225;border:1px solid #3f4147;box-shadow:0 18px 40px rgba(0,0,0,.35)}.flatpickr-months .flatpickr-month,.flatpickr-current-month .flatpickr-monthDropdown-months,.flatpickr-weekday,.flatpickr-day,.flatpickr-time input{color:#f2f3f5}.flatpickr-day.today{border-color:#5865f2}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange{background:#5865f2;border-color:#5865f2}.flatpickr-day:hover{background:#313338}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#b5bac1}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#b5bac1}

.nav-icon{width:20px;display:inline-flex;justify-content:center;flex:0 0 20px}.secondary-link-button{display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;border:none;border-radius:12px;background:#3a3d44;color:#fff;text-decoration:none;font-weight:600}.form-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.grid-span-2{grid-column:span 2}.status-pill{display:inline-flex;align-items:center;justify-content:center;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:700}.status-success{background:rgba(59,165,93,.18);color:#7ef0a2}.status-skipped{background:rgba(240,197,106,.18);color:#f0c56a}.status-error{background:rgba(218,55,60,.18);color:#ff8f95}.status-info{background:rgba(88,101,242,.18);color:#aab4ff}.log-action-pill{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.06);font-size:12px} @media (max-width:1200px){.form-grid-4{grid-template-columns:1fr}}
.settings-note{margin-top:10px;color:var(--muted);font-size:13px;line-height:1.45}

.sidebar-logout-form { margin: 0; }
.logout-button { width: 100%; background: none; border: none; padding: 0; text-align: left; cursor: pointer; font: inherit; }

.sound-header-actions{gap:10px;flex-wrap:wrap}.upload-v2{display:flex;flex-direction:column;gap:16px}.upload-v2-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.upload-v2-option{display:inline-flex;align-items:center;gap:8px;color:var(--text)}.upload-v2-toolbar-actions{display:flex;gap:10px;flex-wrap:wrap}.upload-dropzone{display:flex;align-items:center;justify-content:center;gap:14px;min-height:140px;padding:24px;border:2px dashed #4b4f58;border-radius:18px;background:rgba(255,255,255,.02);cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease}.upload-dropzone:hover,.upload-dropzone.dragover{border-color:var(--primary);background:rgba(88,101,242,.08);transform:translateY(-1px)}.upload-dropzone:focus{outline:none;border-color:var(--primary)}.upload-dropzone-icon{font-size:32px}.upload-dropzone p{margin:4px 0 0;color:var(--muted)}.upload-v2-summary{padding:12px 14px;border-radius:14px;background:rgba(88,101,242,.09);border:1px solid rgba(88,101,242,.2)}.upload-v2-empty{padding:24px;border:1px dashed var(--border);border-radius:16px;text-align:center;color:var(--muted)}.upload-v2-list{display:flex;flex-direction:column;gap:14px;max-height:420px;overflow:auto;padding-right:4px}.upload-v2-card{padding:16px;border-radius:16px;border:1px solid var(--border);background:rgba(255,255,255,.03)}.upload-v2-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.upload-v2-file-name{font-weight:700}.upload-v2-file-meta{margin-top:4px;font-size:13px;color:var(--muted)}.upload-v2-card-grid{display:grid;grid-template-columns:2fr 1fr;gap:12px;margin-bottom:12px}.upload-v2-preview-row audio{width:100%}.upload-v2-actions{display:flex;justify-content:flex-end}.upload-v2-results{display:flex;flex-direction:column;gap:10px}.upload-v2-result-summary{padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid var(--border);font-weight:700}.upload-v2-result{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:14px;border:1px solid var(--border);background:rgba(255,255,255,.03)}.upload-v2-result span{font-size:12px;font-weight:700}.upload-v2-result small{color:var(--muted);line-height:1.45}.upload-v2-result-success{border-color:rgba(59,165,93,.28)}.upload-v2-result-success span{color:#7ef0a2}.upload-v2-result-duplicate{border-color:rgba(240,197,106,.28)}.upload-v2-result-duplicate span{color:#f0c56a}.upload-v2-result-error{border-color:rgba(218,55,60,.28)}.upload-v2-result-error span{color:#ff8f95}@media (max-width:900px){.upload-v2-card-grid{grid-template-columns:1fr}.upload-v2-toolbar{align-items:flex-start}.upload-v2-actions{justify-content:stretch}.upload-v2-actions .primary-action{width:100%}}


/* Sound page header buttons */
.header-actions-below.sound-header-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}
.sound-header-button {
    margin-top: 0 !important;
    min-width: 140px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}


.modal-tts{width:min(1180px,100%)}
.tts-builder{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.9fr);gap:22px;align-items:start}
.tts-column{min-width:0}
.tts-grid-1,.tts-grid-2,.tts-grid-3{display:grid;gap:12px}
.tts-grid-1{grid-template-columns:1fr}
.tts-grid-2{grid-template-columns:repeat(2,1fr)}
.tts-grid-3{grid-template-columns:repeat(3,1fr)}
.tts-builder textarea{width:100%;padding:12px 14px;background:var(--input);border:1px solid var(--border);border-radius:12px;color:var(--text);outline:none;resize:vertical}
.tts-mode-block{margin-bottom:4px}
.tts-mode-hint{padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.03)}
.tts-placeholder-wrap{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.tts-placeholder-buttons{display:flex;gap:8px;flex-wrap:wrap}
.tts-placeholder-btn{border:1px solid var(--border);background:rgba(255,255,255,.04);color:var(--text);border-radius:999px;padding:6px 10px;font-size:12px;cursor:pointer}
.tts-placeholder-btn:hover{background:rgba(255,255,255,.08)}
.tts-meta-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted)}
.tts-meta-row code{background:rgba(255,255,255,.06);padding:3px 6px;border-radius:8px}
.tts-actions-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.tts-preview-panel{background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:18px;padding:18px}
.tts-preview-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.tts-preview-header h4{margin:0}
.tts-preview-empty{min-height:220px;border:1px dashed var(--border);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;color:var(--muted);padding:20px}
.tts-preview-card{display:flex;flex-direction:column;gap:12px}
.tts-preview-card audio{width:100%}
@media (max-width:980px){.tts-builder,.tts-grid-1,.tts-grid-2,.tts-grid-3{grid-template-columns:1fr}}

.tts-voice-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:2px}
.tts-inline-check{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);font-weight:500}
.tts-inline-check input{margin:0}
.tts-voice-help{display:block;margin-top:6px}

.schedule-mode-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:12px;align-items:start}
.schedule-mode-hint{padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.03)}
.schedule-sequence-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.schedule-sequence-list{display:flex;flex-direction:column;gap:10px;margin-bottom:8px}
.schedule-sequence-item{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.03)}
.schedule-sequence-label{display:flex;gap:8px;align-items:center;min-width:0;word-break:break-word}
.schedule-sequence-actions{display:flex;gap:8px;flex-wrap:wrap}
.danger-soft{border-color:rgba(255,80,80,.35)}
@media (max-width: 920px){.schedule-mode-grid,.schedule-sequence-item{grid-template-columns:1fr}.schedule-sequence-item{flex-direction:column;align-items:flex-start}}
