﻿/* ============================================================
   Decupre Productie - centrale stylesheet
   Alle applicatie-specifieke opmaak staat in dit bestand.
   ============================================================ */

:root {
    --dp-primary:#2c3e50;
    --dp-accent:#3498db;
    --dp-success:#23834a;
    --dp-warning:#795d00;
    --dp-danger:#8b1e1e;
    --dp-bg:#f4f6f9;
    --dp-card:#fff;
    --dp-text:#333;
    --dp-muted:#6b7280;
    --dp-border:#e0e5ea;
    --dp-radius:8px;
}

/* ---------- CMS basis / master ---------- */
.cms-body{margin:0;padding:0;font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;background:var(--dp-bg);color:var(--dp-text)}
.cms-body *{box-sizing:border-box}
.cms-container{display:grid;grid-template-rows:auto auto 1fr auto;min-height:100vh}
.cms-header{background:var(--dp-card);padding:15px 30px;border-bottom:1px solid var(--dp-border);display:flex;justify-content:space-between;align-items:center}
.cms-logo img{height:50px;width:auto}
.user-bar{background:var(--dp-primary);color:#fff;padding:10px 30px;display:flex;justify-content:space-between;align-items:center;font-size:.9rem;gap:15px}
.user-bar a,.user-bar .logout-link{color:#fff;text-decoration:none;margin-left:15px;display:inline-flex;align-items:center;gap:6px;transition:opacity .2s;cursor:pointer}
.user-bar a:hover,.user-bar .logout-link:hover{opacity:.8}
.main-wrapper{display:flex;flex:1;max-width:1400px;width:100%;margin:20px auto;padding:0 20px;gap:20px}
aside.sidebar{width:250px;flex-shrink:0}
.nav-section{background:var(--dp-card);border-radius:var(--dp-radius);box-shadow:0 2px 4px rgba(0,0,0,.05);margin-bottom:20px;overflow:hidden;border:1px solid var(--dp-border)}
.nav-header{background:#f8f9fa;padding:12px 15px;font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;color:#666;border-bottom:1px solid var(--dp-border)}
.nav-list{list-style:none;margin:0;padding:0}
.nav-item a{display:flex;align-items:center;padding:10px 15px;color:var(--dp-text);text-decoration:none;font-size:.95rem;border-bottom:1px solid #f0f0f0;transition:background .2s,color .2s}
.nav-item:last-child a{border-bottom:0}
.nav-item a:hover{background:#f0f7ff;color:var(--dp-accent)}
.icon{width:18px;height:18px;stroke-width:2;stroke:currentColor;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.nav-item .icon{margin-right:10px;color:#666}.nav-item a:hover .icon{color:var(--dp-accent)}.user-bar .icon{color:#fff}
main.content{flex:1;min-width:0;background:var(--dp-card);padding:25px;border-radius:var(--dp-radius);box-shadow:0 2px 4px rgba(0,0,0,.05);border:1px solid var(--dp-border)}
.cms-footer{text-align:center;padding:15px;font-size:.85rem;color:#666;border-top:1px solid var(--dp-border);background:var(--dp-card)}
.cms-footer a{color:var(--dp-accent);text-decoration:none}

/* ---------- Algemene knoppen / beheer ---------- */
.adm-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.adm-head h1{margin:0;color:#243746;font-size:28px}
.adm-btn{display:inline-block;padding:10px 16px;background:var(--dp-primary);color:#fff!important;text-decoration:none;border:0;border-radius:7px;cursor:pointer;font:inherit}.adm-btn.secondary{background:#fff;color:var(--dp-primary)!important;border:1px solid #d5dde4}
.adm-table{width:100%;border-collapse:collapse;background:#fff}.adm-table th,.adm-table td{padding:11px;border-bottom:1px solid #e7ebee;text-align:left}.adm-table th{background:#f7f9fb;color:#59636e}
.adm-badge{padding:4px 8px;border-radius:12px;background:#e7f6ec;color:#23713b;font-size:12px}.adm-off{background:#f2f2f2;color:#777}
.adm-form{max-width:900px;background:#fff;border:1px solid #e1e6ea;padding:24px;border-radius:10px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.adm-field{margin-bottom:20px}.adm-field>label{display:block;font-size:12px;font-weight:700;margin-bottom:7px;color:#4b5965}.adm-field input[type=text],.adm-field input[type=email],.adm-field input[type=password],.adm-field textarea{width:100%;padding:10px 11px;border:1px solid #ccd5dd;border-radius:7px;font:inherit}.adm-field textarea{resize:vertical}
.adm-msg{padding:12px 14px;background:#fff4d6;border:1px solid #efd88e;border-radius:7px;margin-bottom:16px;color:#6f5610}
.adm-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:8px}.adm-grid input[type=checkbox]{width:19px;height:19px;accent-color:var(--dp-accent)}
.permission-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.permission-title strong{color:var(--dp-primary);font-size:15px}.permission-help{color:#7b8792;font-size:12px}
.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:10px;width:100%}.permission-grid>span{display:flex;align-items:center;min-height:52px;padding:10px 13px;border:1px solid #dfe6ec;border-radius:8px;background:#fafcfd;transition:border-color .15s,background .15s,box-shadow .15s}.permission-grid>span:hover{background:#f4f9fc;border-color:#b8cfdf;box-shadow:0 1px 2px rgba(0,0,0,.04)}.permission-grid input[type=checkbox]{width:21px;height:21px;min-width:21px;margin:0 11px 0 0;cursor:pointer;accent-color:#2f8fd5}.permission-grid label{flex:1;margin:0;cursor:pointer;color:#2f3d48;font-size:13px;font-weight:600;line-height:1.35}.permission-grid>span:has(input[type=checkbox]:checked){background:#eef7fd;border-color:#6eb4e4;box-shadow:inset 0 0 0 1px rgba(47,143,213,.08)}
.save-bar{margin-top:22px;padding-top:18px;border-top:1px solid #edf0f2;display:flex;justify-content:flex-end}

/* ---------- Productieoverzicht ---------- */
.prod-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:22px;flex-wrap:wrap}.prod-head h1{margin:0 0 6px;font-size:26px;color:var(--dp-primary)}.prod-sub{color:var(--dp-muted)}
.prod-actions{display:flex;gap:8px;flex-wrap:wrap}.prod-btn{display:inline-block;border:0;border-radius:7px;padding:10px 15px;background:var(--dp-accent);color:#fff!important;text-decoration:none;cursor:pointer;font:inherit}.prod-btn.secondary{background:#fff;color:var(--dp-primary)!important;border:1px solid #d9e0e7}.prod-btn.done{background:var(--dp-success)}.prod-btn.reset{background:#fff;color:#555!important;border:1px solid #d9e0e7}
.prod-tabs{display:flex;gap:8px;margin:0 0 20px;flex-wrap:wrap}.prod-tabs a{padding:9px 14px;border:1px solid #dfe4ea;border-radius:7px;text-decoration:none;color:#4b5563;background:#fff}.prod-tabs a.active{background:var(--dp-primary);color:#fff;border-color:var(--dp-primary)}
.prod-kpis{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:12px;margin-bottom:22px}.prod-kpi{border:1px solid #e3e7eb;border-radius:9px;padding:16px;background:#fff}.prod-kpi strong{font-size:28px;display:block;color:var(--dp-primary)}.prod-kpi span{color:var(--dp-muted);font-size:13px}
.prod-alert{padding:12px 14px;border-radius:7px;margin-bottom:16px;background:#fff8e6;border:1px solid #f1d48a;color:#735b14}.prod-error{background:#fff1f1;border-color:#efb3b3;color:var(--dp-danger)}
.prod-table{width:100%;border-collapse:collapse}.prod-table th{text-align:left;background:#f7f9fb;color:#59636e;font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:11px;border-bottom:1px solid var(--dp-border)}.prod-table td{padding:12px 11px;border-bottom:1px solid #edf0f2;vertical-align:top}.prod-table tr:hover td{background:#fafcff}
.prod-project{font-weight:700;color:var(--dp-primary)}.prod-customer{font-weight:600}.prod-muted{font-size:12px;color:#78838f;margin-top:3px}.prod-badge{display:inline-block;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700;background:#e8f2fb;color:#225f86;border:1px solid #c8deef}.prod-badge.busy{background:#fff3cd;color:#795d00;border-color:#ecd98d}.prod-badge.blocked{background:#fdeaea;color:#9b2525;border-color:#efb7b7}.prod-badge.done{background:#e7f6ec;color:#23713b;border-color:#bfe1c8}.prod-link{color:var(--dp-accent);text-decoration:none;font-weight:600}.prod-teamnames{font-weight:600;color:#40515f}.prod-teamnames.empty{font-weight:400;color:#9aa3ab}.prod-search{margin-bottom:14px;display:flex;gap:8px}.prod-search input{max-width:360px;width:100%;padding:9px 10px;border:1px solid #d9e0e7;border-radius:7px}

/* ---------- Productiedetail ---------- */
.prod-back{display:inline-block;margin-bottom:18px;color:var(--dp-accent);text-decoration:none}.prod-detail-head{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:20px}.prod-detail-head h1{margin:0 0 5px;color:var(--dp-primary)}.prod-meta{color:var(--dp-muted)}
.prod-card{border:1px solid #e2e7eb;border-radius:9px;padding:18px;margin-bottom:16px;background:#fff}.prod-card h2{font-size:17px;margin:0 0 14px;color:var(--dp-primary)}.prod-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:14px}.prod-label{font-size:11px;text-transform:uppercase;color:#89939e;margin-bottom:3px}.prod-value{font-weight:600}.prod-status{font-size:20px;font-weight:700;color:var(--dp-primary)}
.prod-lines{width:100%;border-collapse:collapse}.prod-lines th{text-align:left;background:#f7f9fb;padding:10px;border-bottom:1px solid #e1e6ea;font-size:12px}.prod-lines td{padding:10px;border-bottom:1px solid #edf0f2}.prod-product-details{margin:0}.prod-product-details summary{cursor:pointer;font-weight:700;color:var(--dp-primary);list-style:none}.prod-product-details summary::-webkit-details-marker{display:none}.prod-product-details summary:before{content:'+';display:inline-block;width:22px;height:22px;line-height:19px;text-align:center;border:1px solid #cfd8df;border-radius:4px;margin-right:8px;color:#5b6770}.prod-product-details[open] summary:before{content:'−'}.prod-product-children{margin-top:10px;margin-left:28px;border-left:2px solid #e5eaee;padding-left:14px}.prod-product-child{padding:7px 0;border-bottom:1px solid #f0f2f4}.prod-product-child:last-child{border-bottom:0}.prod-child-code{display:inline-block;min-width:95px;color:var(--dp-muted)}.prod-child-extra{color:var(--dp-muted)}.prod-main-code{color:var(--dp-muted);font-weight:400;margin-left:8px}
.prod-team{display:flex;gap:7px;flex-wrap:wrap}.prod-person{background:#eef5fb;color:#244b68;border-radius:999px;padding:6px 10px;font-weight:600;font-size:13px}.prod-select-panel{border:2px solid #dbe9f5;background:#f8fbfe}.prod-checks span{display:flex;align-items:center;gap:11px;padding:9px 10px;border-bottom:1px solid #edf0f2}.prod-checks span:last-child{border-bottom:0}.prod-checks label{display:inline-block!important;flex:1;margin:0!important;padding:0!important;border:0!important;cursor:pointer;font-weight:600}.prod-checks input[type=checkbox]{width:22px;height:22px;min-width:22px;margin:0!important;accent-color:var(--dp-accent);cursor:pointer}.prod-top-action{display:flex;align-items:center;justify-content:flex-end;margin-bottom:14px}

/* ---------- Productiemedewerkers beheer ---------- */
.pm-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px;flex-wrap:wrap}.pm-head h1{margin:0;color:var(--dp-primary)}.pm-btn{display:inline-block;padding:10px 14px;border-radius:7px;background:var(--dp-accent);color:#fff!important;text-decoration:none;border:0;cursor:pointer}.pm-btn.secondary{background:#fff;color:#555!important;border:1px solid #d9e0e7}
.pm-table{width:100%;border-collapse:collapse}.pm-table th{text-align:left;background:#f7f9fb;padding:11px;border-bottom:1px solid #e1e6ea;font-size:12px;text-transform:uppercase}.pm-table td{padding:12px 11px;border-bottom:1px solid #edf0f2}.pm-muted{color:#7b8792}.pm-status{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;background:#e7f6ec;color:#23713b}.pm-status.off{background:#eef0f2;color:#67717b}.pm-link{color:var(--dp-accent);text-decoration:none;font-weight:600}.pm-alert{padding:12px 14px;border-radius:7px;margin-bottom:16px}.pm-error{background:#fff1f1;border:1px solid #efb3b3;color:var(--dp-danger)}.pm-ok{background:#eaf8ef;border:1px solid #a8dab8;color:#23683a}
.pm-card{max-width:650px;border:1px solid #e2e7eb;border-radius:9px;padding:22px;background:#fff}.pm-card h1{margin:0 0 20px;color:var(--dp-primary)}.pm-field{margin-bottom:17px}.pm-field label{display:block;font-size:12px;font-weight:700;margin-bottom:6px;color:#59636e}.pm-input{width:100%;padding:10px 11px;border:1px solid #d9e0e7;border-radius:7px;font:inherit}.pm-actions{display:flex;gap:9px;margin-top:20px}.pm-field input[type=checkbox]{width:20px;height:20px;vertical-align:middle;accent-color:var(--dp-accent)}

/* ---------- Login / setup / toegang ---------- */
.auth-page{margin:0;background:#f3f5f7;font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;color:var(--dp-primary);min-height:100vh}.auth-page *{box-sizing:border-box}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth-card{width:100%;max-width:440px;background:#fff;border:1px solid #dfe5ea;border-radius:12px;padding:28px;box-shadow:0 12px 36px rgba(0,0,0,.08)}.auth-card.wide{max-width:560px}.auth-card h1{margin:0 0 8px}.auth-muted{color:var(--dp-muted);margin-bottom:22px}.auth-field{margin-bottom:14px}.auth-field label{display:block;font-size:12px;font-weight:700;margin-bottom:6px}.auth-field input{width:100%;padding:11px;border:1px solid #ccd5dd;border-radius:7px}.auth-btn{width:100%;padding:11px;background:var(--dp-primary);color:#fff!important;border:0;border-radius:7px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block;text-align:center}.auth-error{background:#fff1f1;border:1px solid #efb3b3;color:var(--dp-danger);padding:10px;border-radius:7px;margin-bottom:14px}.auth-msg{background:#fff4d6;border:1px solid #efd88e;color:#6f5610;padding:10px;border-radius:7px;margin-bottom:14px}.auth-remember{margin:8px 0 18px}.auth-remember input{width:18px;height:18px;vertical-align:middle;accent-color:var(--dp-accent)}

/* ---------- Responsive ---------- */
@media(max-width:900px){.main-wrapper{flex-direction:column}.sidebar{width:100%!important}.prod-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){.prod-table thead{display:none}.prod-table,.prod-table tbody,.prod-table tr,.prod-table td{display:block;width:100%}.prod-table tr{border:1px solid #e2e7eb;border-radius:8px;margin-bottom:12px;padding:8px}.prod-table td{border:0;padding:6px 8px}.prod-table td:before{content:attr(data-label);display:block;font-size:11px;text-transform:uppercase;color:#8a949f;margin-bottom:2px}}
@media(max-width:760px){.permission-grid,.adm-grid{grid-template-columns:1fr}.adm-form{padding:18px}.user-bar{padding:10px 16px}.cms-header{padding:12px 16px}.main-wrapper{padding:0 10px;margin:10px auto}.content{padding:16px!important}}
@media(max-width:700px){.prod-grid{grid-template-columns:1fr}}

/* v45.51 - consumentenorders: bestaande pakbon opnieuw als PDF openen */
.prod-consumer-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.prod-pakbon-reprint{display:inline-flex;align-items:center;justify-content:center;padding:8px 10px;border:1px solid #cfd9e3;border-radius:7px;background:#fff;color:#23445f!important;text-decoration:none;font-weight:700;font-size:12px;line-height:1.15;white-space:nowrap}
.prod-pakbon-reprint:hover{background:#f4f8fb;border-color:#9fb7ca;color:#123b59!important}
@media(max-width:900px){.prod-consumer-actions{align-items:stretch}.prod-pakbon-reprint{white-space:normal;text-align:center}}
