﻿html,
        body {
            background: #0F172A;
            color: #F1F5F9;
            font-family: 'Inter', sans-serif;
            overflow-x: hidden;
            margin: 0;
        }

        .page-hero {
            padding: 100px 20px 60px;
            background: radial-gradient(ellipse 80% 50% at 50% -10%, rgba(16, 185, 129, .2) 0%, transparent 70%), #0F172A;
            text-align: center;
        }

        .page-hero .kicker {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            background: rgba(16, 185, 129, .1);
            color: #6EE7B7;
            border: 1px solid rgba(16, 185, 129, .25);
            padding: 5px 14px;
            border-radius: 20px;
            font-size: .75rem;
            font-weight: 700;
            letter-spacing: .6px;
            margin-bottom: 18px;
            text-transform: uppercase;
        }

        .page-hero h1 {
            font-size: clamp(1.8rem, 5vw, 2.8rem);
            font-weight: 800;
            letter-spacing: -.5px;
            background: linear-gradient(135deg, #F1F5F9 40%, #6EE7B7);
            -webkit-background-clip: text;
            background-clip: text;
            -webkit-text-fill-color: transparent;
            margin-bottom: 12px;
        }

        .page-hero p {
            color: #64748B;
            font-size: .95rem;
            max-width: 600px;
            margin: 0 auto 32px;
            line-height: 1.65;
        }

        .tool-wrap {
            max-width: 820px;
            margin: 0 auto;
            padding: 0 20px 80px;
        }

        /* Cue card */
        .cue-card {
            background: linear-gradient(135deg, rgba(16, 185, 129, .08), rgba(79, 70, 229, .08));
            border: 1px solid rgba(16, 185, 129, .2);
            border-radius: 16px;
            padding: 24px 28px;
            margin-bottom: 24px;
            position: relative;
        }

        .cue-card-label {
            font-size: .65rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: .8px;
            color: #6EE7B7;
            margin-bottom: 10px;
        }

        .cue-card-topic {
            font-size: 1.05rem;
            font-weight: 700;
            color: #F1F5F9;
            margin-bottom: 12px;
            line-height: 1.45;
        }

        .cue-card-hints {
            font-size: .82rem;
            color: #64748B;
            line-height: 1.7;
            font-style: italic;
        }

        .cue-card-timer {
            position: absolute;
            top: 20px;
            right: 20px;
            background: rgba(16, 185, 129, .15);
            border: 1px solid rgba(16, 185, 129, .3);
            color: #6EE7B7;
            padding: 6px 14px;
            border-radius: 20px;
            font-size: .82rem;
            font-weight: 700;
            font-variant-numeric: tabular-nums;
        }

        .new-card-btn {
            background: none;
            border: 1px solid rgba(16, 185, 129, .3);
            color: #6EE7B7;
            padding: 6px 14px;
            border-radius: 8px;
            font-size: .75rem;
            font-weight: 600;
            cursor: pointer;
            transition: all .2s;
            margin-top: 12px;
        }

        .new-card-btn:hover {
            background: rgba(16, 185, 129, .1);
        }

        /* Recording card */
        .record-card {
            background: #1E293B;
            border: 1px solid rgba(255, 255, 255, .07);
            border-radius: 20px;
            overflow: hidden;
            box-shadow: 0 24px 60px rgba(0, 0, 0, .4);
        }

        .record-header {
            padding: 20px 24px 0;
            display: flex;
            align-items: center;
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 10px;
        }

        .record-header h3 {
            font-size: .9rem;
            font-weight: 700;
            color: #94A3B8;
        }

        .mode-toggle {
            display: flex;
            gap: 6px;
            background: rgba(255, 255, 255, .04);
            border-radius: 8px;
            padding: 4px;
        }

        .mode-btn {
            background: none;
            border: none;
            padding: 5px 12px;
            border-radius: 6px;
            font-size: .75rem;
            font-weight: 600;
            color: #475569;
            cursor: pointer;
            transition: all .2s;
        }

        .mode-btn.active {
            background: #1E293B;
            color: #F1F5F9;
            box-shadow: 0 1px 4px rgba(0, 0, 0, .3);
        }

        /* Mic area */
        #mic-area {
            padding: 32px 24px;
            text-align: center;
        }

        .mic-btn {
            width: 88px;
            height: 88px;
            border-radius: 50%;
            border: none;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 2.2rem;
            margin: 0 auto 16px;
            transition: all .3s;
            background: linear-gradient(135deg, #059669, #10B981);
            box-shadow: 0 8px 32px rgba(16, 185, 129, .35);
        }

        .mic-btn:hover {
            transform: scale(1.08);
        }

        .mic-btn.recording {
            background: linear-gradient(135deg, #DC2626, #EF4444);
            box-shadow: 0 8px 32px rgba(239, 68, 68, .4);
            animation: pulse-red 1.2s ease-in-out infinite;
        }

        @keyframes pulse-red {

            0%,
            100% {
                box-shadow: 0 8px 32px rgba(239, 68, 68, .4)
            }

            50% {
                box-shadow: 0 8px 48px rgba(239, 68, 68, .7)
            }
        }

        .mic-status {
            font-size: .88rem;
            color: #64748B;
            margin-bottom: 8px;
        }

        .mic-status.live {
            color: #34D399;
        }

        .transcript-box {
            background: #0F172A;
            border: 1px solid rgba(255, 255, 255, .08);
            border-radius: 10px;
            padding: 16px;
            min-height: 100px;
            font-size: .9rem;
            color: #CBD5E1;
            line-height: 1.7;
            text-align: left;
            margin-top: 16px;
            white-space: pre-wrap;
            word-break: break-word;
        }

        .transcript-box.placeholder {
            color: #334155;
            font-style: italic;
        }

        /* Text mode */
        #text-area {
            padding: 24px;
        }

        #speaking-text {
            width: 100%;
            min-height: 180px;
            resize: vertical;
            background: #0F172A;
            border: 1px solid rgba(255, 255, 255, .1);
            border-radius: 10px;
            color: #E2E8F0;
            font-family: inherit;
            font-size: .92rem;
            line-height: 1.7;
            padding: 16px;
            box-sizing: border-box;
            transition: border-color .2s;
        }

        #speaking-text:focus {
            outline: none;
            border-color: #10B981;
            box-shadow: 0 0 0 3px rgba(16, 185, 129, .12);
        }

        #speaking-text::placeholder {
            color: #334155;
        }

        /* Grade button */
        .grade-area {
            padding: 0 24px 24px;
            display: flex;
            align-items: center;
            gap: 12px;
            flex-wrap: wrap;
        }

        .word-pill {
            background: rgba(255, 255, 255, .04);
            border: 1px solid rgba(255, 255, 255, .07);
            border-radius: 20px;
            padding: 5px 14px;
            font-size: .75rem;
            color: #475569;
        }

        .word-pill strong {
            color: #94A3B8;
        }

        .grade-btn {
            background: linear-gradient(90deg, #059669, #10B981);
            color: #fff;
            border: none;
            padding: 13px 28px;
            border-radius: 10px;
            font-size: .95rem;
            font-weight: 700;
            cursor: pointer;
            box-shadow: 0 4px 20px rgba(16, 185, 129, .35);
            transition: opacity .2s, transform .15s;
            margin-left: auto;
        }

        .grade-btn:hover {
            opacity: .9;
            transform: translateY(-1px);
        }

        .grade-btn:disabled {
            opacity: .5;
            cursor: not-allowed;
            transform: none;
        }

        /* Loading */
        #spk-loading {
            display: none;
            padding: 48px 24px;
            text-align: center;
        }

        .spin-ring {
            width: 48px;
            height: 48px;
            border: 4px solid rgba(255, 255, 255, .1);
            border-top-color: #10B981;
            border-radius: 50%;
            animation: spin .8s linear infinite;
            margin: 0 auto 16px;
        }

        @keyframes spin {
            to {
                transform: rotate(360deg)
            }
        }

        /* Result */
        #spk-result {
            display: none;
        }

        .spk-result-header {
            padding: 22px 24px 16px;
            border-bottom: 1px solid rgba(255, 255, 255, .06);
            display: flex;
            align-items: center;
            gap: 16px;
            flex-wrap: wrap;
        }

        .band-circle-grn {
            width: 72px;
            height: 72px;
            border-radius: 50%;
            border: 3px solid #10B981;
            background: rgba(16, 185, 129, .1);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 2rem;
            font-weight: 800;
            color: #6EE7B7;
            flex-shrink: 0;
        }

        .spk-breakdown {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
            padding: 16px 24px;
            border-bottom: 1px solid rgba(255, 255, 255, .06);
        }

        .bk-item {
            background: rgba(255, 255, 255, .04);
            border: 1px solid rgba(255, 255, 255, .07);
            border-radius: 8px;
            padding: 8px 14px;
            text-align: center;
            flex: 1;
            min-width: 100px;
        }

        .bk-item span {
            display: block;
            font-size: .62rem;
            color: #475569;
            text-transform: uppercase;
            letter-spacing: .5px;
            margin-bottom: 3px;
        }

        .bk-item strong {
            font-size: 1.25rem;
            color: #6EE7B7;
        }

        .spk-body {
            padding: 20px 24px;
        }

        .spk-section h4 {
            font-size: .75rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: .7px;
            color: #475569;
            margin-bottom: 10px;
        }

        .tag-list {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-bottom: 18px;
        }

        .tag-good {
            background: rgba(16, 185, 129, .1);
            color: #34D399;
            border: 1px solid rgba(16, 185, 129, .2);
            padding: 4px 12px;
            border-radius: 20px;
            font-size: .8rem;
        }

        .tag-improve {
            background: rgba(245, 158, 11, .08);
            color: #FBBF24;
            border: 1px solid rgba(245, 158, 11, .2);
            padding: 4px 12px;
            border-radius: 20px;
            font-size: .8rem;
        }

        .feedback-para {
            font-size: .9rem;
            color: #CBD5E1;
            line-height: 1.75;
        }

        .spk-actions {
            display: flex;
            gap: 10px;
            padding: 0 24px 22px;
            flex-wrap: wrap;
        }

        .btn-retry {
            background: rgba(255, 255, 255, .05);
            border: 1px solid rgba(255, 255, 255, .1);
            color: #94A3B8;
            padding: 9px 18px;
            border-radius: 8px;
            font-size: .82rem;
            font-weight: 600;
            cursor: pointer;
            transition: all .2s;
        }

        .btn-retry:hover {
            color: #F1F5F9;
        }

        .btn-new {
            background: rgba(16, 185, 129, .1);
            border: 1px solid rgba(16, 185, 129, .25);
            color: #34D399;
            padding: 9px 18px;
            border-radius: 8px;
            font-size: .82rem;
            font-weight: 600;
            cursor: pointer;
            transition: all .2s;
        }

        /* Error */
        #spk-error {
            display: none;
            padding: 28px 24px;
            text-align: center;
            color: #FCA5A5;
        }

        .no-speech-warn {
            background: rgba(245, 158, 11, .08);
            border: 1px solid rgba(245, 158, 11, .2);
            border-radius: 10px;
            padding: 12px 16px;
            font-size: .8rem;
            color: #FCD34D;
            margin-bottom: 16px;
            display: none;
        }

        /* Nav */
        .site-nav {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0 20px;
            height: 60px;
            background: rgba(15, 23, 42, .95);
            border-bottom: 1px solid rgba(255, 255, 255, .06);
            position: sticky;
            top: 0;
            z-index: 100;
            backdrop-filter: blur(12px);
        }

        .nav-brand {
            font-weight: 800;
            font-size: 1rem;
            color: #F1F5F9;
            text-decoration: none;
        }

        .nav-brand span {
            color: #818CF8;
        }

        .nav-links a {
            color: #64748B;
            text-decoration: none;
            font-size: .84rem;
            font-weight: 500;
            margin-left: 22px;
            transition: color .2s;
        }

        .nav-links a:hover {
            color: #F1F5F9;
        }

        .nav-links .nav-cta {
            background: #10B981;
            color: #fff;
            padding: 6px 14px;
            border-radius: 8px;
            font-weight: 700;
        }

        .nav-links .nav-cta:hover {
            background: #059669;
            color: #fff;
        }

        @media(max-width:640px) {
            .nav-links a:not(.nav-cta) {
                display: none;
            }

            .spk-breakdown {
                gap: 6px;
            }

            .bk-item {
                min-width: 80px;
            }
        }

/* Enterprise layout compatibility */
.tool-wrap { max-width: 720px; margin: 0 auto 48px; padding: 0 20px; }
.page-hero { display:none; }
