/* ===== RESET & VARIABLES ===== */
*{margin:0;padding:0;box-sizing:border-box}

:root,[data-theme="dark"]{
    --bg:#0f172a;--panel:#1e293b;--panel-hover:#263548;
    --accent:#3b82f6;--accent-glow:rgba(59,130,246,.15);
    --highlight:#ef4444;--green:#22c55e;--yellow:#eab308;
    --text:#e2e8f0;--text-dim:#94a3b8;--text-heading:#f1f5f9;
    --border:#334155;--radius:12px;
    --shadow:0 1px 3px rgba(0,0,0,.3);
    --shadow-lg:0 4px 20px rgba(0,0,0,.4);
    --font:'Inter',system-ui,-apple-system,sans-serif;

    /* === Mission Control Status Colors === */
    --status-active:#10b981;
    --status-idle:#f59e0b;
    --status-inactive:#6b7280;
    --status-error:#ef4444;

    /* === Widget accent borders === */
    --widget-agents:#3b82f6;
    --widget-network:#10b981;
    --widget-cron:#f59e0b;
    --widget-reports:#8b5cf6;
    --widget-alerts:#ef4444;

    /* === Spacing (8px grid) === */
    --sp-1:8px;--sp-2:16px;--sp-3:24px;--sp-4:32px;--sp-6:48px;
}
[data-theme="light"]{
    --bg:#f1f5f9;--panel:#ffffff;--panel-hover:#f8fafc;
    --accent:#2563eb;--accent-glow:rgba(37,99,235,.1);
    --highlight:#dc2626;--green:#16a34a;--yellow:#ca8a04;
    --text:#1e293b;--text-dim:#64748b;--text-heading:#0f172a;
    --border:#e2e8f0;
    --shadow:0 1px 3px rgba(0,0,0,.08);
    --shadow-lg:0 4px 20px rgba(0,0,0,.1);
}

body{font-family:var(--font);background:var(--bg);color:var(--text);display:flex;min-height:100vh;line-height:1.6;transition:background .3s,color .3s;font-size:14px}
a{color:var(--accent);text-decoration:none;transition:color .15s}
a:hover{color:#60a5fa;text-decoration:none}
code{background:var(--bg);padding:2px 8px;border-radius:4px;font-size:.85em;font-family:'JetBrains Mono',monospace}
h1,h2,h3{color:var(--text-heading);letter-spacing:-.02em}
h1{font-size:1.75rem;font-weight:700}
h2{font-size:1.25rem;font-weight:600}
h3{font-size:1rem;font-weight:600}

/* ===== ANIMATIONS ===== */
@keyframes fadeInUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes pulseGlow{0%,100%{box-shadow:0 0 4px var(--status-active)}50%{box-shadow:0 0 12px var(--status-active),0 0 20px rgba(16,185,129,.2)}}
@keyframes countUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideInLeft{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:translateX(0)}}

.fade-in{animation:fadeInUp .4s ease both}
.fade-in:nth-child(1){animation-delay:.05s}
.fade-in:nth-child(2){animation-delay:.1s}
.fade-in:nth-child(3){animation-delay:.15s}
.fade-in:nth-child(4){animation-delay:.2s}

/* ===== SKELETON LOADING ===== */
.skeleton{background:linear-gradient(90deg,var(--panel) 25%,var(--panel-hover) 50%,var(--panel) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius);height:20px;margin-bottom:8px}
.skeleton-card{height:120px;border-radius:var(--radius);margin-bottom:12px}
.htmx-settling .fade-in{animation:fadeInUp .3s ease both}
[hx-get].htmx-swapping>*{opacity:0;transition:opacity .15s}

/* ===== SIDEBAR ===== */
.sidebar{
    width:64px;background:var(--panel);border-right:1px solid var(--border);
    display:flex;flex-direction:column;transition:width .25s cubic-bezier(.4,0,.2,1);
    overflow:hidden;position:fixed;top:0;left:0;height:100vh;z-index:100;
}
.sidebar.expanded{width:240px}
.sidebar-logo{padding:var(--sp-2);cursor:pointer;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--border);transition:background .2s}
.sidebar-logo:hover{background:var(--panel-hover)}
.logo-icon{font-size:28px;min-width:32px;text-align:center;filter:drop-shadow(0 0 6px rgba(59,130,246,.4))}
.logo-text{white-space:nowrap;font-weight:700;font-size:18px;color:var(--text-heading)}
.sidebar:not(.expanded) .logo-text,.sidebar:not(.expanded) .nav-label{display:none}
.sidebar-nav{display:flex;flex-direction:column;padding:var(--sp-1);gap:2px;flex:1}
.nav-item{
    display:flex;align-items:center;gap:12px;padding:11px 16px;
    border-radius:var(--radius);color:var(--text-dim);
    transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;
    border-left:3px solid transparent;
}
.nav-item:hover{background:var(--panel-hover);color:var(--text);transform:translateX(2px)}
.nav-item:hover .nav-icon{transform:scale(1.15)}
.nav-item.active{
    background:rgba(59,130,246,.12);color:#fff;
    border-left-color:var(--accent);font-weight:600;
    box-shadow:inset 0 0 20px rgba(59,130,246,.08);
}
.nav-item.active .nav-icon{transform:scale(1.1)}
.nav-icon{font-size:22px;min-width:32px;text-align:center;transition:transform .25s}
.nav-label{font-weight:500;font-size:14px}
.sidebar-footer{
    padding:var(--sp-2);border-top:1px solid var(--border);
    font-size:11px;color:var(--text-dim);
    display:flex;flex-direction:column;gap:4px;
}
.sidebar:not(.expanded) .sidebar-footer{display:none}

/* ===== SIDEBAR V3 — GROUPED NAVIGATION ===== */
.sidebar-header{
    display:flex;align-items:center;justify-content:space-between;
    padding:var(--sp-2);border-bottom:1px solid var(--border);
}
.sidebar-mobile-close{
    display:none;background:none;border:none;color:var(--text-dim);
    font-size:20px;cursor:pointer;padding:4px 8px;
    border-radius:var(--radius);transition:all .2s;
}
.sidebar-mobile-close:hover{background:var(--panel-hover);color:var(--text)}

.sidebar-search-trigger{
    display:flex;align-items:center;gap:10px;padding:10px var(--sp-2);
    margin:0 var(--sp-1) var(--sp-1) var(--sp-1);
    background:var(--bg);border:1px solid var(--border);
    border-radius:var(--radius);cursor:pointer;color:var(--text-dim);
    transition:all .2s;font-size:13px;
}
.sidebar-search-trigger:hover{border-color:var(--accent);color:var(--text);background:var(--panel-hover)}
.sidebar:not(.expanded) .search-text{display:none}

.nav-group{
    display:flex;flex-direction:column;gap:4px;
    padding-bottom:var(--sp-1);margin-bottom:var(--sp-1);
    border-bottom:1px solid rgba(52,63,84,.3);
}

.nav-group-header{
    display:flex;align-items:center;gap:10px;padding:10px 12px;
    cursor:pointer;color:var(--text-dim);font-weight:600;font-size:12px;
    user-select:none;transition:all .2s;text-transform:uppercase;letter-spacing:.04em;
}
.nav-group-header:hover{color:var(--text);background:rgba(59,130,246,.08);border-radius:var(--radius)}
.nav-group-header .group-icon{font-size:16px;min-width:24px;text-align:center}
.nav-group-header .group-name{flex:1}
.nav-group-header .group-toggle{
    font-size:11px;color:var(--text-dim);transition:transform .25s;
}

.nav-group-items{
    display:flex;flex-direction:column;gap:2px;
    max-height:500px;overflow:hidden;
    animation:slideDown .25s cubic-bezier(.4,0,.2,1);
}

.nav-group-dropdown{
    display:flex;flex-direction:column;gap:2px;
    max-height:400px;overflow-y:auto;
    background:rgba(15,23,42,.5);border-radius:var(--radius);
    padding:4px 0;margin-top:4px;
}
.nav-group-dropdown .nav-sub-item{
    padding:10px 40px !important;font-size:13px;
    color:var(--text-dim);transition:all .2s;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.nav-group-dropdown .nav-sub-item:hover{
    background:var(--panel-hover);color:var(--text);padding-left:42px !important;
}
.nav-group-dropdown .nav-sub-item.active{
    background:rgba(59,130,246,.12);color:var(--accent);border-left-color:var(--accent);
}

/* Animations */
@keyframes slideDown{
    from{opacity:0;max-height:0;transform:translateY(-8px)}
    to{opacity:1;max-height:500px;transform:translateY(0)}
}

/* Mobile responsive sidebar */
@media(max-width:768px){
    .sidebar{
        width:64px;margin-left:-64px;transition:margin-left .3s cubic-bezier(.4,0,.2,1);
    }
    .sidebar.mobile-open{
        margin-left:0;width:260px;background:var(--panel);
        box-shadow:2px 0 16px rgba(0,0,0,.4);
    }
    .sidebar-mobile-close{display:block}
    .sidebar:not(.mobile-open) .sidebar-logo .logo-text,
    .sidebar:not(.mobile-open) .nav-label,
    .sidebar:not(.mobile-open) .sidebar-footer,
    .sidebar:not(.mobile-open) .sidebar-search-trigger{display:none}
    .sidebar:not(.mobile-open) .nav-group-header .group-name{display:none}
    .sidebar:not(.mobile-open) .group-toggle{display:none}
    
    .main-content{margin-left:64px}
    .sidebar.mobile-open ~ .main-content{margin-left:260px}
}

/* ===== MAIN CONTENT ===== */
.main-content{margin-left:64px;flex:1;display:flex;flex-direction:column;min-height:100vh;transition:margin-left .25s}

/* ===== HEADER ===== */
.top-header{
    display:flex;justify-content:space-between;align-items:center;
    padding:12px var(--sp-3);background:var(--panel);border-bottom:1px solid var(--border);
    position:sticky;top:0;z-index:50;
    backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    background:rgba(30,41,59,.85);transition:box-shadow .3s,background .3s;
}
[data-theme="light"] .top-header{background:rgba(255,255,255,.85)}
.top-header.scrolled{box-shadow:0 2px 12px rgba(0,0,0,.2)}
.breadcrumb{font-size:14px;color:var(--text-dim);font-weight:500}
.header-right{display:flex;align-items:center;gap:12px}
.search-box{
    background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);
    padding:7px 14px;color:var(--text);width:200px;font-family:var(--font);
    transition:border-color .2s,box-shadow .2s;font-size:13px;
}
.search-box:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}
.clock{font-family:'JetBrains Mono',monospace;color:var(--accent);font-size:14px;font-weight:600}
.theme-toggle{background:none;border:1px solid var(--border);font-size:16px;cursor:pointer;padding:5px 10px;border-radius:var(--radius);color:var(--text);transition:all .2s}
.theme-toggle:hover{border-color:var(--accent);background:var(--accent-glow)}

.page-content{padding:var(--sp-3);flex:1}

/* ===== DASHBOARD HEADER ===== */
.dashboard-header{
    display:flex;justify-content:space-between;align-items:center;
    margin-bottom:var(--sp-3);padding-bottom:var(--sp-2);
    border-bottom:1px solid var(--border);
}
.dashboard-header h1{
    font-size:1.75rem;font-weight:700;
    background:linear-gradient(135deg,#38bdf8,#818cf8);
    -webkit-background-clip:text;-webkit-text-fill-color:transparent;
    background-clip:text;
}
.dashboard-header .dash-meta{font-size:13px;color:var(--text-dim);display:flex;gap:var(--sp-2);align-items:center}
.dash-meta .uptime-badge{
    padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600;
    background:rgba(16,185,129,.12);color:var(--status-active);
    border:1px solid rgba(16,185,129,.25);
}

/* ===== STATS GRID ===== */
.stats-grid,.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2);margin-bottom:var(--sp-3)}
.stat-card{
    background:var(--panel);border-radius:var(--radius);padding:var(--sp-3) var(--sp-2);text-align:center;
    box-shadow:var(--shadow);border:1px solid var(--border);
    transition:all .3s ease;position:relative;overflow:hidden;
}
.stat-card::before{
    content:'';position:absolute;top:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg,var(--accent),#8b5cf6);opacity:0;transition:opacity .3s;
}
.stat-card::after{
    content:'';position:absolute;inset:0;
    background:linear-gradient(135deg,rgba(59,130,246,.03),rgba(139,92,246,.03));
    pointer-events:none;
}
.stat-card:hover{
    transform:translateY(-4px) scale(1.02);
    box-shadow:0 8px 30px rgba(59,130,246,.15);
    border-color:var(--accent);
}
.stat-card:hover::before{opacity:1}
.stat-icon{font-size:40px;margin-bottom:var(--sp-1);display:block}
.stat-value{
    font-size:2.5rem;font-weight:700;color:var(--accent);letter-spacing:-.03em;
    animation:countUp .5s ease both;
}
.stat-label{color:var(--text-dim);font-size:12px;margin-top:var(--sp-1);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
a.stat-card{cursor:pointer;text-decoration:none;color:inherit;display:block}
a.stat-card:hover{text-decoration:none}

/* Network locations mini grid */
.locations-mini-grid{
    display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-1);
}
.location-mini-card{
    display:flex;align-items:center;gap:var(--sp-1);
    padding:12px var(--sp-2);background:var(--bg);border:1px solid var(--border);
    border-radius:var(--radius);text-decoration:none;color:inherit;
    transition:all .3s ease;
}
.location-mini-card:hover{background:var(--panel-hover);border-color:var(--widget-network);transform:translateY(-2px);box-shadow:0 4px 12px rgba(16,185,129,.1)}
.location-mini-card.down{opacity:0.5}
.loc-icon{font-size:1.4rem}
.loc-info{display:flex;flex-direction:column;flex:1;min-width:0}
.loc-name{font-weight:600;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.loc-stats{font-size:.75rem;color:var(--text-dim)}
.loc-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.loc-status-dot.green{background:var(--status-active);box-shadow:0 0 8px rgba(16,185,129,.5);animation:pulseGlow 2s infinite}
.loc-status-dot.yellow{background:var(--status-idle);box-shadow:0 0 6px rgba(245,158,11,.3)}
.loc-status-dot.red{background:var(--status-error);box-shadow:0 0 6px rgba(239,68,68,.3)}
.loc-status-dot.gray{background:var(--status-inactive)}

/* ===== GRID LAYOUTS ===== */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2);margin-bottom:var(--sp-3)}

/* ===== PANEL ===== */
.panel{
    background:var(--panel);border-radius:var(--radius);padding:var(--sp-3);
    box-shadow:var(--shadow);margin-bottom:var(--sp-2);border:1px solid var(--border);
    transition:border-color .3s,box-shadow .3s;
}
.panel:hover{border-color:rgba(59,130,246,.2);box-shadow:0 2px 16px rgba(0,0,0,.15)}
.panel h2{font-size:15px;margin-bottom:var(--sp-2);color:var(--text-heading);font-weight:600;display:flex;align-items:center;gap:8px}

/* Panel accent borders by widget type */
.panel-agents{border-left:3px solid var(--widget-agents)}
.panel-network{border-left:3px solid var(--widget-network)}
.panel-cron{border-left:3px solid var(--widget-cron)}
.panel-reports{border-left:3px solid var(--widget-reports)}
.panel-alerts{border-left:3px solid var(--widget-alerts)}

/* ===== CARDS ===== */
.card{
    background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);
    padding:var(--sp-2);margin-bottom:10px;transition:all .3s ease;
}
.card:hover{border-color:var(--accent);box-shadow:0 4px 16px var(--accent-glow);transform:translateY(-2px)}
.card-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.card-header a{font-weight:600}
.card-desc{color:var(--text-dim);font-size:13px;margin-bottom:10px;line-height:1.5}
.card-footer{display:flex;gap:6px;align-items:center}

/* ===== BADGES ===== */
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.badge-active,.badge-online,.badge-success,.badge-green{background:rgba(16,185,129,.15);color:var(--status-active)}
.badge-backlog,.badge-never{background:#374151;color:#9ca3af}
.badge-review,.badge-running,.badge-scan{background:rgba(245,158,11,.15);color:var(--status-idle)}
.badge-done,.badge-research{background:#1e3a5f;color:#93c5fd}
.badge-high,.badge-critical,.badge-failed,.badge-highlight,.badge-investigation{background:rgba(239,68,68,.12);color:#fca5a5}
.badge-medium,.badge-briefing{background:#312e81;color:#a5b4fc}
.badge-low,.badge-audit{background:#1e293b;color:#94a3b8}
.badge-idle{background:rgba(245,158,11,.12);color:#fdba74}
.badge-offline,.badge-inactive{background:#44403c;color:#a8a29e}

/* ===== PRIORITY DOTS ===== */
.priority-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.priority-critical{background:var(--highlight)}.priority-high{background:#f97316}
.priority-medium{background:var(--yellow)}.priority-low{background:var(--text-dim)}

/* ===== DEVICE GRID ===== */
.device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px}
.device-dot{text-align:center;padding:8px 4px;border-radius:var(--radius);font-size:11px;border:1px solid var(--border);transition:all .2s}
.device-dot:hover{transform:scale(1.05);box-shadow:var(--shadow)}
.device-dot.online{background:#052e16;border-color:#16a34a}
.device-dot.offline{background:#1c1917;border-color:#57534e}
.dot-name{display:block;color:var(--text-dim);margin-top:2px}

/* ===== STATUS DOTS ===== */
.status-dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.status-dot.online{background:var(--status-active);box-shadow:0 0 6px rgba(16,185,129,.5);animation:pulseGlow 2s infinite}
.status-dot.offline{background:var(--status-error);box-shadow:0 0 6px rgba(239,68,68,.3)}

/* ===== AGENT GRID — Mission Control ===== */
.agent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.agent-card{
    background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);
    padding:var(--sp-2);text-align:center;transition:all .3s ease;
    position:relative;overflow:hidden;
}
.agent-card::after{
    content:'';position:absolute;inset:0;
    background:linear-gradient(180deg,transparent 60%,rgba(59,130,246,.03));
    pointer-events:none;opacity:0;transition:opacity .3s;
}
.agent-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.2)}
.agent-card:hover::after{opacity:1}
.agent-card.online,.agent-card.active{border-color:var(--status-active);box-shadow:0 0 0 1px rgba(16,185,129,.15)}
.agent-card.idle{border-color:var(--status-idle)}
.agent-card.inactive{border-color:var(--border)}
.agent-emoji{font-size:48px;line-height:1;margin-bottom:var(--sp-1)}
.agent-name{font-weight:700;margin:4px 0;font-size:15px}
.agent-role{font-size:12px;color:var(--text-dim);margin-bottom:var(--sp-1)}
.agent-status-row{display:flex;align-items:center;gap:6px;justify-content:center;margin-bottom:6px}
.agent-status-dot{
    width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0;
}
.agent-status-dot.active{background:var(--status-active);box-shadow:0 0 6px rgba(16,185,129,.5);animation:pulseGlow 2s infinite}
.agent-status-dot.idle{background:var(--status-idle);box-shadow:0 0 4px rgba(245,158,11,.3)}
.agent-status-dot.inactive{background:var(--status-inactive)}
.agent-last-seen{font-size:11px;color:var(--text-dim);margin-bottom:6px}
.agent-model-info{font-size:11px;color:var(--text-dim);opacity:.7}
.agent-model-form{display:flex;flex-direction:column;gap:6px;margin-top:8px;text-align:left}
.agent-model-row{display:flex;flex-direction:column;gap:2px}
.agent-model-row label{font-size:11px;color:var(--text-dim)}
.agent-model-row select{font-size:11px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:4px 6px;transition:border-color .2s}
.agent-model-row select:focus{border-color:var(--accent);outline:none}

/* ===== CRON TIMELINE ===== */
.cron-timeline{
    display:flex;flex-direction:column;gap:0;
    border-left:3px solid var(--border);margin-left:12px;padding-left:var(--sp-2);
    position:relative;
}
.cron-timeline-item{
    display:flex;align-items:flex-start;gap:12px;
    padding:12px 0;border-bottom:1px solid rgba(51,65,85,.4);
    position:relative;animation:slideInLeft .3s ease both;
}
.cron-timeline-item:last-child{border-bottom:none}
.cron-timeline-item::before{
    content:'';position:absolute;left:-22px;top:16px;
    width:12px;height:12px;border-radius:50%;
    background:var(--border);border:2px solid var(--panel);
    z-index:1;
}
.cron-timeline-item.cron-active::before{background:var(--status-active);box-shadow:0 0 8px rgba(16,185,129,.4)}
.cron-timeline-item.cron-paused::before{background:var(--status-inactive)}
.cron-timeline-item.cron-error::before{background:var(--status-error);box-shadow:0 0 6px rgba(239,68,68,.3)}
.cron-job-info{flex:1;min-width:0}
.cron-job-name{font-weight:600;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cron-job-meta{font-size:.75rem;color:var(--text-dim);display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:2px}
.cron-job-agent{
    padding:1px 8px;border-radius:999px;font-size:.7rem;font-weight:600;
    background:rgba(59,130,246,.12);color:var(--accent);
}
.cron-job-status{text-align:right;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.cron-show-all{
    display:block;text-align:center;padding:var(--sp-1) 0;
    color:var(--accent);font-size:13px;font-weight:500;margin-top:var(--sp-1);
    cursor:pointer;transition:color .2s;
}
.cron-show-all:hover{color:#60a5fa}

/* ===== TABLE ===== */
.data-table{width:100%;border-collapse:collapse}
.data-table th,.data-table td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--border)}
.data-table th{color:var(--text-dim);font-size:11px;text-transform:uppercase;font-weight:600;letter-spacing:.06em}
.data-table tbody tr{transition:background .15s}
.data-table tbody tr:nth-child(even){background:rgba(255,255,255,.02)}
[data-theme="light"] .data-table tbody tr:nth-child(even){background:rgba(0,0,0,.02)}
.data-table tbody tr:hover{background:var(--panel-hover)}

/* ===== KANBAN ===== */
.kanban-board{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.kanban-col{background:var(--panel);border-radius:var(--radius);padding:14px;min-height:200px;border:1px solid var(--border)}
.kanban-header{margin-bottom:12px;font-size:14px;padding:6px 10px;font-weight:600}

/* ===== PAGE HEADER ===== */
.page-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.page-header h1{font-size:22px}

/* ===== FILTER BAR ===== */
.filter-bar{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}

/* ===== BUTTONS ===== */
.btn{
    display:inline-flex;align-items:center;gap:6px;padding:7px 16px;
    background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);
    color:var(--text);cursor:pointer;font-size:13px;font-family:var(--font);font-weight:500;
    transition:all .3s ease;
}
.btn:hover,.btn.active{background:var(--accent);color:#fff;border-color:var(--accent);text-decoration:none;box-shadow:0 4px 12px rgba(59,130,246,.25)}
.btn-sm{padding:5px 12px;font-size:12px;border-radius:8px}

/* ===== REPORT LIST ===== */
.report-list{list-style:none}
.report-list li{
    display:flex;align-items:center;gap:var(--sp-1);padding:12px 0;
    border-bottom:1px solid var(--border);transition:all .2s;
}
.report-list li:hover{background:var(--panel-hover);margin:0 calc(var(--sp-3) * -1);padding-left:var(--sp-3);padding-right:var(--sp-3);border-radius:var(--radius)}
.report-list li:last-child{border:none}
.report-list small{margin-left:auto;color:var(--text-dim)}
.report-cards{display:grid;gap:12px}

/* ===== EMPTY STATE ===== */
.empty-state{text-align:center;padding:var(--sp-6) var(--sp-3);color:var(--text-dim)}
.empty-icon{font-size:56px;margin-bottom:var(--sp-2);opacity:.6}
.empty-state p{font-size:15px;font-weight:500}

/* ===== META ===== */
.meta{display:flex;gap:16px;margin-top:12px;color:var(--text-dim)}

/* ===== TOAST NOTIFICATIONS ===== */
#toast-container{position:fixed;top:80px;right:24px;z-index:1000;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{
    padding:12px 20px;border-radius:var(--radius);font-size:13px;font-weight:500;
    color:#fff;opacity:0;transform:translateX(40px);
    transition:all .3s cubic-bezier(.4,0,.2,1);pointer-events:auto;
    box-shadow:0 4px 12px rgba(0,0,0,.3);
}
.toast.show{opacity:1;transform:translateX(0)}
.toast-success{background:#16a34a}
.toast-error{background:#dc2626}

/* ===== BOTTOM NAV (MOBILE) ===== */
.bottom-nav{
    display:none;position:fixed;bottom:0;left:0;right:0;
    background:var(--panel);border-top:1px solid var(--border);
    justify-content:space-around;padding:10px 0 calc(10px + env(safe-area-inset-bottom,0px));
    z-index:100;backdrop-filter:blur(12px);
}
.bnav-item{
    font-size:24px;padding:6px 14px;border-radius:var(--radius);
    transition:all .2s;text-decoration:none;
}
.bnav-item:hover{background:var(--accent-glow);transform:scale(1.1)}
.bnav-press-hint{
    position:fixed;transform:translate(-50%,-100%);
    background:var(--panel);color:var(--text);border:1px solid var(--border);
    border-radius:8px;padding:6px 10px;font-size:12px;z-index:1200;
    opacity:0;pointer-events:none;transition:opacity .12s ease;
    box-shadow:0 8px 20px rgba(0,0,0,.25);
}
.bnav-press-hint.show{opacity:1}

/* ===== RESPONSIVE ===== */
@media(max-width:768px){
    .sidebar{display:none}
    .main-content{margin-left:0}
    .bottom-nav{display:flex}
    .stats-grid{grid-template-columns:repeat(2,1fr)}
    .grid-2{grid-template-columns:1fr}
    .kanban-board{grid-template-columns:1fr 1fr}
    .agent-grid{grid-template-columns:repeat(2,1fr)}
    .page-content{padding:var(--sp-2);padding-bottom:80px}
    .filter-bar{margin-left:0;width:100%}
    .search-box{width:140px}
    .dashboard-header{flex-direction:column;align-items:flex-start;gap:8px}
    .dashboard-header h1{font-size:1.4rem}
}
@media(max-width:480px){
    .stats-grid{grid-template-columns:1fr 1fr}
    .kanban-board{grid-template-columns:1fr}
    .page-content{padding:12px;padding-bottom:80px}
    .page-header{flex-direction:column;align-items:flex-start}
    .page-header h1{font-size:18px}
    .top-header{padding:10px 14px}
    .filter-bar{overflow-x:auto;flex-wrap:nowrap}
    body{font-size:12px}
    .stat-value{font-size:2rem}
    .stat-icon{font-size:32px}
    .agent-emoji{font-size:36px}
}
@media(max-width:375px){
    .grid-2{grid-template-columns:1fr}
    .panel{padding:12px}
    h1{font-size:1.2rem}
    .agent-grid{grid-template-columns:1fr}
    .stats-grid{grid-template-columns:1fr}
    .page-content{padding:10px;padding-bottom:80px}
    .stat-card{padding:var(--sp-2)}
}

/* ===== SCROLLBAR ===== */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}

/* ===== NETWORK DASHBOARD ===== */
.topology-container{background:#1a1a2e;border-radius:var(--radius);min-height:400px;height:400px;position:relative;border:1px solid var(--border)}
.topology-container .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-dim)}

/* Grouped topology */
.topo-grouped{display:flex;flex-direction:column;gap:0;align-items:stretch}
.topo-location{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:all .2s}
.topo-location:hover{border-color:var(--accent)}
.topo-loc-down{opacity:.5}
.topo-loc-unknown{opacity:.6;border-style:dashed}
.topo-loc-header{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.topo-loc-icon{font-size:1.4rem}
.topo-loc-name{font-weight:700;font-size:1.05rem;color:var(--text)}
.topo-loc-status{margin-left:auto;font-size:.8rem;color:var(--text-dim)}
.topo-devices{display:flex;flex-direction:column;gap:10px}
.topo-type-group{}
.topo-type-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
.topo-type-items{display:flex;flex-wrap:wrap;gap:6px}
.topo-dev{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:var(--bg);border:1px solid var(--border);border-left:3px solid;border-radius:6px;font-size:.78rem;color:var(--text);text-decoration:none;transition:all .15s;cursor:pointer;max-width:260px}
.topo-dev:hover{background:rgba(99,102,241,.12);border-color:var(--accent);transform:translateY(-1px)}
.topo-dev-offline{opacity:.55}
.topo-dev-dot{font-size:.6rem}
.topo-dev-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}
.topo-dev-ip{color:var(--text-dim);font-size:.7rem;margin-left:auto}
.topo-bridge{display:flex;align-items:center;gap:8px;padding:6px 0;justify-content:center}
.topo-bridge-line{flex:1;height:2px;max-width:80px;background:var(--border)}
.topo-bridge-up .topo-bridge-line{background:#10b981;box-shadow:0 0 4px rgba(16,185,129,.4)}
.topo-bridge-down .topo-bridge-line{background:#374151}
.topo-bridge-label{font-size:.75rem;color:var(--text-dim);white-space:nowrap;font-weight:600}
.topo-bridge-up .topo-bridge-label{color:#10b981}
.topo-bridge-down .topo-bridge-label{color:#ef4444}

.device-filter-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.filter-pill{background:var(--panel);border:1px solid var(--border);color:var(--text-dim);padding:6px 16px;border-radius:20px;cursor:pointer;font-size:.85rem;transition:all .2s}
.filter-pill:hover,.filter-pill.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.device-search{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:6px 12px;border-radius:var(--radius);font-size:.85rem;min-width:200px}

.status-online,.status-offline{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle}
.status-online{background:var(--green);box-shadow:0 0 6px var(--green);animation:pulse-green 2s infinite}
.status-offline{background:var(--highlight)}
@keyframes pulse-green{0%,100%{box-shadow:0 0 4px var(--green)}50%{box-shadow:0 0 12px var(--green)}}

.status-badge{padding:4px 10px;border-radius:12px;font-size:.8rem;font-weight:600}

.metric-gauge{width:100px;height:100px;margin:8px auto 0}
.metric-gauge svg{width:100%;height:100%}
.gauge-bg{fill:none;stroke:var(--border);stroke-width:8}
.gauge-fill{fill:none;stroke:var(--accent);stroke-width:8;stroke-linecap:round;stroke-dasharray:251.2;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .6s}
.gauge-text{fill:var(--text);font-size:18px;text-anchor:middle;font-weight:600}

.event-timeline{display:flex;flex-direction:column;gap:0;border-left:3px solid var(--border);margin-left:12px;padding-left:16px}
.event-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);position:relative;flex-wrap:wrap}
.event-item::before{content:'';position:absolute;left:-22px;width:10px;height:10px;border-radius:50%;background:var(--border)}
.event-dot{font-size:.9rem}
.event-time{color:var(--text-dim);font-size:.8rem;min-width:140px}
.event-device{color:var(--accent);font-size:.85rem;font-weight:500}
.event-msg{color:var(--text);font-size:.85rem}

.severity-critical .event-item::before,.event-item.severity-critical::before{background:var(--highlight)}
.severity-warning .event-item::before,.event-item.severity-warning::before{background:var(--yellow)}
.severity-info .event-item::before,.event-item.severity-info::before{background:var(--accent)}

.badge{background:var(--accent);color:#fff;padding:2px 8px;border-radius:8px;font-size:.75rem}

/* ===== DEVICE TYPE ICONS ===== */
.device-icon{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;vertical-align:middle}
.device-icon svg{width:100%;height:100%}
.device-icon-sm{width:24px;height:24px;padding:4px}
.device-icon-md{width:32px;height:32px;padding:6px}
.device-icon-lg{width:48px;height:48px;padding:8px}
.device-icon-xl{width:64px;height:64px;padding:10px}
.device-icon-router{background:rgba(239,68,68,0.15);color:#ef4444}
.device-icon-camera{background:rgba(59,130,246,0.15);color:#3b82f6}
.device-icon-nvr{background:rgba(139,92,246,0.15);color:#8b5cf6}
.device-icon-server{background:rgba(16,185,129,0.15);color:#10b981}
.device-icon-printer{background:rgba(245,158,11,0.15);color:#f59e0b}
.device-icon-pc{background:rgba(99,102,241,0.15);color:#6366f1}
.device-icon-other{background:rgba(107,114,128,0.15);color:#6b7280}

/* ===== TOPOLOGY LEGEND ===== */
.topology-legend{display:flex;gap:16px;flex-wrap:wrap;padding:12px 0;justify-content:center}
.legend-item{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-dim)}
.legend-dot{width:12px;height:12px;border-radius:3px;display:inline-block}

/* ===== Print Management ===== */
.printer-grid-inner{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.printer-card{background:rgba(255,255,255,0.05);border-radius:12px;padding:20px;display:flex;align-items:flex-start;gap:16px;border:1px solid rgba(255,255,255,0.06)}
.printer-icon{font-size:36px}
.printer-info{flex:1}
.printer-name{font-weight:600;font-size:15px;margin-bottom:4px}
.printer-location{font-size:13px;color:#94a3b8;margin-bottom:6px}
.printer-status{margin-bottom:8px}
.printer-caps{display:flex;flex-wrap:wrap;gap:4px}
.capability-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;background:rgba(59,130,246,0.15);color:#60a5fa}
.status-badge{font-size:12px;font-weight:500}
.status-idle{color:#22c55e}
.status-printing{color:#eab308}
.status-offline{color:#94a3b8}
.print-upload-zone{border:2px dashed rgba(59,130,246,0.3);border-radius:12px;padding:40px;text-align:center;cursor:pointer;transition:all 0.3s;background:rgba(59,130,246,0.05)}
.print-upload-zone.drag-over{border-color:#3b82f6;background:rgba(59,130,246,0.1)}
.upload-icon{font-size:48px;display:block;margin-bottom:12px}
.upload-link{color:#3b82f6;cursor:pointer;text-decoration:underline}
.file-name{display:block;margin-top:8px;color:#60a5fa;font-weight:500}
.print-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin:24px 0}
.option-group label{display:block;font-size:12px;text-transform:uppercase;color:#94a3b8;margin-bottom:4px}
.option-group select,.option-group input[type="number"]{width:100%;padding:8px 12px;border-radius:8px;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.05);color:#e2e8f0}
.option-group.checkbox label{display:flex;align-items:center;gap:8px;text-transform:none;font-size:14px}
.print-button{background:#3b82f6;color:white;padding:12px 32px;border:none;border-radius:8px;font-size:16px;cursor:pointer;transition:all 0.3s}
.print-button:hover{background:#2563eb;transform:scale(1.02)}
.empty-state{text-align:center;padding:24px;color:#64748b;font-style:italic}
.status-checking{color:#94a3b8;animation:pulse-check 1.5s ease-in-out infinite}
@keyframes pulse-check{0%,100%{opacity:0.5}50%{opacity:1}}
.status-badge.status-online{color:#10b981}
.status-badge.status-printing{color:#f59e0b}
.status-badge.status-offline{color:#ef4444}
.status-badge.status-error{color:#ef4444}
.status-badge.status-unknown{color:#6b7280}

/* ===== HEALTH BADGES ===== */
.health-badge{padding:2px 8px;border-radius:10px;font-size:0.75rem;font-weight:600}
.health-healthy{background:rgba(16,185,129,0.2);color:#10b981}
.health-warning{background:rgba(245,158,11,0.2);color:#f59e0b}
.health-critical{background:rgba(239,68,68,0.2);color:#ef4444}

.detail-tabs .tab-label{cursor:pointer}
.detail-tabs .tab-nav{border-bottom:1px solid var(--border);padding-bottom:8px}

@media(max-width:768px){.network-two-col{grid-template-columns:1fr !important}}
.empty-row{text-align:center;color:#64748b;font-style:italic;padding:20px !important}
.btn-sm{padding:4px 8px;border-radius:4px;border:none;cursor:pointer;font-size:12px}
.btn-danger{background:rgba(239,68,68,0.15);color:#ef4444}
.btn-danger:hover{background:rgba(239,68,68,0.3)}
.btn-refresh{background:rgba(59,130,246,0.15);color:#60a5fa;border:1px solid rgba(59,130,246,0.3);padding:6px 14px;border-radius:8px;cursor:pointer;font-size:13px;transition:all 0.2s;display:inline-flex;align-items:center;gap:6px}
.btn-refresh:hover{background:rgba(59,130,246,0.25)}
.htmx-indicator{display:none}
.htmx-request .htmx-indicator,.htmx-request.htmx-indicator{display:inline}

/* ===== Help System ===== */
.help-panel{position:fixed;top:0;right:-380px;width:360px;height:100vh;background:var(--panel);border-left:1px solid var(--border);z-index:200;transition:right 0.3s ease;overflow-y:auto;box-shadow:-4px 0 20px rgba(0,0,0,0.3)}
.help-panel.open{right:0}
.help-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--border)}
.help-header h3{margin:0}
.help-header button{background:none;border:none;color:var(--text-dim);font-size:20px;cursor:pointer}
.help-content{padding:20px}
.help-content h4{color:var(--accent);margin:16px 0 8px}
.help-content p{color:var(--text-dim);line-height:1.6}
.help-content ul{padding-left:20px}
.help-content li{margin:8px 0;color:var(--text-dim)}
.help-content code{background:rgba(255,255,255,0.1);padding:2px 6px;border-radius:4px}
.help-content a{color:var(--accent)}
.help-trigger{background:none;border:1px solid var(--border);color:var(--text-dim);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:16px;transition:all 0.2s;flex-shrink:0}
.help-trigger:hover{border-color:var(--accent);color:var(--accent)}
.help-sections{max-width:800px}
.help-section{margin-bottom:8px}
.help-section-header{display:flex;align-items:center;gap:12px;padding:16px 20px;background:rgba(255,255,255,0.05);border-radius:8px;cursor:pointer;transition:background 0.2s}
.help-section-header:hover{background:rgba(255,255,255,0.08)}
.help-section-body{max-height:0;overflow:hidden;transition:max-height 0.3s ease;padding:0 20px}
.help-section.open .help-section-body{max-height:2000px;padding:16px 20px}
.help-section-icon{font-size:24px}
.help-section-title{font-weight:600}
.help-section-chevron{margin-left:auto;transition:transform 0.3s}
.help-section.open .help-section-chevron{transform:rotate(90deg)}
.procedure-steps{counter-reset:step;list-style:none;padding:0}
.procedure-steps li{counter-increment:step;padding:12px 12px 12px 48px;position:relative;border-left:2px solid var(--border);margin-left:16px}
.procedure-steps li::before{content:counter(step);position:absolute;left:-15px;top:10px;width:28px;height:28px;background:var(--accent);color:white;border-radius:50%;text-align:center;line-height:28px;font-weight:600;font-size:13px}

/* ===== N8N WORKFLOW EXTRAS ===== */
.tag-badge{background:rgba(99,102,241,.2);color:#818cf8;padding:2px 8px;border-radius:6px;font-size:.7rem}
.mode-badge{background:rgba(255,255,255,.08);padding:2px 8px;border-radius:6px;font-size:.75rem;text-transform:capitalize}
.mode-trigger{color:#10b981}.mode-manual{color:#f59e0b}.mode-webhook{color:#6366f1}
.workflow-detail-panel{margin-top:12px}
.workflow-detail-panel:empty{display:none}
.detail-inner{background:rgba(255,255,255,.03);border-radius:8px;padding:16px;margin-top:8px;border:1px solid rgba(255,255,255,.06)}
.detail-inner h5{font-size:.85rem;color:#9ca3af;margin-bottom:8px}
.node-flow{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.node-chip{background:rgba(255,255,255,.08);padding:4px 10px;border-radius:6px;font-size:.8rem}
.node-arrow{color:#6b7280;font-size:.8rem}
.health-bar{width:100%;height:8px;background:rgba(255,255,255,.1);border-radius:4px;overflow:hidden;margin-top:4px}
.health-fill{height:100%;border-radius:4px;transition:width .3s}
.stat-card{background:var(--panel);border-radius:var(--radius);padding:var(--sp-3) var(--sp-2);text-align:center;border:1px solid var(--border)}
.stat-value{font-size:2.5rem;font-weight:700}
.stat-label{font-size:.8rem;color:#9ca3af;margin-top:4px}
.text-success{color:#10b981}.text-warning{color:#f59e0b}.text-danger{color:#ef4444}

/* ═══ Location Cards ═══ */
.locations-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-bottom:16px}
.location-card{background:rgba(255,255,255,.05);border-radius:12px;padding:16px;border-left:4px solid var(--green);transition:transform .15s,box-shadow .15s}
.location-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.3)}
.location-card.offline{border-left-color:#6b7280;opacity:.7}
.location-card.down{border-left-color:#374151;opacity:.5}
.location-card.partial{border-left-color:#f59e0b}
.location-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.location-header h3{margin:0;flex:1;font-size:1rem}
.location-icon{font-size:1.3rem}
.location-status{font-size:.75rem;color:#9ca3af;white-space:nowrap}
.location-status.online{color:#10b981}
.location-status.partial{color:#f59e0b}
.location-status.offline{color:#ef4444}
.location-status.down{color:#374151}
.location-devices{font-size:.85rem;margin:8px 0;max-height:150px;overflow-y:auto}
.mini-device{padding:2px 0}
.location-bridges{font-size:.8rem;color:#9ca3af;margin-top:4px}
.bridge-link-item{padding:1px 0}
.bridge-chain{display:flex;align-items:center;gap:8px;padding:12px;background:rgba(255,255,255,.03);border-radius:8px;justify-content:center;flex-wrap:wrap;margin-top:8px}
.bridge-node{padding:8px 16px;background:rgba(255,255,255,.08);border-radius:8px;text-align:center;font-size:.85rem}
.bridge-link{font-size:1.2rem}
.bridge-node.active{border:1px solid var(--green)}
.bridge-node.down{border:1px solid #374151;opacity:.5}
.network-health-widget{background:rgba(255,255,255,.05);border-radius:12px;padding:16px}
.health-main{font-size:1.1rem;font-weight:600;margin-bottom:6px}
.health-locations{font-size:.85rem;color:#9ca3af;margin-bottom:4px}
.health-alerts{font-size:.85rem;color:#f59e0b}

@media(max-width:768px){
    .locations-grid{grid-template-columns:1fr}
    .bridge-chain{flex-direction:column}
    .network-two-col{grid-template-columns:1fr !important}
}

/* ═══ Task Management System ═══ */
.task-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);z-index:300;display:none;align-items:center;justify-content:center;padding:24px}
.task-modal.open{display:flex}
.task-modal-content{max-width:600px;width:100%;max-height:80vh;overflow-y:auto}
.task-kanban .task-list{min-height:120px}
.task-col{transition:border-color .2s}
.task-col.drag-over{border-color:var(--accent)}
.task-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:10px;transition:all .2s;cursor:grab;position:relative}
.task-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--accent)}
.task-card.priority-critical{border-left:4px solid #ef4444}
.task-card.priority-high{border-left:4px solid #f97316}
.task-card.priority-medium{border-left:4px solid #eab308}
.task-card.priority-low{border-left:4px solid #94a3b8}
.task-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px}
.task-card-top a{font-weight:600}
.task-card-meta{display:flex;gap:8px;align-items:center;margin-bottom:10px;font-size:12px;color:var(--text-dim)}
.agent-badge{background:var(--panel);padding:2px 8px;border-radius:12px;border:1px solid var(--border)}
.progress-wrap{margin-top:8px}
.progress-label{font-size:11px;color:var(--text-dim);margin-bottom:4px}
.progress-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}
.progress-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#60a5fa);border-radius:3px;transition:width .3s}
.subtask-list{list-style:none;padding:0;margin:0 0 12px 0}
.subtask-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.subtask-item:last-child{border:none}
.subtask-item.done label span{text-decoration:line-through;color:var(--text-dim)}
.subtask-item label{display:flex;align-items:center;gap:10px;flex:1;cursor:pointer}
.subtask-item input[type=checkbox]{width:18px;height:18px;cursor:pointer}
.comment-list{margin-top:16px}
.comment-item{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-bottom:10px}
.comment-item small{color:var(--text-dim)}
.comment-item p{margin-top:6px;line-height:1.5}
.task-detail-grid{display:grid;grid-template-columns:1fr 280px;gap:16px}
.task-sidebar{background:var(--bg);padding:16px;border-radius:var(--radius);border:1px solid var(--border)}
.task-sidebar h2,.task-sidebar h3{font-size:14px;margin:0 0 12px 0;color:var(--text-heading)}
.task-sidebar p{margin:8px 0;font-size:13px;color:var(--text)}
.agent-pills{display:flex;flex-wrap:wrap;gap:6px}
.agent-pills form{display:inline}
.task-quick-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0;padding:12px;background:var(--bg);border-radius:var(--radius);border:1px solid var(--border)}
.task-quick-actions form{margin:0}
.task-form-inline{display:flex;gap:8px;margin-top:10px}
.task-form-inline input{flex:1;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text)}
.task-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:10px 0}
.task-form-grid select,.task-form-grid input{width:100%;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text)}
.task-mini-list{display:flex;flex-direction:column;gap:8px}
.task-mini-item{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:var(--text);transition:all .2s}
.task-mini-item:hover{border-color:var(--accent);transform:translateX(4px)}
.task-mini-item.priority-critical{border-left:3px solid #ef4444}
.task-mini-item.priority-high{border-left:3px solid #f97316}
.task-mini-item.priority-medium{border-left:3px solid #eab308}
.task-mini-item.priority-low{border-left:3px solid #94a3b8}
.task-mini-item strong{flex:1}
.task-filters{display:flex;gap:10px;align-items:center}
.task-filters select{padding:6px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text)}
.filter-pill{background:var(--panel);border:1px solid var(--border);color:var(--text-dim);padding:6px 14px;border-radius:20px;cursor:pointer;font-size:13px;text-decoration:none;transition:all .2s}
.filter-pill:hover,.filter-pill.active{background:var(--accent);color:#fff;border-color:var(--accent)}

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

/* Preflight/state/revision/validation/risk/etc */
.preflight-badge{padding:3px 8px;border-radius:6px;font-size:.7rem;font-weight:600;display:inline-flex;align-items:center;gap:4px}
.preflight-ok{background:rgba(34,197,94,.15);color:#22c55e}
.preflight-warning{background:rgba(234,179,8,.15);color:#eab308}
.preflight-stale{background:rgba(239,68,68,.15);color:#ef4444}
.preflight-unchecked{background:rgba(107,114,128,.15);color:#6b7280}
.state-block{margin:8px 0;padding:10px 14px;border-radius:8px;border:1px solid var(--border);background:rgba(255,255,255,.02)}
.state-block h5{font-size:.75rem;color:var(--text-dim);margin:0 0 4px;font-weight:600;text-transform:uppercase}
.state-block p{font-size:.85rem;color:var(--text);margin:0;line-height:1.5}
.state-current{border-left:3px solid #f59e0b}
.state-target{border-left:3px solid #22c55e}
.revision-request{margin:8px 0;padding:10px;border:1px solid var(--border);border-radius:8px;border-left:3px solid var(--accent)}
.revision-request .rev-directives{font-size:.85rem;color:var(--text);margin:4px 0}
.revision-request .rev-response{font-size:.85rem;color:#22c55e;font-style:italic;margin:4px 0;padding-left:12px;border-left:2px solid #22c55e}
.revision-request .rev-meta{font-size:.75rem;color:var(--text-dim)}
.validation-block{margin:8px 0;padding:10px;border-radius:8px}
.validation-passed{background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.3)}
.validation-failed{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3)}
.risk-item{margin:4px 0;padding:6px 10px;border-radius:6px;background:rgba(239,68,68,.05);border:1px solid rgba(239,68,68,.15);font-size:.85rem}
.risk-item .risk-mitigation{color:#22c55e;font-size:.8rem;margin-top:2px}
.precondition-list{margin:0;padding-left:20px;font-size:.85rem}
.precondition-list li{margin:2px 0}
.time-badge{padding:2px 8px;border-radius:6px;font-size:.75rem;font-weight:600;background:rgba(59,130,246,.15);color:#60a5fa;display:inline-flex;align-items:center;gap:4px}
.alternative-card{margin:6px 0;padding:10px;border:1px solid var(--border);border-radius:8px;background:rgba(255,255,255,.02)}
.alternative-card h5{font-size:.85rem;margin:0 0 4px;color:var(--text)}
.alternative-card .alt-desc{font-size:.8rem;color:var(--text-dim);margin:0 0 6px}
.alt-pros-cons{display:flex;gap:12px;font-size:.8rem}
.alt-pros{color:#22c55e}.alt-cons{color:#ef4444}

/* Report cards */
.report-card{padding:12px 16px;border:1px solid var(--border);border-radius:10px;margin:8px 0;cursor:pointer;transition:background .15s}
.report-card:hover{background:rgba(255,255,255,.04)}
.report-card .report-meta{display:flex;align-items:center;gap:8px;font-size:.75rem;color:var(--text-dim)}
.report-card .report-summary{font-size:.85rem;color:var(--text);margin-top:4px}
.score-badge{padding:2px 8px;border-radius:6px;font-size:.7rem;font-weight:700;display:inline-flex;align-items:center}
.score-high{background:rgba(34,197,94,.15);color:#22c55e}
.score-mid{background:rgba(234,179,8,.15);color:#eab308}
.score-low{background:rgba(239,68,68,.15);color:#ef4444}
.severity-info{background:rgba(107,114,128,.15);color:#9ca3af}
.severity-low{background:rgba(59,130,246,.15);color:#60a5fa}
.severity-medium{background:rgba(234,179,8,.15);color:#eab308}
.severity-high{background:rgba(249,115,22,.15);color:#f97316}
.severity-critical{background:rgba(239,68,68,.15);color:#ef4444}
.report-type-badge{padding:2px 8px;border-radius:6px;font-size:.7rem;font-weight:600}
.type-nightly-audit{background:rgba(139,92,246,.15);color:#a78bfa}
.type-ai-intelligence{background:rgba(59,130,246,.15);color:#60a5fa}
.type-skills-scout{background:rgba(34,197,94,.15);color:#22c55e}
.type-briefing{background:rgba(234,179,8,.15);color:#eab308}
.type-standup{background:rgba(249,115,22,.15);color:#f97316}
.type-digest{background:rgba(236,72,153,.15);color:#ec4899}
.report-detail{padding:20px}
.report-detail h2{margin:0 0 8px;font-size:1.1rem}
.report-section{margin:16px 0;padding:12px;border:1px solid var(--border);border-radius:10px}
.report-section h3{font-size:.9rem;margin:0 0 8px;display:flex;align-items:center;gap:8px}
.finding-item{padding:8px 12px;margin:4px 0;border-radius:8px;background:rgba(255,255,255,.02);border-left:3px solid var(--border)}
.finding-item .finding-title{font-size:.85rem;font-weight:600;color:var(--text)}
.finding-item .finding-detail{font-size:.8rem;color:var(--text-dim);margin-top:2px}
.metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.metric-card{padding:10px;border:1px solid var(--border);border-radius:8px;text-align:center}
.metric-card .metric-value{font-size:1.3rem;font-weight:700;color:var(--accent)}
.metric-card .metric-label{font-size:.7rem;color:var(--text-dim);text-transform:uppercase}

/* ==========================================
   PROJECT WORKSPACE — 3-panel layout
   ========================================== */
.workspace-layout{display:grid;grid-template-columns:260px 1fr 280px;height:calc(100vh - 56px);overflow:hidden;gap:0}
.ws-panel{display:flex;flex-direction:column;height:100%;overflow:hidden;border-right:1px solid var(--border)}
.ws-panel:last-child{border-right:none}
.ws-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--panel-bg);flex-shrink:0;font-size:.9rem;font-weight:600}
.ws-panel-title{display:flex;align-items:center;gap:8px}
.ws-back-btn{color:var(--text-dim);text-decoration:none;font-size:1rem;line-height:1;transition:color .15s}
.ws-back-btn:hover{color:var(--accent)}
.ws-tree-panel{background:var(--bg)}
.ws-tree-scroll{flex:1;overflow-y:auto;padding:8px 4px}
.ws-add-form{padding:10px 12px;border-bottom:1px solid var(--border);background:rgba(255,255,255,.02)}
.ws-add-form form{display:flex;flex-direction:column;gap:6px}
.ws-form-actions{display:flex;gap:6px}
.ws-input{width:100%;background:var(--input-bg,rgba(255,255,255,.06));border:1px solid var(--border);border-radius:6px;color:var(--text);padding:6px 10px;font-size:.82rem;box-sizing:border-box;transition:border-color .15s}
.ws-input:focus{outline:none;border-color:var(--accent)}
.ws-select{width:100%;background:var(--input-bg,rgba(255,255,255,.06));border:1px solid var(--border);border-radius:6px;color:var(--text);padding:5px 8px;font-size:.82rem;box-sizing:border-box}
.ws-tree-footer{padding:8px 14px;border-top:1px solid var(--border);display:flex;align-items:center;gap:8px;font-size:.78rem;flex-shrink:0}
.ws-project-name{font-weight:600;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.ws-tree-empty{padding:20px;text-align:center;color:var(--text-dim);font-size:.85rem}
.ws-branch-item{position:relative}
.ws-branch-node{display:flex;align-items:center;gap:6px;padding:7px 12px;border-radius:6px;margin:2px 4px;cursor:pointer;transition:background .12s;user-select:none;position:relative}
.ws-branch-node:hover{background:rgba(255,255,255,.06)}
.ws-branch-node.active{background:rgba(var(--accent-rgb,139,92,246),.18)}
.ws-branch-icon{font-size:1rem;flex-shrink:0}
.ws-branch-name{font-size:.83rem;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-branch-arrow{font-size:.55rem;color:var(--text-dim);margin-left:auto}
.ws-branch-status{margin-left:auto}
.ws-status-dot-pending{width:7px;height:7px;border-radius:50%;background:#6b7280;display:inline-block}
.ws-status-dot-active{width:7px;height:7px;border-radius:50%;background:#3b82f6;display:inline-block}
.ws-status-dot-working{width:7px;height:7px;border-radius:50%;background:#eab308;display:inline-block;animation:pulse 1s infinite}
.ws-status-dot-review{width:7px;height:7px;border-radius:50%;background:#f97316;display:inline-block}
.ws-status-dot-completed{width:7px;height:7px;border-radius:50%;background:#22c55e;display:inline-block}
.ws-status-dot-cancelled{width:7px;height:7px;border-radius:50%;background:#ef4444;display:inline-block}
.ws-content-panel{background:var(--bg);flex:1}
.ws-branch-content{flex:1;overflow-y:auto;height:100%}
.ws-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:200px;color:var(--text-dim);text-align:center;padding:40px}
.ws-empty-state.ws-empty-sm{min-height:120px;padding:20px}
.ws-empty-icon{font-size:3rem;margin-bottom:12px}
.ws-hint{font-size:.8rem;color:var(--text-dim)}
.ws-branch-detail{padding:0;display:flex;flex-direction:column;height:100%}
.ws-branch-header{padding:14px 18px 10px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--panel-bg)}
.ws-branch-title-row{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}
.ws-branch-title{font-size:1.05rem;font-weight:700;margin:0;flex:1;display:flex;align-items:center;gap:8px}
.ws-type-icon{font-size:1.1rem}
.ws-branch-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.ws-phase-badge{padding:2px 8px;border-radius:12px;font-size:.72rem;font-weight:600;background:rgba(59,130,246,.15);color:#60a5fa}
.ws-agent-badge{padding:2px 8px;border-radius:12px;font-size:.72rem;font-weight:600;background:rgba(139,92,246,.15);color:#a78bfa}
.ws-branch-desc{font-size:.85rem;color:var(--text-dim);margin:6px 0 4px}
.ws-branch-meta{display:flex;gap:16px;margin-top:4px}
.ws-branch-meta small{font-size:.72rem;color:var(--text-dim)}
.ws-tabs{display:flex;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--panel-bg)}
.ws-tab{padding:8px 14px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-dim);cursor:pointer;font-size:.82rem;font-weight:500;transition:color .15s,border-color .15s}
.ws-tab:hover{color:var(--text)}
.ws-tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.ws-tab-content{display:none;flex:1;overflow-y:auto;padding:12px 16px}
.ws-tab-content.active{display:block}
.ws-iterations-list{display:flex;flex-direction:column;gap:10px;padding:4px 0}
.ws-iteration{border:1px solid var(--border);border-radius:10px;padding:10px 14px;background:rgba(255,255,255,.02)}
.ws-iter-author-aladin,.ws-iter-author-matrix,.ws-iter-author-alex,.ws-iter-author-leo,.ws-iter-author-georga,.ws-iter-author-spider{border-left:3px solid #8b5cf6}
.ws-iter-header{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:6px}
.ws-iter-author-icon{font-size:.95rem}
.ws-iter-type{padding:1px 7px;border-radius:8px;font-size:.7rem;font-weight:600}
.ws-atype-guide{background:rgba(59,130,246,.15);color:#60a5fa}
.ws-atype-execute{background:rgba(234,179,8,.15);color:#eab308}
.ws-atype-approve{background:rgba(34,197,94,.15);color:#22c55e}
.ws-atype-reject{background:rgba(239,68,68,.15);color:#ef4444}
.ws-iter-status{font-size:.7rem;color:var(--text-dim)}
.ws-iter-time{margin-left:auto;font-size:.72rem;color:var(--text-dim)}
.ws-iter-message{font-size:.84rem;color:var(--text);line-height:1.5;white-space:pre-wrap;word-break:break-word}
.ws-iter-result{margin-top:8px;padding:10px;border-radius:8px;background:rgba(34,197,94,.05);border:1px solid rgba(34,197,94,.15)}
.ws-iter-result-label{font-size:.75rem;font-weight:600;color:#22c55e;margin-bottom:6px}
.ws-iter-result-body{font-size:.83rem;color:var(--text);line-height:1.55;white-space:pre-wrap;word-break:break-word}
.ws-markdown{font-size:.85rem;line-height:1.6}
.ws-markdown h2,.ws-markdown h3{color:var(--accent);margin:10px 0 6px}
.ws-markdown code{background:rgba(255,255,255,.08);border-radius:4px;padding:1px 5px;font-family:monospace;font-size:.8rem}
.ws-markdown pre{background:rgba(0,0,0,.3);border-radius:8px;padding:10px 14px;overflow-x:auto;font-size:.8rem}
.ws-content-view{padding:4px 0}
.ws-artifacts-grid{display:flex;flex-direction:column;gap:8px}
.ws-artifact-card{display:flex;gap:10px;padding:10px 14px;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,.02);flex-wrap:wrap}
.ws-artifact-icon{font-size:1.5rem;flex-shrink:0}
.ws-artifact-info{flex:1}
.ws-artifact-name{font-size:.88rem;font-weight:600;color:var(--text)}
.ws-artifact-meta{display:flex;gap:8px;align-items:center;margin-top:2px}
.ws-artifact-type{padding:1px 7px;border-radius:8px;font-size:.68rem;font-weight:600;background:rgba(107,114,128,.15);color:#9ca3af}
.ws-artifact-path code{font-size:.75rem;color:var(--text-dim)}
.ws-artifact-details{width:100%;margin-top:6px}
.ws-artifact-details summary{cursor:pointer;font-size:.78rem;color:var(--accent)}
.ws-artifact-content{margin-top:6px;font-size:.75rem;background:rgba(0,0,0,.3);border-radius:6px;padding:8px;overflow-x:auto;max-height:150px;overflow-y:auto}
.ws-actions-panel{background:var(--bg)}
.ws-actions-panel.visible{display:flex !important}
.ws-actions-content{flex:1;overflow-y:auto;padding:10px}
.ws-actions-empty{padding:20px;text-align:center;color:var(--text-dim);font-size:.85rem}
.ws-action-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border)}
.ws-action-group:last-child{border-bottom:none}
.ws-action-label{font-size:.78rem;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}
.btn-full{width:100%;text-align:center}
.btn-primary{background:rgba(139,92,246,.25);border-color:rgba(139,92,246,.5);color:#c4b5fd}
.btn-primary:hover{background:rgba(139,92,246,.4)}
.btn-warning{background:rgba(234,179,8,.2);border-color:rgba(234,179,8,.4);color:#fde047}
.btn-warning:hover{background:rgba(234,179,8,.35)}
.btn-success{background:rgba(34,197,94,.2);border-color:rgba(34,197,94,.4);color:#86efac}
.btn-success:hover{background:rgba(34,197,94,.35)}
.btn-danger{background:rgba(239,68,68,.2);border-color:rgba(239,68,68,.4);color:#fca5a5}
.btn-danger:hover{background:rgba(239,68,68,.35)}
.btn-secondary{background:rgba(107,114,128,.15);border-color:rgba(107,114,128,.3);color:#9ca3af}
.btn-secondary:hover{background:rgba(107,114,128,.25)}
.ws-btn-pair{display:flex;gap:6px}
.btn-half{flex:1;text-align:center}
.toast{padding:10px 16px;border-radius:8px;font-size:.85rem;margin:6px;animation:toastIn .2s ease}
.toast-success{background:rgba(34,197,94,.25);border:1px solid rgba(34,197,94,.4);color:#86efac}
.toast-error{background:rgba(239,68,68,.25);border:1px solid rgba(239,68,68,.4);color:#fca5a5}
.toast-warning{background:rgba(234,179,8,.25);border:1px solid rgba(234,179,8,.4);color:#fde047}
.toast-info{background:rgba(59,130,246,.25);border:1px solid rgba(59,130,246,.4);color:#93c5fd}
@keyframes toastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

@media(max-width:900px){.workspace-layout{grid-template-columns:200px 1fr 240px}}
@media(max-width:700px){.workspace-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.ws-actions-panel{border-left:none;border-top:1px solid var(--border);max-height:300px}.ws-tree-panel{max-height:200px;border-right:none;border-bottom:1px solid var(--border)}}
@media(max-width:600px){.workspace-layout{grid-template-columns:1fr;grid-template-rows:200px 1fr}.ws-tree-panel{height:200px;border-right:none;border-bottom:1px solid var(--border)}}

/* Sidebar sub-items */
.nav-sub-item{padding-left:28px !important;font-size:.85rem;opacity:.82;border-left:2px solid transparent;transition:border-color .2s,opacity .2s,background .2s}
.nav-sub-item:hover,.nav-sub-item.active{border-left-color:var(--accent);opacity:1;background:rgba(139,92,246,.1)}
.ws-card-btn{margin-left:auto;padding:2px 7px;font-size:.78rem;opacity:0;transition:opacity .2s,transform .15s;transform:scale(.9)}
.project-card:hover .ws-card-btn{opacity:1;transform:scale(1)}
.workspace-link-footer{margin-left:auto;font-size:.78rem;color:var(--accent);text-decoration:none;opacity:.7;transition:opacity .2s;white-space:nowrap}
.workspace-link-footer:hover{opacity:1;text-decoration:underline}
.ws-hero-btn{font-size:.95rem;padding:8px 18px;gap:6px;box-shadow:0 0 12px rgba(139,92,246,.3);transition:box-shadow .2s,transform .15s}
.ws-hero-btn:hover{box-shadow:0 0 20px rgba(139,92,246,.5);transform:translateY(-1px)}
#active-workspaces-panel{padding:18px}
.ws-quick-links{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.ws-quick-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;background:var(--bg-card);border:1px solid var(--border);text-decoration:none;color:var(--text);transition:background .18s,border-color .18s,transform .15s}
.ws-quick-card:hover{background:rgba(139,92,246,.12);border-color:rgba(139,92,246,.4);transform:translateX(3px)}
.ws-quick-icon{font-size:1.2rem;flex-shrink:0}
.ws-quick-info{flex:1;display:flex;flex-direction:column;gap:2px}
.ws-quick-info strong{font-size:.9rem}
.ws-quick-arrow{color:var(--accent);font-size:1rem;opacity:.7}
.bc-link{color:var(--accent);text-decoration:none;opacity:.8;transition:opacity .15s}
.bc-link:hover{opacity:1;text-decoration:underline}
.bc-current{opacity:.6}
.ws-breadcrumb{display:flex;align-items:center;gap:6px;padding:8px 12px;font-size:.82rem;color:var(--text-dim);border-bottom:1px solid var(--border)}
.ws-breadcrumb a{color:var(--accent);text-decoration:none}
.ws-breadcrumb a:hover{text-decoration:underline}
.ws-breadcrumb-sep{opacity:.4}
.bottom-nav{gap:2px}
.bnav-item{padding:8px 10px;border-radius:6px;transition:background .15s}
.bnav-item:hover{background:rgba(139,92,246,.15)}
@media(max-width:480px){.workspace-link-footer{display:none}.ws-card-btn{opacity:1;transform:scale(1)}}

/* Workspace enhancements v2 */
.ws-branch-loader{display:none;flex-direction:column;align-items:center;justify-content:center;padding:60px 40px;color:var(--text-dim);gap:14px;height:100%}
.ws-spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:ws-spin 0.7s linear infinite}
@keyframes ws-spin{to{transform:rotate(360deg)}}
.ws-branch-loader p{font-size:.88rem;margin:0}
.ws-bubble-user{align-self:flex-end;max-width:90%;border:1px solid rgba(59,130,246,.35);background:rgba(59,130,246,.1) !important;border-left:none !important;border-right:3px solid #3b82f6;text-align:right}
.ws-bubble-user .ws-iter-header{flex-direction:row-reverse}
.ws-bubble-user .ws-iter-time{margin-left:0;margin-right:auto}
.ws-bubble-agent{align-self:flex-start;max-width:90%;background:rgba(255,255,255,.03) !important;border-left:3px solid #8b5cf6 !important}
.ws-iter-execute .ws-iter-result{background:rgba(234,179,8,.06);border-color:rgba(234,179,8,.2);border-radius:10px;padding:14px}
.ws-iter-execute .ws-iter-result-label{color:#eab308;font-size:.8rem;margin-bottom:8px}
.ws-actions-shortcuts{margin-top:8px;padding:10px 0}
.ws-shortcut-list{display:flex;flex-direction:column;gap:5px;margin-top:6px;font-size:.75rem;color:var(--text-dim)}
.ws-shortcut-list kbd{display:inline-block;padding:1px 5px;border-radius:4px;border:1px solid var(--border);background:rgba(255,255,255,.06);font-size:.72rem;font-family:monospace}
.nav-workspace-toggle{cursor:pointer}
.ws-nav-arrow{font-size:.6rem;opacity:.7;margin-left:4px}
.ws-nav-dropdown{padding:4px 0 4px 28px;display:flex;flex-direction:column;gap:2px}
.ws-nav-proj-link{display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:6px;text-decoration:none;color:var(--text-dim);font-size:.8rem;transition:background .12s,color .12s}
.ws-nav-proj-link:hover{background:rgba(139,92,246,.12);color:var(--text)}
.ws-nav-proj-active{color:var(--accent) !important;background:rgba(139,92,246,.1)}
.ws-nav-proj-icon{font-size:.85rem;flex-shrink:0}
.ws-nav-proj-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}
.ws-nav-proj-all{color:var(--text-dim);font-style:italic}
@media(max-width:768px){.workspace-layout{display:flex !important;flex-direction:column !important;height:auto !important;overflow:auto !important}.ws-panel{height:auto !important;overflow:visible !important;border-right:none !important;border-bottom:1px solid var(--border)}.ws-tree-panel{max-height:260px;overflow-y:auto}.ws-content-panel{min-height:320px}.ws-actions-panel{display:block !important;max-height:none}.ws-tree-scroll{max-height:180px}.ws-branch-content{min-height:280px}}

/* Project Viewer v2 */
.project-viewer-layout{display:grid;grid-template-columns:260px 1fr 300px;overflow:hidden}
.pv-tree,.pv-left{background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}
.pv-content,.pv-main{display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}
.pv-info,.pv-right{background:var(--panel);border-left:1px solid var(--border);overflow-y:auto;padding:16px}
.pv-status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}
.pv-status-dot.pending{background:#64748b}
.pv-status-dot.active{background:#3b82f6;box-shadow:0 0 5px rgba(59,130,246,.5);animation:pulse 2s infinite}
.pv-status-dot.completed,.pv-status-dot.done{background:#22c55e}
.pv-status-dot.blocked{background:#ef4444}
.pv-status-dot.review{background:#eab308}
.pv-status-dot.cancelled{background:#475569}
.pv-status-dot.draft{background:#94a3b8}
.pv-quick-link{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--text-dim);transition:all .15s;border:1px solid transparent;text-decoration:none}
.pv-quick-link:hover{background:var(--panel-hover);color:var(--text);border-color:var(--border)}
.pv-quick-link.active{background:rgba(59,130,246,.15);border-color:rgba(59,130,246,.3);color:var(--accent)}
.pv-tab-bar{display:flex;align-items:center;gap:2px;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--border);flex-shrink:0;overflow-x:auto}
.pv-tab{padding:6px 14px;border-radius:8px;font-size:13px;cursor:pointer;color:var(--text-dim);transition:all .15s;white-space:nowrap;border:none;background:none;font-family:var(--font)}
.pv-tab:hover{background:var(--panel-hover);color:var(--text)}
.pv-tab.active{background:rgba(59,130,246,.2);color:var(--accent);font-weight:600}
.pv-tree-node{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;cursor:pointer;transition:all .15s;font-size:13px;color:var(--text);margin-bottom:2px;border:1px solid transparent}
.pv-tree-node:hover{background:var(--panel-hover);border-color:var(--border)}
.pv-tree-node.active{background:rgba(59,130,246,.15);border-color:rgba(59,130,246,.4);color:var(--accent)}
.pv-tree-node-child{margin-left:18px;font-size:12px;color:var(--text-dim);padding:5px 10px;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:7px;margin-bottom:1px;transition:all .15s;border:1px solid transparent}
.pv-tree-node-child:hover{background:var(--panel-hover);color:var(--text);border-color:var(--border)}
.pv-tree-node-child.active{background:rgba(59,130,246,.1);border-color:rgba(59,130,246,.3);color:var(--accent)}
.data-table-search{width:100%;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:8px 14px;color:var(--text);font-family:var(--font);margin-bottom:12px;font-size:13px;transition:border-color .2s}
.data-table-search:focus{outline:none;border-color:var(--accent)}
.md-rendered{line-height:1.7;color:var(--text)}
.md-rendered h1,.md-rendered h2,.md-rendered h3{color:var(--text-heading);margin:1.2em 0 .5em}
.md-rendered h1{font-size:1.4em;border-bottom:1px solid var(--border);padding-bottom:.3em}
.md-rendered h2{font-size:1.15em}
.md-rendered h3{font-size:1em;color:var(--accent)}
.md-rendered p{margin-bottom:.8em}
.md-rendered ul,.md-rendered ol{padding-left:1.5em;margin-bottom:.8em}
.md-rendered li{margin-bottom:.3em}
.md-rendered code{background:var(--panel);padding:2px 7px;border-radius:4px;font-size:.85em;font-family:'JetBrains Mono',monospace}
.md-rendered pre{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px;overflow-x:auto;margin-bottom:1em}
.md-rendered pre code{background:none;padding:0}
.md-rendered blockquote{border-left:3px solid var(--accent);padding-left:14px;color:var(--text-dim);margin-bottom:.8em}
.md-rendered table{width:100%;border-collapse:collapse;margin-bottom:1em;font-size:13px}
.md-rendered th{background:var(--panel);padding:8px 12px;text-align:left;border-bottom:2px solid var(--border);color:var(--text-dim);font-size:11px;text-transform:uppercase}
.md-rendered td{padding:7px 12px;border-bottom:1px solid var(--border)}
.md-rendered tr:hover td{background:var(--panel-hover)}
.md-rendered a{color:var(--accent)}
.file-list-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:12px;color:var(--text-dim);transition:all .15s;cursor:pointer;border:1px solid transparent}
.file-list-item:hover{background:var(--panel-hover);color:var(--text);border-color:var(--border)}

@media(max-width:900px){
    .main-content,.page-content,.project-viewer-layout,.pv-content,.pv-content-body,.pv-tree,.pv-info{overflow-x:hidden;max-width:100%}
    .project-viewer-layout{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto 1fr}
    .pv-tree,.pv-left,.pv-content,.pv-main,.pv-info,.pv-right{width:100%;max-width:100%;border-right:none;border-left:none;border-top:none}
    .pv-tree,.pv-left{max-height:40vh;border-bottom:1px solid var(--border)}
    .pv-content,.pv-main{min-width:0}
    .pv-tab-bar{position:sticky;top:0;z-index:8}
    .pv-info,.pv-right{display:none;border-top:1px solid var(--border);max-height:none}
    .pv-info.open,.pv-right.open{display:flex}
}

/* Workspace chat */
.ws-chat-thread{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.ws-chat-msg{max-width:82%;border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:var(--panel)}
.ws-chat-msg.user{align-self:flex-end;background:rgba(59,130,246,.16);border-color:rgba(59,130,246,.35)}
.ws-chat-msg.agent{align-self:flex-start;background:rgba(255,255,255,.03)}
.ws-chat-msg .author{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:6px;font-size:.76rem;color:var(--text-dim)}
.ws-chat-msg .content{color:var(--text);font-size:.85rem;line-height:1.55;word-break:break-word}
.ws-chat-msg .actions{display:flex;gap:8px;flex-wrap:wrap}
.ws-working-indicator{display:inline-flex;align-items:center;gap:8px;color:var(--text-dim);font-size:.84rem;padding:8px 10px}
.ws-working-indicator .dot{width:10px;height:10px;border-radius:50%;background:var(--accent);animation:pulse 1s infinite}
.ws-chat-compose{border-top:1px solid var(--border);padding:10px 16px 14px;background:rgba(255,255,255,.01)}
.ws-chat-compose form{display:flex;flex-direction:column;gap:8px}
.ws-chat-compose-actions{display:flex;justify-content:flex-end}

/* Research content styles */
.research-content h1,.research-content h2,.research-content h3{color:var(--text-heading);margin:1.5em 0 .5em}
.research-content h2{border-bottom:1px solid var(--border);padding-bottom:.3em}
.research-content table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.9rem}
.research-content th{background:var(--panel);color:var(--accent);padding:.75rem;text-align:left;border-bottom:2px solid var(--accent)}
.research-content td{padding:.6rem .75rem;border-bottom:1px solid var(--border)}
.research-content tr:hover td{background:rgba(59,130,246,.05)}
.research-content code{background:var(--bg);padding:2px 6px;border-radius:4px;font-size:.85em}
.research-content pre{background:var(--bg);padding:16px;border-radius:var(--radius);overflow-x:auto;margin:1rem 0;border:1px solid var(--border)}
.research-content blockquote{border-left:3px solid var(--accent);padding-left:16px;color:var(--text-dim);margin:1rem 0}
.research-content ul,.research-content ol{padding-left:1.5rem;margin:.5rem 0}
.research-content li{margin:.3rem 0}
.research-content a{color:var(--accent)}
.research-content img{max-width:100%;border-radius:var(--radius)}

/* ===== COMMAND PALETTE ===== */
.command-palette-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 10vh;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.command-palette-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
}

.command-palette-content {
    position: relative;
    z-index: 1001;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 12px;
    width: 90%;
    max-width: 500px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    max-height: 400px;
    animation: slideDown 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.command-palette-input {
    padding: 14px 18px;
    border: none;
    background: transparent;
    color: var(--text);
    font-family: var(--font);
    font-size: 16px;
    outline: none;
    border-bottom: 1px solid var(--border);
}

.command-palette-input::placeholder {
    color: var(--text-dim);
}

.command-palette-results {
    flex: 1;
    overflow-y: auto;
    padding: 8px 0;
}

.command-result-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 18px;
    color: var(--text);
    cursor: pointer;
    transition: background 0.15s;
    border-left: 3px solid transparent;
}

.command-result-item:hover,
.command-result-item.selected {
    background: rgba(59, 130, 246, 0.12);
    border-left-color: var(--accent);
}

.result-icon {
    font-size: 18px;
    min-width: 24px;
    text-align: center;
}

.result-name {
    flex: 1;
    font-weight: 500;
}

.command-result-empty {
    padding: 24px 18px;
    text-align: center;
    color: var(--text-dim);
    font-size: 13px;
}

.command-palette-hint {
    padding: 10px 14px;
    border-top: 1px solid var(--border);
    font-size: 11px;
    color: var(--text-dim);
    display: flex;
    justify-content: center;
    gap: 16px;
    white-space: nowrap;
}

/* ===== BOTTOM NAV V3 ===== */
.bottom-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--panel);
    border-top: 1px solid var(--border);
    display: none;
    justify-content: space-around;
    align-items: center;
    height: 56px;
    z-index: 99;
}

.bottom-nav .bnav-item {
    flex: 1;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    color: var(--text-dim);
    text-decoration: none;
    transition: color 0.2s, background 0.2s;
    border: none;
    background: none;
    cursor: pointer;
}

.bottom-nav .bnav-item:hover {
    color: var(--text);
    background: rgba(59, 130, 246, 0.08);
}

.bottom-nav .bnav-item.active {
    color: var(--accent);
    font-weight: 600;
}

/* Show bottom nav only on mobile */
@media (max-width: 768px) {
    .bottom-nav {
        display: flex;
    }
    
    .main-content {
        padding-bottom: 56px;
    }
}

/* Breadcrumb styling */
.bc-link {
    color: var(--text-dim);
    transition: color 0.2s;
}

.bc-link:hover {
    color: var(--accent);
}

.bc-current {
    color: var(--text-heading);
    font-weight: 600;
}

/* Scrollbar styling */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: var(--border);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--text-dim);
}

/* ===== PHASE 5: GLOBAL MOBILE PARITY ===== */
@media (max-width: 768px) {
    /* Grid layouts stack on mobile */
    .grid-2 { grid-template-columns: 1fr !important; }
    .stats-row { grid-template-columns: repeat(2, 1fr) !important; }
    
    /* Page content less padding on mobile */
    .page-content { padding: var(--sp-2) !important; }
    
    /* Tables scroll horizontally */
    .data-table { display: block; overflow-x: auto; white-space: nowrap; }
    
    /* Page headers stack */
    .page-header { flex-direction: column; gap: 12px; align-items: flex-start !important; }
    .dashboard-header { flex-direction: column; gap: 8px; align-items: flex-start !important; }
    .dashboard-header h1 { font-size: 1.3rem; }
    
    /* Panels less padding */
    .panel { padding: var(--sp-2) !important; }
    
    /* Filter bars wrap */
    .device-filter-bar { flex-wrap: wrap; gap: 6px; }
    .filter-pill { padding: 6px 10px; font-size: 12px; }
    
    /* Touch targets min 44px */
    .btn, .btn-sm, .filter-pill, .nav-item, .bnav-item {
        min-height: 44px;
        min-width: 44px;
    }
    
    /* Proposals kanban → vertical stack */
    .kanban-board { grid-template-columns: 1fr !important; }
    
    /* Location cards stack */
    .locations-grid { grid-template-columns: 1fr !important; }
    
    /* Report groups stack */
    .report-groups-grid { grid-template-columns: 1fr !important; }
    
    /* Briefing calendar compact */
    .briefing-calendar { grid-template-columns: repeat(2, 1fr) !important; }
    
    /* Header search hidden on mobile (use Ctrl+K or sidebar) */
    .search-box { display: none; }
    
    /* Top header compact */
    .top-header { padding: 8px 12px !important; }
    .breadcrumb { font-size: 12px; max-width: 60%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .clock { font-size: 12px; }
    
    /* Cards grid stack */
    .pv2-grid { grid-template-columns: 1fr !important; }
    
    /* Project viewer mobile */
    .project-viewer-layout { grid-template-columns: 1fr !important; }
    .pv-tree, .pv-left { max-height: 200px; overflow-y: auto; border-right: none !important; border-bottom: 1px solid var(--border); }
    
    /* Topology graph shorter on mobile */
    #topology-graph { height: 300px !important; min-height: 300px !important; }
    
    /* Hide sidebar completely on mobile (use bottom nav + hamburger) */
    .sidebar { margin-left: -280px; width: 280px; }
    .main-content { margin-left: 0 !important; }
}

/* Small phones */
@media (max-width: 480px) {
    .stats-row { grid-template-columns: 1fr !important; }
    h1 { font-size: 1.2rem !important; }
    .panel h2 { font-size: 13px; }
    .stat-card { padding: 10px; }
    .stat-value { font-size: 1.2rem; }
}

/* Sidebar expanded state on desktop */
@media (min-width: 769px) {
    .sidebar.expanded { width: 240px; }
    .sidebar.expanded ~ .main-content { margin-left: 240px; }
    .sidebar:not(.expanded) { width: 64px; }
    .sidebar:not(.expanded) ~ .main-content { margin-left: 64px; }
    .sidebar:not(.expanded) .nav-group-header .group-name { display: none; }
    .sidebar:not(.expanded) .nav-group-header .group-toggle { display: none; }
    .sidebar:not(.expanded) .sidebar-search-trigger { justify-content: center; }
    .sidebar:not(.expanded) .search-text { display: none; }
    .sidebar:not(.expanded) .footer-version { display: none; }
    .sidebar:not(.expanded) .footer-status { display: none; }
    .sidebar:not(.expanded) .nav-group-items .nav-label { display: none; }
    .sidebar:not(.expanded) .nav-group-dropdown { display: none !important; }
}

/* Breadcrumb group label */
.bc-group { color: var(--text-dim); font-size: 13px; }
