* {
    box-sizing: border-box
}

body {
    margin: 0;
    background: #09090b;
    color: #eee;
    font-family: Inter,Segoe UI,Arial,sans-serif
}

.shell {
    display: grid;
    grid-template-columns: 250px 1fr;
    min-height: 100vh
}

aside {
    background: #0e0e12;
    border-right: 1px solid #29242b;
    padding: 28px 18px;
    display: flex;
    flex-direction: column
}

.brand {
    font-weight: 800;
    letter-spacing: .13em
}

    .brand small {
        display: block;
        color: #a78b8f;
        margin-top: 8px;
        font-size: 11px
    }

    .brand.big {
        text-align: center;
        font-size: 18px;
        margin-bottom: 30px
    }

nav {
    display: grid;
    gap: 8px;
    margin-top: 40px
}

    nav a, .file-list a, .tabs a {
        color: #ddd;
        text-decoration: none;
        padding: 12px;
        border-radius: 8px
    }

        nav a:hover, .file-list a:hover {
            background: #20161a;
            color: #fff
        }

aside form {
    margin-top: auto
}

main {
    padding: 42px;
    max-width: 1500px;
    width: 100%
}

h1 {
    font-size: 32px;
    margin-top: 0
}

p {
    color: #aaa
}

.top {
    display: flex;
    justify-content: space-between;
    align-items: center
}

.status {
    padding: 8px 14px;
    border: 1px solid #633642;
    border-radius: 999px
}

.grid {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 16px;
    margin: 28px 0
}

.card {
    background: #111116;
    border: 1px solid #29242b;
    border-radius: 12px;
    padding: 22px;
    margin: 18px 0
}

    .card code {
        word-break: break-all
    }

.file-list {
    display: grid;
    gap: 5px
}

    .file-list a {
        display: flex;
        justify-content: space-between;
        border-bottom: 1px solid #1d1d22
    }

    .file-list small {
        color: #777
    }

.editor {
    width: 100%;
    min-height: 65vh;
    background: #070709;
    color: #e6e6e6;
    border: 1px solid #353039;
    border-radius: 10px;
    padding: 18px;
    font: 14px/1.55 Consolas,monospace;
    tab-size: 4
}

.actions {
    display: flex;
    gap: 10px;
    margin-top: 15px
}

button, .button {
    background: #7b253b;
    color: #fff;
    border: 0;
    border-radius: 8px;
    padding: 11px 18px;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none
}

.ghost {
    background: #1c1c22
}

.login-bg {
    display: grid;
    place-items: center;
    min-height: 100vh
}

.login-card {
    width: min(420px,92vw);
    padding: 35px;
    background: #111116;
    border: 1px solid #33252b;
    border-radius: 14px
}

    .login-card label {
        display: block;
        color: #aaa;
        margin-bottom: 8px
    }

    .login-card input {
        width: 100%;
        padding: 12px;
        background: #08080a;
        border: 1px solid #40353a;
        color: #fff;
        border-radius: 8px;
        margin-bottom: 15px
    }

.error, .success {
    padding: 12px;
    border-radius: 8px;
    margin: 12px 0
}

.error {
    background: #3a151c
}

.success {
    background: #17321f
}

pre {
    white-space: pre-wrap;
    overflow: auto;
    background: #070709;
    padding: 18px;
    border-radius: 10px;
    border: 1px solid #29242b
}

.log {
    max-height: 72vh
}

.tabs {
    display: flex;
    gap: 10px
}

@media(max-width:900px) {
    .shell {
        grid-template-columns: 1fr
    }

    aside {
        display: none
    }

    .grid {
        grid-template-columns: 1fr
    }

    main {
        padding: 20px
    }
}

/* Bot Studio V2 */
.hero { padding: 46px; border: 1px solid #3a2730; border-radius: 22px; background: radial-gradient(circle at 85% 10%, #35131f 0, transparent 34%), linear-gradient(135deg,#151116,#0d0c10); margin-bottom: 36px; }
.hero h1 { font-size: 48px; margin: 7px 0 10px; }
.hero p { max-width: 680px; font-size: 17px; margin-bottom: 28px; }
.eyebrow { color:#c88b9a; font-size:11px; font-weight:800; letter-spacing:.18em; }
.button.large { padding:14px 22px; display:inline-block; }
.primary { background:#8f2944; }
.studio-section { margin: 34px 0; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; }
.section-heading h2 { margin:5px 0 0; }
.feature-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:14px; margin-top:16px; }
.feature-card { display:grid; grid-template-columns:44px 1fr auto; align-items:center; gap:14px; padding:20px; border:1px solid #30252a; border-radius:14px; background:#111116; color:#eee; text-decoration:none; transition:.15s ease; }
.feature-card:hover { transform:translateY(-2px); border-color:#704052; background:#171217; }
.feature-card h3 { margin:0 0 5px; }.feature-card p { margin:0; font-size:13px; }.feature-icon { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:#351722; color:#e9a4b6; font-weight:900; }.shared .feature-icon { background:#1d1a22; color:#aaa; }.open-arrow { color:#a98992; font-size:13px; }
.empty-state { text-align:center; padding:34px; border:1px dashed #3a3035; border-radius:14px; color:#aaa; }.empty-state h3 { color:#eee; margin-top:0; }
.narrow-page { max-width:760px; margin:0 auto; }.wizard-card { margin-top:24px; padding:38px; background:#111116; border:1px solid #35262d; border-radius:18px; }.wizard-card h1 { margin:8px 0; }.wizard-card label { display:block; margin:26px 0 8px; color:#bbb; font-weight:700; }
.studio-input { width:100%; padding:14px 15px; border:1px solid #43343b; border-radius:10px; background:#08080b; color:white; font:inherit; }.studio-input:focus { outline:none; border-color:#8f4b60; box-shadow:0 0 0 3px #8f294425; }.folder-preview,.folder-chip { margin-top:12px; padding:10px 12px; background:#0a0a0d; border-radius:8px; color:#aaa; font-family:Consolas,monospace; font-size:13px; }.back-link { color:#b9949e; text-decoration:none; }.feature-header { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:20px 0 28px; }.feature-header h1 { margin:6px 0; }.studio-dialog { width:min(520px,92vw); color:#eee; background:#111116; border:1px solid #49313a; border-radius:16px; padding:28px; box-shadow:0 24px 80px #000a; }.studio-dialog::backdrop { background:#000b; }.studio-dialog h2 { margin:7px 0; }.studio-dialog .actions { justify-content:flex-end; }.sidebar-user { margin-top:auto; padding:18px 10px; border-top:1px solid #29242b; display:grid; gap:5px; }.sidebar-user small { color:#777; font-size:10px; letter-spacing:.12em; } aside .sidebar-user + form { margin-top:0; }
@media(max-width:700px){.hero{padding:28px}.hero h1{font-size:38px}.feature-header{align-items:flex-start;flex-direction:column}.wizard-card{padding:24px}}

/* Owner Operations Dashboard */
.ops-hero{display:flex;justify-content:space-between;align-items:center;gap:24px}.live-pill{padding:11px 15px;border:1px solid #3a3035;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.08em;white-space:nowrap}.live-pill span{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;background:#777}.live-pill.online{border-color:#28543b;background:#10251a;color:#9ee7b7}.live-pill.online span{background:#5bd485;box-shadow:0 0 12px #5bd485}.live-pill.offline{border-color:#61313a;background:#261116;color:#e9a4b6}.ops-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0 34px}.ops-card{background:#111116;border:1px solid #35262d;border-radius:18px;padding:26px}.ops-card h2{margin:7px 0 18px}.bot-control-card{grid-row:span 1}.activity-card{grid-column:1/-1}.status-row{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid #29242b;color:#aaa}.status-row strong{color:#eee}.control-buttons,.quick-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.control-buttons form{margin:0}.button.control{border:1px solid #44363d}.button.start{border-color:#28543b}.button.stop{border-color:#6d303c;color:#f2a8b7}.button.restart{border-color:#704052}.operation-result{display:grid;gap:4px;padding:14px 18px;border-radius:12px;margin:18px 0}.operation-result.success{background:#10251a;border:1px solid #28543b}.operation-result.failure{background:#261116;border:1px solid #61313a}.operation-result span{color:#bbb}.activity-list{display:grid;gap:0;margin-bottom:16px}.activity-item{padding:12px 0;border-bottom:1px solid #29242b}.activity-item small{display:block;color:#777;margin-top:4px}.text-link{color:#d89aae;text-decoration:none;font-weight:700}@media(max-width:850px){.ops-grid{grid-template-columns:1fr}.activity-card{grid-column:auto}.ops-hero{align-items:flex-start;flex-direction:column}}

/* =========================================================
   TPC Luxury UI — Global shell & interaction layer
   ========================================================= */
:root{--tpc-bg:#09090b;--tpc-panel:#0f0f13;--tpc-panel-2:#141116;--tpc-line:rgba(255,255,255,.075);--tpc-line-hot:rgba(153,53,78,.55);--tpc-text:#f1edf0;--tpc-muted:#9d969b;--tpc-crimson:#8f2944;--tpc-crimson-hi:#b44764;--tpc-wine:#35131f;--tpc-gold:#c7a76b;--tpc-ease:cubic-bezier(.2,.8,.2,1);--sidebar-width:286px}
html{scroll-behavior:smooth;scrollbar-color:#4a2933 #0a0a0c;scrollbar-width:thin}
body{background:radial-gradient(circle at 80% -10%,rgba(89,20,41,.12),transparent 32%),var(--tpc-bg);color:var(--tpc-text);overflow-x:hidden}
body::-webkit-scrollbar,.studio-sidebar::-webkit-scrollbar{width:7px;height:7px}body::-webkit-scrollbar-track,.studio-sidebar::-webkit-scrollbar-track{background:#0a0a0c}body::-webkit-scrollbar-thumb,.studio-sidebar::-webkit-scrollbar-thumb{background:#4a2933;border-radius:20px}body::-webkit-scrollbar-thumb:hover,.studio-sidebar::-webkit-scrollbar-thumb:hover{background:#704052}
::selection{background:#7b253b;color:#fff}
.shell{grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100vh}
.studio-sidebar{position:sticky;top:0;height:100vh;padding:26px 18px 18px;background:linear-gradient(180deg,#111014 0%,#0c0c0f 58%,#09090b 100%);border-right:1px solid var(--tpc-line);box-shadow:20px 0 60px rgba(0,0,0,.18);overflow-y:auto;z-index:50}
.sidebar-top{display:flex;align-items:center;gap:12px;padding:0 8px 22px;border-bottom:1px solid var(--tpc-line)}
.brand-mark{width:39px;height:39px;display:grid;place-items:center;border:1px solid rgba(199,167,107,.38);border-radius:11px;color:var(--tpc-gold);font-family:Georgia,serif;font-size:11px;font-weight:800;letter-spacing:.08em;background:linear-gradient(145deg,rgba(199,167,107,.09),rgba(143,41,68,.05));box-shadow:inset 0 1px rgba(255,255,255,.05)}
.brand{font-size:11px;line-height:1.35;letter-spacing:.14em;color:#f2edef}.brand small{margin-top:5px;color:#9f737f;font-size:9px;letter-spacing:.22em}
.sidebar-account{display:flex;align-items:center;gap:11px;margin:18px 5px 14px;padding:11px 10px;border:1px solid transparent;border-radius:12px;background:rgba(255,255,255,.018)}
.account-avatar{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#401925,#211318);border:1px solid #5e2d3b;color:#e4b4c0;font-weight:800;font-size:12px}.sidebar-account strong{display:block;font-size:12px;font-weight:700}.sidebar-account small{display:block;margin-top:3px;color:#756f73;font-size:8px;letter-spacing:.15em}
.sidebar-nav{display:flex;flex-direction:column;gap:4px;margin-top:12px}
.sidebar-nav a,.nav-parent{position:relative;width:100%;display:flex;align-items:center;gap:11px;min-height:44px;padding:10px 12px;border:1px solid transparent;border-radius:10px;background:transparent;color:#aaa4a8;text-decoration:none;font:600 13px/1.2 Inter,Segoe UI,Arial,sans-serif;letter-spacing:.01em;cursor:pointer;transition:transform .18s var(--tpc-ease),background .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease}
.sidebar-nav a:hover,.nav-parent:hover{background:rgba(123,37,59,.105);color:#f5f1f3;border-color:rgba(143,41,68,.14);transform:translateX(2px)}
.sidebar-nav .nav-link.active{color:#fff;background:linear-gradient(90deg,rgba(123,37,59,.23),rgba(123,37,59,.07));border-color:rgba(143,41,68,.22);box-shadow:inset 2px 0 #9d3852}
.nav-icon{width:18px;text-align:center;color:#806a71;font-size:11px;transition:color .2s ease}.active .nav-icon,.nav-link:hover .nav-icon{color:#cf8195}.nav-icon.crown{color:var(--tpc-gold);font-size:15px}
.nav-group{margin:8px 0 2px}.nav-parent{justify-content:space-between}.nav-parent-main{display:flex;align-items:center;gap:11px}.nav-chevron{font-size:17px;color:#71686d;transform:rotate(0deg);transition:transform .28s var(--tpc-ease),color .2s ease}.nav-group.open .nav-chevron{transform:rotate(180deg);color:#b78a95}.nav-group.open .nav-parent{color:#eee;background:rgba(255,255,255,.018)}
.nav-submenu{display:grid;grid-template-rows:0fr;transition:grid-template-rows .32s var(--tpc-ease)}.nav-group.open .nav-submenu{grid-template-rows:1fr}.nav-submenu-inner{min-height:0;overflow:hidden;position:relative;margin-left:20px;padding-left:15px}.nav-submenu-inner:before{content:"";position:absolute;left:2px;top:5px;bottom:7px;width:1px;background:linear-gradient(#672638,#3a1c25 75%,transparent)}
.sidebar-nav .sub-link{min-height:35px;padding:8px 10px;font-size:12px;border-radius:8px;color:#8f898d}.sidebar-nav .sub-link:before{content:"";position:absolute;left:-14px;width:5px;height:5px;border-radius:50%;background:#40242d;border:1px solid #673040;transition:.2s ease}.sidebar-nav .sub-link:hover:before,.sidebar-nav .sub-link.active:before{background:#bc526d;box-shadow:0 0 9px rgba(188,82,109,.45)}.sidebar-nav .sub-link.active{color:#fff;background:rgba(123,37,59,.15)}
.nav-section-label{margin:20px 12px 7px;color:#5f5a5d;font-size:8px;font-weight:800;letter-spacing:.22em;text-transform:uppercase}
.sidebar-signout{margin-top:auto;padding-top:18px}.signout-button{width:100%;display:flex;justify-content:space-between;align-items:center;background:transparent;border:1px solid var(--tpc-line);color:#898387;font-size:12px;transition:.2s var(--tpc-ease)}.signout-button:hover{color:#eee;border-color:#4d3038;background:#171116;transform:translateY(-1px)}
.studio-main{max-width:none;padding:42px clamp(24px,4vw,64px) 64px;min-width:0}.page-stage{width:100%;max-width:1500px;animation:tpcPageIn .42s var(--tpc-ease) both}@keyframes tpcPageIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
/* tactile global controls */
button,.button{transition:transform .16s var(--tpc-ease),box-shadow .2s ease,background .2s ease,border-color .2s ease,filter .2s ease}button:hover,.button:hover{filter:brightness(1.08);box-shadow:0 8px 24px rgba(0,0,0,.2)}button:active,.button:active{transform:translateY(1px) scale(.985);box-shadow:none}button:focus-visible,.button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid rgba(180,71,100,.72);outline-offset:3px}
.card,.ops-card,.feature-card,.wizard-card{box-shadow:0 12px 40px rgba(0,0,0,.08);transition:transform .22s var(--tpc-ease),border-color .22s ease,box-shadow .22s ease,background .22s ease}.card:hover,.ops-card:hover{border-color:rgba(112,64,82,.65);box-shadow:0 18px 48px rgba(0,0,0,.15)}
.hero{box-shadow:inset 0 1px rgba(255,255,255,.025),0 22px 70px rgba(0,0,0,.13);overflow:hidden;position:relative}.hero:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.018) 47%,transparent 62%);transform:translateX(-100%);animation:heroSheen 1s var(--tpc-ease) .2s both}@keyframes heroSheen{to{transform:translateX(100%)}}
.mobile-nav-toggle,.sidebar-scrim{display:none}
@media(max-width:900px){.shell{display:block}.studio-sidebar{position:fixed;left:0;top:0;width:min(286px,86vw);transform:translateX(-105%);transition:transform .32s var(--tpc-ease);box-shadow:25px 0 70px rgba(0,0,0,.55)}body.nav-open .studio-sidebar{transform:none}.studio-main{padding:76px 20px 36px}.mobile-nav-toggle{display:grid;position:fixed;top:18px;left:18px;z-index:80;width:42px;height:42px;place-content:center;gap:4px;background:rgba(17,16,20,.92);border:1px solid #352b30;border-radius:11px;backdrop-filter:blur(12px)}.mobile-nav-toggle span{display:block;width:17px;height:1px;background:#d9cfd3;transition:.22s ease}.sidebar-scrim{display:block;position:fixed;inset:0;z-index:40;background:rgba(0,0,0,.66);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:.28s ease}body.nav-open .sidebar-scrim{opacity:1;visibility:visible}body.nav-open{overflow:hidden}body.nav-open .mobile-nav-toggle span:nth-child(1){transform:translateY(5px) rotate(45deg)}body.nav-open .mobile-nav-toggle span:nth-child(2){opacity:0}body.nav-open .mobile-nav-toggle span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
