:root{
    --primary:#1d4ed8;
    --primary-hover:#1e40af;
    --bg:#f3f6fb;
    --card:#ffffff;
    --text:#0f172a;
    --text-muted:#64748b;
    --border:#d9e2ec;
    --line:#d9e2ec;
    --accent:#cb6ce6;
    --accent-soft:#f8ecfd;
}

*,*::before,*::after{box-sizing:border-box}

html,body{height:100%}

body{
    margin:0;
    font-family:'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
    background:var(--bg);
    color:var(--text);
    line-height:1.5;
}

img,svg,video,canvas,iframe{max-width:100%;height:auto}
iframe{width:100%}

h1,h2,h3,h4,h5,h6{font-family:'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial; letter-spacing:-0.02em}

.container{width:min(1200px,100%);margin:0 auto;padding:0 1rem}

/* Navigation / shared site-nav */
.site-nav, nav{
    border-bottom:1px solid var(--line);
    margin-bottom:1.35rem;
    position:sticky;
    top:0;
    z-index:50;
    backdrop-filter:blur(8px);
}
.site-nav.site-nav-public{background:rgba(255,255,255,0.93)}
.site-nav.site-nav-workspace{
    background:linear-gradient(140deg,#0b1425 0%,#142e57 56%,#0f766e 100%);
    border-bottom:1px solid rgba(226,232,240,0.28);
    box-shadow:0 10px 26px rgba(2,6,23,0.24);
}
.site-nav .site-nav-inner, .nav-content{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:0.78rem 0}
.site-brand, .logo{display:flex;align-items:center;text-decoration:none;font-weight:800}
.site-brand img, .logo img{height:38px;width:auto;display:block}
.site-nav.site-nav-public .site-brand{color:#0f172a}
.site-nav.site-nav-workspace .site-brand{color:#f8fbff}

.site-nav-actions{display:flex;align-items:center;gap:0.55rem}
.site-nav-badge{
    display:inline-block;
    border:1px solid rgba(226,232,240,0.36);
    border-radius:999px;
    padding:0.18rem 0.52rem;
    font-size:0.72rem;
    font-weight:700;
    letter-spacing:0.02em;
}
.site-nav.site-nav-public .site-nav-badge{background:#eef4ff;color:#1e3a8a;border-color:#c7d2fe}
.site-nav.site-nav-workspace .site-nav-badge{background:rgba(15,23,42,0.28);color:#dbeafe}

.site-menu-toggle{
    border-radius:999px;
    border:1px solid transparent;
    padding:0.44rem 0.9rem;
    font-weight:700;
    cursor:pointer;
}
.site-nav.site-nav-public .site-menu-toggle{background:#0f172a;color:#f8fafc;border-color:#0f172a}
.site-nav.site-nav-workspace .site-menu-toggle{background:rgba(15,23,42,0.28);color:#e2e8f0;border-color:rgba(226,232,240,0.35)}

.site-menu-backdrop{
    position:fixed;
    inset:0;
    background:rgba(2,6,23,0.52);
    opacity:0;
    pointer-events:none;
    transition:opacity 0.2s ease;
    z-index:88;
}
.site-menu-backdrop.open{opacity:1;pointer-events:auto}

.site-menu-drawer{
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    width:min(92vw,360px);
    transform:translateX(106%);
    transition:transform 0.22s ease;
    z-index:90;
    background:#ffffff;
    border-left:1px solid #dbe5f3;
    box-shadow:-12px 0 30px rgba(2,6,23,0.2);
    padding:1rem;
    display:grid;
    align-content:start;
    gap:0.95rem;
    overflow-y:auto;
}
.site-menu-drawer.open{transform:translateX(0)}

.site-menu-header{display:flex;justify-content:space-between;align-items:center;gap:0.6rem}
.site-menu-close{
    border:1px solid var(--border);
    background:#f8fbff;
    color:#334155;
    border-radius:8px;
    padding:0.34rem 0.62rem;
    cursor:pointer;
}

.site-menu-section{display:grid;gap:0.55rem}
.site-menu-section h4{margin:0;color:#0f172a;font-size:0.82rem;text-transform:uppercase;letter-spacing:0.05em}

.site-menu-list{display:grid;gap:0.42rem}
.site-menu-list a{
    text-decoration:none;
    color:#334155;
    border:1px solid var(--border);
    background:#fff;
    border-radius:10px;
    padding:0.52rem 0.68rem;
    font-weight:600;
}
.site-menu-list a.active{background:#e8efff;color:#1e3a8a;border-color:#c7d2fe}
.site-menu-list a:hover{background:#f8fbff}

.site-menu-note{margin:0;color:var(--text-muted);font-size:0.88rem}

.site-account-list{list-style:none;margin:0;padding:0;display:grid;gap:0.4rem}
.site-account-list li{
    border:1px solid var(--border);
    border-radius:10px;
    background:#f8fbff;
    padding:0.48rem 0.62rem;
    display:grid;
    gap:0.12rem;
}
.site-account-list .platform{font-size:0.75rem;color:#1e3a8a;font-weight:700;text-transform:capitalize}
.site-account-list .name{font-size:0.86rem;color:#334155}

.site-menu-link-secondary{color:#1d4ed8;text-decoration:none;font-size:0.86rem;font-weight:600}
.site-menu-footer{padding-top:0.3rem;border-top:1px solid #e2e8f0}

/* Shared footer */
.site-footer{margin-top:2rem;border-top:1px solid var(--line)}
.site-footer.site-footer-public{background:linear-gradient(165deg,#f6fbff 0%,#fdf6ff 100%)}
.site-footer.site-footer-workspace{background:linear-gradient(165deg,#0a1324 0%,#13284b 50%,#0f645e 100%);border-top:1px solid rgba(226,232,240,0.25)}
.site-footer .footer-shell{padding:1.25rem 0 1.5rem;display:grid;gap:1rem}

.footer-headline-card{
    border:1px solid transparent;
    border-radius:16px;
    padding:1rem;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:0.8rem;
    flex-wrap:wrap;
}
.site-footer.site-footer-public .footer-headline-card{
    background:linear-gradient(140deg,rgba(0,151,178,0.12) 0%,rgba(203,108,230,0.12) 100%);
    border-color:#dbeafe;
}
.site-footer.site-footer-workspace .footer-headline-card{
    background:rgba(15,23,42,0.3);
    border-color:rgba(226,232,240,0.3);
}

.footer-kicker{margin:0;color:#64748b;font-size:0.74rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase}
.site-footer.site-footer-workspace .footer-kicker{color:#93c5fd}
.footer-headline-card h3{margin:0.25rem 0 0.2rem}
.site-footer.site-footer-public .footer-headline-card h3{color:#0f172a}
.site-footer.site-footer-workspace .footer-headline-card h3{color:#f8fbff}
.footer-headline-card p{margin:0;color:#475569;max-width:66ch}
.site-footer.site-footer-workspace .footer-headline-card p{color:#cbd5e1}

.footer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.75rem}
.footer-grid article{display:grid;gap:0.34rem;border-radius:12px;padding:0.8rem}
.site-footer.site-footer-public .footer-grid article{border:1px solid var(--line);background:#fff}
.site-footer.site-footer-workspace .footer-grid article{border:1px solid rgba(226,232,240,0.26);background:rgba(15,23,42,0.24)}
.footer-grid h4{margin:0 0 0.1rem}
.site-footer.site-footer-public .footer-grid h4{color:#0f172a}
.site-footer.site-footer-workspace .footer-grid h4{color:#dbeafe}
.footer-grid a{text-decoration:none;font-size:0.9rem}
.site-footer.site-footer-public .footer-grid a{color:#334155}
.site-footer.site-footer-public .footer-grid a:hover{color:#1d4ed8}
.site-footer.site-footer-workspace .footer-grid a{color:#cbd5e1}
.site-footer.site-footer-workspace .footer-grid a:hover{color:#f8fbff}

.footer-meta{font-size:0.84rem}
.site-footer.site-footer-public .footer-meta{color:#64748b}
.site-footer.site-footer-workspace .footer-meta{color:#cbd5e1}
.footer-meta a{font-weight:600}
.site-footer.site-footer-workspace .footer-meta a{color:#e2e8f0}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:0.5rem 1rem;border-radius:0.375rem;font-weight:600;cursor:pointer;text-decoration:none;border:1px solid transparent;max-width:100%;white-space:normal;text-align:center}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-hover)}
.btn-outline{background:#fff;border-color:var(--border);color:var(--text)}
.btn-outline:hover{background:var(--bg)}

/* Cards */
.card{background:var(--card);border:1px solid var(--border);border-radius:0.75rem;padding:1.25rem;box-shadow:0 8px 20px rgba(15,23,42,0.04)}

/* Workspace pages (dashboard-aligned visual language) */
.workspace-shell{display:grid;gap:1rem}
.workspace-header{
    border-radius:16px;
    border:1px solid #d8dee8;
    box-shadow:0 8px 28px rgba(11,18,32,0.05);
    background:linear-gradient(145deg,#0f172a 0%,#1e3a8a 58%,#0f766e 100%);
    color:#eff6ff;
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:1rem;
}
.workspace-header h1{margin:0;color:#f8fbff}
.workspace-header h2{margin:0;color:#f8fbff}
.workspace-kicker{margin:0;color:#cbd5e1;font-size:0.8rem;text-transform:uppercase;letter-spacing:0.08em}
.workspace-sub{margin:0.45rem 0 0;color:#dbeafe}
.workspace-actions{display:flex;gap:0.5rem;flex-wrap:wrap}
.workspace-actions .btn-outline{background:rgba(15,23,42,0.22);border-color:rgba(255,255,255,0.28);color:#e2e8f0}
.workspace-actions .btn-outline:hover{background:rgba(15,23,42,0.35)}
.workspace-panel{border-radius:16px;border:1px solid #d8dee8;box-shadow:0 8px 28px rgba(11,18,32,0.05)}

@media (max-width: 900px){
    .workspace-header{flex-direction:column;align-items:stretch}
}

/* dashed variant for subtle pending/notice cards */
.card-dashed{background:#f8fbff;border-style:dashed}

/* ensure headings inside cards don't add unexpected top spacing */
.card > h3{margin-top:0}

/* plan badge variants (used in billing plan cards) */
.plan-badge{position:absolute;top:-0.6rem;right:0.8rem;background:var(--primary);color:#fff;border-radius:999px;font-size:0.7rem;font-weight:700;padding:0.16rem 0.52rem}
.plan-badge.pending{background:#f59e0b}

/* danger / admin focused accents */
.card-danger{border-color:#dc3545}
.text-danger{color:#dc3545}
.btn-danger{background:#dc3545;color:#fff;border-color:transparent}
.btn-danger:hover{background:#b91c1c}

/* image preview helpers for admin settings */
.img-preview{object-fit:contain;border:1px solid var(--border);border-radius:6px;background:#fff}
.img-preview.img-preview-icon{width:28px;height:28px}
.img-preview.img-preview-logo{height:34px;max-width:220px;padding:0.25rem}

/* disabled state */
.btn[disabled]{opacity:0.65;cursor:not-allowed}

/* small utility helpers */
.hidden{display:none}
.mb-2{margin-bottom:2rem}
.border-primary{border-color:var(--primary)}
.fw-500{font-weight:500}

/* grid helpers */
.col-span-full{grid-column:1 / -1}
.justify-end{justify-content:flex-end}

/* preview rows (used in admin/system for icon/logo previews) */
.preview-row{margin-top:0.55rem;display:flex;align-items:center;gap:0.65rem}

/* form footer + link helpers */
.form-footer{text-align:center;margin-top:1.5rem;font-size:0.875rem;color:var(--text-muted)}
.link-primary{color:var(--primary);text-decoration:none}

/* Typography helpers */
.muted{color:var(--text-muted)}

/* Forms */
.form-group{margin-bottom:1rem}
label{display:block;font-size:.875rem;font-weight:600;margin-bottom:.25rem}
input[type="text"], input[type="email"], input[type="password"], select, textarea{width:100%;padding:.625rem;border:1px solid var(--border);border-radius:.375rem;background:#fff;font-family:inherit}
input:focus, textarea:focus, select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(29,78,216,0.06)}
textarea{resize:vertical}

/* Utility spacing classes (minimal set to avoid breaking layouts when replacing inline styles) */
.m-0{margin:0!important}
.mt-1{margin-top:1rem}
.mb-1{margin-bottom:1rem}
.p-0{padding:0!important}
.gap-08{gap:.8rem}
/* small helpers */
.ml-05{margin-left:.5rem}
.w-full{width:100%}
.btn-small{font-size:0.8125rem;padding:.375rem .7rem}

/* themed button variants used on marketing pages */
.btn-ghost-dark{color:#e2e8f0;border-color:rgba(226,232,240,0.35);background:rgba(15,23,42,0.25)}
.btn-ghost-transparent{color:#e2e8f0;border-color:rgba(226,232,240,0.45);background:transparent}
.btn-reject{color:#9a3412;border-color:#fed7aa;background:#fff}

/* Layout helpers */
.grid{display:grid}
.flex{display:flex}
.flex-center{display:flex;justify-content:center;align-items:center}

/* Small components */
.alert{padding:.75rem;border-radius:.375rem;margin-bottom:1rem;font-size:.875rem}
.alert-error{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca}
.alert-success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}

/* Loader */
.loader{display:inline-block;border:2px solid #f3f3f3;border-top:2px solid var(--primary);border-radius:50%;width:16px;height:16px;animation:spin 1s linear infinite;margin-left:.5rem}
@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}

/* Responsive tweaks (keep minimal and safe) */
@media (max-width:980px){
    .site-nav, nav{padding:.7rem 0;margin-bottom:1.1rem}
    .site-nav .site-nav-inner, .nav-content{flex-direction:column;align-items:stretch}
    .site-brand{justify-content:center}
    .grid-2,.grid-3,.hero-grid{grid-template-columns:1fr}
    .site-nav-actions{justify-content:space-between}
    .footer-grid{grid-template-columns:1fr}
}

@media (max-width:640px){
    .container{padding:0 .75rem}
    .site-brand img, .logo img{height:34px}
    .footer-headline-card{padding:0.86rem}
}

@media (max-width:900px){
    .table{display:block;max-width:100%;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
}

/* Headings: normalize default margins used across templates */
h1{margin:0}
h2{margin:0 0 0.35rem}
h3{margin:0 0 0.35rem}

/* Small spacing utilities used when consolidating inline styles */
.mt-05{margin-top:0.5rem}
.mt-075{margin-top:0.75rem}
.mt-035{margin-top:0.35rem}
.mt-1{margin-top:1rem}
.mt-15{margin-top:1.5rem}
.pt-2{padding-top:2rem}
.text-center{text-align:center}
.text-sm{font-size:0.875rem}

/* Flex / Grid helpers */
.justify-between{justify-content:space-between}
.items-center{align-items:center}
.flex-wrap{flex-wrap:wrap}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-auto{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}

/* max-width helpers used in marketing copy blocks */
.max-64ch{max-width:64ch}
.max-68ch{max-width:68ch}
.max-70ch{max-width:70ch}

/* Table utility */
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:1rem 0.5rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}

/* Card gradient variants (used by landing pages) */
.card-gradient-a{background:linear-gradient(160deg,#f8fafc 0%,#eef2ff 100%)}
.card-gradient-b{background:linear-gradient(150deg,#e0f7ff 0%,#f5ecff 100%)}
.card-gradient-c{background:linear-gradient(160deg,#ecfeff 0%,#eff6ff 100%)}
.card-gradient-d{background:linear-gradient(150deg,#ecfeff 0%,#faf5ff 100%)}
.card-gradient-e{background:linear-gradient(140deg,#ecfeff 0%,#faf5ff 100%)}
.card-hero-dark{background:linear-gradient(145deg,#073a43 0%,#0097b2 62%,#cb6ce6 100%);color:#f8fafc}
.card-accent{background:#eef4ff;border-color:#c7d2fe}

/* Plan highlight used on pricing */
.plan-highlight{border:2px solid var(--primary);transform:translateY(-2px)}

/* Homepage / hero helpers */
.hero-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:1rem}
.card-hero-home{background:linear-gradient(145deg,#0f172a 0%,#1e3a8a 60%,#0f766e 100%);color:#f8fafc}
.hero-title{margin:0;font-size:clamp(2rem,4.2vw,3.25rem);line-height:1.04}
.hero-sub{margin:1rem 0 1.2rem;color:#dbeafe;max-width:56ch}
.gap-055{gap:.55rem}
.stat-box{border:1px solid var(--line);border-radius:12px;padding:.75rem;background:#f8fbff}
.stat-box strong{display:block;color:#1e3a8a;font-size:1.3rem}
.pt-12{padding-top:1.2rem}
.card-gradient-f{background:linear-gradient(180deg,#eff6ff 0%,#ffffff 100%)}

