/* ==================================================================
   REDPIIX STUDIO  -  gemeinsame Design-Schicht fuer alle Werkzeuge
   ------------------------------------------------------------------
   Diese Datei liefert
     1. die RedPiix-Design-Marken (Farben, Radien, Typografie)
     2. die Studio-Huelle (Modulleiste, Kontextleiste, Buehne)
     3. den Launcher und die Projektuebersicht
     4. eine Vereinheitlichung der sechs Werkzeuge (sg-, se-, tv-,
        mc-, as-, sd-, ts-) auf genau diese Marken
   Alles ist auf .rp-studio bzw. .rp-app begrenzt, damit GuardIAn
   ausserhalb unveraendert bleibt.
   ================================================================== */

:root,
.rp-studio {
    --rp-bg: #09090b;
    --rp-panel: #111115;
    --rp-panel-2: #17171c;
    --rp-panel-3: #1e1e25;
    --rp-line: rgba(255, 255, 255, .1);
    --rp-line-soft: rgba(255, 255, 255, .06);
    --rp-muted: #92929d;
    --rp-dim: #676771;
    --rp-text: #f7f7f8;
    --rp-red: #ee353b;
    --rp-red-dark: #a90f19;
    --rp-purple: #a874ff;
    --rp-green: #4bdd89;
    --rp-amber: #f5a524;
    --rp-mono: "Share Tech Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
    --rp-radius: 14px;
    --rp-radius-sm: 9px;
}

/* Die Huelle darf die volle Breite nutzen. */
.guardian-content:has(.rp-studio) { padding: 0 !important; max-width: none !important; }

.rp-studio {
    color: var(--rp-text);
    background:
        radial-gradient(circle at 12% -4%, rgba(238, 53, 59, .10), transparent 30rem),
        radial-gradient(circle at 92% 12%, rgba(168, 116, 255, .07), transparent 26rem),
        var(--rp-bg);
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    min-height: calc(100vh - 62px);
    display: flex;
    flex-direction: column;
}
.rp-studio *, .rp-studio *::before, .rp-studio *::after { box-sizing: border-box; }
.rp-studio button, .rp-studio input, .rp-studio select, .rp-studio textarea { font-family: inherit; }

/* ── Modulleiste ─────────────────────────────────────────────── */
.rp-modulebar {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 0 clamp(12px, 2vw, 24px);
    height: 54px;
    flex-shrink: 0;
    background: rgba(9, 9, 11, .92);
    border-bottom: 1px solid var(--rp-line);
    backdrop-filter: blur(14px);
    position: sticky;
    top: 0;
    z-index: 60;
}
.rp-modulebar-brand {
    display: flex; align-items: center; gap: 9px;
    text-decoration: none; color: var(--rp-text);
    font-weight: 900; font-size: 16px; letter-spacing: -.05em;
    flex-shrink: 0;
}
.rp-modulebar-word { white-space: nowrap; }
.rp-modulebar-word b { color: var(--rp-red); font-weight: 900; }
.rp-modulebar-mark {
    width: 18px; height: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 2px;
    transform: rotate(45deg);
}
.rp-modulebar-mark i { background: linear-gradient(135deg, var(--rp-red), #6e0810); border-radius: 2px; }
.rp-modulebar-mark i:nth-child(2), .rp-modulebar-mark i:nth-child(3) { opacity: .32; }

.rp-modulenav {
    display: flex; align-items: center; gap: 2px;
    flex: 1; min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
    height: 100%;
}
.rp-modulenav::-webkit-scrollbar { display: none; }
.rp-modulenav a {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 0 13px; height: 100%;
    color: var(--rp-muted); text-decoration: none;
    font-size: 12.5px; font-weight: 700; white-space: nowrap;
    border-bottom: 2px solid transparent;
    transition: color .15s, border-color .15s, background .15s;
}
.rp-modulenav a i { font-size: 14px; opacity: .8; }
.rp-modulenav a:hover { color: var(--rp-text); background: rgba(255, 255, 255, .03); }
.rp-modulenav a.is-active { color: #fff; border-bottom-color: var(--rp-red); }
.rp-modulenav a.is-active i { color: var(--rp-red); opacity: 1; }

.rp-modulebar-side { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.rp-modulebar-side a {
    color: var(--rp-dim); text-decoration: none; font-size: 11px; font-weight: 700;
    border: 1px solid var(--rp-line); border-radius: 999px; padding: 6px 12px;
    transition: all .15s; white-space: nowrap;
}
.rp-modulebar-side a:hover { color: var(--rp-text); border-color: rgba(238, 53, 59, .5); }

/* ── Buehne ──────────────────────────────────────────────────── */
.rp-studio-stage { flex: 1; min-height: 0; padding: clamp(14px, 2.2vw, 28px); }
.rp-studio-stage.is-flush { padding: 0; }

/* ── Launcher / Projektuebersicht ────────────────────────────── */
.rp-page-head { max-width: 1680px; margin: 0 auto 26px; }
.rp-page-head h1 {
    margin: 0; font-size: clamp(26px, 3.6vw, 42px); font-weight: 900; letter-spacing: -.05em;
}
.rp-page-head h1 span { color: var(--rp-red); }
.rp-page-head p { color: var(--rp-muted); margin: 10px 0 0; font-size: 14px; max-width: 640px; }
.rp-page-eyebrow { color: var(--rp-red); font: 700 11px/1.2 var(--rp-mono); letter-spacing: .24em; margin-bottom: 8px; }

.rp-launch-grid {
    max-width: 1680px; margin: 0 auto;
    display: grid; grid-template-columns: repeat(auto-fill, minmax(268px, 1fr)); gap: 16px;
}
.rp-launch-card {
    position: relative; display: flex; flex-direction: column; gap: 10px;
    padding: 24px 22px 22px;
    border: 1px solid var(--rp-line); border-radius: var(--rp-radius);
    background: linear-gradient(160deg, rgba(255, 255, 255, .035), rgba(255, 255, 255, .012));
    text-decoration: none; color: inherit;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
    overflow: hidden;
}
.rp-launch-card::after {
    content: ""; position: absolute; inset: auto -30% -60% auto; width: 190px; height: 190px;
    background: radial-gradient(circle, var(--rp-accent, #ee353b), transparent 68%);
    opacity: .1; pointer-events: none; transition: opacity .18s ease;
}
.rp-launch-card:hover {
    transform: translateY(-3px);
    border-color: var(--rp-accent, #ee353b);
    box-shadow: 0 22px 50px rgba(0, 0, 0, .45);
}
.rp-launch-card:hover::after { opacity: .22; }
.rp-launch-icon {
    display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px;
    font-size: 21px; color: var(--rp-accent, #ee353b);
    background: color-mix(in srgb, var(--rp-accent, #ee353b) 14%, transparent);
    border: 1px solid color-mix(in srgb, var(--rp-accent, #ee353b) 34%, transparent);
}
.rp-launch-card strong { font-size: 15.5px; font-weight: 800; letter-spacing: -.02em; }
.rp-launch-card small { color: var(--rp-muted); font-size: 12px; line-height: 1.6; }
.rp-launch-tag {
    align-self: flex-start; margin-top: 4px;
    font: 700 9.5px/1 var(--rp-mono); letter-spacing: .14em; text-transform: uppercase;
    color: var(--rp-dim); border: 1px solid var(--rp-line); border-radius: 999px; padding: 5px 9px;
}

/* Projektkarten */
.rp-project-grid {
    max-width: 1680px; margin: 0 auto;
    display: grid; grid-template-columns: repeat(auto-fill, minmax(272px, 1fr)); gap: 15px;
}
.rp-project-card {
    display: flex; flex-direction: column; gap: 11px; padding: 18px;
    border: 1px solid var(--rp-line); border-radius: var(--rp-radius);
    background: rgba(255, 255, 255, .028);
    transition: border-color .18s, transform .15s;
}
.rp-project-card:hover { border-color: rgba(238, 53, 59, .42); transform: translateY(-2px); }
.rp-project-title { font-size: 15px; font-weight: 800; letter-spacing: -.02em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rp-project-meta { display: flex; flex-wrap: wrap; gap: 9px; font: 10px/1 var(--rp-mono); color: var(--rp-dim); letter-spacing: .06em; }
.rp-project-meta span { display: inline-flex; align-items: center; gap: 5px; }
.rp-chip {
    display: inline-flex; align-items: center; gap: 5px;
    border-radius: 999px; padding: 4px 10px;
    font: 700 10px/1 var(--rp-mono); letter-spacing: .1em; text-transform: uppercase;
    color: var(--rp-accent, #ee353b);
    background: color-mix(in srgb, var(--rp-accent, #ee353b) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--rp-accent, #ee353b) 30%, transparent);
}
.rp-project-actions { display: flex; gap: 7px; margin-top: auto; padding-top: 4px; flex-wrap: wrap; }
.rp-project-actions > * { flex: 1; min-width: 84px; }

.rp-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 7px;
    border: 1px solid var(--rp-line); border-radius: var(--rp-radius-sm);
    background: rgba(255, 255, 255, .05); color: #d5d5da;
    padding: 9px 14px; font-size: 12.5px; font-weight: 700; cursor: pointer;
    text-decoration: none; transition: all .15s;
}
.rp-btn:hover { color: #fff; border-color: rgba(255, 255, 255, .26); background: rgba(255, 255, 255, .08); }
.rp-btn-primary { background: var(--rp-red); border-color: var(--rp-red); color: #fff; }
.rp-btn-primary:hover { background: #ff474d; border-color: #ff474d; color: #fff; }
.rp-btn-danger:hover { color: #ff8a8a; border-color: rgba(238, 53, 59, .5); background: rgba(238, 53, 59, .12); }
.rp-btn-sm { padding: 6px 10px; font-size: 11.5px; }

.rp-empty-state {
    max-width: 620px; margin: 60px auto; text-align: center; color: var(--rp-muted);
    border: 1px dashed var(--rp-line); border-radius: 20px; padding: 56px 28px;
}
.rp-empty-state i { font-size: 40px; color: #2c2c33; display: block; margin-bottom: 16px; }
.rp-empty-state h2 { color: var(--rp-text); font-size: 20px; letter-spacing: -.03em; margin: 0 0 8px; }
.rp-empty-state p { margin: 0 0 22px; font-size: 13.5px; }

.rp-section-title {
    max-width: 1680px; margin: 34px auto 14px;
    font: 800 11px/1 var(--rp-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--rp-dim);
    display: flex; align-items: center; gap: 12px;
}
.rp-section-title::after { content: ""; flex: 1; height: 1px; background: var(--rp-line-soft); }

/* ==================================================================
   VEREINHEITLICHUNG DER WERKZEUGE
   Die sechs Werkzeuge bringen eigene Stile mit. Hier werden sie auf
   die RedPiix-Marken gezogen, ohne ihre Struktur anzutasten.
   ================================================================== */

/* Vollhoehe: GuardIAn-Kopf (62px) und Modulleiste (54px) einrechnen. */
.rp-studio .tv-wrap,
.rp-studio .sd-wrap,
.rp-studio .ts-wrap,
.rp-studio .mc-wrap { height: calc(100vh - 122px); min-height: 540px; margin: 0; }
/* Das AI Studio laeuft mit Buehnenabstand und braucht ihn zusaetzlich. */
.rp-studio .as-root { height: calc(100vh - 176px); min-height: 540px; }

/* Flaechen */
.rp-studio .tv-topbar, .rp-studio .sd-topbar, .rp-studio .ts-topbar,
.rp-studio .mc-topbar, .rp-studio .as-topbar,
.rp-studio .tv-panel, .rp-studio .mc-panel, .rp-studio .as-panel,
.rp-studio .sd-left, .rp-studio .ts-left, .rp-studio .mc-left, .rp-studio .mc-right,
.rp-studio .as-col-left, .rp-studio .as-col-right {
    background: rgba(17, 17, 21, .82);
    border-color: var(--rp-line-soft);
}
.rp-studio .tv-canvas-wrap, .rp-studio .sd-canvas-wrap, .rp-studio .ts-canvas-wrap,
.rp-studio .mc-canvas-area, .rp-studio .sg-canvas-wrapper, .rp-studio .se-canvas-wrapper {
    background-color: #0b0b0e;
    background-image:
        linear-gradient(rgba(255, 255, 255, .022) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .022) 1px, transparent 1px);
    background-size: 24px 24px;
}

/* Abschnittsbeschriftungen: durchgaengig Mono, gesperrt, gedaempft */
.rp-studio .sd-sec-label, .rp-studio .ts-sec-label,
.rp-studio .tv-section-hd, .rp-studio .mc-phd, .rp-studio .as-col-hdr-title,
.rp-studio .as-section-label, .rp-studio .as-form-section-title,
.rp-studio .sg-label, .rp-studio .se-form-title, .rp-studio .se-tl-title {
    font-family: var(--rp-mono);
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--rp-dim);
}

/* Eingabefelder */
.rp-studio .sd-inp, .rp-studio .sd-hex-inp, .rp-studio .ts-inp, .rp-studio .ts-hex-inp,
.rp-studio .tv-input, .rp-studio .tv-select, .rp-studio .tv-block-textarea, .rp-studio .tv-ai-textarea,
.rp-studio .mc-inp, .rp-studio .mc-ta,
.rp-studio .as-select, .rp-studio .as-textarea,
.rp-studio .sg-select, .rp-studio .sg-textarea,
.rp-studio .se-field input, .rp-studio .se-field textarea, .rp-studio .se-field select {
    background: var(--rp-panel-2);
    border: 1px solid var(--rp-line);
    border-radius: var(--rp-radius-sm);
    color: var(--rp-text);
}
.rp-studio .sd-inp:focus, .rp-studio .ts-inp:focus, .rp-studio .tv-input:focus,
.rp-studio .tv-select:focus, .rp-studio .tv-block-textarea:focus, .rp-studio .mc-inp:focus,
.rp-studio .mc-ta:focus, .rp-studio .as-select:focus, .rp-studio .as-textarea:focus,
.rp-studio .sg-select:focus, .rp-studio .sg-textarea:focus {
    border-color: var(--rp-red);
    outline: none;
    box-shadow: 0 0 0 3px rgba(238, 53, 59, .14);
}

/* Sekundaere Schaltflaechen */
.rp-studio .tv-btn, .rp-studio .mc-btn, .rp-studio .as-btn,
.rp-studio .sd-btn, .rp-studio .ts-btn, .rp-studio .sd-tool-btn, .rp-studio .ts-tool-btn,
.rp-studio .sd-icon-btn, .rp-studio .ts-icon-btn, .rp-studio .mc-ib,
.rp-studio .se-add-btn, .rp-studio .se-back-btn, .rp-studio .sg-nav-btn, .rp-studio .se-nav-btn {
    border-radius: var(--rp-radius-sm);
    border-color: var(--rp-line);
    background: rgba(255, 255, 255, .05);
    color: #c3c3cb;
}
.rp-studio .tv-btn:hover, .rp-studio .mc-btn:hover, .rp-studio .as-btn:hover,
.rp-studio .sd-btn:hover, .rp-studio .ts-btn:hover, .rp-studio .sd-tool-btn:hover,
.rp-studio .ts-tool-btn:hover, .rp-studio .sd-icon-btn:hover, .rp-studio .ts-icon-btn:hover,
.rp-studio .mc-ib:hover, .rp-studio .se-add-btn:hover, .rp-studio .se-back-btn:hover {
    color: #fff;
    border-color: rgba(255, 255, 255, .26);
    background: rgba(255, 255, 255, .09);
}

/* Aktive/primaere Schaltflaechen tragen ueberall dasselbe RedPiix-Rot */
.rp-studio .tv-btn-primary, .rp-studio .mc-btn-red, .rp-studio .as-btn-primary,
.rp-studio .as-btn-gen, .rp-studio .sg-generate-btn, .rp-studio .sg-export-btn,
.rp-studio .se-add-card-btn, .rp-studio .sd-btn-green, .rp-studio .ts-btn-primary,
.rp-studio .sd-icon-btn.on, .rp-studio .ts-icon-btn.on,
.rp-studio .sd-shape-btn.active, .rp-studio .ts-side-btn.active {
    background: var(--rp-red) !important;
    border-color: var(--rp-red) !important;
    color: #fff !important;
    font-weight: 700;
}
.rp-studio .tv-btn-primary:hover, .rp-studio .mc-btn-red:hover, .rp-studio .as-btn-primary:hover,
.rp-studio .as-btn-gen:hover, .rp-studio .sg-generate-btn:hover, .rp-studio .sg-export-btn:hover,
.rp-studio .sd-btn-green:hover, .rp-studio .ts-btn-primary:hover {
    background: #ff474d !important;
    border-color: #ff474d !important;
}

/* Reiter */
.rp-studio .as-tab, .rp-studio .tv-mode-tab {
    font-family: inherit; font-weight: 700; color: var(--rp-muted);
}
.rp-studio .as-tab.active, .rp-studio .tv-mode-tab.active {
    color: #fff; border-bottom-color: var(--rp-red);
}

/* Auswahl-/Aktivzustaende */
.rp-studio .sg-preset.active, .rp-studio .as-style-item.active,
.rp-studio .as-lib-item.selected, .rp-studio .as-img-item.selected,
.rp-studio .mc-si.active, .rp-studio .se-slide-item.active,
.rp-studio .sg-thumb-item.active, .rp-studio .tv-clip-row.active {
    border-color: var(--rp-red) !important;
    box-shadow: 0 0 0 2px rgba(238, 53, 59, .16);
}

/* Fortschritt und Regler */
.rp-studio .sg-export-fill, .rp-studio .se-export-fill,
.rp-studio .tv-progress-bar, .rp-studio .as-upload-progress-bar, .rp-studio .mc-exp-bw {
    background: linear-gradient(90deg, var(--rp-red-dark), var(--rp-red));
}
.rp-studio input[type="range"] { accent-color: var(--rp-red); }

/* Auswahlrahmen der Designer bleiben in RedPiix-Rot */
.rp-studio .sd-el.sel, .rp-studio .ts-el.sel { outline-color: var(--rp-red); }
.rp-studio .sd-rh, .rp-studio .sd-rot, .rp-studio .ts-rh, .rp-studio .ts-rot { background: var(--rp-red); }

/* Ueberlagerungen */
.rp-studio .sd-fp-modal, .rp-studio .ts-fp-modal, .rp-studio .tv-fp-modal,
.rp-studio .tv-ai-modal, .rp-studio .mc-exp-box {
    background: var(--rp-panel);
    border: 1px solid var(--rp-line);
    border-radius: 18px;
    box-shadow: 0 40px 110px rgba(0, 0, 0, .6);
}

/* Rueckwaerts-Links der Werkzeuge sind in der Huelle ueberfluessig */
.rp-studio .rp-hide-in-shell { display: none !important; }

/* Meldungen */
.rp-toast-studio {
    position: fixed; left: 50%; bottom: 26px; transform: translate(-50%, 14px);
    background: var(--rp-panel-2); border: 1px solid var(--rp-line); color: var(--rp-text);
    border-radius: 999px; padding: 12px 22px; font-size: 13px; font-weight: 700;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .5);
    opacity: 0; pointer-events: none; transition: all .2s ease; z-index: 4000;
}
.rp-toast-studio.is-visible { opacity: 1; transform: translate(-50%, 0); }
.rp-toast-studio.is-error { border-color: rgba(238, 53, 59, .6); color: #ffb4b4; }

@media (max-width: 860px) {
    .rp-modulebar { gap: 10px; }
    .rp-modulebar-side { display: none; }
    .rp-studio .tv-wrap, .rp-studio .sd-wrap, .rp-studio .ts-wrap,
    .rp-studio .mc-wrap, .rp-studio .as-root { height: auto; min-height: 70vh; }
}

/* ── Bildstudio in der Huelle ────────────────────────────────── */
/* Hintergrund und Mindesthoehe liefert bereits .rp-studio. */
.rp-studio .rp-app { min-height: 0; background: none; }
.rp-toolband { max-width: 1680px; margin: 0 auto 32px; }
