:root{--bg:#f4f7fb;--surface:#fff;--surface-2:#f8fafc;--ink:#172033;--muted:#6f7a8f;--line:#e6eaf0;--primary:#5b5af7;--primary-dark:#4948d9;--success:#12856a;--danger:#c34255;--blue:#356bd7;--purple:#7a52c9;--shadow:0 16px 40px rgba(31,43,68,.08);--radius:20px;--sidebar:#111827;--sidebar-muted:#98a2b3}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}body{margin:0;background:var(--bg);min-height:100vh}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{position:fixed;inset:0 auto 0 0;width:270px;background:linear-gradient(180deg,#121827,#0b1120);color:#fff;padding:24px 18px;display:flex;flex-direction:column;z-index:50;border-right:1px solid rgba(255,255,255,.06)}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:2px 8px 24px}.sidebar-brand strong{font-size:16px;display:block}.sidebar-brand span{display:block;font-size:11px;color:var(--sidebar-muted);margin-top:2px;letter-spacing:.02em}.brand-mark{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#6d6afc,#8f6bf4);color:#fff;font-weight:800;letter-spacing:.03em;box-shadow:0 12px 28px rgba(91,90,247,.28)}.brand-mark.small{width:40px;height:40px;border-radius:13px;font-size:13px}.nav-list{display:flex;flex-direction:column;gap:6px}.nav-link{display:flex;align-items:center;gap:12px;color:#b9c1cf;padding:12px 13px;border-radius:12px;font-size:14px;font-weight:650;transition:.18s ease}.nav-link:hover{background:rgba(255,255,255,.06);color:#fff}.nav-link.active{background:linear-gradient(135deg,rgba(105,104,249,.25),rgba(105,104,249,.12));color:#fff;box-shadow:inset 0 0 0 1px rgba(137,135,255,.16)}.nav-icon{width:24px;text-align:center;font-size:17px}.sidebar-footer{margin-top:auto;padding-top:16px;border-top:1px solid rgba(255,255,255,.08)}.user-chip{display:flex;align-items:center;gap:10px;padding:8px}.user-chip .avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#283348;font-weight:800}.user-chip strong{font-size:12px;display:block}.user-chip span:not(.avatar){font-size:10px;color:var(--sidebar-muted);display:block;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main-wrap{margin-left:270px;width:calc(100% - 270px);min-height:100vh}.topbar{height:86px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 34px;position:sticky;top:0;z-index:30}.topbar>div{min-width:0}.topbar h2{margin:0;font-size:19px}.topbar p{margin:4px 0 0;color:var(--muted);font-size:11px}.topbar form{margin-left:auto}.menu-button{display:none}.content-area{padding:30px 34px 50px;max-width:1500px;margin:0 auto}.hero-card{background:linear-gradient(135deg,#171b36 0%,#282a55 50%,#39357b 100%);color:#fff;border-radius:26px;padding:32px 34px;display:flex;align-items:flex-end;justify-content:space-between;gap:28px;box-shadow:var(--shadow);overflow:hidden;position:relative}.hero-card:after{content:"";position:absolute;width:320px;height:320px;border-radius:50%;right:-80px;top:-180px;background:radial-gradient(circle,rgba(147,134,255,.42),rgba(147,134,255,0) 70%)}.hero-card h1{font-size:30px;line-height:1.18;max-width:650px;margin:8px 0 10px}.hero-card p{color:#c6c8e8;max-width:720px;margin:0;line-height:1.65;font-size:14px}.hero-status{position:relative;z-index:2;display:flex;align-items:center;gap:9px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);padding:10px 14px;border-radius:999px;font-size:12px;white-space:nowrap}.status-dot{width:8px;height:8px;border-radius:50%;background:#50d0a8;box-shadow:0 0 0 5px rgba(80,208,168,.1)}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.14em;color:#7d87a0}.hero-card .eyebrow{color:#aeb3dd}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0}.stat-card,.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 26px rgba(36,47,73,.045)}.stat-card{padding:20px}.stat-card>span{display:block;font-size:12px;color:var(--muted);font-weight:650}.stat-card strong{display:block;font-size:30px;margin:8px 0 4px;letter-spacing:-.04em}.stat-card small{color:#9aa3b4;font-size:11px}.panel{padding:22px;margin-bottom:20px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}.two-col.align-start{align-items:start}.sticky-panel{position:sticky;top:106px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.panel-head h3{font-size:17px;margin:5px 0 0}.panel-copy{color:var(--muted);font-size:13px;line-height:1.6;margin:-4px 0 20px}.health-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.health-row:last-child{border-bottom:0}.health-row strong{display:block;font-size:13px}.health-row span:not(.pill){display:block;font-size:11px;color:var(--muted);margin-top:3px;max-width:500px;overflow-wrap:anywhere}.pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:800;white-space:nowrap;background:#eef1f5;color:#697386}.pill-success{background:#e8f7f2;color:#13745f}.pill-blue{background:#ebf2ff;color:#315fae}.pill-purple{background:#f2ecff;color:#6a4bb3}.pill-danger{background:#ffedf0;color:#ac3748}.pill-muted{background:#f0f2f5;color:#737d8e}.pipeline-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.pipeline-grid>div{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:18px}.pipeline-grid strong{display:block;font-size:23px}.pipeline-grid span{font-size:11px;color:var(--muted)}.form-stack{display:flex;flex-direction:column;gap:15px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:flex;flex-direction:column;gap:7px}.field>span{font-size:11px;font-weight:760;color:#515d71}.field input,.field select{width:100%;border:1px solid #dbe0e8;border-radius:11px;background:#fff;padding:11px 12px;color:var(--ink);outline:none;transition:.16s}.field input:focus,.field select:focus{border-color:#8c8af7;box-shadow:0 0 0 3px rgba(91,90,247,.09)}.field small{font-size:10px;color:#9099aa;line-height:1.45}.divider{height:1px;background:var(--line);margin:2px 0}.check-row{display:flex;align-items:flex-start;gap:10px}.check-row input{width:16px;height:16px;margin-top:2px;accent-color:var(--primary)}.check-row strong{display:block;font-size:12px}.check-row small{display:block;color:var(--muted);font-size:10px;margin-top:3px;line-height:1.45}.check-row.compact{padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.destination-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:260px;overflow:auto}.button{border:0;border-radius:10px;padding:10px 14px;font-weight:750;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:.16s ease}.button:disabled{opacity:.5;cursor:not-allowed}.button-primary{background:var(--primary);color:#fff;box-shadow:0 8px 18px rgba(91,90,247,.18)}.button-primary:hover{background:var(--primary-dark);transform:translateY(-1px)}.button-ghost{background:#f0f2f6;color:#4f5a6d}.button-ghost:hover{background:#e6eaf0}.button-success{background:#e8f7f2;color:#116f5b}.button-danger-soft{background:#fff0f2;color:#a7384a}.button-small{padding:7px 10px;font-size:10px}.button-wide{width:100%}.text-link{color:var(--primary);font-weight:750;font-size:11px}.alert{border-radius:12px;padding:12px 14px;font-size:12px;margin-bottom:18px;border:1px solid}.alert-danger{background:#fff4f5;color:#9b3344;border-color:#ffdce1}.alert-success{background:#effaf6;color:#116b58;border-color:#cfefe5}.inline-error{font-size:10px;color:var(--danger);background:#fff5f6;border-radius:8px;padding:8px 10px}.empty-state{padding:30px 18px;text-align:center;color:#8a94a6;font-size:12px;border:1px dashed #dce1e8;border-radius:14px;background:#fbfcfd}.card-list{display:flex;flex-direction:column;gap:10px}.channel-card,.schedule-card{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:15px;padding:14px;background:#fff}.channel-main{display:flex;gap:12px;align-items:center}.channel-avatar{width:42px;height:42px;border-radius:13px;background:#eef0ff;color:#5758c8;display:grid;place-items:center;font-weight:850}.row-title{display:flex;align-items:center;gap:8px}.row-title strong{font-size:13px}.channel-main>div>span,.schedule-card p{font-size:11px;color:var(--muted);margin:3px 0}.channel-main small{display:block;font-size:10px;color:#9aa3b3}.row-actions{display:flex;align-items:center;gap:6px}.row-actions.wrap{flex-wrap:wrap;justify-content:flex-end}.meta-row{display:flex;gap:10px;flex-wrap:wrap;color:#778196;font-size:10px;margin-top:7px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}table{width:100%;border-collapse:collapse;min-width:760px;background:#fff}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:9px;letter-spacing:.08em;color:#818a9c;text-transform:uppercase;background:#fafbfc}td{font-size:11px;color:#475267}td strong{color:#202a3d;font-size:11px}.table-sub{display:block;font-size:9px;color:#98a0af;margin-top:2px}.error-cell{max-width:240px;color:#9f5260;white-space:normal}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.info-grid>div{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface-2)}.info-grid span{font-size:10px;color:var(--muted);display:block}.info-grid strong{display:block;font-size:18px;margin-top:5px}.security-note{font-size:10px;line-height:1.5;color:var(--muted);margin:14px 0 0}.security-note code{background:#f0f2f6;border-radius:5px;padding:2px 4px}.guest-body{background:radial-gradient(circle at 15% 10%,#ececff 0,#f5f7fb 34%,#eef2f7 100%);display:grid;place-items:center;padding:28px;min-height:100vh}.auth-shell{display:grid;grid-template-columns:1.05fr .95fr;width:min(920px,100%);min-height:560px;background:#fff;border:1px solid rgba(210,216,227,.8);border-radius:28px;overflow:hidden;box-shadow:0 28px 80px rgba(31,41,64,.14)}.brand-panel{background:linear-gradient(145deg,#13192a 0,#21264a 55%,#4d49a0 100%);color:#fff;padding:52px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.brand-panel h1{font-size:34px;margin:24px 0 10px}.brand-panel p{color:#c5c9e2;line-height:1.65;font-size:14px;max-width:360px}.secure-chip{margin-top:24px;padding:8px 11px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.07);border-radius:999px;font-size:10px;color:#dde0f4}.auth-card{padding:52px;display:flex;justify-content:center;flex-direction:column}.auth-heading h2{margin:7px 0 8px;font-size:28px}.auth-heading p{color:var(--muted);font-size:12px;margin:0 0 24px}.auth-note{font-size:9px;color:#98a1b1;text-align:center;margin:16px 0 0}.sidebar-backdrop{display:none}.icon-button{border:0;background:#f0f2f5;width:36px;height:36px;border-radius:9px}.nowrap{white-space:nowrap}@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.sticky-panel{position:static}.destination-picker{grid-template-columns:repeat(2,1fr)}}@media(max-width:820px){.sidebar{transform:translateX(-102%);transition:transform .2s ease;box-shadow:20px 0 40px rgba(9,15,28,.22)}.sidebar.open{transform:translateX(0)}.main-wrap{margin-left:0;width:100%}.menu-button{display:inline-grid;place-items:center;margin-right:12px}.topbar{height:76px;padding:0 18px}.topbar form .button{padding:8px 10px}.content-area{padding:20px 16px 40px}.hero-card{padding:24px;align-items:flex-start;flex-direction:column}.hero-card h1{font-size:24px}.hero-status{align-self:flex-start}.sidebar-backdrop.show{display:block;position:fixed;inset:0;background:rgba(6,10,20,.45);z-index:40}.nav-open{overflow:hidden}.auth-shell{grid-template-columns:1fr;max-width:520px}.brand-panel{padding:34px;min-height:230px}.brand-panel .brand-mark{width:46px;height:46px;border-radius:15px}.brand-panel h1{font-size:26px;margin:18px 0 6px}.auth-card{padding:34px}.guest-body{padding:16px}.channel-card,.schedule-card{align-items:flex-start;flex-direction:column}.row-actions{width:100%;justify-content:flex-end}}@media(max-width:560px){.stat-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:15px}.stat-card strong{font-size:24px}.pipeline-grid{grid-template-columns:1fr 1fr}.field-grid,.destination-picker,.info-grid{grid-template-columns:1fr}.panel{padding:16px;border-radius:16px}.hero-card{border-radius:20px}.topbar h2{font-size:16px}.topbar p{font-size:9px}.topbar form .button{font-size:0}.topbar form .button:after{content:'Exit';font-size:10px}.brand-panel{display:none}.auth-shell{min-height:auto}.auth-card{padding:30px 22px}.guest-body{background:#f4f7fb}.row-actions.wrap{justify-content:flex-start}}
.inline-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.inline-form .grow{flex:1 1 300px}.inline-form .field:not(.grow){flex:0 1 180px}.inline-submit{min-height:40px;margin-bottom:0}@media(max-width:700px){.inline-form{display:grid;grid-template-columns:1fr}.inline-form .field,.inline-form .grow{width:100%}.inline-submit{width:100%}}
.alert-warning{background:#fff7df;border:1px solid #f2d78c;color:#735712}.pill-warning{background:#fff1c7;color:#7a5b00}.account-security-panel{max-width:720px;margin:0 auto}.narrow-form{max-width:520px}
.force-logout{margin-top:12px}
.field textarea{width:100%;border:1px solid #dbe0e8;border-radius:11px;background:#fff;padding:11px 12px;color:var(--ink);outline:none;transition:.16s;resize:vertical;min-height:110px}.field textarea:focus{border-color:#8c8af7;box-shadow:0 0 0 3px rgba(91,90,247,.09)}.rule-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.template-card,.source-format-card{border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff}.template-card pre{white-space:pre-wrap;word-break:break-word;background:var(--surface-2);border:1px solid var(--line);border-radius:11px;padding:12px;font:11px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;max-height:220px;overflow:auto}.template-card details{margin:12px 0}.template-card summary{cursor:pointer;color:var(--primary);font-size:11px;font-weight:750}.compact-form{margin-top:12px}.section-mini-title{margin:5px 0 0;font-size:15px}.command-box{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.command-box strong{display:block;font-size:11px;margin-bottom:7px}.command-box code{display:block;font-size:10px;overflow-wrap:anywhere}.source-format-card{display:flex;flex-direction:column;gap:14px}.source-format-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.history-counts{display:flex;gap:8px;flex-wrap:wrap}.history-counts span{font-size:10px;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);padding:7px 9px;border-radius:9px}.history-counts strong{color:var(--ink)}.history-actions{display:flex;gap:8px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--line)}.status-word{font-size:22px!important}.formatter-hero{margin-bottom:20px}@media(max-width:900px){.template-grid{grid-template-columns:1fr}.source-format-head{flex-direction:column}.rule-grid{grid-template-columns:1fr}}@media(max-width:560px){.history-actions .button{width:100%}.history-actions form{width:100%}}

/* ===== TeleFlow Hub Dashboard Convenience UI v1 ===== */

.tf-dashboard{
    display:flex;
    flex-direction:column;
    gap:20px;
}

.tf-dashboard-hero{
    min-height:0;
    padding:26px 30px;
    border-radius:24px;
    background:linear-gradient(135deg,#171b36 0%,#292d65 55%,#45419a 100%);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
    overflow:hidden;
    position:relative;
}

.tf-dashboard-hero h1{
    margin:7px 0 8px;
    font-size:28px;
    line-height:1.15;
}

.tf-dashboard-hero p{
    margin:0;
    max-width:650px;
    color:rgba(255,255,255,.78);
    font-size:13px;
    line-height:1.65;
}

.tf-ready-pill{
    flex:none;
    display:flex;
    align-items:center;
    gap:9px;
    padding:10px 14px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.16);
    background:rgba(255,255,255,.08);
    font-size:12px;
    font-weight:700;
    white-space:nowrap;
}

.tf-stats{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}

.tf-stat{
    min-width:0;
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:18px;
    padding:18px 20px;
    box-shadow:0 8px 24px rgba(36,47,73,.05);
    text-decoration:none;
    color:var(--ink);
}

.tf-stat span{
    display:block;
    font-size:11px;
    font-weight:750;
    color:var(--muted);
}

.tf-stat strong{
    display:block;
    margin:6px 0 3px;
    font-size:28px;
    line-height:1.1;
}

.tf-stat small{
    display:block;
    font-size:10px;
    color:#9aa3b4;
}

.tf-dashboard-grid{
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
    gap:16px;
    align-items:stretch;
}

.tf-dashboard-grid>.panel{
    margin:0;
}

.tf-quick-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}

.tf-action{
    min-height:76px;
    padding:14px;
    border:1px solid var(--line);
    border-radius:14px;
    background:var(--surface-2);
    color:var(--ink);
    text-decoration:none;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    transition:.16s ease;
}

.tf-action:hover{
    transform:translateY(-1px);
    border-color:#a9a7ff;
    box-shadow:0 8px 20px rgba(91,90,247,.08);
}

.tf-action strong{
    font-size:12px;
}

.tf-action span{
    font-size:10px;
    color:var(--muted);
}

.tf-action-primary{
    background:rgba(91,90,247,.07);
    border-color:rgba(91,90,247,.25);
}

.tf-empty-schedule{
    min-height:170px;
    border:1px dashed #d5dbea;
    border-radius:15px;
    background:var(--surface-2);
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    padding:22px;
    gap:8px;
}

.tf-empty-schedule strong{
    font-size:13px;
}

.tf-empty-schedule span{
    max-width:310px;
    color:var(--muted);
    font-size:11px;
    line-height:1.55;
}

.tf-empty-schedule .button{
    margin-top:8px;
}

.tf-schedule-list{
    display:flex;
    flex-direction:column;
}

.tf-schedule-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:12px 0;
    border-bottom:1px solid var(--line);
}

.tf-schedule-row:last-child{
    border-bottom:0;
}

.tf-schedule-row strong,
.tf-schedule-row small{
    display:block;
}

.tf-schedule-row strong{
    font-size:12px;
}

.tf-schedule-row small{
    margin-top:3px;
    color:var(--muted);
    font-size:10px;
}

.tf-pipeline-panel{
    margin:0;
}

.tf-pipeline{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
}

.tf-pipeline>div{
    min-height:82px;
    background:var(--surface-2);
    border:1px solid var(--line);
    border-radius:14px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
}

.tf-pipeline strong{
    display:block;
    font-size:24px;
}

.tf-pipeline span{
    margin-top:4px;
    color:var(--muted);
    font-size:10px;
}

@media(max-width:1000px){
    .tf-dashboard-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:820px){
    .tf-stats{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .tf-dashboard-hero{
        align-items:flex-start;
        flex-direction:column;
        padding:23px;
    }
}

@media(max-width:560px){
    .tf-dashboard{
        gap:14px;
    }

    .tf-dashboard-hero{
        border-radius:20px;
        padding:20px;
    }

    .tf-dashboard-hero h1{
        font-size:23px;
    }

    .tf-stats{
        gap:9px;
    }

    .tf-stat{
        padding:15px;
        border-radius:15px;
    }

    .tf-stat strong{
        font-size:24px;
    }

    .tf-stat small{
        line-height:1.35;
    }

    .tf-quick-actions{
        grid-template-columns:1fr;
    }

    .tf-pipeline{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

/* ===== End TeleFlow Hub Dashboard Convenience UI v1 ===== */
