@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@700&display=swap');

/* ══════════════════════════════════════════════════════
   DESIGN TOKENS — light theme (default)
══════════════════════════════════════════════════════ */
:root {
    /* Brand greens */
    --primary:#00E676;            /* fill / button bg */
    --primary-dark:#00A854;       /* readable on white */
    --primary-hover:#00C963;      /* hover fill */
    --primary-light:rgba(0,230,118,0.12);
    --primary-text:#1A1A1A;       /* text ON green */

    /* Topbar — always dark regardless of theme */
    --topbar-bg:#1A1A1A;
    --topbar-border:rgba(255,255,255,0.08);
    --topbar-text:#F5F5F5;
    --topbar-muted:rgba(245,245,245,0.45);
    --topbar-nav-bg:rgba(255,255,255,0.07);
    --topbar-nav-hover:rgba(255,255,255,0.13);
    --topbar-nav-border:rgba(255,255,255,0.16);

    /* Surfaces — light */
    --bg:#F5F5F5;
    --panel:#FFFFFF;
    --border:#E0E0E0;
    --border-light:#EBEBEB;
    --text:#1A1A1A;
    --text-muted:#6B7280;

    /* Status */
    --success:#16a34a;--success-bg:#dcfce7;--success-text:#14532d;
    --warning:#FF5722;
    --danger:#dc2626;--danger-bg:#fee2e2;--danger-border:#fca5a5;

    /* Accent — brand orange */
    --accent:#FF5722;
    --accent-bg:rgba(255,87,34,0.1);
    --accent-text:#BF360C;

    /* Sub-assembly greens */
    --sub-bg:#e8f0d8;--sub-border:#a3b890;

    /* Shadows */
    --shadow-sm:0 1px 3px rgba(26,26,26,0.07),0 1px 2px rgba(26,26,26,0.05);
    --shadow:0 4px 12px rgba(26,26,26,0.08),0 2px 4px rgba(26,26,26,0.05);

    /* Radius */
    --radius:12px;--radius-sm:7px;--radius-xs:5px;
}

/* ══════════════════════════════════════════════════════
   DARK THEME OVERRIDES
══════════════════════════════════════════════════════ */
[data-theme="dark"] {
    --bg:#111316;
    --panel:#1C1F26;
    --border:rgba(255,255,255,0.1);
    --border-light:rgba(255,255,255,0.06);
    --text:#F0F0F0;
    --text-muted:#9CA3AF;
    --success-bg:rgba(22,163,74,0.15);--success-text:#4ade80;
    --danger-bg:rgba(220,38,38,0.15);--danger-border:rgba(220,38,38,0.35);
    --accent-bg:rgba(255,87,34,0.15);--accent-text:#FF7043;
    --sub-bg:rgba(163,184,144,0.1);--sub-border:rgba(163,184,144,0.35);
    --primary-light:rgba(0,230,118,0.1);
    --shadow-sm:0 1px 3px rgba(0,0,0,0.35),0 1px 2px rgba(0,0,0,0.25);
    --shadow:0 4px 12px rgba(0,0,0,0.4),0 2px 4px rgba(0,0,0,0.3);
    --topbar-bg:#0D0F12;
}

/* ══════════════════════════════════════════════════════
   BASE
══════════════════════════════════════════════════════ */
*{box-sizing:border-box;}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--text);margin:0;overflow:hidden;font-size:13px;transition:background 0.2s,color 0.2s;}

/* Scrollbars — light theme */
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:#C5C9D0;border-radius:4px;}
::-webkit-scrollbar-thumb:hover{background:#A0A6AF;}
* { scrollbar-color: #C5C9D0 transparent; scrollbar-width: thin; }

/* Scrollbars — dark theme */
[data-theme="dark"] ::-webkit-scrollbar-thumb{background:#3A3F47;}
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover{background:#52585F;}
[data-theme="dark"] * { scrollbar-color: #3A3F47 transparent; }
h3{margin:0 0 12px;font-size:13px;font-weight:700;letter-spacing:-0.01em;}
h4{margin:0 0 8px;font-size:12px;font-weight:700;}
hr{border:none;border-top:1px solid var(--border-light);margin:12px 0;}
.wrapper{display:flex;height:100vh;width:100vw;}

/* ══════════════════════════════════════════════════════
   SIDEBAR
══════════════════════════════════════════════════════ */
.sidebar{position:fixed;top:52px;left:0;right:0;background:var(--panel);border-bottom:2px solid var(--border);box-shadow:0 8px 24px rgba(0,0,0,0.12),0 2px 6px rgba(0,0,0,0.07);z-index:100;max-height:calc(100vh - 52px);overflow-y:auto;transform:translateY(-12px);opacity:0;pointer-events:none;transition:transform 0.25s cubic-bezier(.4,0,.2,1),opacity 0.2s;}
.sidebar.expanded{transform:translateY(0);opacity:1;pointer-events:auto;}
.config-content{padding:20px 24px 24px;}
.main-content{flex-grow:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;}

/* ══════════════════════════════════════════════════════
   PANELS
══════════════════════════════════════════════════════ */
.panel{background:var(--panel);padding:16px;border-radius:var(--radius);border:1px solid var(--border);margin-bottom:14px;box-shadow:var(--shadow-sm);}
.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.panel-title h3{margin:0;}

/* ══════════════════════════════════════════════════════
   BUTTONS
══════════════════════════════════════════════════════ */
.btn{cursor:pointer;padding:7px 14px;border-radius:var(--radius-sm);border:none;font-weight:600;font-size:12px;transition:0.15s;display:inline-flex;align-items:center;gap:5px;letter-spacing:-0.01em;}
.btn-primary{background:var(--primary);color:var(--primary-text);box-shadow:0 1px 2px rgba(0,230,118,0.25);}.btn-primary:hover{background:var(--primary-hover);}
.btn-ghost{background:var(--bg);color:var(--text);border:1px solid var(--border);}.btn-ghost:hover{background:var(--border-light);}
.btn-danger{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border);}.btn-danger:hover{background:#fecaca;}
.btn-success{background:var(--success-bg);color:var(--success-text);border:1px solid #86efac;}.btn-success:hover{background:#bbf7d0;}
.btn-sm{padding:4px 9px;font-size:11px;border-radius:var(--radius-xs);}
.btn-accent{background:var(--accent-bg);color:var(--accent-text);border:1px solid rgba(255,87,34,0.3);}.btn-accent:hover{background:rgba(255,87,34,0.18);}
.btn-olive{background:#f0f4e8;color:#3d5a00;border:1px solid var(--sub-border);}.btn-olive:hover{background:#e2ebd0;}
.btn-warning{background:#fef9c3;color:#854d0e;border:1px solid #fde047;}.btn-warning:hover{background:#fef08a;}

/* ══════════════════════════════════════════════════════
   FORM FIELDS
══════════════════════════════════════════════════════ */
.field-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.field-row label{font-size:12px;color:var(--text-muted);font-weight:500;}
.field-input{width:62px;padding:4px 8px;border:1px solid var(--border);border-radius:4px;font-size:12px;background:var(--bg);color:var(--text);text-align:right;}
.field-input:focus{outline:none;border-color:var(--primary);background:var(--panel);}

/* ══════════════════════════════════════════════════════
   OPERATIVE CARDS
══════════════════════════════════════════════════════ */
.op-card{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;margin-bottom:6px;}
.op-card svg{width:14px;height:14px;stroke:var(--text-muted);fill:none;stroke-width:2;flex-shrink:0;}
.op-card input[type="text"]{flex:1;border:none;background:transparent;font-size:12px;font-weight:600;color:var(--text);}
.op-card input[type="text"]:focus{outline:none;}
.op-prod-wrap{display:flex;align-items:center;gap:2px;flex-shrink:0;}
.op-prod-input{width:38px;padding:2px 5px;border:1px solid var(--border);border-radius:4px;font-size:11px;font-weight:700;text-align:right;background:var(--bg);color:var(--text);}
.op-prod-input:focus{outline:none;border-color:var(--primary);background:var(--panel);}
.op-prod-label{font-size:10px;color:var(--text-muted);font-weight:600;}
.op-del{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:14px;padding:0 2px;line-height:1;}
.op-del:hover{color:var(--danger);}

/* ══════════════════════════════════════════════════════
   PROCESS ROWS
══════════════════════════════════════════════════════ */
.process-row{display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:4px;margin-bottom:3px;}
.process-row:nth-child(odd){background:var(--bg);}
.proc-drag{cursor:grab;color:var(--border);font-size:14px;flex-shrink:0;padding:0 2px;user-select:none;}
.proc-label{flex:1;min-width:0;padding:3px 6px;border:1px solid var(--border);border-radius:4px;font-size:12px;font-weight:600;background:var(--panel);color:var(--text);}
.proc-label:focus{outline:none;border-color:var(--primary);}
.proc-time{width:52px;padding:3px 7px;border:1px solid var(--border);border-radius:4px;font-size:12px;text-align:right;background:var(--panel);color:var(--text);flex-shrink:0;}
.proc-time:focus{outline:none;border-color:var(--primary);}
.proc-time-unit{font-size:10px;color:var(--text-muted);flex-shrink:0;}

/* ══════════════════════════════════════════════════════
   SUB-COMPONENT DEFINITIONS
══════════════════════════════════════════════════════ */
.subcomp-card{background:#f6faf0;border:1px solid var(--sub-border);border-radius:8px;padding:8px 10px;margin-bottom:6px;}
.subcomp-row{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-bottom:5px;}
.subcomp-name-input{flex:1;min-width:80px;padding:3px 7px;border:1px solid var(--sub-border);border-radius:4px;font-size:12px;font-weight:700;background:var(--panel);}
.subcomp-name-input:focus{outline:none;border-color:#5a8a00;}
.subcomp-output-select,.subcomp-time-input,.subcomp-maxbuf-input{padding:3px 6px;border:1px solid var(--sub-border);border-radius:4px;font-size:12px;background:var(--panel);}
.subcomp-output-select:focus,.subcomp-time-input:focus,.subcomp-maxbuf-input:focus{outline:none;border-color:#5a8a00;}
.subcomp-time-input{width:50px;text-align:right;}
.subcomp-maxbuf-input{width:46px;text-align:right;}
.subcomp-inputs-row{display:flex;align-items:flex-start;gap:5px;margin-top:3px;}
.subcomp-inputs-list{flex:1;display:flex;flex-wrap:wrap;gap:4px;}
.subcomp-input-chip{display:flex;align-items:center;gap:3px;background:var(--panel);border:1px solid var(--sub-border);border-radius:12px;padding:2px 8px 2px 5px;font-size:10px;font-weight:600;color:#3d5a00;}
.subcomp-input-chip input[type="number"]{width:30px;border:none;background:transparent;font-size:10px;font-weight:700;color:#3d5a00;text-align:right;padding:0;}
.subcomp-input-chip input[type="text"]{width:70px;border:none;background:transparent;font-size:10px;font-weight:600;color:#3d5a00;padding:0;}
.subcomp-input-chip input:focus{outline:none;}
.subcomp-input-del{background:none;border:none;cursor:pointer;color:#a0b080;font-size:11px;padding:0;line-height:1;}
.subcomp-input-del:hover{color:var(--danger);}

/* ══════════════════════════════════════════════════════
   SUB-ASSEMBLY STATION CARDS
══════════════════════════════════════════════════════ */
.substn-card{background:#f6faf0;border:1px solid var(--sub-border);border-radius:8px;padding:8px 10px;margin-bottom:6px;}
.substn-row{display:flex;align-items:center;gap:5px;flex-wrap:wrap;}
.substn-name-input{flex:1;min-width:100px;padding:3px 7px;border:1px solid var(--sub-border);border-radius:4px;font-size:12px;font-weight:700;background:var(--panel);}
.substn-name-input:focus{outline:none;border-color:#5a8a00;}
.substn-select{padding:3px 7px;border:1px solid var(--sub-border);border-radius:4px;font-size:12px;background:var(--panel);max-width:130px;}
.substn-select:focus{outline:none;border-color:#5a8a00;}
.substn-op-input{width:80px;padding:3px 6px;border:1px solid var(--sub-border);border-radius:4px;font-size:11px;background:var(--panel);}
.substn-op-input:focus{outline:none;border-color:#5a8a00;}

/* ══════════════════════════════════════════════════════
   STATION CARDS (main line)
══════════════════════════════════════════════════════ */
.stn-card{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-bottom:6px;}
.stn-card-header{display:flex;align-items:center;gap:6px;}
.stn-card-header input[type="text"]{flex:1;font-weight:700;font-size:12px;border:1px solid var(--border);border-radius:4px;padding:4px 7px;background:var(--panel);color:var(--text);}
.stn-card-header input[type="text"]:focus{outline:none;border-color:var(--primary);}
.icon-btn{background:var(--panel);border:1px solid var(--border);border-radius:4px;width:26px;height:26px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:0.15s;}
.icon-btn:hover{background:var(--border-light);}
.icon-btn.danger:hover{background:var(--danger-bg);border-color:var(--danger-border);}
.icon-btn svg{width:13px;height:13px;stroke:var(--text-muted);fill:none;stroke-width:2;stroke-linecap:round;pointer-events:none;}
.icon-btn.danger svg{stroke:var(--danger);}
.stn-card-tasks{display:grid;grid-template-columns:1fr 1fr;gap:2px 6px;font-size:10px;margin-top:7px;padding-top:7px;border-top:1px solid var(--border-light);}
.stn-card-tasks label{display:flex;align-items:center;gap:4px;cursor:pointer;padding:2px 0;}
.stn-card-tasks label.task-claimed{opacity:0.35;pointer-events:none;cursor:not-allowed;}
.stn-card-tasks label.task-claimed input{cursor:not-allowed;}
.stn-auto-row{margin-top:6px;padding-top:6px;border-top:1px solid var(--border-light);font-size:10px;}
.stn-auto-row label{display:flex;align-items:center;gap:5px;cursor:pointer;color:var(--text-muted);font-weight:600;letter-spacing:0.02em;}
.stn-auto-row input[type="checkbox"]:checked+*,.stn-auto-row label:has(input:checked){color:var(--primary-dark);}
.stn-pack-time{margin-top:7px;padding-top:7px;border-top:1px solid var(--border-light);font-size:11px;display:flex;align-items:center;gap:6px;color:var(--text-muted);}
.stn-pack-time input{width:40px;padding:3px 7px;border:1px solid var(--border);border-radius:4px;font-size:12px;text-align:right;background:var(--panel);color:var(--text);}
.stn-type-badge{font-size:9px;font-weight:800;padding:2px 7px;border-radius:10px;flex-shrink:0;text-transform:uppercase;letter-spacing:0.5px;}
.stn-type-work{background:var(--primary-light);color:var(--primary-dark);}
.stn-type-buffer{background:#fef9c3;color:#854d0e;}
.stn-type-final{background:var(--accent-bg);color:var(--accent-text);}
.stn-type-subassy{background:#e8f0d8;color:#3d5a00;}
.stn-subassy-body{border-top:1px solid var(--sub-border);margin-top:6px;padding-top:5px;}
.stn-card[data-type="subassy"]{border-color:var(--sub-border);background:#f8fcf2;}

/* ══════════════════════════════════════════════════════
   HOUSING TABLE
══════════════════════════════════════════════════════ */
.h-table-wrap{overflow-x:auto;overflow-y:auto;max-height:320px;margin-top:10px;border:1px solid var(--border-light);border-radius:8px;}
.h-table{width:100%;border-collapse:collapse;min-width:600px;}
.h-table thead th{position:sticky;top:0;z-index:2;background:var(--bg);padding:9px 10px;font-size:11px;font-weight:700;color:var(--text-muted);border-bottom:1px solid var(--border);text-align:center;}
.h-table thead th:nth-child(3){text-align:left;padding-left:8px;}
.h-table td{padding:6px 8px;border-bottom:1px solid var(--border-light);text-align:center;vertical-align:middle;}
.h-table tr:last-child td{border-bottom:none;}
.h-table tr:hover td{background:var(--border-light);}
.h-name-input{border:1px solid transparent;border-radius:4px;padding:4px 7px;font-size:12px;font-weight:600;background:transparent;color:var(--text);width:100%;min-width:130px;}
.h-name-input:hover,.h-name-input:focus{border-color:var(--border);background:var(--panel);outline:none;}
.h-qty-input{width:48px;padding:4px 6px;border:1px solid var(--border-light);border-radius:4px;font-size:12px;text-align:center;background:var(--bg);color:var(--text);}
.h-qty-input:focus{outline:none;border-color:var(--primary);background:var(--panel);}
.q-order-btns{display:flex;gap:3px;justify-content:center;}
.q-order-btns .icon-btn{width:22px;height:22px;}
.q-order-btns .icon-btn svg{width:11px;height:11px;}
.row-num{font-size:10px;color:var(--text-muted);font-weight:600;min-width:24px;text-align:right;padding-right:4px;}

/* ══════════════════════════════════════════════════════
   BATCH BAR
══════════════════════════════════════════════════════ */
.batch-bar{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg);border:1px solid var(--border-light);border-radius:8px;margin-bottom:10px;flex-wrap:wrap;}
.batch-bar label{font-size:12px;color:var(--text-muted);font-weight:500;flex-shrink:0;}
.batch-bar select{padding:4px 8px;border:1px solid var(--border);border-radius:4px;font-size:12px;background:var(--panel);color:var(--text);flex:1;min-width:140px;max-width:260px;}
.batch-bar input[type="number"]{width:60px;padding:4px 8px;border:1px solid var(--border);border-radius:4px;font-size:12px;text-align:center;background:var(--panel);color:var(--text);}
.queue-count{font-size:11px;color:var(--text-muted);margin-left:auto;font-weight:600;}

/* ══════════════════════════════════════════════════════
   TOPBAR — always dark
══════════════════════════════════════════════════════ */
.topbar{padding:0 20px;background:var(--topbar-bg);border-bottom:1px solid var(--topbar-border);display:flex;justify-content:space-between;align-items:center;height:52px;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,0.25);}
.topbar-left{display:flex;align-items:center;gap:12px;flex-shrink:0;}
.topbar-left small{font-size:11px;color:var(--topbar-muted);font-family:'Space Grotesk','Inter',sans-serif;font-weight:700;letter-spacing:0.01em;}
.topbar-nav{display:flex;gap:6px;align-items:center;}
.nav-btn{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border:1px solid var(--topbar-nav-border);border-radius:var(--radius-sm);background:var(--topbar-nav-bg);font-size:12px;font-weight:600;color:var(--topbar-text);cursor:pointer;font-family:inherit;transition:background 0.15s,border-color 0.15s,color 0.15s;letter-spacing:-0.01em;}
.nav-btn:hover{background:var(--topbar-nav-hover);}
.nav-btn.active{background:var(--primary);color:var(--primary-text);border-color:var(--primary);}
.nav-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;}
.nav-btn-badge{background:#dc2626;color:white;border-radius:10px;font-size:10px;font-weight:700;padding:1px 6px;min-width:18px;text-align:center;margin-left:2px;}
.topbar-right{display:flex;gap:8px;align-items:center;}
.speed-select{padding:5px 10px;border-radius:var(--radius-sm);border:1px solid var(--topbar-nav-border);background:var(--topbar-nav-bg);color:var(--topbar-text);font-size:12px;font-weight:600;cursor:pointer;}
.clock{font-family:'Courier New',monospace;font-size:20px;font-weight:700;min-width:68px;text-align:center;letter-spacing:1px;color:var(--topbar-text);}

/* Theme toggle */
.theme-toggle-btn{background:var(--topbar-nav-bg);border:1px solid var(--topbar-nav-border);border-radius:var(--radius-sm);width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--topbar-text);transition:background 0.15s;flex-shrink:0;}
.theme-toggle-btn:hover{background:var(--topbar-nav-hover);}
.theme-toggle-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

/* ══════════════════════════════════════════════════════
   FLOOR LAYOUT
══════════════════════════════════════════════════════ */
.floor-wrap{position:relative;flex-grow:1;overflow:hidden;display:flex;flex-direction:column;}
.floor-main{position:relative;flex:1;min-height:0;overflow:hidden;display:flex;}
.floor{display:flex;gap:12px;padding:16px 16px 70px;overflow-x:auto;overflow-y:auto;align-items:flex-start;flex-grow:1;background:linear-gradient(135deg,#dce8f0 0%,#cfd9e8 100%);}
[data-theme="dark"] .floor{background:linear-gradient(135deg,#0D1117 0%,#141A22 100%);}
.ws-box{min-width:220px;max-width:220px;overflow:hidden;background:var(--panel);border:2px solid var(--border);border-radius:var(--radius);padding:11px 12px;position:relative;flex-shrink:0;box-shadow:var(--shadow);}
.ws-box.buffer{min-width:110px;max-width:110px;overflow:hidden;border-style:dashed;background:rgba(255,255,255,0.5);box-shadow:none;}
[data-theme="dark"] .ws-box.buffer{background:rgba(255,255,255,0.04);}
.ws-box.active{border-color:var(--primary);box-shadow:0 4px 14px rgba(0,230,118,0.2);}
.ws-box.waiting-parts{border-color:var(--warning);box-shadow:0 4px 14px rgba(255,87,34,0.22);}
.ws-label{display:flex;align-items:center;justify-content:space-between;gap:4px;font-weight:800;font-size:10px;letter-spacing:0.4px;color:var(--text-muted);margin-bottom:5px;text-transform:uppercase;overflow:hidden;}
.ws-label-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;}
.ws-auto-badge{display:inline-block;font-size:8px;font-weight:800;letter-spacing:0.06em;color:var(--primary-dark);background:var(--primary-light);border-radius:4px;padding:1px 5px;flex-shrink:0;white-space:nowrap;}
.pending-pull-row{position:relative;margin:3px 0;background:#fef3c7;border:1px solid #fcd34d;border-radius:4px;height:19px;line-height:19px;font-size:10px;padding:0 7px;display:flex;justify-content:space-between;font-weight:700;color:#92400e;}
.pending-pull-row.parts-ready{background:#dcfce7;border-color:#86efac;color:#14532d;}

/* Supermarket strip */
.supermarket-strip-wrap{padding:4px 16px 6px;flex-shrink:0;}

/* Sub-assembly floor */
.sub-floor{flex-shrink:0;height:180px;background:#ccd9b8;border-top:2px solid #a3b890;display:flex;gap:12px;padding:10px 16px;overflow-x:auto;overflow-y:hidden;align-items:flex-start;}
[data-theme="dark"] .sub-floor{background:#182215;border-top-color:rgba(163,184,144,0.3);}
.sub-floor.hidden{display:none;}
.sub-floor-label{font-size:10px;font-weight:800;letter-spacing:1px;color:#4a6020;text-transform:uppercase;writing-mode:vertical-lr;transform:rotate(180deg);flex-shrink:0;align-self:center;padding:4px 0;}
.sub-ws-box{min-width:200px;max-width:240px;background:var(--panel);border:2px solid var(--sub-border);border-radius:var(--radius);padding:10px 11px;position:relative;flex-shrink:0;}
.sub-ws-box.active{border-color:#5a8a00;box-shadow:0 3px 10px rgba(90,138,0,0.2);}
.sub-ws-box.buffer-full{border-color:#a3b890;opacity:0.75;}
.sub-ws-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;}
.sub-ws-name{font-weight:800;font-size:10px;color:#3d5a00;letter-spacing:0.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px;}
.sub-ws-target{font-size:9px;background:#e8f0d8;color:#4a6020;padding:1px 6px;border-radius:8px;font-weight:700;border:1px solid var(--sub-border);white-space:nowrap;}
.sub-ws-op{display:flex;align-items:center;gap:5px;margin-bottom:6px;font-size:10px;color:#4a6020;font-weight:600;}
.sub-ws-op .emoji{font-size:18px;line-height:1;}
.sub-progress-label{font-size:9px;color:var(--text-muted);font-weight:600;margin-bottom:2px;}
.sub-progress-bar{height:6px;background:#e2ebd0;border-radius:4px;overflow:hidden;margin-bottom:7px;}
.sub-progress-fill{height:100%;background:#5a8a00;border-radius:4px;transition:width 0.2s;}
.sub-buffer-section{background:#f6faf0;border:1px solid var(--sub-border);border-radius:6px;padding:5px 8px;}
.sub-buffer-label{font-size:9px;color:#4a6020;font-weight:700;text-transform:uppercase;letter-spacing:0.3px;margin-bottom:3px;}
.sub-buffer-count{display:flex;align-items:baseline;gap:4px;}
.sub-buffer-num{font-size:22px;font-weight:800;color:#3d5a00;line-height:1;}
.sub-buffer-max{font-size:10px;color:#a0b080;font-weight:600;}
.sub-buffer-bar{height:5px;background:#e2ebd0;border-radius:4px;overflow:hidden;margin-top:3px;}
.sub-buffer-fill{height:100%;background:#5a8a00;border-radius:4px;transition:width 0.3s;}
.sub-buffer-fill.warn{background:#f59e0b;}
.sub-buffer-fill.full{background:#22c55e;}
.sub-inputs-preview{font-size:9px;color:#7a9050;margin-top:4px;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* ══════════════════════════════════════════════════════
   WORKER CHARACTERS
══════════════════════════════════════════════════════ */
.worker-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:8;overflow:hidden;}
.worker-char{position:absolute;display:flex;flex-direction:column;align-items:center;width:72px;}
.worker-char .w-emoji{font-size:24px;line-height:1.1;filter:drop-shadow(0 1px 2px rgba(0,0,0,0.3));}
.worker-char .w-name{font-size:9px;font-weight:800;padding:2px 7px;border-radius:8px;white-space:nowrap;max-width:72px;overflow:hidden;text-overflow:ellipsis;margin-top:2px;color:white;text-align:center;}
.worker-char.working .w-name{background:var(--primary);color:var(--primary-text);}
.worker-char.traveling .w-name{background:#f59e0b;}
.worker-char.waiting .w-name{background:#16a34a;}
.worker-char.waitparts .w-name{background:var(--warning);}
.worker-char.idle .w-name{background:#94a3b8;}
@keyframes walkBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.worker-char.traveling .w-emoji{animation:walkBounce 0.4s ease-in-out infinite;}
@keyframes workPulse{0%,100%{opacity:1}50%{opacity:0.75}}
.worker-char.working .w-emoji{animation:workPulse 1.2s ease-in-out infinite;}
@keyframes waitParts{0%,100%{opacity:1}50%{opacity:0.5}}
.worker-char.waitparts .w-emoji{animation:waitParts 0.8s ease-in-out infinite;}

/* ══════════════════════════════════════════════════════
   QUEUE PROGRESS
══════════════════════════════════════════════════════ */
.queue-strip{padding:5px 16px;background:var(--panel);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;flex-shrink:0;}
.q-bar-wrap{flex:1;background:var(--border-light);border-radius:10px;height:7px;overflow:hidden;}
.q-bar-fill{height:100%;background:var(--primary);border-radius:10px;transition:width 0.4s;}
.q-label{font-size:11px;color:var(--text-muted);font-weight:600;white-space:nowrap;}

/* ══════════════════════════════════════════════════════
   ANALYTICS BAR
══════════════════════════════════════════════════════ */
.analytics-bar{height:180px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding:8px 10px;background:var(--panel);border-top:1px solid var(--border);flex-shrink:0;}
.stat-card{background:var(--bg);border:1px solid var(--border-light);padding:10px 12px;border-radius:8px;overflow-y:auto;}
.stat-card h4{color:var(--text-muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:8px;}
.prod-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-bottom:5px;}
.prod-bar-wrap{flex:1;margin:0 8px;background:var(--border-light);border-radius:10px;height:6px;overflow:hidden;}
.prod-bar-fill{height:100%;background:var(--primary);border-radius:10px;transition:width 0.3s;}
.lead-time-tag{background:var(--success-bg);color:var(--success-text);padding:2px 7px;border-radius:4px;font-weight:700;font-size:11px;white-space:nowrap;}

/* ══════════════════════════════════════════════════════
   TASK ROWS
══════════════════════════════════════════════════════ */
.task-row{position:relative;margin:3px 0;background:#f1f5f9;border-radius:4px;overflow:hidden;height:19px;line-height:19px;font-size:10px;padding:0 7px;}
[data-theme="dark"] .task-row{background:rgba(255,255,255,0.06);}
.task-bg-fill{position:absolute;top:0;left:0;height:100%;background:rgba(0,230,118,0.3);z-index:1;}
.task-text{position:relative;z-index:2;display:flex;justify-content:space-between;font-weight:700;gap:4px;}
.task-text span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;}
.task-text span:last-child{flex-shrink:0;}

/* ══════════════════════════════════════════════════════
   SAVE / LOAD
══════════════════════════════════════════════════════ */
.setup-name-row{display:flex;gap:6px;}
.setup-name-input{flex:1;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:12px;background:var(--panel);color:var(--text);}
.setup-name-input:focus{outline:none;border-color:var(--primary);}
.setup-actions{display:flex;gap:6px;flex-wrap:wrap;}
.saved-list{overflow-y:auto;border:1px solid var(--border-light);border-radius:6px;}
.saved-item{display:flex;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid var(--border-light);font-size:12px;}
.saved-item:last-child{border-bottom:none;}
.saved-item:hover{background:var(--bg);}
.saved-item-name{flex:1;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.saved-item-date{font-size:10px;color:var(--text-muted);flex-shrink:0;}
.saved-empty{text-align:center;padding:16px;font-size:12px;color:var(--text-muted);}

/* ══════════════════════════════════════════════════════
   MODAL / REPORT
══════════════════════════════════════════════════════ */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:100;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(3px);animation:fadeIn 0.2s ease;}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal{background:var(--panel);color:var(--text);border-radius:16px;padding:30px 34px;max-width:640px;width:92%;box-shadow:0 24px 60px rgba(0,0,0,0.25);max-height:90vh;overflow-y:auto;animation:slideUp 0.25s ease;}
@keyframes slideUp{from{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}
.modal-header{display:flex;align-items:center;gap:14px;margin-bottom:22px;}
.modal-icon{width:44px;height:44px;background:var(--success-bg);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.modal-icon svg{width:22px;height:22px;stroke:var(--success-text);fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;}
.modal-header-text h2{margin:0;font-size:18px;color:var(--text);}
.modal-header-text p{margin:3px 0 0;font-size:12px;color:var(--text-muted);}
.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px;}
.report-kpi{background:var(--bg);border:1px solid var(--border-light);border-radius:8px;padding:12px 14px;}
.kpi-label{font-size:11px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:0.4px;margin-bottom:4px;}
.kpi-value{font-size:24px;font-weight:800;color:var(--text);line-height:1;}
.kpi-sub{font-size:11px;color:var(--text-muted);margin-top:3px;}
.report-section{margin-bottom:18px;}
.report-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.5px;color:var(--text-muted);margin-bottom:10px;}
.report-op-row{display:flex;align-items:center;gap:10px;margin-bottom:7px;font-size:12px;}
.report-op-name{width:80px;font-weight:600;flex-shrink:0;}
.report-bar-wrap{flex:1;background:var(--border-light);border-radius:10px;height:8px;overflow:hidden;}
.report-bar-fill{height:100%;border-radius:10px;}
.report-op-pct{width:50px;text-align:right;font-weight:700;flex-shrink:0;}
.report-lead-row{display:flex;justify-content:space-between;align-items:center;padding:5px 8px;border-radius:4px;font-size:12px;}
.report-lead-row:nth-child(odd){background:var(--bg);}
.modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:4px;border-top:1px solid var(--border-light);padding-top:18px;}
.info-note{font-size:11px;color:var(--text-muted);background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius-xs);padding:7px 10px;margin-top:8px;line-height:1.5;}
.info-note strong{color:var(--text);}
.toast{position:fixed;bottom:24px;right:24px;background:#1A1A1A;color:white;padding:10px 16px;border-radius:10px;font-size:12px;font-weight:600;z-index:200;opacity:0;transition:opacity 0.2s;pointer-events:none;box-shadow:0 4px 12px rgba(0,0,0,0.3);}
.toast.show{opacity:1;}

/* ══════════════════════════════════════════════════════
   KANBAN + TROLLEYS
══════════════════════════════════════════════════════ */
.proc-kanban-wrap{display:flex;align-items:center;gap:3px;flex-shrink:0;cursor:pointer;}
.proc-kanban-wrap input[type=checkbox]{cursor:pointer;accent-color:#FF5722;}
.proc-kanban-lbl{font-size:9px;font-weight:700;color:#FF5722;text-transform:uppercase;}
.trolley-row{display:flex;gap:3px;margin-top:6px;padding-top:5px;border-top:1px dashed var(--border-light);flex-wrap:nowrap;overflow:hidden;}
.trolley-chip{width:62px;border-radius:5px;padding:3px 5px;font-size:8px;border:1px solid;flex-shrink:0;position:relative;}
.trolley-chip.tc-active{background:rgba(0,230,118,0.15);border-color:var(--primary);color:#007A3D;}
[data-theme="dark"] .trolley-chip.tc-active{color:var(--primary);}
.trolley-chip.tc-stocked{background:#dcfce7;border-color:#22c55e;color:#166534;}
.trolley-chip.tc-empty{background:#fee2e2;border-color:#ef4444;color:#991b1b;}
.trolley-chip.tc-fetching{background:#f1f5f9;border-color:#cbd5e1;color:#94a3b8;border-style:dashed;opacity:0.6;}
[data-theme="dark"] .trolley-chip.tc-fetching{background:rgba(255,255,255,0.05);}
.trolley-chip.tc-material-wait{background:#fee2e2;border-color:#dc2626;color:#991b1b;animation:materialAlert 0.6s ease-in-out infinite;}
@keyframes materialAlert{0%,100%{opacity:1}50%{opacity:0.5}}
.trolley-label{font-weight:800;font-size:8px;display:flex;justify-content:space-between;margin-bottom:1px;}
.trolley-contents{font-size:7px;line-height:1.25;color:inherit;opacity:0.85;overflow:hidden;max-height:28px;}
.trolley-units-bar{height:3px;background:rgba(0,0,0,0.1);border-radius:2px;margin-top:2px;overflow:hidden;}
.trolley-units-fill{height:100%;background:currentColor;opacity:0.6;border-radius:2px;transition:width 0.3s;}
.material-wait-banner{background:#fef2f2;border:1px solid #fca5a5;border-radius:4px;padding:3px 7px;font-size:10px;font-weight:700;color:#dc2626;margin-top:4px;animation:materialAlert 0.6s ease-in-out infinite;}

/* ══════════════════════════════════════════════════════
   SUPERMARKET BAR
══════════════════════════════════════════════════════ */
.supermarket-bar{background:rgba(255,87,34,0.07);border:2px solid var(--accent);border-radius:var(--radius);padding:7px 14px;display:flex;align-items:center;gap:18px;flex-shrink:0;}
[data-theme="dark"] .supermarket-bar{background:rgba(255,87,34,0.1);}
.supermarket-bar-title{font-weight:800;font-size:11px;color:var(--accent);letter-spacing:0.3px;text-transform:uppercase;}
.supermarket-bar-stat{font-size:11px;color:var(--accent-text);font-weight:500;}
.supermarket-bar-stat b{font-weight:700;color:var(--accent);}

/* ══════════════════════════════════════════════════════
   FEEDER CHARACTERS
══════════════════════════════════════════════════════ */
.worker-char.feeder-to-market .w-name{background:#FF5722;}
.worker-char.feeder-fetching .w-name{background:#7c3aed;}
.worker-char.feeder-returning .w-name{background:#0891b2;}
.worker-char.feeder-idle .w-name{background:#94a3b8;}
@keyframes fetchPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
.worker-char.feeder-fetching .w-emoji{animation:fetchPulse 0.5s ease-in-out infinite;}

/* ══════════════════════════════════════════════════════
   TROLLEY CONFIG PANEL
══════════════════════════════════════════════════════ */
.trolley-cfg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px;margin-top:8px;}
.trolley-cfg-item{display:flex;align-items:center;justify-content:space-between;background:var(--bg);border:1px solid var(--border-light);border-radius:6px;padding:5px 9px;gap:6px;}
.trolley-cfg-label{font-size:11px;font-weight:600;color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.trolley-cfg-pn{font-size:10px;color:var(--text-muted);font-family:'Courier New',monospace;display:block;}
.trolley-cfg-input{width:46px;padding:3px 6px;border:1px solid var(--border);border-radius:4px;font-size:12px;text-align:center;background:var(--panel);color:var(--text);}
.trolley-cfg-input:focus{outline:none;border-color:var(--primary);}

/* ══════════════════════════════════════════════════════
   FEEDER ANALYTICS
══════════════════════════════════════════════════════ */
.feeder-stat-row{display:flex;align-items:center;gap:8px;margin-bottom:5px;font-size:12px;}
.feeder-stat-badge{padding:1px 7px;border-radius:8px;font-size:10px;font-weight:700;}
.badge-to-market{background:rgba(255,87,34,0.15);color:#BF360C;}
[data-theme="dark"] .badge-to-market{color:#FF7043;}
.badge-fetching{background:#ede9fe;color:#6b21a8;}
.badge-returning{background:#e0f2fe;color:#0369a1;}
.badge-idle{background:var(--bg);color:var(--text-muted);}

/* ══════════════════════════════════════════════════════
   ACCOUNT MODAL
══════════════════════════════════════════════════════ */
#account-modal{position:fixed;inset:0;z-index:998;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,0.6);backdrop-filter:blur(4px);}
#account-modal.show{display:flex;}
.account-card{background:var(--panel);border-radius:20px;padding:36px 40px;width:420px;max-width:94vw;box-shadow:0 24px 60px rgba(0,0,0,0.25);animation:slideUp 0.25s ease;}
.account-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;}
.account-title{font-size:18px;font-weight:800;color:var(--text);margin:0;letter-spacing:-0.02em;}
.account-close{background:none;border:none;cursor:pointer;color:#94a3b8;font-size:20px;line-height:1;padding:0;}
.account-close:hover{color:#64748b;}
.account-email{font-size:13px;color:var(--text-muted);margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;}
.account-email strong{color:var(--text);}
.account-status{background:var(--success-bg);border:1px solid #86efac;border-radius:12px;padding:16px;margin-bottom:20px;display:flex;align-items:center;gap:12px;}
.account-status.trial{background:var(--primary-light);border-color:var(--primary);}
.account-status.expired{background:var(--danger-bg);border-color:var(--danger-border);}
.account-status-icon{font-size:24px;flex-shrink:0;}
.account-status-text strong{display:block;font-size:13px;font-weight:700;color:var(--text);}
.account-status-text span{font-size:12px;color:var(--text-muted);}
.account-actions{display:flex;flex-direction:column;gap:8px;}
.account-action-btn{width:100%;padding:10px 14px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;text-align:left;transition:0.15s;display:flex;align-items:center;gap:10px;}
.account-action-btn.subscribe{background:var(--primary);color:var(--primary-text);border:none;}
.account-action-btn.subscribe:hover{background:var(--primary-hover);}
.account-action-btn.manage{background:var(--bg);color:var(--text);border:1px solid var(--border);}
.account-action-btn.manage:hover{background:var(--border-light);}
.account-action-btn.signout{background:transparent;color:var(--danger);border:1px solid var(--danger-border);}
.account-action-btn.signout:hover{background:var(--danger-bg);}
/* account button in topbar */
.account-topbar-btn{background:var(--topbar-nav-bg);border:1px solid var(--topbar-nav-border);border-radius:var(--radius-sm);height:32px;padding:0 12px;font-size:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;color:var(--topbar-text);transition:0.15s;font-family:inherit;}
.account-topbar-btn:hover{background:var(--topbar-nav-hover);}
.account-topbar-dot{width:7px;height:7px;border-radius:50%;background:var(--success);flex-shrink:0;}
.account-topbar-dot.trial{background:var(--primary);}
.account-topbar-dot.expired{background:var(--danger);}

/* ══════════════════════════════════════════════════════
   WELCOME POPUP
══════════════════════════════════════════════════════ */
#welcome-popup{position:fixed;inset:0;z-index:990;display:none;align-items:center;justify-content:center;}
#welcome-popup.show{display:flex;}
#welcome-popup .wp-backdrop{position:absolute;inset:0;background:rgba(0,0,0,0.6);backdrop-filter:blur(2px);}
.wp-card{position:relative;z-index:1;background:#1A1A1A;border-radius:20px;padding:40px 44px;width:460px;max-width:94vw;text-align:center;box-shadow:0 32px 80px rgba(0,0,0,0.5);animation:slideUp 0.35s cubic-bezier(.34,1.56,.64,1);border:1px solid rgba(255,255,255,0.08);}
.wp-logo{font-size:42px;margin-bottom:10px;display:block;}
.wp-brand{font-size:26px;font-weight:800;color:white;letter-spacing:-0.04em;margin:0 0 20px;font-family:'Space Grotesk','Inter',sans-serif;}
.wp-tagline-wrap{border-top:1px solid rgba(255,255,255,0.07);padding-top:18px;margin-bottom:24px;}
.wp-tagline{font-size:13px;color:#94a3b8;font-style:italic;margin:0;min-height:20px;}
.wp-tagline::before{content:'"';color:var(--primary);font-style:normal;font-weight:800;}
.wp-tagline::after{content:'"';color:var(--primary);font-style:normal;font-weight:800;}
.wp-name{font-size:15px;font-weight:700;color:white;margin:0 0 4px;}
.wp-sub{font-size:12px;color:#475569;margin:0 0 24px;}
.wp-btn{background:var(--primary);color:var(--primary-text);border:none;border-radius:12px;padding:13px 32px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;transition:background 0.15s;}
.wp-btn:hover{background:var(--primary-hover);}
.wp-dismiss{display:block;margin-top:12px;font-size:11px;color:#334155;cursor:pointer;}
.wp-dismiss:hover{color:#64748b;}

/* ══════════════════════════════════════════════════════
   POST-PURCHASE POPUP
══════════════════════════════════════════════════════ */
#thankyou-popup{position:fixed;inset:0;z-index:990;display:none;align-items:center;justify-content:center;}
#thankyou-popup.show{display:flex;}
#thankyou-popup .tp-backdrop{position:absolute;inset:0;background:rgba(0,0,0,0.65);backdrop-filter:blur(4px);}
.tp-card{position:relative;z-index:1;background:var(--panel);border-radius:20px;padding:44px;width:480px;max-width:94vw;text-align:center;box-shadow:0 32px 80px rgba(0,0,0,0.35);animation:slideUp 0.4s cubic-bezier(.34,1.56,.64,1);}
.tp-confetti{font-size:52px;margin-bottom:14px;display:block;animation:tpbounce 0.7s ease infinite alternate;}
@keyframes tpbounce{from{transform:translateY(0) rotate(-5deg)}to{transform:translateY(-10px) rotate(5deg)}}
.tp-title{font-size:24px;font-weight:800;color:var(--text);margin:0 0 12px;letter-spacing:-0.03em;}
.tp-sub{font-size:14px;color:var(--text-muted);line-height:1.7;margin:0 0 22px;}
.tp-sub strong{color:var(--text);}
.tp-stats{display:flex;justify-content:center;gap:10px;margin-bottom:24px;}
.tp-stat{background:var(--bg);border-radius:10px;padding:12px 20px;font-size:12px;color:var(--text-muted);}
.tp-stat strong{display:block;font-size:20px;font-weight:800;color:var(--text);letter-spacing:-0.02em;}
.tp-cta{background:var(--primary);color:var(--primary-text);border:none;border-radius:12px;padding:14px 28px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;transition:background 0.15s;width:100%;margin-bottom:10px;display:block;}
.tp-cta:hover{background:var(--primary-hover);}
.tp-secondary{background:none;border:none;color:#94a3b8;font-size:12px;cursor:pointer;font-family:inherit;}
.tp-secondary:hover{color:#64748b;}

/* Product type cards */
.ptype-card{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:9px 11px;margin-bottom:7px;transition:border-color 0.15s;}
.ptype-card:hover{border-color:var(--primary);}
.ptype-header{display:flex;align-items:center;gap:5px;margin-bottom:7px;}
.ptype-name-input{flex:1;padding:4px 8px;border:1px solid var(--border);border-radius:4px;font-size:12px;font-weight:700;background:var(--panel);color:var(--text);}
.ptype-name-input:focus{outline:none;border-color:var(--primary);}
.ptype-tasks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:4px;margin-bottom:0;}
.ptype-task-item{display:flex;align-items:center;justify-content:space-between;background:var(--panel);border:1px solid var(--border-light);border-radius:4px;padding:3px 7px;gap:4px;}
.ptype-task-label{font-size:10px;color:var(--text-muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;}
.ptype-task-qty{width:36px;padding:2px 4px;border:none;border-left:1px solid var(--border-light);background:transparent;font-size:11px;font-weight:700;text-align:right;color:var(--text);}
.ptype-task-qty:focus{outline:none;background:var(--primary-light);border-radius:2px;}
.ptype-empty{text-align:center;padding:20px;font-size:12px;color:var(--text-muted);font-style:italic;}
.ptype-list-wrap{max-height:340px;overflow-y:auto;padding-right:2px;}

/* ══════════════════════════════════════════════════════
   TRIAL-LOCKED
══════════════════════════════════════════════════════ */
.trial-locked-btn{opacity:0.65;}

/* ══════════════════════════════════════════════════════
   MANUAL / HELP MODAL
══════════════════════════════════════════════════════ */
#manual-modal{position:fixed;inset:0;z-index:995;display:none;align-items:flex-start;justify-content:center;padding:24px 16px;background:rgba(0,0,0,0.7);backdrop-filter:blur(4px);}
#manual-modal.show{display:flex;}
.manual-card{background:var(--panel);border-radius:20px;width:860px;max-width:98vw;max-height:calc(100vh - 48px);display:flex;flex-direction:column;box-shadow:0 32px 80px rgba(0,0,0,0.4);overflow:hidden;animation:slideUp 0.3s ease;}
.manual-header{display:flex;align-items:center;justify-content:space-between;padding:20px 28px;border-bottom:1px solid rgba(255,255,255,0.08);flex-shrink:0;background:#1A1A1A;}
.manual-header-text h2{margin:0;font-size:18px;font-weight:800;letter-spacing:-0.02em;color:white;font-family:'Space Grotesk','Inter',sans-serif;}
.manual-header-text p{margin:2px 0 0;font-size:12px;color:#94a3b8;}
.manual-close{background:rgba(255,255,255,0.1);border:none;font-size:16px;cursor:pointer;color:white;line-height:1;padding:6px 10px;border-radius:8px;}
.manual-close:hover{background:rgba(255,255,255,0.2);}
.manual-body{display:flex;flex:1;overflow:hidden;}
.manual-toc{width:220px;flex-shrink:0;border-right:1px solid var(--border);overflow-y:auto;padding:16px 0;background:var(--bg);}
.toc-section{padding:3px 16px;font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.6px;margin-top:14px;}
.toc-section:first-child{margin-top:4px;}
.toc-item{display:block;width:100%;padding:7px 20px;font-size:12px;font-weight:500;color:var(--text-muted);background:none;border:none;cursor:pointer;text-align:left;font-family:inherit;border-left:3px solid transparent;transition:0.12s;}
.toc-item:hover{background:var(--border-light);color:var(--text);}
.toc-item.active{color:var(--primary-dark);font-weight:700;border-left-color:var(--primary);background:var(--primary-light);}
.manual-content{flex:1;overflow-y:auto;padding:28px 32px;background:var(--panel);}
.manual-section{display:none;}
.manual-section.active{display:block;}
.manual-section>h2{font-size:20px;font-weight:800;color:var(--text);margin:0 0 6px;letter-spacing:-0.02em;}
.manual-section .section-intro{font-size:13px;color:var(--text-muted);margin:0 0 22px;line-height:1.65;padding-bottom:16px;border-bottom:1px solid var(--border-light);}
.manual-section h3{font-size:14px;font-weight:700;color:var(--text);margin:22px 0 8px;}
.manual-section h4{font-size:11px;font-weight:700;color:var(--primary-dark);margin:16px 0 5px;text-transform:uppercase;letter-spacing:0.5px;}
.manual-section p{font-size:13px;color:var(--text-muted);line-height:1.7;margin:0 0 12px;}
.manual-section ul,.manual-section ol{font-size:13px;color:var(--text-muted);line-height:1.7;margin:0 0 12px;padding-left:20px;}
.manual-section li{margin-bottom:5px;}
.manual-callout{border-radius:10px;padding:12px 16px;margin:14px 0;font-size:12px;line-height:1.65;}
.manual-callout{background:var(--primary-light);border:1px solid rgba(0,230,118,0.3);color:var(--primary-dark);}
.manual-callout.tip{background:var(--success-bg);border-color:#bbf7d0;color:var(--success-text);}
.manual-callout.warn{background:rgba(255,87,34,0.08);border-color:rgba(255,87,34,0.25);color:var(--accent-text);}
.manual-callout strong{font-weight:700;}
.manual-kv{display:grid;grid-template-columns:170px 1fr;gap:0 12px;font-size:12px;margin:8px 0 14px;}
.manual-kv dt{font-weight:700;color:var(--text);padding:5px 0;border-bottom:1px solid var(--border-light);}
.manual-kv dd{color:var(--text-muted);margin:0;padding:5px 0;border-bottom:1px solid var(--border-light);line-height:1.55;}
.manual-pill{display:inline-block;border-radius:20px;padding:2px 9px;font-size:11px;font-weight:700;margin:0 2px;}
.manual-pill.blue{background:var(--primary-light);color:var(--primary-dark);}
.manual-pill.green{background:#dcfce7;color:#166634;}
.manual-pill.orange{background:var(--accent-bg);color:var(--accent-text);}
.manual-pill.olive{background:#ecfccb;color:#3f6212;}

/* ══════════════════════════════════════════════════════
   AUTH OVERLAY
══════════════════════════════════════════════════════ */
#auth-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0D0F12 0%,#1A2535 50%,#0D0F12 100%);}
#auth-overlay.hidden{display:none;}
.auth-card{background:white;border-radius:20px;padding:36px 40px;width:460px;max-width:96vw;box-shadow:0 32px 80px rgba(0,0,0,0.4);animation:slideUp 0.3s ease;overflow:hidden;}
.auth-logo{font-size:28px;margin-bottom:4px;text-align:center;}
.auth-title{font-size:20px;font-weight:800;color:#1A1A1A;margin:0 0 3px;letter-spacing:-0.03em;text-align:center;font-family:'Space Grotesk','Inter',sans-serif;}
.auth-sub{font-size:12px;color:#64748b;margin:0 0 20px;line-height:1.5;text-align:center;}
.trial-badge{display:inline-flex;align-items:center;gap:6px;background:#dcfce7;color:#166534;border:1px solid #86efac;border-radius:20px;padding:4px 12px;font-size:11px;font-weight:700;margin-bottom:18px;}

/* Step indicator */
.auth-steps{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:24px;}
.auth-step{display:flex;align-items:center;gap:0;}
.auth-step-circle{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;border:2px solid #e5e7eb;background:white;color:#94a3b8;transition:0.3s;flex-shrink:0;}
.auth-step-circle.active{border-color:var(--primary);background:var(--primary);color:var(--primary-text);}
.auth-step-circle.done{border-color:var(--success);background:var(--success);color:white;}
.auth-step-label{font-size:10px;font-weight:600;color:#94a3b8;margin-top:4px;text-align:center;white-space:nowrap;}
.auth-step-label.active{color:var(--primary-dark);}
.auth-step-label.done{color:var(--success);}
.auth-step-wrap{display:flex;flex-direction:column;align-items:center;}
.auth-step-line{width:40px;height:2px;background:#e5e7eb;margin-bottom:14px;transition:0.3s;}
.auth-step-line.done{background:var(--success);}

/* Form inputs */
.auth-form{text-align:left;}
.auth-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.auth-input-wrap{margin-bottom:11px;}
.auth-input-wrap label{display:block;font-size:11px;font-weight:600;color:#374151;margin-bottom:4px;letter-spacing:0.01em;}
.auth-input{width:100%;padding:9px 12px;border:1.5px solid #d1d5db;border-radius:9px;font-size:13px;font-family:inherit;transition:border-color 0.15s;box-sizing:border-box;color:#1A1A1A;}
.auth-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,230,118,0.15);}
.auth-input.error{border-color:#dc2626;}
.auth-error{font-size:11px;color:#dc2626;margin-top:3px;display:none;}
.auth-error.show{display:block;}
.auth-submit{width:100%;padding:11px;background:var(--primary);color:var(--primary-text);border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;margin-top:4px;font-family:inherit;transition:background 0.15s;letter-spacing:-0.01em;}
.auth-submit:hover{background:var(--primary-hover);}
.auth-submit:disabled{background:rgba(0,230,118,0.4);cursor:not-allowed;color:rgba(26,26,26,0.5);}
.auth-back{background:none;border:1px solid #e5e7eb;color:#64748b;border-radius:10px;padding:10px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:0.15s;width:100%;margin-top:6px;}
.auth-back:hover{background:#f8fafc;border-color:#cbd5e1;}
.auth-toggle{background:none;border:none;color:var(--primary-dark);font-size:12px;font-weight:600;cursor:pointer;margin-top:14px;display:block;width:100%;text-align:center;font-family:inherit;}
.auth-toggle:hover{color:var(--primary);}
.auth-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(26,26,26,0.2);border-top-color:#1A1A1A;border-radius:50%;animation:spin 0.6s linear infinite;vertical-align:middle;margin-right:6px;}
@keyframes spin{to{transform:rotate(360deg)}}

/* Verification step */
.verify-icon{font-size:40px;text-align:center;margin-bottom:10px;}
.verify-instruction{font-size:13px;color:#374151;text-align:center;line-height:1.6;margin-bottom:18px;}
.verify-email-highlight{font-weight:700;color:#1A1A1A;}
.verify-code-wrap{display:flex;gap:8px;justify-content:center;margin-bottom:16px;}
.verify-digit{width:44px;height:52px;border:2px solid #d1d5db;border-radius:10px;font-size:22px;font-weight:700;text-align:center;font-family:inherit;color:#1A1A1A;transition:0.15s;}
.verify-digit:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,230,118,0.15);}
.verify-resend{font-size:12px;color:#64748b;text-align:center;margin-bottom:14px;}
.verify-resend button{background:none;border:none;color:var(--primary-dark);font-weight:600;cursor:pointer;font-family:inherit;font-size:12px;}

/* Password strength */
.pw-strength-bar{height:4px;border-radius:2px;margin-top:6px;background:#e5e7eb;overflow:hidden;}
.pw-strength-fill{height:100%;border-radius:2px;width:0%;transition:width 0.3s,background 0.3s;}
.pw-strength-label{font-size:10px;font-weight:600;margin-top:3px;color:#94a3b8;}

/* reCAPTCHA */
.captcha-wrap{margin-bottom:12px;display:flex;justify-content:center;}
.captcha-mock{border:1px solid #d1d5db;border-radius:4px;padding:12px 16px;background:#f9fafb;display:flex;align-items:center;gap:12px;width:100%;box-sizing:border-box;}
.captcha-mock input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#00E676;}
.captcha-mock-label{font-size:13px;color:#374151;font-weight:500;flex:1;}
.captcha-mock-logo{font-size:10px;color:#94a3b8;text-align:center;line-height:1.3;}

/* Test mode banner */
.testmode-banner{background:#fef9c3;border:1px solid #fde047;border-radius:8px;padding:7px 12px;font-size:11px;font-weight:600;color:#854d0e;margin-bottom:16px;text-align:center;display:flex;align-items:center;justify-content:center;gap:6px;}

/* ══════════════════════════════════════════════════════
   PAYWALL OVERLAY
══════════════════════════════════════════════════════ */
#paywall-overlay{position:fixed;inset:0;z-index:999;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,0.85);backdrop-filter:blur(8px);}
#paywall-overlay.show{display:flex;}
.paywall-card{background:white;border-radius:20px;padding:44px;width:480px;max-width:94vw;text-align:center;box-shadow:0 32px 80px rgba(0,0,0,0.4);animation:slideUp 0.3s ease;}
.paywall-icon{font-size:48px;margin-bottom:12px;}
.paywall-title{font-size:22px;font-weight:800;color:#1A1A1A;margin:0 0 8px;letter-spacing:-0.03em;}
.paywall-sub{font-size:14px;color:#64748b;margin:0 0 28px;line-height:1.6;}
.paywall-price{background:#F5F5F5;border-radius:12px;padding:18px;margin-bottom:24px;}
.paywall-price-amount{font-size:36px;font-weight:800;color:#1A1A1A;letter-spacing:-0.03em;}
.paywall-price-period{font-size:14px;color:#64748b;font-weight:500;}
.paywall-price-note{font-size:12px;color:#94a3b8;margin-top:4px;}
.paywall-cta{display:block;width:100%;padding:14px;background:var(--primary);color:var(--primary-text);border:none;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;text-decoration:none;font-family:inherit;transition:background 0.15s;margin-bottom:10px;box-sizing:border-box;}
.paywall-cta:hover{background:var(--primary-hover);}
.paywall-signout{background:none;border:none;color:#94a3b8;font-size:13px;cursor:pointer;font-family:inherit;text-decoration:underline;}
.paywall-signout:hover{color:#64748b;}
.paywall-features{text-align:left;margin-bottom:24px;}
.paywall-feature{display:flex;align-items:center;gap:10px;font-size:13px;color:#374151;margin-bottom:8px;}
.paywall-feature::before{content:'✓';color:var(--success);font-weight:800;flex-shrink:0;}

/* ══════════════════════════════════════════════════════
   TRIAL BANNER
══════════════════════════════════════════════════════ */
#trial-banner{position:fixed;bottom:16px;right:16px;z-index:500;background:#1A1A1A;color:white;border-radius:12px;padding:10px 16px;font-size:12px;font-weight:600;display:none;align-items:center;gap:10px;box-shadow:0 4px 20px rgba(0,0,0,0.3);}
#trial-banner.show{display:flex;}
#trial-banner.urgent{background:#dc2626;}
.trial-timer{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-0.02em;}
.trial-upgrade-btn{background:white;color:#1A1A1A;border:none;border-radius:7px;padding:4px 10px;font-size:11px;font-weight:700;cursor:pointer;font-family:inherit;white-space:nowrap;}
.trial-upgrade-btn:hover{background:var(--bg);}

/* ══════════════════════════════════════════════════════
   ZOOM CONTROLS
══════════════════════════════════════════════════════ */
.zoom-controls{display:flex;align-items:center;gap:3px;background:var(--topbar-nav-bg);border:1px solid var(--topbar-nav-border);border-radius:8px;padding:3px 6px;}
.zoom-btn{width:24px;height:24px;border:none;border-radius:5px;background:transparent;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--topbar-text);line-height:1;}
.zoom-btn:hover{background:var(--topbar-nav-hover);}
#zoom-input{width:42px;padding:2px 4px;border:none;background:transparent;font-size:12px;font-weight:600;text-align:center;font-family:inherit;color:var(--topbar-text);-moz-appearance:textfield;}
#zoom-input::-webkit-inner-spin-button,#zoom-input::-webkit-outer-spin-button{-webkit-appearance:none;}

/* ══════════════════════════════════════════════════════
   QUEUE DRAWER
══════════════════════════════════════════════════════ */
.queue-drawer{position:fixed;top:52px;left:0;right:0;background:var(--panel);border-bottom:2px solid var(--border);box-shadow:0 8px 24px rgba(0,0,0,0.12),0 2px 6px rgba(0,0,0,0.07);z-index:99;max-height:calc(100vh - 52px);overflow-y:auto;transform:translateY(-12px);opacity:0;pointer-events:none;transition:transform 0.25s cubic-bezier(.4,0,.2,1),opacity 0.2s;}
.queue-drawer.open{transform:translateY(0);opacity:1;pointer-events:auto;}
.queue-drawer-content{padding:20px 24px 24px;max-width:1100px;}
