/**
 * IllumiWeb Portal - Design System
 * Based on Dealership CRM - adapted with IllumiWeb blue
 */

/* Alpine.js - hide elements before init to prevent flash */
[x-cloak] { display: none !important; }

/* =============================================================================
   CSS VARIABLES
   ============================================================================= */
:root {
    --iw-primary: #4361EE;
    --iw-primary-dark: #3651D4;
    --iw-primary-light: #EEF1FD;
    --iw-bg: #f5f7fb;
    --iw-sidebar-bg: #1a1a2e;
    --iw-sidebar-text: #a0aec0;
    --iw-sidebar-active: #ffffff;
    --iw-card-bg: #ffffff;
    --iw-border: #e2e8f0;
    --iw-text: #2d3748;
    --iw-text-muted: #718096;
    --iw-success: #48bb78;
    --iw-warning: #ed8936;
    --iw-danger: #f56565;
    --iw-info: #4299e1;
    --iw-radius: 12px;
    --iw-radius-sm: 8px;
    --iw-shadow: 0 1px 3px rgba(0,0,0,0.1);
    --iw-shadow-lg: 0 10px 40px rgba(0,0,0,0.1);
    --iw-sidebar-width: 260px;
    --iw-header-height: 60px;
}

/* =============================================================================
   RESET & BASE
   ============================================================================= */
.iw-portal-body { margin:0; padding:0; font-family:'Montserrat',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; font-size:14px; line-height:1.5; color:var(--iw-text); background:var(--iw-bg); min-height:100vh; }
.iw-portal-body * { box-sizing:border-box; }

/* =============================================================================
   MOBILE HEADER
   ============================================================================= */
.iw-mobile-header { display:none; position:fixed; top:0; left:0; right:0; height:var(--iw-header-height); background:var(--iw-sidebar-bg); color:#fff; z-index:100; padding:0 16px; align-items:center; justify-content:space-between; }
.iw-menu-btn { background:none; border:none; color:#fff; padding:8px; cursor:pointer; font-size:18px; }
.iw-mobile-title { font-weight:600; font-size:16px; }
.iw-mobile-avatar { width:32px; height:32px; border-radius:50%; background:var(--iw-primary); display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; }

/* =============================================================================
   SIDEBAR
   ============================================================================= */
.iw-sidebar { position:fixed; top:0; left:0; bottom:0; width:var(--iw-sidebar-width); background:var(--iw-sidebar-bg); color:var(--iw-sidebar-text); display:flex; flex-direction:column; z-index:200; transition:transform 0.3s ease; }
/* Admin bar hidden on portal pages via PHP - no offset needed */
.iw-sidebar-header { padding:24px 20px; display:flex; align-items:center; justify-content:space-between; }
.iw-logo { font-size:18px; font-weight:700; color:#fff; display:flex; align-items:center; gap:8px; }
.iw-logo img { height:28px; width:auto; }
.iw-logo-icon { color:var(--iw-primary); font-size:14px; }
.iw-sidebar-close { display:none; background:none; border:none; color:var(--iw-sidebar-text); padding:8px; cursor:pointer; }
.iw-sidebar-biz { padding:0 16px 16px; }
.iw-biz-avatar,.iw-sidebar-biz { display:flex; align-items:center; gap:12px; padding:12px; background:rgba(255,255,255,0.05); border-radius:var(--iw-radius-sm); }
.iw-biz-avatar { width:36px; height:36px; flex-shrink:0; border-radius:50%; background:var(--iw-primary); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; }
.iw-biz-name { font-weight:600; color:#fff; font-size:14px; }
.iw-biz-industry { font-size:12px; color:var(--iw-sidebar-text); }

.iw-nav { flex:1; padding:0 12px; overflow-y:auto; }
.iw-nav-item { display:flex; align-items:center; gap:12px; padding:11px 16px; color:var(--iw-sidebar-text); text-decoration:none; border-radius:var(--iw-radius-sm); margin-bottom:2px; transition:all 0.2s; font-size:14px; }
.iw-nav-item:hover { background:rgba(255,255,255,0.1); color:#fff; }
.iw-nav-item.active { background:var(--iw-primary); color:#fff; }
.iw-nav-divider { height:1px; background:rgba(255,255,255,0.1); margin:8px 12px; }
.iw-nav-label { font-size:10px; text-transform:uppercase; letter-spacing:1px; color:rgba(255,255,255,0.35); padding:4px 20px 2px; font-weight:600; }
.iw-nav-item i { width:20px; text-align:center; font-size:14px; }
.iw-nav-back { margin-top:8px; border-top:1px solid rgba(255,255,255,0.1); padding-top:12px; }

.iw-sidebar-footer { padding:16px; border-top:1px solid rgba(255,255,255,0.1); }
.iw-user { display:flex; align-items:center; gap:12px; padding:12px; background:rgba(255,255,255,0.05); border-radius:var(--iw-radius-sm); margin-bottom:12px; }
.iw-user-avatar { width:36px; height:36px; border-radius:50%; background:var(--iw-primary); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; }
.iw-user-name { font-weight:600; color:#fff; font-size:13px; }
.iw-user-role { font-size:11px; color:var(--iw-sidebar-text); }
.iw-logout { display:flex; align-items:center; gap:8px; padding:10px 12px; color:var(--iw-sidebar-text); text-decoration:none; border-radius:var(--iw-radius-sm); transition:all 0.2s; font-size:13px; }
.iw-logout:hover { background:rgba(255,255,255,0.1); color:#fff; }

.iw-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:150; }

/* =============================================================================
   MAIN CONTENT
   ============================================================================= */
.iw-main { margin-left:var(--iw-sidebar-width); min-height:100vh; padding:32px; }
.iw-page { max-width:1200px; margin:0 auto; }
.iw-page-header { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:24px; gap:16px; flex-wrap:wrap; }
.iw-page-title { font-size:26px; font-weight:700; margin:0 0 4px 0; }
.iw-page-subtitle { color:var(--iw-text-muted); margin:0; font-size:14px; display:flex; align-items:center; gap:8px; }
.iw-page-actions { display:flex; gap:12px; }
.iw-back-link { font-size:13px; color:var(--iw-primary); text-decoration:none; display:flex; align-items:center; gap:4px; margin-bottom:4px; }
.iw-dot { color:var(--iw-border); }

/* =============================================================================
   BUTTONS
   ============================================================================= */
.iw-btn { display:inline-flex; align-items:center; gap:8px; padding:10px 20px; border-radius:var(--iw-radius-sm); font-size:14px; font-weight:600; text-decoration:none; cursor:pointer; border:none; transition:all 0.2s; font-family:inherit; }
.iw-btn-primary { background:var(--iw-primary); color:#fff; }
.iw-btn-primary:hover { background:var(--iw-primary-dark); }
.iw-btn-secondary { background:var(--iw-card-bg); color:var(--iw-text); border:1px solid var(--iw-border); }
.iw-btn-secondary:hover { background:var(--iw-bg); }
.iw-btn-sm { padding:6px 14px; font-size:13px; }
.iw-btn:disabled { opacity:0.5; cursor:not-allowed; }

/* =============================================================================
   CARDS & SECTIONS
   ============================================================================= */
.iw-card { background:var(--iw-card-bg); border-radius:var(--iw-radius); box-shadow:var(--iw-shadow); padding:24px; }
.iw-section { margin-bottom:24px; }
.iw-section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.iw-section-title { font-size:16px; font-weight:600; margin:0; display:flex; align-items:center; gap:8px; }
.iw-section-title i { color:var(--iw-primary); font-size:14px; }
.iw-link { color:var(--iw-primary); text-decoration:none; font-size:13px; font-weight:500; }
.iw-link:hover { text-decoration:underline; }

/* =============================================================================
   STATS
   ============================================================================= */
.iw-stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-bottom:28px; }
.iw-stat-card { background:var(--iw-card-bg); border-radius:var(--iw-radius); padding:20px; display:flex; align-items:center; gap:16px; box-shadow:var(--iw-shadow); }
.iw-stat-icon { width:48px; height:48px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:18px; }
.iw-stat-icon-blue { background:#ebf5ff; color:var(--iw-info); }
.iw-stat-icon-orange { background:#fff5eb; color:var(--iw-warning); }
.iw-stat-icon-green { background:#f0fdf4; color:var(--iw-success); }
.iw-stat-icon-purple { background:#f3e8ff; color:#9333ea; }
.iw-stat-value { font-size:28px; font-weight:700; line-height:1; }
.iw-stat-label { color:var(--iw-text-muted); font-size:13px; margin-top:4px; }

/* =============================================================================
   TWO COLUMN
   ============================================================================= */
.iw-two-col { display:grid; grid-template-columns:1fr 1fr; gap:24px; }

/* =============================================================================
   PIPELINE
   ============================================================================= */
.iw-pipeline-row { display:flex; align-items:center; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--iw-border); }
.iw-pipeline-row:last-child { border-bottom:none; }
.iw-pipeline-count { font-weight:600; font-size:16px; }

/* =============================================================================
   STATUS BADGES
   ============================================================================= */
.iw-status-badge { padding:4px 10px; border-radius:20px; font-size:12px; font-weight:500; display:inline-block; }
.iw-badge-green { background:#dcfce7; color:#16a34a; padding:3px 8px; border-radius:4px; font-size:12px; font-weight:500; }
.iw-badge-gray { color:var(--iw-text-muted); font-size:12px; }
.iw-badge-blue { background:var(--iw-primary-light); color:var(--iw-primary); padding:3px 8px; border-radius:4px; font-size:12px; font-weight:500; }

/* =============================================================================
   LISTS
   ============================================================================= */
.iw-list-item { display:flex; align-items:center; justify-content:space-between; padding:14px 0; border-bottom:1px solid var(--iw-border); text-decoration:none; color:inherit; transition:background 0.15s; }
.iw-list-item:last-child { border-bottom:none; }
.iw-list-item:hover { background:var(--iw-bg); margin:0 -24px; padding:14px 24px; }
.iw-list-main strong { display:block; margin-bottom:4px; font-size:14px; }
.iw-list-time { font-size:12px; color:var(--iw-text-muted); white-space:nowrap; }
.iw-service-tag { display:inline-block; padding:2px 8px; background:var(--iw-primary-light); color:var(--iw-primary); border-radius:4px; font-size:11px; font-weight:500; margin-right:4px; }
.iw-empty { text-align:center; padding:32px; color:var(--iw-text-muted); }
.iw-empty i { display:block; margin-bottom:8px; }
.iw-empty-cell { text-align:center; padding:24px; color:var(--iw-text-muted); }

/* =============================================================================
   TABLE
   ============================================================================= */
.iw-table-wrap { overflow-x:auto; }
.iw-table { width:100%; border-collapse:collapse; }
.iw-table th { font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:0.5px; color:var(--iw-text-muted); background:var(--iw-bg); padding:12px 16px; text-align:left; }
.iw-table td { padding:14px 16px; border-bottom:1px solid var(--iw-border); font-size:14px; }
.iw-table-row-link { cursor:pointer; transition:background 0.15s; }
.iw-table-row-link:hover { background:var(--iw-bg); }
.iw-table-sub { font-size:12px; color:var(--iw-text-muted); margin-top:2px; }
.iw-pagination { display:flex; align-items:center; justify-content:center; gap:16px; padding:16px 0; }
.iw-page-info { font-size:13px; color:var(--iw-text-muted); }

/* =============================================================================
   FILTERS
   ============================================================================= */
.iw-filters { margin-bottom:20px; padding:16px 20px; }
.iw-filter-row { display:flex; gap:12px; align-items:center; }
.iw-search-wrap { flex:1; position:relative; }
.iw-search-wrap i { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--iw-text-muted); font-size:14px; }
.iw-search { width:100%; padding:10px 12px 10px 36px; border:1.5px solid var(--iw-border); border-radius:var(--iw-radius-sm); font-size:14px; outline:none; font-family:inherit; }
.iw-search:focus { border-color:var(--iw-primary); }
.iw-select { padding:10px 14px; border:1.5px solid var(--iw-border); border-radius:var(--iw-radius-sm); font-size:14px; background:#fff; font-family:inherit; outline:none; min-width:180px; }

/* =============================================================================
   BRAND ESSENCE
   ============================================================================= */
.iw-essence-box { background:var(--iw-primary-light); border:1px solid rgba(67,97,238,0.2); border-radius:var(--iw-radius); padding:16px; }
.iw-essence-header { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.iw-essence-icon { font-size:1.5rem; }
.iw-essence-label { font-size:10px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--iw-primary); }
.iw-essence-name { font-size:18px; font-weight:800; }
.iw-essence-sub { font-size:13px; color:var(--iw-text-muted); margin-bottom:10px; }
.iw-essence-row { display:flex; gap:8px; font-size:13px; padding:6px 0; border-top:1px solid rgba(67,97,238,0.1); }
.iw-essence-field { font-weight:600; color:var(--iw-text-muted); min-width:120px; }
.iw-essence-date { font-size:11px; color:var(--iw-text-muted); margin-top:10px; }

/* Dark variant (client portal) */
.iw-essence-card-dark { background:linear-gradient(135deg,#1A1A2E,#2A2A50); border-radius:var(--iw-radius); padding:20px; color:#fff; }
.iw-essence-icon-dark { width:42px; height:42px; border-radius:50%; background:rgba(67,97,238,0.2); border:1.5px solid rgba(67,97,238,0.35); display:flex; align-items:center; justify-content:center; font-size:1.2rem; }
.iw-essence-label-dark { font-size:10px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:#7B93F5; }
.iw-essence-name-dark { font-size:18px; font-weight:800; color:#fff; }
.iw-essence-traits { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.iw-essence-trait { display:inline-block; padding:3px 10px; background:var(--iw-primary-light); border-radius:4px; font-size:12px; color:var(--iw-primary); font-weight:500; }
.iw-essence-card-dark .iw-essence-trait { background:rgba(67,97,238,0.2); color:#7B93F5; }
.iw-essence-note { font-size:11px; color:rgba(255,255,255,0.4); margin-top:12px; }

/* =============================================================================
   CTA CARD
   ============================================================================= */
.iw-cta-card { text-align:center; padding:32px 20px; border:2px dashed var(--iw-border); border-radius:var(--iw-radius); }
.iw-cta-icon { font-size:2rem; margin-bottom:8px; }
.iw-cta-card h4 { font-size:16px; margin:0 0 6px 0; }
.iw-cta-card p { font-size:13px; color:var(--iw-text-muted); margin:0 0 16px 0; max-width:340px; margin-left:auto; margin-right:auto; }

/* =============================================================================
   SERVICES & JOURNEY
   ============================================================================= */
.iw-service-row { display:flex; align-items:center; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--iw-border); }
.iw-service-row:last-child { border-bottom:none; }
.iw-service-date { font-size:12px; color:var(--iw-text-muted); display:block; margin-top:2px; }
.iw-svc-badge { padding:3px 10px; border-radius:4px; font-size:12px; font-weight:500; }
.iw-svc-pending { background:#fef3c7; color:#d97706; }
.iw-svc-in_progress { background:#dbeafe; color:#1d4ed8; }
.iw-svc-completed { background:#dcfce7; color:#16a34a; }
.iw-svc-cancelled { background:#f3f4f6; color:#6b7280; }

.iw-journey-phase { margin-bottom:20px; }
.iw-journey-phase-header { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:0.5px; color:var(--iw-text-muted); padding-bottom:8px; border-bottom:1px solid var(--iw-border); margin-bottom:8px; display:flex; align-items:center; gap:8px; }
.iw-journey-phase-header i { color:var(--iw-primary); }
.iw-journey-item { display:flex; align-items:center; gap:10px; padding:8px 0; font-size:14px; }
.iw-journey-icon { width:20px; text-align:center; }
.iw-journey-name { flex:1; }
.iw-journey-action { font-size:12px; color:var(--iw-primary); text-decoration:none; font-weight:500; }

/* =============================================================================
   INFO GRID
   ============================================================================= */
.iw-info-grid { display:flex; flex-direction:column; }
.iw-info-item { display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--iw-border); font-size:13px; }
.iw-info-item:last-child { border-bottom:none; }
.iw-info-label { color:var(--iw-text-muted); font-weight:500; }
.iw-info-item a { color:var(--iw-primary); text-decoration:none; }

/* =============================================================================
   ACTIVITY LOG
   ============================================================================= */
.iw-activity-list { display:flex; flex-direction:column; }
.iw-activity-item { display:flex; gap:12px; padding:10px 0; }
.iw-activity-dot { width:8px; height:8px; border-radius:50%; background:var(--iw-primary); margin-top:6px; flex-shrink:0; }
.iw-activity-msg { font-size:13px; }
.iw-activity-time { font-size:11px; color:var(--iw-text-muted); margin-top:2px; }

/* =============================================================================
   TOAST
   ============================================================================= */
.iw-toast { position:fixed; bottom:24px; right:24px; padding:12px 20px; border-radius:var(--iw-radius-sm); color:#fff; font-size:14px; font-weight:500; z-index:9999; transform:translateY(100px); opacity:0; transition:all 0.3s ease; }
.iw-toast.show { transform:translateY(0); opacity:1; }
.iw-toast-success { background:var(--iw-success); }
.iw-toast-error { background:var(--iw-danger); }
.iw-toast-info { background:var(--iw-info); }

/* =============================================================================
   RESPONSIVE
   ============================================================================= */
@media (max-width:1024px) {
    .iw-stats-grid { grid-template-columns:repeat(2,1fr); }
    .iw-two-col { grid-template-columns:1fr; }
}

@media (max-width:768px) {
    .iw-mobile-header { display:flex; }
    .iw-sidebar { transform:translateX(-100%); }
    .iw-sidebar-open .iw-sidebar { transform:translateX(0); }
    .iw-sidebar-open .iw-overlay { display:block; }
    .iw-sidebar-close { display:block; }
    .iw-main { margin-left:0; padding:calc(var(--iw-header-height) + 16px) 16px 16px; }
    .iw-stats-grid { grid-template-columns:1fr 1fr; gap:12px; }
    .iw-stat-card { padding:16px; }
    .iw-stat-value { font-size:22px; }
    .iw-page-title { font-size:22px; }
    .iw-card { padding:16px; }
    .iw-filter-row { flex-direction:column; }
    .iw-select { min-width:100%; }
}

@media (max-width:480px) {
    .iw-stats-grid { grid-template-columns:1fr; }
}

/* =============================================================================
   FORMS
   ============================================================================= */
.iw-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.iw-field { display:flex; flex-direction:column; }
.iw-field-full { grid-column:1/-1; }
.iw-label { font-size:13px; font-weight:600; color:var(--iw-text); margin-bottom:6px; }
.iw-input { padding:10px 14px; border:1.5px solid var(--iw-border); border-radius:var(--iw-radius-sm); font-size:14px; color:var(--iw-text); font-family:inherit; outline:none; transition:border 0.2s; background:#fff; }
.iw-input:focus { border-color:var(--iw-primary); box-shadow:0 0 0 3px rgba(67,97,238,0.1); }
.iw-textarea { min-height:80px; resize:vertical; }
.iw-hint { font-size:12px; color:var(--iw-text-muted); margin-top:4px; }
.iw-checkbox-row { display:flex; align-items:center; gap:8px; font-size:14px; cursor:pointer; padding:4px 0; }
.iw-checkbox-row input[type="checkbox"] { width:16px; height:16px; accent-color:var(--iw-primary); }
.iw-btn-full { width:100%; justify-content:center; }
.iw-alert { padding:10px 14px; border-radius:var(--iw-radius-sm); font-size:13px; margin-bottom:12px; }
.iw-alert-error { background:#fef2f2; border:1px solid #fecaca; color:#dc2626; }
.iw-service-check-group { margin-bottom:12px; }
.iw-service-check-label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.5px; color:var(--iw-text-muted); padding-bottom:6px; border-bottom:1px solid var(--iw-border); margin-bottom:6px; }

@media (max-width:768px) {
    .iw-form-grid { grid-template-columns:1fr; }
}

/* =============================================================================
   FULFILLMENT
   ============================================================================= */
.iw-stats-grid-3 { grid-template-columns:repeat(3,1fr); }
.iw-tabs { display:flex; gap:4px; }
.iw-tab { padding:8px 16px; border:none; background:none; color:var(--iw-text-muted); font-size:14px; font-weight:500; cursor:pointer; border-bottom:2px solid transparent; font-family:inherit; transition:all 0.15s; }
.iw-tab:hover { color:var(--iw-text); }
.iw-tab.active { color:var(--iw-primary); border-bottom-color:var(--iw-primary); }

.iw-fulfillment-row { display:flex; align-items:center; justify-content:space-between; padding:16px 0; border-bottom:1px solid var(--iw-border); gap:16px; }
.iw-fulfillment-row:last-child { border-bottom:none; }
.iw-fulfillment-left { flex:1; min-width:0; }
.iw-fulfillment-name { font-weight:600; font-size:15px; color:var(--iw-text); text-decoration:none; }
.iw-fulfillment-name:hover { color:var(--iw-primary); }
.iw-fulfillment-industry { font-size:12px; color:var(--iw-text-muted); margin-left:8px; }
.iw-fulfillment-service { margin-top:4px; font-size:14px; display:flex; align-items:center; gap:8px; }
.iw-fulfillment-meta { margin-top:4px; font-size:12px; color:var(--iw-text-muted); display:flex; align-items:center; }
.iw-fulfillment-actions { display:flex; align-items:center; gap:8px; flex-shrink:0; }

@media (max-width:768px) {
    .iw-stats-grid-3 { grid-template-columns:1fr; }
    .iw-fulfillment-row { flex-direction:column; align-items:flex-start; }
    .iw-fulfillment-actions { margin-top:8px; }
}

/* =============================================================================
   BRAND ESSENCE HERO (Client Brand Page)
   ============================================================================= */
.iw-essence-hero { background:linear-gradient(135deg,#1A1A2E 0%,#2A2A50 100%); border-radius:var(--iw-radius); padding:40px; text-align:center; margin-bottom:24px; color:#fff; }
.iw-essence-hero-icon { font-size:2.5rem; margin-bottom:8px; }
.iw-essence-hero-label { font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#7B93F5; margin-bottom:4px; }
.iw-essence-hero-name { font-size:28px; font-weight:800; margin:0 0 8px 0; }
.iw-essence-hero-desc { font-size:15px; color:rgba(255,255,255,0.7); margin:0 auto; max-width:480px; line-height:1.6; }
.iw-essence-hero-subs { display:flex; justify-content:center; gap:16px; margin-top:16px; }
.iw-essence-hero-sub { font-size:13px; color:rgba(255,255,255,0.5); }

.iw-brand-traits { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:14px; }
.iw-brand-trait-card { display:flex; align-items:center; gap:8px; padding:10px 16px; background:var(--iw-primary-light); border-radius:var(--iw-radius-sm); }
.iw-brand-trait-dot { width:8px; height:8px; border-radius:50%; background:var(--iw-primary); }
.iw-brand-trait-name { font-weight:600; font-size:14px; color:var(--iw-primary); }
.iw-brand-explain { font-size:13px; color:var(--iw-text-muted); line-height:1.6; margin:0; }

.iw-emotion-row { display:flex; gap:12px; padding:14px 0; border-bottom:1px solid var(--iw-border); }
.iw-emotion-row:last-child { border-bottom:none; }
.iw-emotion-icon { font-size:1.5rem; width:40px; text-align:center; flex-shrink:0; }
.iw-emotion-label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.5px; color:var(--iw-text-muted); margin-bottom:2px; }
.iw-emotion-text { font-size:14px; }

.iw-usage-list { display:flex; flex-direction:column; }
.iw-usage-item { display:flex; gap:12px; padding:12px 0; border-bottom:1px solid var(--iw-border); align-items:flex-start; }
.iw-usage-item:last-child { border-bottom:none; }
.iw-usage-icon { font-size:1.2rem; width:32px; text-align:center; flex-shrink:0; }
.iw-usage-item strong { display:block; font-size:14px; margin-bottom:1px; }
.iw-usage-item span { font-size:12px; color:var(--iw-text-muted); }

.iw-next-step-card { display:flex; align-items:center; gap:14px; padding:16px; background:var(--iw-primary-light); border:1px solid rgba(67,97,238,0.15); border-radius:var(--iw-radius); text-decoration:none; color:var(--iw-text); transition:all 0.2s; }
.iw-next-step-card:hover { border-color:var(--iw-primary); box-shadow:0 4px 12px rgba(67,97,238,0.1); }
.iw-next-step-icon { font-size:1.5rem; }
.iw-next-step-card strong { display:block; font-size:14px; margin-bottom:2px; }
.iw-next-step-card span { font-size:12px; color:var(--iw-text-muted); }
.iw-next-step-card i.fa-arrow-right { color:var(--iw-primary); margin-left:auto; }
.iw-essence-meta { font-size:11px; color:var(--iw-text-muted); margin-top:16px; padding-top:12px; border-top:1px solid var(--iw-border); }

/* =============================================================================
   FILES GRID (Logos Page)
   ============================================================================= */
.iw-files-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:16px; }
.iw-file-card { border:1px solid var(--iw-border); border-radius:var(--iw-radius); overflow:hidden; }
.iw-file-preview { height:140px; background:var(--iw-bg); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.iw-file-preview img { width:100%; height:100%; object-fit:contain; padding:12px; }
.iw-file-icon-preview { font-size:2.5rem; color:var(--iw-text-muted); }
.iw-file-info { padding:12px; }
.iw-file-name { font-size:13px; font-weight:600; display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.iw-file-date { font-size:11px; color:var(--iw-text-muted); }
.iw-file-card .iw-btn { margin:0 12px 12px; width:calc(100% - 24px); justify-content:center; }

.iw-status-banner { display:flex; gap:14px; padding:16px; border-radius:var(--iw-radius-sm); align-items:flex-start; }
.iw-status-banner i { font-size:20px; margin-top:2px; }
.iw-status-banner strong { display:block; margin-bottom:4px; }
.iw-status-banner p { margin:0; font-size:13px; color:var(--iw-text-muted); }
.iw-status-banner-pending { background:#fef3c7; border:1px solid #fde68a; }
.iw-status-banner-pending i { color:#d97706; }

/* =============================================================================
   SERVICE CARDS (Services Page)
   ============================================================================= */
.iw-phase-desc { font-size:13px; color:var(--iw-text-muted); margin:0 0 16px 0; }
.iw-services-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px; }
.iw-svc-card { border:1px solid var(--iw-border); border-radius:var(--iw-radius-sm); padding:16px; transition:all 0.2s; }
.iw-svc-card:hover { border-color:rgba(67,97,238,0.3); }
.iw-svc-card-done { border-color:rgba(72,187,120,0.3); background:#f0fdf4; }
.iw-svc-card-active { border-color:rgba(66,153,225,0.3); background:#ebf8ff; }
.iw-svc-card-pending { border-color:rgba(237,137,54,0.3); background:#fffbeb; }
.iw-svc-card-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.iw-svc-card-code { font-size:11px; font-weight:700; color:var(--iw-text-muted); }
.iw-svc-card-type { font-size:11px; color:var(--iw-text-muted); }
.iw-svc-card-name { font-size:14px; font-weight:600; margin:0 0 8px 0; }
.iw-svc-card-action { font-size:12px; color:var(--iw-primary); text-decoration:none; font-weight:500; display:flex; align-items:center; gap:4px; }
.iw-svc-card-action:hover { text-decoration:underline; }

@media (max-width:768px) {
    .iw-essence-hero { padding:24px 16px; }
    .iw-essence-hero-name { font-size:22px; }
    .iw-essence-hero-subs { flex-direction:column; gap:4px; }
    .iw-files-grid { grid-template-columns:1fr 1fr; }
    .iw-services-grid { grid-template-columns:1fr; }
}

/* =============================================================================
   MODALS
   ============================================================================= */
.iw-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:500; display:flex; align-items:center; justify-content:center; padding:20px; }
.iw-modal { background:#fff; border-radius:var(--iw-radius); width:100%; max-width:480px; box-shadow:var(--iw-shadow-lg); overflow:hidden; }
.iw-modal-header { display:flex; align-items:center; justify-content:space-between; padding:20px 24px; border-bottom:1px solid var(--iw-border); }
.iw-modal-header h3 { margin:0; font-size:18px; }
.iw-modal-close { background:none; border:none; padding:4px; cursor:pointer; color:var(--iw-text-muted); font-size:16px; }
.iw-modal-body { padding:24px; }
.iw-modal-footer { display:flex; justify-content:flex-end; gap:12px; padding:16px 24px; border-top:1px solid var(--iw-border); background:var(--iw-bg); }

/* Permissions grid */
.iw-permissions-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.iw-perm-item { padding:12px; border:1px solid var(--iw-border); border-radius:var(--iw-radius-sm); }
.iw-perm-item strong { display:block; font-size:13px; margin-bottom:4px; }

@media (max-width:768px) {
    .iw-permissions-grid { grid-template-columns:1fr; }
    .iw-modal { max-width:100%; }
}

/* =============================================================================
   SETTINGS
   ============================================================================= */
.iw-settings-layout { display:grid; grid-template-columns:220px 1fr; gap:24px; }
.iw-settings-nav { display:flex; flex-direction:column; gap:4px; }
.iw-settings-tab { display:flex; align-items:center; gap:10px; padding:11px 16px; border:none; background:none; color:var(--iw-text-muted); font-size:14px; font-weight:500; cursor:pointer; border-radius:var(--iw-radius-sm); text-align:left; font-family:inherit; transition:all 0.15s; }
.iw-settings-tab:hover { background:var(--iw-card-bg); color:var(--iw-text); }
.iw-settings-tab.active { background:var(--iw-card-bg); color:var(--iw-primary); box-shadow:var(--iw-shadow); font-weight:600; }
.iw-settings-tab i { width:18px; text-align:center; }
.iw-settings-content { min-width:0; }

.iw-input-sm { padding:7px 10px; font-size:13px; }
.iw-template-block { padding:16px 0; border-bottom:1px solid var(--iw-border); }
.iw-template-block:last-child { border-bottom:none; }
.iw-template-label { font-size:14px; font-weight:600; margin:0 0 10px 0; }

.iw-save-toast { position:fixed; bottom:24px; right:24px; background:var(--iw-success); color:#fff; padding:10px 20px; border-radius:var(--iw-radius-sm); font-weight:600; font-size:14px; z-index:999; }

@media (max-width:768px) {
    .iw-settings-layout { grid-template-columns:1fr; }
    .iw-settings-nav { flex-direction:row; overflow-x:auto; gap:4px; padding-bottom:4px; }
    .iw-settings-tab { white-space:nowrap; padding:8px 14px; font-size:13px; }
}

/* =============================================================================
   COWORK SETUP STEPS
   ============================================================================= */
.iw-cowork-steps { margin-top:8px; }
.iw-step-item { display:flex; gap:12px; padding:12px 0; border-bottom:1px solid var(--iw-border); align-items:flex-start; }
.iw-step-item:last-child { border-bottom:none; }
.iw-step-num { width:28px; height:28px; border-radius:50%; background:var(--iw-primary); color:#fff; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; flex-shrink:0; }
.iw-step-item strong { display:block; font-size:14px; margin-bottom:2px; }
.iw-step-item span { font-size:12px; color:var(--iw-text-muted); }
.iw-step-item code { background:var(--iw-bg); padding:1px 6px; border-radius:4px; font-size:12px; }

/* =============================================================================
   GOOGLE SCORE
   ============================================================================= */
.iw-gs-overview { display:flex; gap:32px; align-items:center; padding:24px; background:linear-gradient(135deg,#1A1A2E 0%,#2A2A50 100%); border-radius:var(--iw-radius); margin-bottom:24px; color:#fff; }
.iw-gs-total { text-align:center; min-width:120px; }
.iw-gs-grade { font-size:48px; font-weight:900; line-height:1; }
.iw-gs-score { font-size:14px; color:rgba(255,255,255,0.6); margin-top:4px; }
.grade-A { color:#48bb78; }
.grade-B { color:#4299e1; }
.grade-C { color:#ecc94b; }
.grade-D { color:#ed8936; }
.grade-F { color:#fc8181; }
.iw-gs-bars { flex:1; display:flex; flex-direction:column; gap:10px; }
.iw-gs-bar-row { display:flex; align-items:center; gap:12px; font-size:13px; }
.iw-gs-bar-row > span:first-child { width:80px; color:rgba(255,255,255,0.7); }
.iw-gs-bar-row > span:last-child { width:50px; text-align:right; font-weight:600; }
.iw-gs-bar { flex:1; height:8px; background:rgba(255,255,255,0.1); border-radius:4px; overflow:hidden; }
.iw-gs-bar-fill { height:100%; border-radius:4px; transition:width 0.5s ease; }
.iw-gs-sub-score { font-size:14px; font-weight:700; color:var(--iw-primary); }
.iw-gs-detail-row { display:flex; justify-content:space-between; align-items:center; padding:8px 0; border-bottom:1px solid var(--iw-border); font-size:13px; }
.iw-gs-detail-row:last-child { border-bottom:none; }

@media (max-width:768px) {
    .iw-gs-overview { flex-direction:column; text-align:center; }
    .iw-gs-bars { width:100%; }
}

/* Checklists */
.iw-checklist-grid { display:grid; grid-template-columns:1fr 1fr; gap:4px; }
.iw-checklist-item { display:flex; align-items:center; gap:8px; padding:8px 12px; border-radius:var(--iw-radius-sm); cursor:pointer; font-size:13px; transition:background 0.15s; }
.iw-checklist-item:hover { background:var(--iw-bg); }
.iw-checklist-item input[type=checkbox] { width:16px; height:16px; accent-color:var(--iw-primary); flex-shrink:0; }
.iw-checklist-item input:checked + span { color:var(--iw-success); }

/* Report output */
.iw-report-output { margin-top:16px; padding:20px; background:var(--iw-bg); border-radius:var(--iw-radius); border:1px solid var(--iw-border); }
.iw-report-content { font-size:14px; line-height:1.7; white-space:pre-wrap; }

@media (max-width:768px) {
    .iw-checklist-grid { grid-template-columns:1fr; }
}

/* =============================================================================
   LOGO CREATOR
   ============================================================================= */
.iw-style-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.iw-style-card { display:block; padding:14px; border:2px solid var(--iw-border); border-radius:var(--iw-radius); cursor:pointer; transition:all 0.15s; }
.iw-style-card:hover { border-color:var(--iw-primary); background:rgba(67,97,238,0.03); }
.iw-style-card.selected { border-color:var(--iw-primary); background:rgba(67,97,238,0.06); }
.iw-style-header { display:flex; justify-content:space-between; align-items:center; }

.iw-prompt-preview { padding:12px 16px; border-left:3px solid var(--iw-primary); background:var(--iw-bg); border-radius:0 var(--iw-radius-sm) var(--iw-radius-sm) 0; margin-bottom:8px; }
.iw-prompt-label { font-size:12px; font-weight:700; text-transform:uppercase; color:var(--iw-primary); margin-bottom:4px; letter-spacing:0.5px; }
.iw-prompt-text { font-size:13px; line-height:1.5; color:var(--iw-text); }

.iw-image-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:8px; margin-top:8px; }
.iw-image-grid-wide { grid-template-columns:repeat(2,1fr); }
.iw-image-thumb { border-radius:var(--iw-radius-sm); overflow:hidden; border:1px solid var(--iw-border); aspect-ratio:1; background:var(--iw-bg); }
.iw-image-thumb.iw-image-wide { aspect-ratio:16/9; }
.iw-image-thumb img { width:100%; height:100%; object-fit:cover; }

@media (max-width:768px) {
    .iw-style-grid { grid-template-columns:repeat(2,1fr); }
    .iw-image-grid { grid-template-columns:repeat(3,1fr); }
}

/* === KW Matrix Styles (Sprint reorg 2026-05-05 — moved from inline to portal.css) === */
.km-tabs{display:flex;gap:2px;background:#f3f4f6;border-radius:8px;padding:3px;width:fit-content;}
.km-tab{padding:5px 14px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;border:none;background:none;color:#6b7280;}
.km-tab.on{background:#fff;color:#1f2937;box-shadow:0 1px 3px rgba(0,0,0,.1);}
.km-tab:disabled{opacity:.4;cursor:not-allowed;}
.km-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;margin-bottom:8px;overflow:hidden;}
.km-card.km-child{margin-left:20px;border-left:3px solid #bfdbfe;}
.km-pillar-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:linear-gradient(90deg,#dbeafe,#eff6ff);border-bottom:2px solid #bfdbfe;cursor:pointer;}
.km-head{display:flex;align-items:center;gap:7px;padding:10px 14px;background:#fafbfc;border-bottom:1px solid #f3f4f6;cursor:pointer;}
.km-body{padding:12px 14px;}
.km-badge{display:inline-block;padding:1px 7px;border-radius:10px;font-size:9px;font-weight:700;line-height:1.8;}
.km-w{display:inline-block;width:20px;height:20px;border-radius:4px;font-size:10px;font-weight:800;text-align:center;line-height:20px;color:#fff;}
.km-tag{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;background:#f3f4f6;border-radius:4px;font-size:11px;font-family:monospace;margin:2px;}
.km-tag:hover{background:#e5e7eb;}
.km-tag.geo{background:#dbeafe;color:#1e40af;}
.km-del{border:none;background:none;color:#d1d5db;cursor:pointer;font-size:13px;padding:0 0 0 2px;line-height:1;}
.km-del:hover{color:#ef4444;}
.km-input{width:100%;padding:6px 10px;border:1px solid #e5e7eb;border-radius:6px;font-size:12px;background:#fff;box-sizing:border-box;}
.km-input:focus{border-color:#4361EE;outline:none;}
.km-kwinput{border:1px dashed #d1d5db;background:transparent;border-radius:4px;padding:3px 8px;font-size:11px;font-family:monospace;width:160px;outline:none;}
.km-kwinput:focus{border-color:#4361EE;background:#fff;}
.km-textarea{width:100%;padding:8px;border:1px solid #e5e7eb;border-radius:6px;font-size:11px;font-family:monospace;resize:vertical;box-sizing:border-box;}
.km-textarea:focus{border-color:#4361EE;outline:none;}
.km-grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.km-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
.km-grid4{display:grid;grid-template-columns:2fr 1fr 70px 110px;gap:8px;align-items:end;}
.km-suggest{display:flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid #e5e7eb;border-radius:6px;margin-bottom:4px;font-size:11px;}
.km-suggest:hover{background:#f9fafb;}
.km-csvrow{display:flex;align-items:center;gap:6px;padding:4px 6px;border-bottom:1px solid #f3f4f6;font-size:11px;}
.km-csvrow:last-child{border:none;}
.km-lbl{display:block;font-size:10px;font-weight:700;color:#6b7280;margin-bottom:3px;text-transform:uppercase;letter-spacing:.3px;}
.km-seed-val{font-size:11px;font-weight:700;color:#1e40af;font-family:monospace;}
.km-section-hdr{font-size:10px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.4px;padding:6px 0 4px;border-bottom:1px solid #f3f4f6;margin-bottom:8px;}
.km-type-sel{border-color:#4361EE!important;background:#eff6ff;}
/* PM (params/config) styles */
.pm-section{margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid #f3f4f6;}
.pm-section:last-child{border:none;margin-bottom:0;padding-bottom:0;}
.pm-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.pm-tag{display:inline-flex;align-items:center;gap:3px;padding:3px 9px;border-radius:10px;font-size:11px;font-weight:600;white-space:nowrap;}
.pm-tag button{border:none;background:none;cursor:pointer;font-size:12px;padding:0 0 0 3px;line-height:1;opacity:.6;}
.pm-tag button:hover{opacity:1;}
.pm-tag-row{min-height:24px;display:flex;flex-wrap:wrap;gap:3px;margin-bottom:6px;}
.pm-add-row{display:flex;gap:4px;}
.pm-add-row input{font-size:11px;padding:4px 8px;}
.pm-hint{font-size:9px;color:#9ca3af;margin:3px 0 0;}
.pm-radio-option{display:flex;align-items:center;gap:6px;font-size:12px;cursor:pointer;padding:7px 12px;border:1px solid #e5e7eb;border-radius:6px;transition:all .1s;}
.pm-radio-option:hover{border-color:#9ca3af;}
