:root{--sidebar-bg:#0b0f19;--sidebar-bg-hover:#1a2333;--sidebar-text:#94a3b8;--sidebar-text-active:#fff;--sidebar-heading:#475569;--accent:#4f46e5;--accent-2:#7c3aed;--accent-soft:#eef0ff;--cyan:#0891b2;--cyan-soft:#e5f8fb;--bg:#f5f6fb;--card:#fff;--border:#e8e9f3;--text:#14172b;--text-soft:#666e93;--text-faint:#9aa0be;--success:#15803d;--success-soft:#e9f9ef;--warning:#b45309;--warning-soft:#fef3e0;--danger:#b91c1c;--danger-soft:#fdecec;--info:#1d4ed8;--info-soft:#eaf1fe;--radius:4px;--radius-sm:4px;--shadow:0 1px 2px #14172b0a, 0 10px 28px -14px #14172b24}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,sans-serif;font-size:14px;line-height:1.5}h1,h2,h3,h4{letter-spacing:-.01em;font-family:Inter,sans-serif}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:13.5px}::selection{background:var(--accent);color:#fff}.app{min-height:100vh;display:flex;flex-direction:column}.app-body{flex:1;display:flex;overflow:hidden}.top-header{background:#fff;border-bottom:1px solid var(--border);padding:0 24px;height:64px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;z-index:10}.header-quick-actions{display:flex;gap:12px;align-items:center}.profile-dropdown{position:relative}.profile-menu{position:absolute;right:0;top:calc(100% + 8px);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:180px;z-index:100;padding:8px 0;animation:pop 0.15s ease-out}.profile-menu .dropdown-item{padding:8px 16px;display:flex;align-items:center;gap:8px;color:var(--text);font-size:13px;text-decoration:none;transition:background 0.15s;width:100%;border:none;background:transparent;text-align:left;cursor:pointer}.profile-menu .dropdown-item:hover{background:#f1f2f8}.sidebar{background:var(--sidebar-bg);flex-direction:column;flex-shrink:0;width:256px;height:100%;display:flex;position:sticky;top:0;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.sidebar::-webkit-scrollbar{display:none}.sidebar nav{scrollbar-width:none;-ms-overflow-style:none}.sidebar nav::-webkit-scrollbar{display:none}.brand{align-items:center;gap:11px;padding:22px 20px 18px;display:flex;position:sticky;top:0;background:var(--sidebar-bg);z-index:2;flex-shrink:0}.brand-mark{background:linear-gradient(145deg,var(--accent),var(--accent-2));border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex;box-shadow:0 6px 16px -4px #4f46e58c}.brand-mark svg{stroke:#fff;width:20px;height:20px}.brand-text strong{color:#fff;letter-spacing:-.01em;font-family:Inter,sans-serif;font-size:16px;font-weight:700;display:block}.brand-text span{color:var(--sidebar-text);letter-spacing:.01em;margin-top:1px;font-size:11px;display:block}nav{flex:1;padding:6px 12px 12px}.nav-group{margin-bottom:0}.nav-heading{text-transform:uppercase;letter-spacing:.05em;color:var(--sidebar-text);background:var(--sidebar-bg-hover);border-radius:0;width:calc(100% + 24px);box-sizing:border-box;margin:0 -12px;padding:12px 20px;font-size:11px;font-weight:600;transition:background .15s}.nav-heading:hover{background:#232a4d;color:#fff}.nav-item{color:var(--sidebar-text);border-radius:4px;align-items:center;gap:16px;margin-bottom:5px;padding:9px 10px;font-size:13.5px;font-weight:500;transition:background .15s,color .15s;display:flex;position:relative}.nav-item svg{stroke:currentColor;opacity:.9;flex-shrink:0;width:17px;height:17px}.nav-item:hover{background:var(--sidebar-bg-hover);color:#d7daee}.nav-item.active{background:linear-gradient(90deg,var(--accent),#5b4fea);color:#fff;box-shadow:0 4px 14px -4px #4f46e580}.nav-item.active svg{opacity:1}.nav-badge{color:#fff;background:#ffffff24;border-radius:4px;margin-left:auto;padding:1px 7px;font-size:10.5px;font-weight:600}.nav-item:not(.active) .nav-badge{color:#b7bedd;background:#262c4e}.nav-item.alert-badge .nav-badge{background:var(--danger);color:#fff}.sidebar-footer{border-top:1px solid #1e2340;padding:14px 16px 18px}.user-chip{align-items:center;gap:10px;display:flex}.avatar{color:#fff;background:linear-gradient(145deg,#ea580c,#db2777);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-family:Inter,sans-serif;font-size:12.5px;font-weight:700;display:flex}.user-chip strong{color:#fff;font-size:13px;font-weight:600;display:block}.user-chip span{color:var(--sidebar-text);font-size:11.3px;display:block}.user-chip{cursor:pointer;border-radius:4px;padding:6px}.user-chip:hover{background:var(--sidebar-bg-hover)}.main{flex:1;min-width:0;padding:26px 34px 60px}.page{display:none}.page.active{animation:.25s fade;display:block}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:0;display:flex;width:100%}.page-header h1{color:var(--text);font-size:23px;font-weight:700}.page-header .subtitle{color:var(--text-soft);margin-top:3px;font-size:13px}.header-actions{flex-wrap:wrap;gap:9px;display:flex}.btn{white-space:nowrap;border:1px solid #0000;border-radius:4px;align-items:center;gap:7px;padding:9px 15px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.btn svg{stroke:currentColor;width:15px;height:15px}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 4px 12px -3px #4f46e573}.btn-primary:hover{background:#4338ca}.btn-secondary{border-color:var(--border);color:var(--text);background:#fff}.btn-secondary:hover{background:#fafafd;border-color:#c9cce3}.btn-soft{background:var(--accent-soft);color:var(--accent)}.btn-soft:hover{background:#e1e3fe}.btn-ghost{color:var(--text-soft);background:0 0;padding:7px 10px}.btn-ghost:hover{color:var(--text);background:#f0f1f7}.btn-sm{padding:6px 11px;font-size:12.3px}.btn-danger-soft{background:var(--danger-soft);color:var(--danger)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.stats-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;display:grid}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.stat-top{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.stat-icon{border-radius:4px;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.stat-icon svg{stroke-width:2px;width:17px;height:17px}.stat-label{color:var(--text-soft);margin-bottom:5px;font-size:12.5px;font-weight:500}.stat-value{letter-spacing:-.01em;font-family:Inter,sans-serif;font-size:25px;font-weight:700}.stat-trend{align-items:center;gap:4px;margin-top:8px;font-size:12px;font-weight:600;display:flex}.stat-trend svg{width:12px;height:12px}.up{color:var(--success)}.down{color:var(--danger)}.neutral{color:var(--text-faint)}.icon-indigo{background:var(--accent-soft);color:var(--accent)}.icon-cyan{background:var(--cyan-soft);color:var(--cyan)}.icon-green{background:var(--success-soft);color:var(--success)}.icon-amber{background:var(--warning-soft);color:var(--warning)}.icon-red{background:var(--danger-soft);color:var(--danger)}.icon-blue{background:var(--info-soft);color:var(--info)}.welcome-banner{background-color:#f5f3ff;background-image:url('../images/welcome-banner.png');background-size:cover;background-position:right center;background-repeat:no-repeat;border-radius:4px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px;padding:28px 30px;display:flex;position:relative;overflow:hidden}.welcome-eyebrow{color:#7e22ce;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;font-size:11.5px;font-weight:700}.welcome-banner h2{color:#1e1b4b;max-width:480px;font-size:22px;font-weight:700;line-height:1.35}.welcome-banner h2 span{color:#6d28d9}.welcome-banner p{color:#4b5563;max-width:440px;margin-top:10px;font-size:13px}.welcome-stats{background:#ffffff0f;border:1px solid #ffffff17;border-radius:4px;min-width:96px;padding:14px 20px}.welcome-stat b{color:#fff;font-family:Inter,sans-serif;font-size:22px;font-weight:700;display:block}.welcome-stat span{color:#9aa0c6;font-size:11.3px}.grid-2{grid-template-columns:1.7fr 1fr;align-items:start;gap:16px;margin-bottom:20px;display:grid}.card-pad{padding:20px 22px}.card-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.card-head h3{align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.card-head h3 svg{width:16px;height:16px;stroke:var(--accent)}.pill{background:var(--accent-soft);color:var(--accent);border:none;border-radius:4px;padding:4px 11px;font-size:11.5px;font-weight:600}.bars{align-items:flex-end;gap:14px;height:170px;padding-top:10px;display:flex}.bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:8px;height:100%;display:flex}.bar{background:#eef0fa;border-radius:4px;width:100%;max-width:38px;transition:all .2s;position:relative}.bar.filled{background:linear-gradient(180deg,#6d63f2,var(--accent))}.bar-label{color:var(--text-faint);font-size:11px;font-weight:500}.chart-foot{border-top:1px solid var(--border);gap:26px;margin-top:14px;padding-top:14px;display:flex}.chart-foot b{font-family:Inter,sans-serif;font-size:16px}.chart-foot span{color:var(--text-soft);margin-top:1px;font-size:11.8px;display:block}.activity-item{border-bottom:1px solid #f1f1f7;gap:12px;padding:11px 0;display:flex}.activity-item:last-child{border-bottom:none;padding-bottom:0}.activity-dot{border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.activity-dot svg{width:15px;height:15px}.activity-item b{font-size:13px;font-weight:600;display:block}.activity-item .meta{color:var(--text-soft);margin-top:1px;font-size:12px}.activity-item .time{color:var(--text-faint);margin-top:3px;font-size:11px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}thead th{text-align:left;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);white-space:nowrap;padding:0 14px 11px;font-size:11px;font-weight:600}tbody td{vertical-align:middle;white-space:nowrap;border-bottom:1px solid #f1f2f8;padding:13px 14px}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background .12s}tbody tr:hover{background:#fafafe}.cell-strong{color:var(--text);font-weight:600}.cell-mono{color:var(--text-soft);font-family:'Inter', sans-serif;font-size:12.3px;font-weight:500}.cell-soft{color:var(--text-soft)}.cell-wrap{white-space:normal;max-width:220px}.avatar-mini{background:var(--accent-soft);width:26px;height:26px;color:var(--accent);vertical-align:middle;border-radius:4px;justify-content:center;align-items:center;margin-right:8px;font-family:Inter,sans-serif;font-size:10.5px;font-weight:700;display:inline-flex}.badge{white-space:nowrap;border-radius:4px;align-items:center;gap:5px;padding:4px 10px;font-size:11.3px;font-weight:600;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge-no-dot:before,.badge-no-dot::before{display:none!important;content:none!important}.b-green{background:var(--success-soft);color:var(--success)}.b-amber{background:var(--warning-soft);color:var(--warning)}.b-red{background:var(--danger-soft);color:var(--danger)}.b-blue{background:var(--info-soft);color:var(--info)}.b-purple{background:var(--accent-soft);color:var(--accent)}.b-gray{color:var(--text-soft);background:#f0f1f6}.spec-tags{flex-wrap:wrap;gap:5px;display:flex}.spec-tag{color:#4a4f73;white-space:nowrap;background:#f1f2fa;border:1px solid #e4e5f3;border-radius:4px;padding:3px 8px;font-family:'Inter', sans-serif;font-size:10.8px;font-weight:500}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.search-box{min-width:230px;position:relative}.search-box svg{width:15px;height:15px;stroke:var(--text-faint);position:absolute;top:50%;left:11px;transform:translateY(-50%)}.search-box input{border:1px solid var(--border);background:#fff;border-radius:4px;width:100%;padding:9px 12px 9px 34px;font-size:13px}.search-box input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.filter-chips{flex-wrap:wrap;gap:7px;display:flex}.chip{border:1px solid var(--border);color:var(--text-soft);background:#fff;border-radius:4px;padding:7px 13px;font-size:12.5px;font-weight:600}.chip.active{background:var(--text);color:#fff;border-color:var(--text)}.tabbar{background:#eeeff6;border-radius:4px;gap:4px;width:fit-content;margin-bottom:18px;padding:4px;display:flex}.tab{color:var(--text-soft);border-radius:4px;padding:8px 16px;font-size:12.8px;font-weight:600}.tab.active{color:var(--text);box-shadow:var(--shadow);background:#fff}.kanban{grid-template-columns:repeat(4,1fr);align-items:start;gap:16px;display:grid}.kanban-col{background:#f0f1f8;border-radius:4px;min-height:120px;padding:14px}.kanban-col-head{justify-content:space-between;align-items:center;margin-bottom:12px;padding:0 2px;display:flex}.kanban-col-head h4{text-transform:uppercase;letter-spacing:.03em;color:var(--text-soft);font-size:12.8px;font-weight:700}.kanban-count{color:var(--text-soft);background:#fff;border-radius:4px;padding:2px 9px;font-size:11px;font-weight:700}.kanban-card{box-shadow:var(--shadow);border:1px solid var(--border);background:#fff;border-radius:4px;margin-bottom:10px;padding:13px 14px}.kanban-card .jc-id{color:var(--accent);font-family:'Inter', sans-serif;font-size:10.8px;font-weight:600}.kanban-card h5{margin:5px 0 2px;font-size:13.3px;font-weight:600}.kanban-card .cust{color:var(--text-soft);margin-bottom:9px;font-size:12px}.kanban-card .kfoot{border-top:1px dashed var(--border);justify-content:space-between;align-items:center;margin-top:10px;padding-top:9px;display:flex}.kanban-card .due{color:var(--text-faint);font-size:11px}.kanban-card .due.late{color:var(--danger);font-weight:600}.kanban-advance{color:var(--accent);align-items:center;gap:3px;font-size:11px;font-weight:700;display:flex}.kanban-advance svg{width:12px;height:12px}.machine-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px;display:grid}.machine-card{border:1px solid var(--border);box-shadow:var(--shadow);background:#fff;border-radius:4px;padding:15px 16px}.machine-card .mtop{justify-content:space-between;align-items:flex-start;margin-bottom:10px;display:flex}.machine-card h5{font-size:13px;font-weight:700;line-height:1.3}.dot-status{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:5px}.machine-card .job-ref{color:var(--text-soft);margin-bottom:10px;font-size:11.7px}.util-bar{background:#eeeff6;border-radius:4px;height:6px;overflow:hidden}.util-fill{border-radius:4px;height:100%}.util-label{color:var(--text-faint);justify-content:space-between;margin-top:5px;font-size:11px;display:flex}.progress-bar{background:#eeeff6;border-radius:4px;width:100%;height:7px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,var(--cyan),var(--accent));border-radius:4px;height:100%}.modal-overlay{z-index:10000;background:rgba(15,23,42,0.55);justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0;overflow-y:auto}.modal-overlay.open{display:flex}.modal{background:#fff;border-radius:8px;overflow:hidden;width:100%;max-width:640px;animation:.18s pop;box-shadow:0 20px 40px -15px rgba(0,0,0,0.25);position:relative}@keyframes pop{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}
.modal-head {
    background-color: #EEF2FF;
    border-bottom: 1px solid #e0e7ff;
    border-radius: 8px 8px 0 0;
    justify-content: space-between;
    align-items: center;
    padding: 14px 24px;
    display: flex;
}
.modal-head h3, .modal-head h4 {
    color: #1e1b4b;
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
}
.modal-head span {
    color: #64748b;
    margin-top: 2px;
    font-size: 12px;
    font-weight: 400;
    display: block;
}
.modal-head .modal-close, .modal-close {
    width: 32px;
    height: 32px;
    color: #475569;
    border-radius: 6px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #ffffff;
    border: 1.5px solid #c7d2fe;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: all 0.15s ease;
    flex-shrink: 0;
}
.modal-head .modal-close:hover, .modal-close:hover {
    background: #eef2ff;
    border-color: var(--accent);
    color: #1e1b4b;
}
.modal-foot {
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
    padding: 14px 24px;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    border-radius: 0 0 8px 8px;
}
.modal-header-select-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
}
.modal-header-select-wrap select {
    height: 32px;
    padding: 0 32px 0 12px;
    font-size: 12.5px;
    font-weight: 600;
    color: #1e1b4b;
    background-color: #ffffff;
    border: 1.5px solid #c7d2fe;
    border-radius: 6px;
    cursor: pointer;
    outline: none;
    appearance: none;
    -webkit-appearance: none;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    font-family: inherit;
    transition: all 0.15s ease;
}
.modal-header-select-wrap select:hover {
    border-color: var(--accent);
}
.modal-header-select-wrap select:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.15);
}
.modal-header-select-wrap svg {
    position: absolute;
    right: 10px;
    width: 13px;
    height: 13px;
    stroke: var(--accent);
    pointer-events: none;
}
.modal-head span{color:#64748b;margin-top:2px;font-size:12px;font-weight:400;display:block}.modal-close svg{width:16px;height:16px}.modal-body{max-height:65vh;padding:24px;overflow-y:auto}.modal-foot{background:#f8fafc;border-top:1px solid #e2e8f0;padding:14px 24px;display:flex;justify-content:flex-end;align-items:center;gap:10px;border-radius:0 0 8px 8px}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-group{margin-bottom:14px}.form-group.full{grid-column:1/-1}.form-group label{color:var(--accent);margin-bottom:6px;font-size:12.3px;font-weight:600;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:4px;padding:9px 11px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:#fff;outline:none}.form-group textarea{resize:vertical;min-height:60px}.form-hint{color:var(--text-faint);margin-top:5px;font-size:11px}.section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--accent);border-top:1px dashed var(--border);margin:6px 0 12px;padding-top:10px;font-size:11.3px;font-weight:700}.section-label:first-child{border-top:none;margin-top:0;padding-top:0}.empty-state{text-align:center;color:var(--text-faint);padding:50px 20px}.empty-state svg{width:38px;height:38px;stroke:var(--text-faint);margin-bottom:12px}.empty-state p{font-size:13px}#toast-container{z-index:200;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}.toast{color:#fff;background:#181b32;border-radius:4px;align-items:center;gap:10px;min-width:260px;padding:13px 18px;font-size:13px;font-weight:500;animation:.25s toastIn;display:flex;box-shadow:0 14px 34px -10px #0a0c1e80}.toast svg{stroke:#4ade80;flex-shrink:0;width:16px;height:16px}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.donut-wrap{align-items:center;gap:22px;display:flex}.legend{flex-direction:column;gap:10px;display:flex}.legend-item{align-items:center;gap:9px;font-size:12.8px;display:flex}.legend-swatch{border-radius:4px;width:10px;height:10px}.legend-item b{margin-left:auto;font-family:'Inter', sans-serif}.hbar-row{grid-template-columns:120px 1fr 46px;align-items:center;gap:10px;margin-bottom:13px;font-size:12.5px;display:grid}.hbar-row:last-child{margin-bottom:0}.hbar-track{background:#eeeff6;border-radius:4px;height:9px;overflow:hidden}.hbar-fill{border-radius:4px;height:100%}@media (width<=1180px){.stats-grid,.machine-grid,.kanban{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}}@media (width<=760px){.sidebar{display:none}.main{padding:18px}.stats-grid,.form-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.brand-text strong{font-size:24px}button.nav-item{text-align:left;cursor:pointer;background:0 0;border:none;width:100%}button.nav-item *{pointer-events:none}.quote-document{background:#fff;border-radius:8px}.quote-top-grid{flex-direction:column;gap:25px;margin-bottom:30px;display:flex}.quote-top-left{flex-direction:column;gap:16px;display:flex}.quote-top-right{flex-flow:wrap;justify-content:flex-start;align-items:flex-start;gap:30px;display:flex}.quote-top-right .form-group{flex-direction:column;align-items:flex-start;gap:6px}.quote-top-right .form-group label{color:var(--accent);margin-bottom:0;font-size:13px;font-weight:500}.quote-top-right .form-group input{text-align:left;border:1px solid var(--border);border-radius:4px;min-width:140px;padding:8px 12px}.quote-table{border-collapse:collapse;width:100%;margin-bottom:12px;font-size:13px}.quote-table th{border:1px solid var(--border);text-align:left;color:var(--text-soft);background:#f8f9fa;padding:10px;font-weight:500}.quote-table td{border:1px solid var(--border);padding:0;position:relative}.quote-table td input{box-sizing:border-box;background:0 0;border:none;border-radius:0;width:100%;padding:10px;font-size:13px}.quote-table td input:focus{box-shadow:inset 0 0 0 1px var(--accent);background:#fff;outline:none}.quote-table .col-no{text-align:center;width:40px}.quote-table .col-desc{width:25%}.quote-table td.cell-center input{text-align:center}.quote-table td.cell-right input{text-align:right}.quote-actions{gap:10px;margin-bottom:30px;display:flex}.quote-bottom-grid{grid-template-columns:2fr 1.2fr;gap:40px;display:grid}.quote-notes{flex-direction:column;gap:15px;display:flex}.quote-summary{border:1px solid var(--border);background:#f8f9fa;border-radius:6px;flex-direction:column;gap:12px;padding:20px;display:flex}.summary-row{justify-content:space-between;align-items:center;font-size:13.5px;display:flex}.summary-row input{text-align:right;border:1px solid var(--border);background:#fff;border-radius:4px;width:100px;padding:6px}.summary-row.total{border-top:1px dashed var(--border);margin-top:4px;padding-top:12px;font-size:16px;font-weight:600}.summary-row.total .total-amount{color:var(--accent)}.add-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:13px;font-weight:500;display:inline-flex}.add-btn:hover{text-decoration:underline}.terms-box{border:1px solid var(--border);color:var(--text-soft);border-radius:4px;padding:10px;font-size:12.5px}.terms-box p{align-items:center;gap:6px;margin:4px 0;display:flex}.terms-box p svg{cursor:pointer;color:#dc2626;opacity:.7;width:14px;height:14px}.sign-box{border:1px dashed var(--border);text-align:center;color:var(--text-faint);cursor:pointer;border-radius:6px;margin-top:20px;padding:20px;font-size:13px}.sign-box:hover{border-style:solid;border-color:var(--accent);color:var(--accent);background:#f8f9fa}.party-list{flex-direction:column;gap:10px;max-height:400px;margin-top:15px;display:flex;overflow-y:auto}.party-list-item{border:1px solid var(--border);cursor:pointer;border-radius:6px;justify-content:space-between;align-items:center;padding:12px;transition:all .2s;display:flex}.party-list-item:hover{border-color:var(--accent);background:#f8f9fa}.party-list-item .pl-name{color:var(--accent);font-size:14px;font-weight:600}.party-list-item .pl-sub{color:var(--text-soft);margin-top:4px;font-size:12px}.quotation-split-view{grid-template-columns:1fr 1fr;gap:20px;height:calc(100vh - 100px);display:grid;overflow:hidden}.quotation-tab-view{height:auto}.quotation-editor-pane{padding:2px 10px 20px 2px}.quotation-preview-pane{background:0 0;justify-content:center;padding:30px;display:flex}.pdf-paper{color:#333;background:#fff;width:210mm;min-height:297mm;padding:15mm;font-size:13px;position:relative}.pdf-header{border-bottom:2px solid #14172d;justify-content:space-between;margin-bottom:20px;padding-bottom:15px;display:flex}.pdf-logo{color:#14172d;font-size:24px;font-weight:800}.pdf-title{text-transform:uppercase;letter-spacing:2px;color:#666;font-size:28px;font-weight:300}.pdf-meta-grid{justify-content:space-between;margin-bottom:30px;display:flex}.pdf-meta-box{width:45%}.pdf-meta-box h4{color:#888;text-transform:uppercase;margin-bottom:8px;font-size:12px}.pdf-meta-table{width:100%;font-size:13px}.pdf-meta-table td{padding:4px 0}.pdf-meta-table td:first-child{color:#666;width:100px}.pdf-meta-table td:last-child{text-align:right;font-weight:500}.pdf-table{border-collapse:collapse;width:100%;margin-bottom:20px}.pdf-table th{text-align:left;background:#f8f9fa;border-top:1px solid #ddd;border-bottom:1px solid #ddd;padding:10px 5px;font-weight:600}.pdf-table td{border-bottom:1px solid #eee;padding:10px 5px}.pdf-totals{width:300px;margin-bottom:30px;margin-left:auto}.pdf-totals-row{border-bottom:1px solid #eee;justify-content:space-between;padding:6px 0;display:flex}.pdf-totals-row.grand{border-top:2px solid #333;border-bottom:none;margin-top:5px;padding-top:10px;font-size:16px;font-weight:700}.pdf-footer{justify-content:space-between;margin-top:50px;display:flex}.pdf-terms h4{color:#333;margin-bottom:5px;font-size:13px}.pdf-terms ul{color:#666;margin:0;padding-left:15px;font-size:12px}.pdf-sign{text-align:right;width:200px}.pdf-sign img{max-width:150px;max-height:60px;margin-bottom:5px}@media print{body *{visibility:hidden}.quotation-preview-pane,.quotation-preview-pane *{visibility:visible}.quotation-preview-pane{width:100%;margin:0;padding:0;position:absolute;top:0;left:0}.pdf-header-bar,.btn{display:none!important}.pdf-paper{box-shadow:none;width:210mm;min-height:297mm;margin:0;padding:15mm;position:absolute;top:0;left:0}}

.action-dropdown { position: relative; display: inline-block; }
.action-dropdown .btn-action { padding: 4px 8px; color: var(--text-soft); background: transparent; border: none; border-radius: 4px; cursor: pointer; font-size: 16px; line-height: 1; }
.action-dropdown .btn-action:hover { background: #f1f2f8; color: var(--text); }
.action-menu { position: absolute; right: 0; top: 100%; background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); width: 140px; z-index: 100; padding: 4px; display: none; flex-direction: column; gap: 2px; text-align: center; }
.action-menu.open { display: flex; animation: pop 0.15s ease-out; }
.action-menu .action-item { padding: 6px; display: block; width: 100%; text-align: center; background: transparent; border: none; color: var(--text); font-size: 13px; cursor: pointer; border-radius: 4px; transition: background 0.15s; }
.action-menu .action-item:hover { background: #f1f2f8; }
.action-menu .action-item.text-danger { color: var(--danger); }

/* Table Scroll Fix */
.table-wrap {
    overflow-y: auto;
    overflow-x: auto;
    max-height: calc(100vh - 240px);
}
.table-wrap thead th {
    position: sticky;
    top: 0;
    background: #ffffff !important;
    z-index: 10;
}
.table-wrap thead th::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    border-bottom: 1px solid var(--border);
}
.empty-state, .empty-state p, .empty-state h3, tbody td:has(.empty-state), tbody td .empty-state {
    white-space: normal !important;
}




/* Global Minimal Scrollbars */
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}
::-webkit-scrollbar-track {
    background: transparent;
}
::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}
/* Responsive Overrides */
@media (max-width: 768px) {
    .mobile-menu-btn { display: inline-flex !important; align-items: center; justify-content: center; margin-right: 10px; }
    .sidebar { position: fixed !important; left: -260px; top: 0; bottom: 0; z-index: 1000; transition: left 0.3s ease; width: 260px; display: flex !important; }
    .sidebar.open { left: 0; }
    .mobile-close { display: flex !important; align-items: center; justify-content: center; }
    .header-left { padding-left: 15px !important; }
    
    .stats-grid, .form-grid, .grid-2, .grid-3, .grid-4, .grid-5, .quote-bottom-grid { grid-template-columns: 1fr !important; }
    .page { padding: 15px !important; }
    .top-header { flex-wrap: wrap; height: auto !important; padding-top: 10px !important; padding-bottom: 10px !important; }
    
    .quote-top-right, .quote-top-left { width: 100%; }
    .quote-top-grid { display: flex; flex-direction: column; }
    
    .flex-row { flex-direction: column !important; align-items: flex-start !important; }
    
    .table-wrap { overflow-x: auto !important; max-height: calc(100vh - 180px); }
    .table-wrap table, .quote-table { min-width: 700px; }
    
    .quotation-split-view { grid-template-columns: 1fr !important; height: auto !important; overflow: auto !important; }
    .pdf-paper { transform: scale(0.45); transform-origin: top left; margin-bottom: -150px; }
    .quotation-preview-pane { padding: 10px; overflow-x: hidden; }
}
@media (max-width: 768px) {
    .page-header { flex-direction: column !important; align-items: flex-start !important; gap: 10px; }
    .header-actions { width: 100%; display: flex; flex-wrap: wrap; gap: 10px; }
    .header-actions .btn { flex: 1; text-align: center; justify-content: center; }
}
@media (max-width: 768px) {
    .modal-content { width: 95% !important; max-width: 95% !important; margin: 10px auto !important; max-height: 90vh !important; overflow-y: auto !important; }
}
@media (max-width: 768px) {
    .page-header { display: flex !important; flex-direction: column !important; align-items: flex-start !important; }
    div[style*="grid-template-columns: 1fr 1fr"] { grid-template-columns: 1fr !important; display: flex !important; flex-direction: column !important; }
    div[style*="grid-template-columns: 1fr auto 1fr"] { grid-template-columns: 1fr !important; display: flex !important; flex-direction: column !important; }
    div[style*="grid-template-columns: 2fr 1.2fr"] { grid-template-columns: 1fr !important; display: flex !important; flex-direction: column !important; }
    div[style*="grid-template-columns: 1.5fr 1fr"] { grid-template-columns: 1fr !important; display: flex !important; flex-direction: column !important; }
    /* Fix table wrappers */
    .table-wrap, div[style*="overflow-x: auto"] { -webkit-overflow-scrolling: touch; }
}
@media (max-width: 768px) {
    div[style*="grid-template-columns"] {
        grid-template-columns: 1fr !important;
        display: flex !important;
        flex-direction: column !important;
        height: auto !important;
    }
    div[style*="flex-direction: row"] {
        flex-direction: column !important;
        height: auto !important;
    }
    .page-header {
        height: auto !important;
    }
    /* Ensure action buttons in modals or headers stack properly */
    .header-actions .btn {
        width: 100%;
        margin-bottom: 5px;
    }
}
@media (max-width: 768px) {
    /* Target all inline grids */
    div[style*="display: grid"] {
        grid-template-columns: 1fr !important;
        display: flex !important;
        flex-direction: column !important;
        height: auto !important;
    }
    
    /* Target explicit flex rows */
    div[style*="display: flex"][style*="row"], 
    div[style*="flex-direction: row"] {
        flex-direction: column !important;
        height: auto !important;
        align-items: stretch !important;
    }
    
    /* Ensure inputs stretch */
    .form-group { width: 100% !important; }
    
    /* Quotation and PDF Previews */
    .pdf-paper { transform: scale(0.35) !important; transform-origin: top left !important; margin-bottom: -400px !important; }
    .pdf-meta-grid, .pdf-header { flex-direction: column !important; }
    .pdf-meta-box { width: 100% !important; margin-bottom: 10px; }
    .pdf-totals { width: 100% !important; }
    
    /* Modal heads and bodies */
    .modal-head { flex-direction: column !important; align-items: flex-start !important; gap: 10px; }
}
@media (max-width: 768px) {
    table { width: 100% !important; display: block !important; overflow-x: auto !important; white-space: nowrap; }
    .qb-table { width: 100% !important; display: block !important; overflow-x: auto !important; white-space: nowrap; }
    .qb-items-wrapper { overflow-x: auto !important; width: 100% !important; display: block !important; }
    
    /* Ensure no flex elements force horizontal scroll */
    .qb-meta-grid, .qb-bottom-grid { flex-direction: column !important; width: 100% !important; gap: 15px !important; }
    .qb-bottom-right, .qb-bottom-left { width: 100% !important; }
    .qb-input-group { width: 100% !important; }
    
    /* Hide desktop-only things if needed */
    .mobile-hide { display: none !important; }
}
/* Input Shadows and Transitions */
.form-group input, 
.form-group select, 
.form-group textarea,
.search-box input {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
.form-group input:focus, 
.form-group select:focus, 
.form-group textarea:focus,
.search-box input:focus {
    box-shadow: 0 4px 12px rgba(79, 70, 229, 0.1), 0 0 0 3px var(--accent-soft);
}

/* Primary color for table ID columns (first column) */
.table-wrap tbody td:first-child.cell-mono,
.table-wrap tbody td:first-child.cell-mono .cell-strong,
.table-wrap tbody td:first-child .cell-mono,
.table-wrap tbody td:first-child.cell-strong {
    color: var(--accent) !important;
    font-weight: 600 !important;
}
