:root {
    --sidebar-width: 260px;
    --sidebar-collapsed-width: 76px;
    --sidebar-bg: #18212f;
    --sidebar-hover: #263448;
    --header-height: 64px;
    --bs-blue: #3b6aaf;
    --bs-primary: #3b6aaf;
    --bs-primary-rgb: 59, 106, 175;
    --app-primary: #3b6aaf;
    --app-primary-hover: #315a95;
    --app-primary-active: #294d81;
    --app-primary-soft: #e2e9f3;
    --app-primary-soft-border: #b8c9e0;
    --app-primary-focus: rgba(59, 106, 175, .25);
}

a{color:var(--app-primary)}a:hover{color:var(--app-primary-hover)}
.btn-primary{color:#fff;background-color:var(--app-primary);border-color:var(--app-primary)}
.btn-primary:hover,.btn-primary:focus{color:#fff;background-color:var(--app-primary-hover);border-color:var(--app-primary-hover)}
.btn-check:focus+.btn-primary,.btn-primary:focus{box-shadow:0 0 0 .25rem var(--app-primary-focus)}
.btn-check:checked+.btn-primary,.btn-check:active+.btn-primary,.btn-primary:active,.btn-primary.active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:var(--app-primary-active);border-color:var(--app-primary-active)}
.btn-outline-primary{color:var(--app-primary);border-color:var(--app-primary)}
.btn-outline-primary:hover,.btn-check:checked+.btn-outline-primary,.btn-check:active+.btn-outline-primary,.btn-outline-primary:active,.btn-outline-primary.active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:var(--app-primary);border-color:var(--app-primary)}
.btn-outline-primary:focus{box-shadow:0 0 0 .25rem var(--app-primary-focus)}
.form-control:focus,.form-select:focus{border-color:#8da9d0;box-shadow:0 0 0 .25rem var(--app-primary-focus)}
.form-check-input:focus{border-color:#8da9d0;box-shadow:0 0 0 .25rem var(--app-primary-focus)}
.form-check-input:checked{background-color:var(--app-primary);border-color:var(--app-primary)}
.dropdown-item.active,.dropdown-item:active,.list-group-item.active,.nav-pills .nav-link.active,.nav-pills .show>.nav-link,.page-item.active .page-link,.progress-bar{background-color:var(--app-primary);border-color:var(--app-primary)}
.page-link{color:var(--app-primary)}.page-link:hover{color:var(--app-primary-hover)}.page-link:focus{color:var(--app-primary-hover);box-shadow:0 0 0 .25rem var(--app-primary-focus)}
.bg-primary{background-color:var(--app-primary)!important}.text-primary{color:var(--app-primary)!important}.border-primary{border-color:var(--app-primary)!important}
.alert-primary{color:#233f69;background-color:var(--app-primary-soft);border-color:var(--app-primary-soft-border)}
.badge.bg-primary{background-color:var(--app-primary)!important}
.table-primary{--bs-table-bg:var(--app-primary-soft);--bs-table-striped-bg:#d6e0ed;--bs-table-active-bg:#cbd7e7;--bs-table-hover-bg:#d0dce9;color:#172033;border-color:var(--app-primary-soft-border)}

html,
body {
    min-height: 100%;
}

body {
    background: #f4f6f9;
    color: #1f2937;
}

.login-brand-logo{display:block;width:85%;max-width:315px;height:auto;margin:0 auto}.login-brand-title{margin:.8rem 0 .35rem;color:#000;font-size:1.35rem;font-weight:700;line-height:1.2}
.critical-autocomplete{position:relative}.critical-suggestions{position:absolute;z-index:1060;top:calc(100% + .2rem);right:0;left:0;max-height:22rem;overflow-y:auto;box-shadow:0 .5rem 1.25rem rgba(15,23,42,.18)}.critical-suggestions .list-group-item{white-space:normal;text-align:left}.critical-suggestions .list-group-item.active small{color:rgba(255,255,255,.8)!important}
.rough-planning-card{max-width:100%;overflow:hidden}.rough-planning-scroll{max-height:calc(100vh - 250px);overflow:auto}.rough-planning-table{width:max-content;min-width:100%;font-size:.82rem}.rough-planning-table thead{position:sticky;top:0;z-index:12}.rough-planning-table th{background:#f8f9fa;vertical-align:middle;text-align:center;white-space:nowrap}.rough-planning-table th small{display:block;margin-top:.2rem;color:#6c757d;font-weight:400}.rough-planning-table td{height:68px;background:#fff}.rough-static{position:sticky;z-index:5;background:#fff!important}.rough-planning-table th.rough-static{z-index:15;background:#f8f9fa!important}.rough-k0{left:0;min-width:110px;max-width:110px}.rough-external{left:110px;min-width:95px;max-width:95px}.rough-name{left:205px;min-width:220px;max-width:220px;white-space:normal}.rough-deadline{left:425px;min-width:95px;max-width:95px}.rough-plan{left:520px;min-width:70px;max-width:70px}.rough-actual{left:590px;min-width:70px;max-width:70px;box-shadow:3px 0 5px rgba(15,23,42,.08)}.rough-period{min-width:120px;width:120px}.rough-period-cell{min-width:120px;width:120px;padding:.35rem!important;text-align:center}.rough-overdue-head,.rough-overdue-cell{background:#fff1f1!important}.rough-current-head,.rough-current-cell{background:#e2e9f3!important}.rough-later-head,.rough-later-cell{background:#f1f3f5!important}.rough-token-wrap{position:relative;display:inline-flex;max-width:112px;flex-direction:column;gap:.25rem;align-items:stretch}.rough-token-wrap[draggable="true"]{cursor:grab}.rough-token-wrap.is-dragging{opacity:.45}.rough-token{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;min-width:58px;padding:.35rem .65rem;border:1px solid #3b6aaf;border-radius:999px;font-weight:700;line-height:1;background:#3b6aaf;color:#fff}.rough-token.is-locked{border-color:#6c757d;background:#6c757d;cursor:not-allowed}.rough-token.is-movable:hover,.rough-token.is-movable:focus{background:#315a95;border-color:#315a95}.rough-move-select{min-width:155px;font-size:.72rem}.rough-drop-cell.is-drop-target{outline:3px solid #3b6aaf;outline-offset:-3px;background:#e2e9f3!important}.rough-drop-cell.is-drop-invalid{outline:3px solid #dc3545;outline-offset:-3px}.rough-token-wrap.is-saving{opacity:.55;pointer-events:none}.rough-token-wrap.is-saving::after{content:"";position:absolute;inset:50% auto auto 50%;width:1rem;height:1rem;margin:-.5rem;border:.15rem solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:spinner-border .65s linear infinite}
.rough-planning-search{min-width:0;max-width:56rem}.rough-planning-toolbar .availability-check-form .btn{white-space:normal}@media(max-width:991.98px){.rough-planning-toolbar .availability-check-form,.rough-planning-toolbar .availability-check-form .btn{width:100%}}
@media(max-width:991.98px){.rough-planning-scroll{max-height:none}.rough-static{position:static}.rough-actual,.rough-shortage{box-shadow:none}}

.app-shell {
    min-height: 100vh;
}

.app-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 1030;
    width: var(--sidebar-width);
    flex-direction: column;
    overflow: hidden;
    color: #fff;
    background: var(--sidebar-bg);
    transition: width .2s ease;
}

.sidebar-brand,
.sidebar-link,
.sidebar-user-name {
    display: flex;
    min-height: 52px;
    align-items: center;
    gap: 1rem;
    padding: .75rem 1.5rem;
    color: rgba(255, 255, 255, .84);
    text-decoration: none;
    white-space: nowrap;
}

.sidebar-brand {
    min-height: 112px;
    flex-direction: column;
    justify-content: center;
    gap: .35rem;
    padding: .7rem 1rem;
    color: #fff;
    font-size: 1.1rem;
    font-weight: 700;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
}
.sidebar-brand-logo{display:block;width:220px;max-width:100%;height:auto}.sidebar-brand-title{color:#fff;line-height:1.1}.mobile-sidebar-brand{display:flex;min-width:0;flex-direction:column;gap:.25rem;color:#fff}.mobile-sidebar-brand img{display:block;width:190px;max-width:calc(100vw - 100px);height:auto}.mobile-sidebar-brand strong{font-size:.95rem}

.sidebar-link {
    background: transparent;
}

.sidebar-link:hover,
.sidebar-link:focus,
.sidebar-link.active,
.sidebar-user-name:hover,
.sidebar-user-name:focus {
    color: #fff;
    background: var(--sidebar-hover);
}

.sidebar-link i,
.sidebar-brand i,
.sidebar-user-name i {
    width: 28px;
    flex: 0 0 28px;
    text-align: center;
    font-size: 1.25rem;
}

.sidebar-nav {
    padding-top: 1rem;
    overflow-y: auto;
}
.menu-group-items{display:block;max-height:0;overflow:hidden;opacity:0;visibility:hidden;transition:max-height .24s ease,opacity .18s ease,visibility 0s linear .24s}.menu-group-items.show{max-height:80vh;opacity:1;visibility:visible;transition:max-height .24s ease,opacity .18s ease}.menu-page-link{padding-left:2.25rem;font-size:.94rem}.menu-section.active>.menu-group-toggle{color:#fff}.menu-chevron{transition:transform .2s}.menu-group-toggle[aria-expanded="true"] .menu-chevron{transform:rotate(180deg)}
.sidebar-collapsed .app-sidebar .menu-group-toggle{display:none}.sidebar-collapsed .app-sidebar .menu-group-items{display:block!important;max-height:none;opacity:1;visibility:visible}.sidebar-collapsed .app-sidebar .menu-page-link{padding-inline:1.5rem}.sidebar-collapsed .app-sidebar .menu-group-toggle .menu-chevron{display:none}

.sidebar-user {
    padding-bottom: .75rem;
    border-top: 1px solid rgba(255, 255, 255, .1);
}

.app-main {
    display: flex;
    min-height: 100vh;
    flex-direction: column;
    margin-left: var(--sidebar-width);
    transition: margin-left .2s ease;
}

.app-header {
    display: flex;
    min-height: var(--header-height);
    align-items: center;
    padding: 0 1rem;
}
.header-shortage-link{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;font-size:1.15rem}.header-shortage-badge{min-width:1.35rem;max-width:3.5rem;overflow:hidden;text-overflow:ellipsis;font-size:.68rem}
.contacts-search{width:min(420px,100%)}
.item-balance-search{width:min(460px,100%);z-index:20}.item-balance-suggestions{position:absolute;z-index:1080;top:calc(100% + .25rem);left:0;right:0;max-height:320px;overflow-y:auto;border-radius:.375rem;box-shadow:0 .5rem 1rem rgba(15,23,42,.18)}.item-balance-suggestions .list-group-item{font-family:inherit;text-align:left}.item-balance-table th,.item-balance-table td{vertical-align:middle}.item-balance-table td{max-width:260px}
.source-list-search{width:min(460px,100%);z-index:20}.source-list-suggestions{position:absolute;z-index:1080;top:calc(100% + .25rem);left:0;right:0;max-height:320px;overflow-y:auto;border-radius:.375rem;box-shadow:0 .5rem 1rem rgba(15,23,42,.18)}.source-list-suggestions .list-group-item{font-family:inherit;text-align:left}.source-list-table{min-width:760px}.source-list-table th,.source-list-table td{vertical-align:middle}.source-list-table td:nth-child(3){min-width:280px;max-width:520px}
.bill-of-materials-search{width:min(460px,100%);z-index:20}.bill-of-materials-suggestions{position:absolute;z-index:1080;top:calc(100% + .25rem);left:0;right:0;max-height:320px;overflow-y:auto;border-radius:.375rem;box-shadow:0 .5rem 1rem rgba(15,23,42,.18)}.bill-of-materials-suggestions .list-group-item{text-align:left}.bill-of-materials-table{min-width:1180px}.bill-of-materials-table td{max-width:320px}.bill-of-materials-table .material-group-start>td{border-top-width:2px}
.customer-orders-table{min-width:1540px}.customer-orders-table td{max-width:320px}.customer-orders-table th{white-space:nowrap}.customer-orders-table .customer-order-disposition{width:4rem;min-width:4rem;padding-left:.75rem;padding-right:.75rem;vertical-align:middle}.customer-order-status-icon{display:inline-flex;width:1.25rem;height:1.25rem;align-items:center;justify-content:center;font-size:1rem;line-height:1;vertical-align:middle;border-radius:50%}.customer-order-status-icon:focus-visible{outline:2px solid currentColor;outline-offset:2px}.customer-order-no-disposition{color:#b02a37}.customer-order-in-production{color:green}
.table>tbody>tr.shortage-overdue-warning>*{--bs-table-bg:rgba(255,241,25,.2);--bs-table-striped-bg:rgba(255,241,25,.2);--bs-table-hover-bg:rgba(240,224,18,.4);--bs-table-accent-bg:var(--bs-table-bg);background-color:var(--bs-table-bg);color:#1f2328}.table-hover>tbody>tr.shortage-overdue-warning:hover>*{--bs-table-accent-bg:var(--bs-table-hover-bg)}
.table>tbody>tr.shortage-overdue-critical>*{--bs-table-bg:rgba(255,25,25,.3);--bs-table-striped-bg:rgba(255,25,25,.3);--bs-table-hover-bg:rgba(235,18,18,.5);--bs-table-accent-bg:var(--bs-table-bg);background-color:var(--bs-table-bg);color:#171717}.table-hover>tbody>tr.shortage-overdue-critical:hover>*{--bs-table-accent-bg:var(--bs-table-hover-bg)}
.shortage-package-link{color:#173f78;font-weight:600;text-decoration:underline;text-underline-offset:.15em}.shortage-package-link:hover,.shortage-package-link:focus{color:#0b2a55;text-decoration-thickness:2px}
.operations-table{min-width:1080px}.operations-table .operation-head-row>*{--bs-table-bg:#e7eef8;--bs-table-hover-bg:#dce7f5;background-color:var(--bs-table-bg);font-weight:600;border-top:2px solid #8ea9cf}.operations-table .operation-detail-row .operation-source-cell{padding-left:2rem;position:relative}.operations-table .operation-detail-row .operation-source-cell::before{content:"↳";position:absolute;left:.75rem;color:#6c757d}
.bill-of-materials-table .bill-of-materials-shortage{padding-right:2rem}

.app-content {
    flex: 1;
}

.app-footer {
    padding: 1rem 1.5rem;
}

.app-shell.sidebar-collapsed .app-sidebar {
    width: var(--sidebar-collapsed-width);
}

.app-shell.sidebar-collapsed .app-main {
    margin-left: var(--sidebar-collapsed-width);
}

.app-shell.sidebar-collapsed .sidebar-label {
    display: none;
}

.app-shell.sidebar-collapsed .sidebar-brand,
.app-shell.sidebar-collapsed .sidebar-link,
.app-shell.sidebar-collapsed .sidebar-user-name {
    justify-content: center;
    padding-inline: 1.5rem;
}
.app-shell.sidebar-collapsed .sidebar-brand{min-height:var(--header-height);align-items:flex-start;overflow:hidden;padding:.45rem 0}.app-shell.sidebar-collapsed .sidebar-brand-logo{width:220px;max-width:none;transform:translateX(10px)}

.login-page {
    background: linear-gradient(135deg, #eef3f9, #f8fafc);
}

.login-icon {
    display: inline-flex;
    width: 56px;
    height: 56px;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: #3b6aaf;
    border-radius: 14px;
    font-size: 1.75rem;
}
.color-swatch{display:inline-block;width:2rem;height:1rem;border-radius:.25rem;border:1px solid #ced4da}.timeline-scroll{overflow-x:auto}.planning-timeline{display:grid;grid-template-columns:110px repeat(7,minmax(160px,1fr));min-width:1230px}.timeline-header-label,.timeline-day-head{padding:.65rem;border-bottom:1px solid #dee2e6;font-weight:600;text-align:center}.timeline-day-head small{display:block;color:#6c757d}.timeline-line-label{border:0;border-right:1px solid #dee2e6;border-bottom:1px solid #dee2e6;background:#fff;font-weight:700}.timeline-lane{grid-column:2/9;position:relative;height:113px;min-height:113px;border-bottom:1px solid #dee2e6;background:repeating-linear-gradient(90deg,#eef1f4 0,#eef1f4 calc(100%/7 - 1px),#ced4da calc(100%/7 - 1px),#ced4da calc(100%/7));}.work-window{position:absolute;top:0;bottom:0;background:#fff}.plan-segment{position:absolute;top:4px;height:105px;min-height:105px;border:0;border-radius:.35rem;color:#fff;padding:3px 4px;overflow:hidden;text-align:left;z-index:2;font-size:.72rem;line-height:1.1;box-shadow:0 1px 4px #0003}.plan-segment span,.plan-segment small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-segment.erp-wait{background:#6c757d!important;border:2px dashed #ffc107}
.timeline-line-label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;padding:.35rem;cursor:pointer;text-align:center}.timeline-line-code{font-size:1rem}.timeline-overdue-link,.timeline-overdue-text{font-size:.68rem;font-weight:600;line-height:1.15}.timeline-overdue-link{color:#b42318;text-decoration:underline}.timeline-overdue-link:hover{color:#7a271a}.timeline-overdue-text{color:#6c757d}
.plan-button{display:none!important}.planner-drag-row,.plan-segment[draggable="true"]{cursor:grab}.planner-drag-row:active,.planner-drag-row.is-dragging,.plan-segment.is-dragging{cursor:grabbing;opacity:.55}.timeline-lane.is-drop-target{outline:3px solid #3b6aaf;outline-offset:-3px;background-color:#e2e9f3}
.timeline-lane{background:#f8f9fa}.day-slot{position:absolute;inset-block:0 auto;height:100%;z-index:0;border-right:2px solid #adb5bd;background:#f8f9fa}.day-slot:nth-of-type(4n+1){background:#eef3f8}.day-slot.sunday{background:repeating-linear-gradient(135deg,#e2e3e5 0,#e2e3e5 6px,#ced4da 6px,#ced4da 12px)}.work-window{z-index:1;background:rgba(59,106,175,.07);border-right:1px dashed #8ba8c7}.timeline-day-head{min-width:0;overflow:hidden;white-space:nowrap;border-right:2px solid #adb5bd;background:#f8f9fa}.timeline-day-head:nth-child(even){background:#eef3f8}.timeline-day-head small{white-space:nowrap;font-size:.75rem}.planning-timeline{width:100%}.timeline-scroll{max-width:100%}
.planner-edit-modal{border:0;box-shadow:0 1rem 3rem rgba(15,23,42,.24)}.planner-summary,.planner-modal-section{border:1px solid #d8dee6;border-radius:.65rem;background:#f8fafc}.planner-summary{padding:1rem 1.1rem}.planner-summary small{display:block;color:#64748b;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.planner-summary strong{display:block;margin-top:.35rem;color:#172033}.planner-modal-section{padding:1.25rem}.planner-modal-section h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.035em;margin-bottom:1rem}.planner-status-option{display:flex;gap:.8rem;align-items:flex-start;padding:1rem;border:1px solid #d8dee6;border-radius:.55rem;background:#fff;cursor:pointer}.planner-status-option+.planner-status-option{margin-top:.75rem}.planner-status-option input{margin-top:.18rem}.planner-status-option span,.planner-status-option small{display:block}.planner-status-option strong{font-size:.9rem}.planner-status-option small{margin-top:.2rem;color:#64748b;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em}.planner-status-option:has(input:checked){border-color:#3b6aaf;background:#edf2f8}
.planner-detail-row{padding:.85rem .15rem;border-bottom:1px solid #e2e8f0}.planner-detail-row small{display:block;margin-bottom:.2rem}.planner-detail-row>div{min-width:0}.planner-detail-row .fw-medium{overflow-wrap:anywhere}
.planner-drop-hint{position:fixed;z-index:1090;display:none;min-width:220px;padding:.65rem .8rem;border:1px solid #3b6aaf;border-radius:.5rem;background:#fff;color:#172033;box-shadow:0 .5rem 1.5rem rgba(15,23,42,.25);pointer-events:none}.planner-drop-hint.is-visible{display:block}.planner-drop-hint small,.planner-drop-hint strong{display:block}.planner-drop-hint small{color:#64748b;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}.planner-drop-hint strong{margin-top:.15rem}.planner-drop-hint.is-invalid{border-color:#dc3545;background:#fff5f5;color:#b02a37}
.planner-remove-zone{position:fixed;z-index:1085;left:50%;bottom:1.25rem;display:none;width:min(440px,calc(100vw - 2rem));padding:1rem;border:2px dashed #dc3545;border-radius:.7rem;background:#fff5f5;color:#b02a37;text-align:center;box-shadow:0 .75rem 2rem rgba(15,23,42,.25);transform:translateX(-50%);pointer-events:none}.planner-remove-zone.is-visible{display:block;pointer-events:auto}.planner-remove-zone i{display:block;font-size:1.4rem}.planner-remove-zone strong,.planner-remove-zone small{display:block}.planner-remove-zone small{margin-top:.15rem}.planner-remove-zone.is-active{background:#dc3545;color:#fff;transform:translateX(-50%) scale(1.03)}.planner-remove-zone.is-disabled{border-color:#6c757d;background:#f1f3f5;color:#6c757d}
.table details .badge.text-bg-light{color:#1f2937!important;background:#fff!important;font-weight:500}.table details .badge.text-bg-light .btn-link{color:#3b6aaf!important}.table details input[type="date"],.table details input[type="time"]{color:#1f2937;background-color:#fff;color-scheme:light}
.plan-segment{box-sizing:border-box}.plan-segment.is-sos{border:3px solid #dc3545}.plan-card-header{display:flex!important;align-items:center;justify-content:flex-start;gap:.3rem;font-weight:300;font-size:14px}.plan-card-header strong{min-width:0;overflow:hidden;text-overflow:ellipsis}.plan-card-separator{flex:0 0 auto}.plan-package{min-width:0;overflow:hidden;text-overflow:ellipsis;text-align:left;white-space:nowrap}.plan-package-link,.plan-package-link:link,.plan-package-link:visited,.plan-package-link:hover,.plan-package-link:active,.plan-package-link:focus,.plan-package-link:focus-visible{display:block;color:#fff!important;text-decoration:none!important;background:none!important;border:0!important;outline:0!important;box-shadow:none!important;cursor:pointer}.plan-package-link::before,.plan-package-link::after{content:none!important;display:none!important}.plan-package-link:focus-visible{text-shadow:0 0 4px rgba(255,255,255,.95)}.plan-package-link.is-done,.plan-package-link.is-done:link,.plan-package-link.is-done:visited,.plan-package-link.is-done:hover,.plan-package-link.is-done:active,.plan-package-link.is-done:focus,.plan-package-link.is-done:focus-visible{color:#86efac!important}.plan-segment .is-done{color:#86efac;text-shadow:0 1px 1px rgba(0,0,0,.45)}.production-plan-gyr.is-done{color:#198754;font-weight:600}.plan-card-info{display:block;min-width:0;height:1.05rem;margin-top:.12rem;padding-top:.12rem;border-top:1px solid rgba(255,255,255,.28);white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;line-height:1.15;font-size:.68rem}.plan-card-other-info{border-top:0}.plan-card-info.is-empty{pointer-events:none}.plan-card-name{min-width:0;font-weight:500;font-size:16px;margin:6px 0px 6px 0px;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.plan-card-quantities{font-size:14px;margin-bottom:3px}

@media (max-width: 991.98px) {
    .app-main {
        margin-left: 0;
    }

    .offcanvas {
        --bs-offcanvas-width: min(300px, 86vw);
    }
}

.plan-segment.has-active-shortage{background:#95873b!important;color:#fff}
.plan-segment.no-active-shortage{background:#3b8495!important;color:#fff}
.shortage-info-trigger{display:inline-flex!important;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:#172033;cursor:pointer;line-height:1;position:absolute;top:.2rem;right:.2rem;z-index:4}
.shortage-info-trigger:hover,.shortage-info-trigger:focus{background:#fff;color:#3b6aaf;outline:2px solid #fff;outline-offset:1px}
.shortage-row>td{background-color:#fffbe3 !important;color:#172033}
.table-hover .shortage-row:hover>td{background-color:#fffbe3 !important}
.shortage-row.is-dragging>td{background-color:#8f854d!important}
.shortage-info-cell{width:4.5rem;min-width:4.5rem;text-align:center;vertical-align:middle}
.shortage-table-trigger{border:0;background:transparent;color:#0b4f6c;font-size:1.1rem}
.shortage-table-trigger:hover,.shortage-table-trigger:focus{color:#3b6aaf}
.shortage-offcanvas{--bs-offcanvas-width:min(480px,94vw)}
.shortage-panel-close{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:2.25rem;height:2.25rem;padding:0;border:1px solid #adb5bd;border-radius:.375rem;background:#fff;color:#212529;font-size:1.25rem;line-height:1}
.shortage-panel-close:hover{background:#f1f3f5;color:#000;border-color:#6c757d}
.shortage-panel-close:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(59,106,175,.25)}
.shortage-item{padding:1rem 0;border-bottom:1px solid #dee2e6}
.shortage-item:last-child{border-bottom:0}
.shortage-item-note{white-space:pre-wrap;overflow-wrap:anywhere}
.assembly-line-responsibility-pill{border:1px solid #adb5bd;background:#f1f3f5;color:#343a40;border-radius:999px;padding:.35rem .85rem;line-height:1.2}
.assembly-line-responsibility-pill:hover{background:#e2e6ea;border-color:#868e96}
.assembly-line-responsibility-input:checked+.assembly-line-responsibility-pill{background:#198754;border-color:#198754;color:#fff}
.assembly-line-responsibility-input:focus-visible+.assembly-line-responsibility-pill{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}
.assembly-line-responsibility-pill.is-inactive{border-style:dashed;color:#6c757d}

@media (prefers-reduced-motion: reduce) {
    .app-sidebar,
    .app-main {
        transition: none;
    }
}

.rough-token.is-locked{border-color:#6e9e6f;background:#6e9e6f}.rough-token.has-critical-shortage,.rough-token.has-critical-shortage:hover,.rough-token.has-critical-shortage:focus,.rough-token.has-critical-shortage:active{border-color:#95873b;background:#95873b;color:#fff}.rough-token.has-critical-shortage:focus-visible{outline:3px solid rgba(149,135,59,.38);outline-offset:2px}
.rough-gyr{left:205px;min-width:130px;max-width:130px}
.rough-name{left:335px}
.rough-deadline{left:555px}
.rough-plan{left:650px}
.rough-actual{left:720px;box-shadow:none}.rough-shortage{left:790px;min-width:70px;max-width:70px;box-shadow:3px 0 5px rgba(15,23,42,.08)}
.item-numbers-table{min-width:980px}.item-numbers-table th{white-space:nowrap}.item-numbers-table td{max-width:320px;overflow-wrap:anywhere}
.smtp-test-mode-active {
    background-color: rgba(251, 216, 108, 0.51);
}
.ktf-badge{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:.18em .42em;border:1px solid #6f42c1;border-radius:.3rem;background:#ede7f6;color:#4b2b83;font-size:.72em;font-weight:700;line-height:1;letter-spacing:.02em;vertical-align:middle}
.ktf-badge:focus{outline:2px solid rgba(111,66,193,.4);outline-offset:2px}
.ktf-badge-card{padding:.12em .34em;font-size:.62em}
.ktf-badge-table{font-size:.68em}
.ktf-badge-modal{font-size:.72em}
.timeline-lane.has-insertion-marker::after{content:"";position:absolute;top:0;bottom:0;left:var(--planner-drop-x);width:3px;background:#3b6aaf;box-shadow:0 0 0 2px rgba(255,255,255,.85);z-index:8;pointer-events:none}
.timeline-day-head.is-today,.day-slot.is-today,.work-window.is-today{background-color:rgba(25,135,84,.12)}
.timeline-day-head.is-today{box-shadow:inset 0 3px 0 #198754}
.day-slot.sunday.is-today{background:linear-gradient(rgba(25,135,84,.12),rgba(25,135,84,.12)),repeating-linear-gradient(135deg,#e2e3e5 0,#e2e3e5 6px,#ced4da 6px,#ced4da 12px)}
.timeline-lane.is-drop-target .day-slot.is-today,.timeline-lane.is-drop-target .work-window.is-today{background-color:#e2e9f3}
.timeline-lane.is-drop-target .day-slot.sunday.is-today{background:linear-gradient(rgba(59,106,175,.14),rgba(59,106,175,.14)),repeating-linear-gradient(135deg,#e2e3e5 0,#e2e3e5 6px,#ced4da 6px,#ced4da 12px)}
.planner-current-week-link:focus-visible{outline:3px solid rgba(25,135,84,.35);outline-offset:2px;box-shadow:0 0 0 .2rem rgba(25,135,84,.18)}
.shortage-statistics-table{min-width:1380px}.shortage-statistics-table .badge,.shortage-statistics-table .ktf-badge{vertical-align:middle}.shortage-statistics-note{min-width:180px;max-width:360px;white-space:normal;overflow-wrap:anywhere}
.shortage-test-badge{background-color:#ffc107!important;border:1px solid #d39e00!important;color:#212529!important}
.shortage-live-badge,.shortage-status-neutral{background-color:#6c757d!important;border:1px solid #565e64!important;color:#fff!important}
.shortage-status-success{background-color:#198754!important;border:1px solid #146c43!important;color:#fff!important}
.shortage-status-partial{background-color:#ffc107!important;border:1px solid #d39e00!important;color:#212529!important}
.shortage-status-failed,.shortage-critical-badge{background-color:#dc3545!important;border:1px solid #b02a37!important;color:#fff!important}
.critical-menu-indicator{display:inline-block;margin-left:.2rem;font-size:.9em;line-height:1;vertical-align:-.05em;white-space:nowrap}
.forecast-customer-search{position:relative}.forecast-customer-suggestions{position:absolute;z-index:1080;top:100%;right:0;left:0;max-height:18rem;overflow-y:auto;box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}.forecast-table{min-width:1780px}.forecast-table th,.forecast-table td{white-space:nowrap}.forecast-table .forecast-customer-column{position:sticky;left:0;z-index:2;min-width:190px;background:#fff}.forecast-table thead .forecast-customer-column{z-index:3;background:#f8f9fa}.forecast-table tfoot .forecast-customer-column{background:#f8f9fa}.forecast-month-cell{min-width:92px}.forecast-value-badge{display:block;width:max-content;min-width:3.25rem;margin:.15rem auto;padding:.4em .55em;font-size:.78rem;line-height:1}.forecast-edit-trigger{cursor:pointer}.forecast-edit-trigger:focus-visible{outline:2px solid #198754;outline-offset:2px}.forecast-inline-editor{display:block;width:4.5rem;margin:.15rem auto}.forecast-inline-editor.is-saving{opacity:.65}.forecast-inline-editor .form-control{height:1.75rem;padding:.15rem .3rem;text-align:right}
.forecast-value-badge{display:inline-flex!important;min-width:3.25rem;min-height:1.65rem;align-items:center;justify-content:center;padding:.35rem .55rem;border-radius:.375rem;white-space:nowrap}.forecast-month-cell>.forecast-value-badge{display:flex!important}
.forecast-value-badge.forecast-value-empty{background-color:#c0c0c0!important}
.shortage-metal-badge{background-color:#3b6aaf!important;border:1px solid #315a95!important;color:#fff!important}
.shortage-statistics-name{white-space:nowrap}.shortage-statistics-date{min-width:6.8rem;text-align:center;white-space:normal}.shortage-statistics-date>span{display:block;white-space:nowrap}.shortage-statistics-badges{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;min-width:0}.shortage-statistics-badges .badge,.shortage-statistics-badges .ktf-badge{flex:0 0 auto}
.evaluator-status-active{background-color:#198754!important;border:1px solid #146c43!important;color:#fff!important}.evaluator-status-inactive{background-color:#6c757d!important;border:1px solid #565e64!important;color:#fff!important}
.planned-production-search{position:relative;flex:1 1 300px;min-width:250px;max-width:430px;z-index:20}.planned-production-search-results{position:absolute;top:calc(100% + .25rem);right:0;left:0;z-index:1080;max-height:22rem;overflow-y:auto;box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}.planned-production-result{min-width:0;text-align:left}.planned-production-result-primary,.planned-production-result-secondary{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planned-production-result-secondary{margin-top:.15rem}.plan-segment.is-search-focused{animation:planner-plan-focus .8s ease-in-out 3;scroll-margin-top:5rem}@keyframes planner-plan-focus{0%,100%{box-shadow:0 1px 4px #0003}50%{box-shadow:0 0 0 4px rgba(255,193,7,.95),0 0 16px 7px rgba(255,193,7,.55)}}@media (prefers-reduced-motion:reduce){.plan-segment.is-search-focused{animation:none;box-shadow:0 0 0 4px rgba(255,193,7,.95)}}
.timeline-scroll{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain}.planning-timeline{width:max(100%,1370px)!important;min-width:1370px!important;grid-template-columns:110px repeat(7,minmax(180px,1fr))!important}.planning-timeline,.planning-timeline>*{box-sizing:border-box}.timeline-header-label,.timeline-line-label{position:sticky;left:0;background:#fff!important;border-right:2px solid #adb5bd;z-index:10}.timeline-header-label{z-index:12}.timeline-day-head,.day-slot{border-right:2px solid #adb5bd;box-sizing:border-box}.timeline-lane{min-width:0;overflow:visible}
@media(max-width:991.98px){.planned-production-search{order:3;flex-basis:min(100%,430px)}.planned-production-search+.btn-group{margin-left:0!important}}@media(max-width:575.98px){.planned-production-search{min-width:100%;max-width:100%}.planned-production-search+.btn-group{display:flex;width:100%}.planned-production-search+.btn-group>.btn{flex:1 1 auto;padding-inline:.45rem}}
.selection-pill,.production-line-filter{border:1px solid #adb5bd;background:#e9ecef;color:#343a40;font-weight:600;border-radius:.375rem}.selection-pill{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;padding:.3rem .75rem;line-height:1.25;cursor:pointer;user-select:none;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.selection-pill:hover,.production-line-filter:hover{border-color:#6c757d;background:#dee2e6}.production-line-filter.is-active,.planner-painter-input:checked+.selection-pill{border-color:#198754;background:#d1e7dd;color:#0f5132}.selection-pill-check{display:none}.planner-painter-input:checked+.selection-pill .selection-pill-check{display:inline}.selection-pill:focus-within,.planner-painter-input:focus-visible+.selection-pill,.production-line-filter:focus-visible{outline:3px solid rgba(25,135,84,.3);outline-offset:2px}.planner-painter-choices{margin:1rem 0 .75rem 1rem}.planner-painter-pills{display:flex;flex-wrap:wrap;gap:.65rem}.planner-painter-choices:disabled .planner-painter-pills{opacity:.55}.planner-painter-choices:disabled .planner-painter-pill{cursor:not-allowed}.planner-painter-status{margin-top:.6rem}.planner-painter-error{margin-top:.65rem}.readonly-line-label{cursor:default}.readonly-plan-segment{cursor:pointer}.readonly-plan-segment[draggable]{cursor:pointer}@media(max-width:575.98px){.planner-painter-choices{margin-left:0}.planner-painter-pill{min-width:3.5rem}}
.production-plan-list-search{max-width:620px}.production-plan-line-box{min-width:0}.production-plan-list-table-wrap{max-width:100%;overflow-x:auto}.production-plan-list-table{min-width:1380px;font-size:.875rem}.production-plan-list-table th{white-space:nowrap;background:#f8f9fa}.production-plan-list-table td{vertical-align:middle}.production-plan-list-table .production-plan-name-column{min-width:220px}.production-plan-list-item{cursor:pointer}.production-plan-list-primary-row>td{background-color:#e7eef8}.production-plan-list-main-row>td{border-bottom:0;padding-bottom:.35rem}.production-plan-list-info-row>td{border-top:0;padding-top:.25rem;border-bottom:2px solid #cfd6dc;background:#f8f9fa}.production-plan-list-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem 1.5rem;padding:.15rem 0}.production-plan-list-info-block{display:flex;align-items:baseline;gap:.4rem;min-width:0}.production-plan-list-info-label{flex:0 0 auto}.production-plan-list-info-value{min-width:0;overflow-wrap:anywhere;word-break:break-word}.production-plan-list-item:focus-within>tr>td{background:#eef6ff}.production-plan-list-item.is-search-focused>tr>td{animation:production-plan-list-focus .8s ease-in-out 3}.production-plan-package-link{color:inherit;text-decoration:none}.production-plan-package-link:hover,.production-plan-package-link:focus,.production-plan-package-link:active,.production-plan-package-link:visited{color:inherit;text-decoration:none}.production-plan-list-main-row:focus-visible,.production-plan-list-info-row:focus-visible{outline:3px solid rgba(13,110,253,.3);outline-offset:-3px}@keyframes production-plan-list-focus{0%,100%{background:#fff3cd}50%{background:#ffe08a}}@media(prefers-reduced-motion:reduce){.production-plan-list-item.is-search-focused>tr>td{animation:none;background:#fff3cd}}@media(max-width:991.98px){.production-plan-list-info{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:575.98px){.production-plan-list-info{grid-template-columns:minmax(0,1fr);gap:.35rem}.production-plan-list-search{min-width:100%;max-width:100%}}
.painting-plan-search{width:min(100%,42rem)}.painting-plan-table-wrap{overflow-x:auto}.painting-plan-table{min-width:1050px}.painting-plan-table tbody+tbody{border-top:3px solid #cbd5e1}.painting-plan-table th,.painting-plan-table td{vertical-align:middle}.painting-priority-cell{white-space:nowrap;background:#f8fafc}.painting-priority-cell form{line-height:1}.painting-package-group[hidden]{display:none}
.operation-completion-trigger{cursor:pointer}.operation-completion-trigger:focus-visible{outline:3px solid rgba(13,110,253,.35);outline-offset:2px}.operation-completion-modal-body{max-height:65vh;overflow-y:auto}.operation-completion-card{height:8rem;border-color:#dee2e6;background:#fff}.operation-completion-card .card-body{padding:0}.operation-completion-percent{padding:1rem 1rem .35rem;font-size:clamp(1.65rem,3vw,2.35rem);font-weight:700;line-height:1;white-space:nowrap;text-align:center}.operation-completion-warning{color:#8a6500}.operation-completion-source{margin:.3rem 1rem 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:1rem;font-weight:600}.operation-completion-name{margin:.15rem 1rem .7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:.875rem;font-weight:400}
.plan-card-quantity-row{display:flex!important;align-items:center;justify-content:space-between;gap:.35rem;min-width:0;white-space:nowrap!important}.plan-card-quantity-row .plan-card-quantities{min-width:0;margin-bottom:3px;overflow:hidden;text-overflow:ellipsis}.plan-card-kl-completion{flex:0 0 auto;margin:0 0 3px;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-size:14px;line-height:inherit;white-space:nowrap;cursor:pointer;opacity:.92}.plan-card-kl-completion:focus-visible{outline:2px solid currentColor;outline-offset:1px}
