﻿:root {
            color-scheme: dark;
            --bg: #09090b;
            --bg-elevated: #0c0c10;
            --surface: #111114;
            --surface-2: #18181b;
            --surface-hover: #1c1c21;
            --text: #fafafa;
            --text-2: #a1a1aa;
            --text-3: #71717a;
            --border: rgba(255, 255, 255, 0.08);
            --border-strong: rgba(255, 255, 255, 0.14);
            --primary: #10b981;
            --primary-hover: #059669;
            --primary-fg: #042f24;
            --primary-soft: rgba(16, 185, 129, 0.14);
            --indigo: #6366f1;
            --indigo-soft: rgba(99, 102, 241, 0.14);
            --danger-bg: rgba(244, 63, 94, 0.12);
            --danger-border: rgba(244, 63, 94, 0.28);
            --danger-text: #fda4af;
            --ring: 0 0 0 3px rgba(16, 185, 129, 0.32);
            --shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
            --shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.45);
            --radius: 12px;
            --topbar-h: 56px;
            --ease: cubic-bezier(0.22, 1, 0.36, 1);
            --font: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
            --serif: "Fraunces", "Times New Roman", serif;
        }

        html[data-theme="light"] {
            color-scheme: light;
            --bg: #f4f4f5;
            --bg-elevated: #ffffff;
            --surface: #ffffff;
            --surface-2: #f4f4f5;
            --surface-hover: #ececee;
            --text: #09090b;
            --text-2: #52525b;
            --text-3: #71717a;
            --border: rgba(9, 9, 11, 0.08);
            --border-strong: rgba(9, 9, 11, 0.14);
            --primary-fg: #fff;
            --primary-soft: rgba(16, 185, 129, 0.1);
            --indigo-soft: rgba(99, 102, 241, 0.1);
            --danger-bg: #fff1f2;
            --danger-border: #fecdd3;
            --danger-text: #9f1239;
            --ring: 0 0 0 3px rgba(16, 185, 129, 0.22);
            --shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
            --shadow-lg: 0 16px 40px rgba(0, 0, 0, 0.1);
        }

        * { box-sizing: border-box; }
        html, body { margin: 0; padding: 0; min-height: 100%; }
        html, body, button, input, select, textarea, kbd {
            font-family: var(--font);
        }

        body {
            background: var(--bg);
            color: var(--text);
            min-height: 100vh;
            -webkit-font-smoothing: antialiased;
            text-rendering: optimizeLegibility;
        }

        a { color: inherit; }
        a:focus-visible, button:focus-visible, input:focus-visible {
            outline: none;
            box-shadow: var(--ring);
        }

        .app {
            min-height: 100vh;
            display: flex;
            flex-direction: column;
        }

        .topbar {
            height: var(--topbar-h);
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 0 16px;
            border-bottom: 1px solid var(--border);
            background: color-mix(in srgb, var(--bg-elevated) 82%, transparent);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            position: sticky;
            top: 0;
            z-index: 20;
        }

        .brand {
            display: flex;
            align-items: center;
            gap: 10px;
            text-decoration: none;
            min-width: 0;
        }

        .logo {
            width: 32px;
            height: 32px;
            border-radius: 9px;
            background: linear-gradient(135deg, var(--primary), var(--primary-hover));
            display: grid;
            place-items: center;
            flex: 0 0 auto;
            box-shadow: 0 6px 16px rgba(16, 185, 129, 0.35);
        }
        .logo svg { width: 16px; height: 16px; }
        .logo img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }

        .brand-copy { min-width: 0; }
        .brand-copy strong { display: block; font-size: 13px; font-weight: 700; letter-spacing: -0.02em; }
        .brand-copy span { display: block; font-size: 11px; color: var(--text-3); font-weight: 500; }

        .crumbs {
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 13px;
            color: var(--text-3);
            font-weight: 500;
        }
        .crumbs strong { color: var(--text); font-weight: 600; }

        .top-actions { margin-left: auto; display: flex; align-items: center; gap: 8px; }
        .header-link {
            display: inline-flex; align-items: center; height: 36px; padding: 0 12px;
            border-radius: 10px; border: 1px solid var(--border); background: var(--surface);
            color: var(--text); font-size: 13px; font-weight: 600; text-decoration: none;
        }

        .icon-btn {
            width: 36px;
            height: 36px;
            border-radius: 10px;
            border: 1px solid var(--border);
            background: var(--surface);
            color: var(--text-2);
            display: grid;
            place-items: center;
            cursor: pointer;
            text-decoration: none;
            transition: background 0.15s, color 0.15s, border-color 0.15s;
        }
        .icon-btn:hover { background: var(--surface-hover); color: var(--text); border-color: var(--border-strong); }
        .icon-btn svg { width: 16px; height: 16px; }

        .workspace {
            flex: 1;
            padding: 28px 20px 40px;
            width: 100%;
            max-width: 1120px;
            margin: 0 auto;
        }

        .hero-band {
            display: grid;
            grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr);
            gap: 16px;
            align-items: stretch;
            margin-bottom: 22px;
        }
        .hero-band.solo { display: block; }
        .hero-band .page-head { margin-bottom: 0; max-width: none; }
        .module-photo {
            position: relative;
            min-height: 240px;
            border-radius: 20px;
            overflow: hidden;
            border: 1px solid var(--border);
            box-shadow: var(--shadow-lg);
            margin: 0;
        }
        .module-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
        .module-photo figcaption {
            position: absolute; left: 14px; right: 14px; bottom: 14px;
            padding: 12px 14px; border-radius: 12px;
            background: color-mix(in srgb, var(--bg) 72%, transparent);
            backdrop-filter: blur(12px);
            border: 1px solid var(--border);
            font-size: 12.5px; font-weight: 650;
        }
        .page-head { margin-bottom: 22px; max-width: 640px; }
        .eyebrow {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            font-size: 12px;
            font-weight: 600;
            color: var(--primary);
            letter-spacing: 0.04em;
            text-transform: uppercase;
            margin-bottom: 10px;
        }
        .eyebrow i {
            width: 6px; height: 6px; border-radius: 50%;
            background: var(--primary);
            box-shadow: 0 0 0 4px var(--primary-soft);
        }
        .page-head h1 {
            margin: 0 0 8px;
            font-family: var(--serif);
            font-size: clamp(30px, 4.2vw, 44px);
            letter-spacing: -0.03em;
            line-height: 1.12;
            font-weight: 500;
        }
        .page-head h1 em {
            font-style: italic;
            font-weight: 400;
            color: color-mix(in srgb, var(--text) 78%, var(--primary));
        }
        .card-intro { text-align: center; }
        .card-intro h1 {
            margin: 0 0 8px;
            font-family: var(--serif);
            font-size: 28px;
            letter-spacing: -0.03em;
            font-weight: 500;
        }
        .school-mark { display:flex; justify-content:center; margin: 0 0 16px; }
        .school-mark img { max-width: 84px; max-height: 84px; object-fit: contain; }
        .workspace.narrow { max-width: 520px; }
        .links { margin-top: 14px; display:flex; justify-content:center; }
        .links a { color: var(--text-2); font-size: 13px; font-weight: 650; text-decoration: none; }
        .links a:hover { color: var(--text); }
        .alert { margin-bottom: 14px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--danger-border); background: var(--danger-bg); color: var(--danger-text); font-size: 13px; font-weight: 600; }
        .page-head p {
            margin: 0;
            color: var(--text-2);
            font-size: 15px;
            line-height: 1.65;
        }

        .steps {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 8px;
            margin-bottom: 18px;
        }
        .step {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 10px 12px;
            border-radius: 12px;
            border: 1px solid var(--border);
            background: var(--surface);
            color: var(--text-3);
            font-size: 12px;
            font-weight: 600;
        }
        .step b {
            width: 22px; height: 22px;
            border-radius: 7px;
            display: grid; place-items: center;
            background: var(--surface-2);
            font-size: 11px;
            flex: 0 0 auto;
        }
        .step.done, .step.active { color: var(--text); }
        .step.active { border-color: rgba(16, 185, 129, 0.35); background: var(--primary-soft); }
        .step.done b, .step.active b { background: var(--primary); color: var(--primary-fg); }

        .layout {
            display: grid;
            grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr);
            gap: 14px;
            align-items: start;
        }

        .card {
            background: var(--surface);
            border: 1px solid var(--border);
            border-radius: 16px;
            padding: 20px;
            box-shadow: var(--shadow);
        }

        .card h2 {
            margin: 0 0 6px;
            font-size: 16px;
            letter-spacing: -0.02em;
            font-weight: 700;
        }
        .card .desc {
            margin: 0 0 16px;
            color: var(--text-2);
            font-size: 13.5px;
            line-height: 1.6;
        }

        .slug-form {
            display: grid;
            grid-template-columns: minmax(0, 1fr) auto;
            gap: 10px;
            align-items: end;
        }

        .field label {
            display: block;
            margin-bottom: 8px;
            font-size: 12px;
            font-weight: 700;
            color: var(--text-2);
        }
        .field input {
            width: 100%;
            height: 44px;
            padding: 0 12px;
            border-radius: 10px;
            border: 1px solid var(--border);
            background: var(--bg);
            color: var(--text);
            font-size: 14px;
            font-weight: 600;
        }
        .field input:focus {
            outline: none;
            border-color: var(--primary);
            box-shadow: var(--ring);
        }

        .btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            height: 44px;
            padding: 0 16px;
            border-radius: 10px;
            border: 1px solid transparent;
            text-decoration: none;
            font-weight: 700;
            font-size: 13.5px;
            cursor: pointer;
            transition: transform 0.15s var(--ease), background 0.15s, box-shadow 0.15s, border-color 0.15s;
        }
        .btn svg { width: 16px; height: 16px; }
        .btn:hover { transform: translateY(-1px); }
        .btn.primary {
            background: var(--primary);
            color: var(--primary-fg);
            box-shadow: 0 8px 20px rgba(16, 185, 129, 0.28);
        }
        .btn.primary:hover { background: var(--primary-hover); }
        .btn.ghost {
            background: var(--surface);
            color: var(--text);
            border-color: var(--border);
        }
        .btn.ghost:hover { background: var(--surface-hover); border-color: var(--border-strong); }

        .cta-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }

        .error-box {
            margin-top: 14px;
            padding: 12px 14px;
            border-radius: 12px;
            border: 1px solid var(--danger-border);
            background: var(--danger-bg);
            color: var(--danger-text);
            font-size: 13px;
            font-weight: 600;
            line-height: 1.5;
        }

        .school-found {
            margin-top: 16px;
            padding: 14px;
            border-radius: 14px;
            border: 1px solid var(--border);
            background: var(--bg-elevated);
            display: flex;
            gap: 12px;
            align-items: center;
        }
        .school-found img, .school-found .logo-fallback {
            width: 44px; height: 44px;
            border-radius: 12px;
            object-fit: cover;
            border: 1px solid var(--border);
            background: var(--surface-2);
            flex: 0 0 auto;
        }
        .school-found .logo-fallback { display: grid; place-items: center; font-weight: 800; color: var(--primary); }
        .school-found h3 { margin: 0 0 2px; font-size: 14px; font-weight: 700; }
        .school-found p { margin: 0; font-size: 12px; color: var(--text-3); font-weight: 500; }

        .chip {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            height: 24px;
            padding: 0 8px;
            border-radius: 999px;
            font-size: 11px;
            font-weight: 700;
            background: var(--surface-2);
            color: var(--text-2);
            border: 1px solid var(--border);
        }
        .chip.live::before {
            content: "";
            width: 6px; height: 6px; border-radius: 50%;
            background: var(--primary);
            box-shadow: 0 0 0 3px var(--primary-soft);
        }

        .service-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }

        .stack { display: flex; flex-direction: column; gap: 12px; }

        .feature {
            display: flex;
            gap: 12px;
            padding: 14px;
            border-radius: 14px;
            border: 1px solid var(--border);
            background: var(--bg-elevated);
        }
        .icon-tile {
            width: 40px; height: 40px;
            border-radius: 12px;
            display: grid; place-items: center;
            flex: 0 0 auto;
            background: var(--primary-soft);
            color: var(--primary);
        }
        .icon-tile.indigo { background: var(--indigo-soft); color: var(--indigo); }
        .icon-tile svg { width: 18px; height: 18px; }
        .feature h3 { margin: 0 0 2px; font-size: 14px; font-weight: 700; }
        .feature p { margin: 0; font-size: 12.5px; color: var(--text-2); line-height: 1.5; }

        .preview {
            border: 1px solid var(--border);
            border-radius: 14px;
            background: var(--surface-2);
            overflow: hidden;
        }
        .preview-bar {
            height: 32px;
            display: flex;
            align-items: center;
            gap: 6px;
            padding: 0 12px;
            border-bottom: 1px solid var(--border);
            background: var(--surface);
        }
        .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--border-strong); }
        .preview-body { padding: 14px; display: grid; grid-template-columns: 72px 1fr; gap: 10px; }
        .preview-side { background: var(--surface); border-radius: 8px; border: 1px solid var(--border); height: 110px; }
        .bars { display: flex; flex-direction: column; gap: 8px; }
        .bar {
            height: 28px;
            border-radius: 8px;
            background: var(--surface);
            border: 1px solid var(--border);
        }
        .bar.w1 { width: 92%; }
        .bar.w2 { width: 74%; }
        .bar.w3 { width: 86%; }

        .footer-note {
            margin-top: 22px;
            color: var(--text-3);
            font-size: 12px;
        }

        .toasts {
            position: fixed;
            right: 16px;
            bottom: 16px;
            z-index: 90;
            display: flex;
            flex-direction: column;
            gap: 8px;
        }
        .toast {
            background: var(--surface);
            border: 1px solid var(--border);
            color: var(--text);
            padding: 10px 14px;
            border-radius: 12px;
            font-size: 13px;
            font-weight: 600;
            box-shadow: var(--shadow-lg);
            animation: in 0.2s var(--ease);
        }

        .overlay {
            position: fixed;
            inset: 0;
            background: rgba(0, 0, 0, 0.5);
            z-index: 80;
            display: none;
            align-items: center;
            justify-content: center;
            padding: 16px;
        }
        .overlay.open { display: flex; }
        .dialog {
            width: 100%;
            max-width: 400px;
            background: var(--surface);
            border: 1px solid var(--border-strong);
            border-radius: 16px;
            padding: 20px;
            box-shadow: var(--shadow-lg);
        }
        .dialog h3 { margin: 0 0 8px; font-size: 16px; }
        .dialog p { margin: 0 0 16px; color: var(--text-2); font-size: 13.5px; line-height: 1.55; }

        @keyframes in {
            from { opacity: 0; transform: translateY(8px); }
            to { opacity: 1; transform: translateY(0); }
        }

        @media (max-width: 860px) {
            .layout, .steps, .hero-band { grid-template-columns: 1fr; }
            .module-photo { min-height: 200px; }
            .crumbs { display: none; }
            .slug-form { grid-template-columns: 1fr; }
            .btn { width: 100%; }
            .workspace { padding: 18px 14px 32px; }
        }

        @media (prefers-reduced-motion: reduce) {
            * { animation: none !important; transition: none !important; }
        }
