:root{--bg:#f8fafc;--card:#fff;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--primary:#2563eb;--ai:#7c3aed;--success:#16a34a;--danger:#dc2626;--shadow:0 12px 30px rgba(15,23,42,.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.sp-shell{display:flex;min-height:100vh}.sp-sidebar{width:280px;background:#0f172a;color:#e5e7eb;position:fixed;top:0;bottom:0;left:0;overflow:auto;padding:18px}.sp-brand{display:flex;gap:12px;align-items:center;margin-bottom:22px}.sp-brand-mark{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--primary),var(--ai));display:grid;place-items:center;font-weight:800}.sp-brand span{display:block;color:#94a3b8;font-size:12px}.sp-nav a{display:flex;gap:10px;align-items:center;color:#cbd5e1;text-decoration:none;padding:10px 12px;border-radius:12px;margin:2px 0}.sp-nav a:hover{background:#1e293b;color:white}.sp-nav-label{font-size:11px;text-transform:uppercase;color:#64748b;margin:18px 8px 8px}.sp-main{margin-left:280px;min-height:100vh;width:calc(100% - 280px)}.sp-main-public{margin-left:0;width:100%}.sp-topbar{height:68px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:5}.sp-kicker{font-size:13px;color:var(--muted)}.sp-topbar-actions{display:flex;align-items:center;gap:12px}.sp-credit-pill{padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:#f8fafc;font-size:13px}.sp-content{padding:28px}.sp-page-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:22px}.sp-page-head h1{margin:0 0 6px;font-size:30px}.sp-page-head p{margin:0;color:var(--muted)}.sp-card{background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:22px}.sp-grid{display:grid;gap:18px}.sp-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.sp-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.sp-grid.stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:24px}.stat span{color:var(--muted);font-size:13px}.stat strong{display:block;font-size:28px;margin-top:8px}.sp-module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.module-card{min-height:210px}.module-card.disabled{opacity:.6}.module-card.popular{border-color:#a78bfa}.module-icon{width:46px;height:46px;border-radius:16px;background:#eef2ff;color:var(--primary);display:grid;place-items:center;margin-bottom:14px}.sp-section-title{font-size:22px;margin:30px 0 14px}.sp-btn{border:1px solid var(--line);background:#fff;color:var(--text);border-radius:12px;padding:10px 14px;text-decoration:none;display:inline-flex;gap:8px;align-items:center;justify-content:center;cursor:pointer;font-weight:700}.sp-btn.primary{background:var(--primary);color:white;border-color:var(--primary)}.sp-btn.ai{background:var(--ai);color:white;border-color:var(--ai)}.sp-btn.small{padding:8px 11px;font-size:13px}.sp-link-btn{border:0;background:transparent;color:var(--primary);cursor:pointer;font-weight:700}.sp-badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:12px;font-weight:700}.sp-badge.ok{background:#dcfce7;color:#166534}.sp-badge.muted{background:#f1f5f9;color:#475569}.sp-form label{display:block;font-weight:700;font-size:13px;margin:14px 0 6px}.sp-form input,.sp-form textarea,.sp-form select{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:white;font:inherit}.sp-form textarea{min-height:110px}.sp-check{display:flex!important;align-items:center;gap:8px;font-weight:600!important}.sp-check input{width:auto}.sp-auth-wrap{min-height:100vh;display:grid;place-items:center;padding:30px;background:radial-gradient(circle at top left,#dbeafe,transparent 35%),radial-gradient(circle at bottom right,#ede9fe,transparent 35%),#f8fafc}.sp-auth-card{max-width:440px;width:100%;background:white;border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);padding:32px}.sp-auth-card h1{margin-top:0}.sp-alert{padding:14px 16px;border-radius:14px;margin-bottom:18px}.sp-alert.success{background:#dcfce7;color:#166534}.sp-alert.danger{background:#fee2e2;color:#991b1b}.ai-hero{background:linear-gradient(135deg,#fff,#f5f3ff)}.sp-chat-card{background:white;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:18px}.sp-message{max-width:78%;padding:14px 16px;border-radius:18px;margin:12px 0}.sp-message.assistant{background:#f1f5f9}.sp-message.user{background:#dbeafe;margin-left:auto}.sp-message p{margin:.4rem 0 0}.sp-chat-input{display:flex;gap:12px;margin-top:18px}.sp-chat-input textarea{flex:1;border:1px solid var(--line);border-radius:16px;padding:14px;min-height:90px}.sp-ai-output{white-space:pre-wrap;line-height:1.6}.sp-price{display:block;font-size:24px;margin:12px 0}.sp-meta{color:var(--muted);font-size:13px;margin:8px 0}.sp-empty{text-align:center}.sp-asset{width:100%;border-radius:16px;border:1px solid var(--line)}.sp-placeholder{height:160px;border-radius:16px;border:1px dashed var(--line);display:grid;place-items:center;color:var(--muted);background:#f8fafc}.sp-task{border-top:1px solid var(--line);padding:12px 0}.sp-task span{display:block;color:var(--muted);font-size:12px}.sp-table{width:100%;border-collapse:collapse}.sp-table th,.sp-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left}.sp-table th{font-size:12px;text-transform:uppercase;color:var(--muted)}@media(max-width:1100px){.sp-sidebar{position:static;width:100%;height:auto}.sp-shell{display:block}.sp-main{margin-left:0;width:100%}.sp-grid.stats,.sp-module-grid,.sp-grid.two,.sp-grid.four{grid-template-columns:1fr}.sp-page-head{display:block}.sp-topbar{position:static;height:auto;padding:16px;display:block}.sp-topbar-actions{margin-top:10px;flex-wrap:wrap}}


/* =========================================================
   StartupPilot - SWOT / FODA Visual Matrix
   ========================================================= */

.swot-infographic {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
    margin-top: 22px;
    border-radius: 24px;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
}

.swot-column {
    display: flex;
    flex-direction: column;
    min-height: 560px;
    border-right: 1px solid rgba(15, 23, 42, 0.08);
}

.swot-column:last-child {
    border-right: 0;
}

.swot-header {
    min-height: 215px;
    padding: 24px 18px 22px;
    color: #ffffff;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.swot-header::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.10) 0,
        rgba(255, 255, 255, 0.10) 2px,
        transparent 2px,
        transparent 7px
    );
    opacity: 0.65;
    pointer-events: none;
}

.swot-big-letter {
    position: relative;
    z-index: 1;
    font-size: 122px;
    line-height: 0.85;
    font-weight: 900;
    letter-spacing: -7px;
    color: #ffffff;
    text-shadow: 0 12px 28px rgba(15, 23, 42, 0.18);
}

.swot-header-title {
    position: relative;
    z-index: 1;
    margin-top: 18px;
    font-size: 18px;
    line-height: 1.1;
    font-weight: 900;
    text-transform: uppercase;
    color: #ffffff;
    letter-spacing: -0.3px;
}

.swot-body {
    flex: 1;
    padding: 26px 23px 30px;
}

.swot-body ul {
    margin: 0;
    padding-left: 18px;
}

.swot-body li {
    margin-bottom: 17px;
    padding-left: 4px;
    font-size: 15px;
    line-height: 1.48;
    font-weight: 500;
}

.swot-empty {
    margin: 0;
    font-size: 14px;
    color: #94a3b8;
    font-style: italic;
}

/* Strengths / Fortalezas */
.swot-strengths .swot-header {
    background: linear-gradient(135deg, #0284c7 0%, #0ea5e9 100%);
}

.swot-strengths .swot-body {
    background: #eef8ff;
}

.swot-strengths .swot-body li {
    color: #0284c7;
}

/* Weaknesses / Debilidades */
.swot-weaknesses .swot-header {
    background: linear-gradient(135deg, #f97316 0%, #fb923c 100%);
}

.swot-weaknesses .swot-body {
    background: #fff3ea;
}

.swot-weaknesses .swot-body li {
    color: #f97316;
}

/* Opportunities / Oportunidades */
.swot-opportunities .swot-header {
    background: linear-gradient(135deg, #16a34a 0%, #22c55e 100%);
}

.swot-opportunities .swot-body {
    background: #effdf4;
}

.swot-opportunities .swot-body li {
    color: #16a34a;
}

/* Threats / Amenazas */
.swot-threats .swot-header {
    background: linear-gradient(135deg, #4f46e5 0%, #6366f1 100%);
}

.swot-threats .swot-body {
    background: #f1f2ff;
}

.swot-threats .swot-body li {
    color: #4f46e5;
}

/* Section header */
.sp-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.sp-section-head h2 {
    margin-bottom: 4px;
}

.sp-section-head p {
    margin: 0;
    color: #64748b;
}

.sp-list {
    margin: 0;
    padding-left: 22px;
}

.sp-list li {
    margin-bottom: 10px;
}

/* Responsive tablet */
@media (max-width: 1200px) {
    .swot-infographic {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .swot-column:nth-child(2) {
        border-right: 0;
    }

    .swot-column:nth-child(1),
    .swot-column:nth-child(2) {
        border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    }
}

/* Responsive mobile */
@media (max-width: 700px) {
    .swot-infographic {
        grid-template-columns: 1fr;
    }

    .swot-column {
        min-height: auto;
        border-right: 0;
        border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    }

    .swot-column:last-child {
        border-bottom: 0;
    }

    .swot-header {
        min-height: 170px;
    }

    .swot-big-letter {
        font-size: 88px;
        letter-spacing: -4px;
    }

    .swot-header-title {
        font-size: 17px;
    }
}

/* =========================================================
   StartupPilot - Dashboard layout fix
   Prevent dashboard from overlapping sidebar
   ========================================================= */

.sp-shell {
    display: flex;
    min-height: 100vh;
    width: 100%;
}

.sp-sidebar {
    flex: 0 0 280px;
    width: 280px;
    max-width: 280px;
    z-index: 20;
}

.sp-main {
    flex: 1;
    min-width: 0;
    margin-left: 280px;
    width: calc(100% - 280px);
}

.sp-content {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

.sp-dashboard,
.sp-dashboard-wrap,
.sp-dashboard-content {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

.sp-grid.stats,
.sp-module-grid {
    width: 100%;
    max-width: 100%;
}

@media (max-width: 1100px) {
    .sp-sidebar {
        position: static;
        width: 100%;
        max-width: 100%;
        flex: none;
    }

    .sp-main {
        margin-left: 0;
        width: 100%;
    }
}