:root{--bg:#f6f6f4;--card:#ffffff;--border:#e3e3df;--text:#1b1b19;--muted:#6f6f68;--accent:#185fa5;--accent-bg:#e6f1fb;--ok:#0f6e56;--ok-bg:#e1f5ee;--warn:#854f0b;--warn-bg:#faeeda;--danger:#a32d2d;--danger-bg:#fcebeb;--radius:8px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.6}h1{font-size:22px;margin:0 0 4px}h1,h2{font-weight:600}h2{font-size:17px;margin:0 0 12px}h3{font-size:15px;font-weight:600;margin:0 0 8px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1180px;margin:0 auto;padding:24px 20px 60px}.topbar{background:var(--card);border-bottom:1px solid var(--border);padding:0 20px}.topbar-inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:56px;gap:16px}.brand{font-weight:600;font-size:15px}.nav{display:flex;gap:4px;flex-wrap:wrap}.nav a{padding:6px 12px;border-radius:var(--radius);color:var(--muted);font-size:13px}.nav a:hover{background:var(--bg);text-decoration:none}.nav a.active{background:var(--accent-bg);color:var(--accent);font-weight:500}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:18px}.grid-menu{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:14px;gap:14px;margin-top:20px}.menu-box{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:22px;display:block;color:var(--text);transition:border-color .15s}.menu-box:hover{border-color:#c9c9c3;text-decoration:none}.menu-box .icon{font-size:22px}.menu-box .title{font-size:16px;font-weight:600;margin-top:8px}.menu-box .sub{font-size:13px;color:var(--muted)}.menu-box.disabled{opacity:.45;pointer-events:none}.btn,button{font:inherit;font-size:13px;padding:7px 13px;border-radius:var(--radius);border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer}.btn:hover,button:hover{border-color:#c9c9c3;text-decoration:none}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{opacity:.9}.btn-danger{color:var(--danger)}.btn-icon{padding:5px 7px;line-height:1}input,select,textarea{font:inherit;font-size:13px;padding:7px 9px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;color:var(--text);width:100%}input:focus,select:focus{outline:2px solid var(--accent-bg);border-color:var(--accent)}label{font-size:12px;color:var(--muted);display:block;margin-bottom:4px}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-weight:500;color:var(--muted);white-space:nowrap}td,th{padding:8px;border-bottom:1px solid var(--border)}td{vertical-align:middle}tr:last-child td{border-bottom:none}.table-wrap{overflow-x:auto}.badge{display:inline-block;font-size:12px;padding:2px 9px;border-radius:var(--radius);white-space:nowrap}.badge-draft{background:#f1efe8;color:#5f5e5a}.badge-produksi{background:#faeeda;color:#854f0b}.badge-revisi{background:#fcebeb;color:#a32d2d}.badge-packing{background:#eeedfe;color:#534ab7}.badge-stuffing{background:#e6f1fb;color:#185fa5}.badge-shipped{background:#e1f5ee;color:#0f6e56}.badge-proses{background:var(--warn-bg);color:var(--warn)}.badge-selesai{background:var(--ok-bg);color:var(--ok)}.badge-batal{background:var(--danger-bg);color:var(--danger)}.badge-accent,.bar-pilih{background:var(--accent-bg);color:var(--accent)}.bar-pilih{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border:1px solid var(--accent);border-radius:var(--radius);padding:10px 14px;margin-bottom:14px;font-size:13px}.bar-pilih button:not(.btn-primary){background:#fff}.bar-pilih .btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}tr.baris-dipilih td{background:#f4f9ff}textarea{min-height:64px;resize:vertical;font-family:inherit}td input,td select{padding:5px 7px;font-size:12.5px}.chips{flex-wrap:wrap;margin-bottom:14px}.chip,.chips{display:flex;gap:6px}.chip{font-size:13px;padding:6px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--card);cursor:pointer;color:var(--muted);align-items:center}.chip.active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent);font-weight:500}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.spacer{flex:1 1}.muted{color:var(--muted)}.small{font-size:12px}.row{display:flex;gap:10px;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:10px;gap:10px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:100%;max-width:340px}.gantt{font-size:12px}.gantt-head{display:flex;border-bottom:1px solid var(--border);padding-bottom:6px}.gantt-label{width:170px;flex:none}.gantt-track{flex:1 1;position:relative;height:22px;background:#f1efe8;border-radius:4px}.gantt-row{display:flex;align-items:center;padding:6px 0;gap:8px}.gantt-bar{position:absolute;height:100%;border-radius:4px}.gantt-bar.produksi{background:#378add}.gantt-bar.stuffing{background:#1d9e75}.gantt-months{flex:1 1;display:flex}.gantt-months span{flex:1 1;font-size:11px;color:var(--muted);border-left:1px solid var(--border);padding-left:4px}.legend{display:flex;gap:16px;font-size:12px;color:var(--muted);margin-top:10px}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px}.alert{padding:10px 12px;border-radius:var(--radius);font-size:13px;margin-bottom:14px}.alert-error{background:var(--danger-bg);color:var(--danger)}.alert-ok{background:var(--ok-bg);color:var(--ok)}.empty{text-align:center;color:var(--muted);padding:36px 12px;font-size:13px}@media print{.no-print,.toolbar,.topbar{display:none!important}body{background:#fff}.card{border:none;padding:0}}.kertas{background:#fff;border:1px solid var(--border);border-radius:4px;padding:34px 38px;max-width:820px;margin:0 auto;color:#111;font-size:12px;line-height:1.45}.kertas h2{text-align:center;letter-spacing:2px;margin:14px 0 18px;font-size:18px;color:var(--accent)}.kop{display:flex;align-items:flex-start;gap:14px}.kop-logo{width:58px;height:58px;object-fit:contain;flex:none}.kop-teks{min-width:0;flex:1 1}.kop-nama{font-size:15px;font-weight:700;color:var(--accent)}.kop-alamat{font-size:8.5px;line-height:1.35;white-space:pre-line}.kop-vlk{max-width:190px;max-height:62px;object-fit:contain;display:block;margin-left:auto}.kop-sert{margin-left:auto;text-align:right;flex:none;max-width:200px}.kop-sert .besar{font-size:13px;font-weight:700}.kop-sert .kecil{font-size:9px;color:var(--muted)}.kop-garis{border-top:2px solid var(--accent);border-bottom:1px solid var(--accent);height:3px;margin:6px 0 0}.dok-info{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:4px 30px;gap:4px 30px;margin-bottom:14px}.dok-info>div{min-width:0}.dok-info .baris{display:flex;gap:6px;font-size:11px;align-items:flex-start}.dok-info .label{width:96px;color:var(--muted);font-weight:500;flex:none}.dok-info .isi{min-width:0;overflow-wrap:break-word;word-break:break-word}.dok-desc,.dok-info .isi{font-weight:600;white-space:pre-line}.dok-desc{font-size:11px;margin-bottom:14px}.dok-desc .judul{text-decoration:underline;font-weight:700;display:block;margin-bottom:2px}table.dok{width:100%;border-collapse:collapse;font-size:10.5px}table.dok td,table.dok th{border:1px solid #999;padding:4px 6px}table.dok th{background:#f1efe8;text-align:center;font-weight:700;font-size:9.5px}table.dok td.angka{text-align:right}table.dok td.tengah{text-align:center}table.dok tr.total td{background:#f1efe8;font-weight:700}table.dok tr.ringkas td{padding:2px 6px;white-space:nowrap}.dok-bawah{display:flex;justify-content:space-between;gap:30px;margin-top:24px}.dok-ttd{text-align:center;min-width:210px;font-size:11px}.dok-ttd .ruang{height:46px}.dok-ttd .nama{font-weight:700;border-top:1px solid #999;padding-top:3px}.dok-catatan{border:1px solid #999;padding:3px 10px;font-size:10px;margin-bottom:3px;display:inline-block;font-weight:600}.peringatan-logo{background:var(--warn-bg);color:var(--warn);font-size:12px;padding:10px 12px;border-radius:var(--radius);margin-bottom:14px}@page{size:A4;margin:0}@media print{body,html{background:#fff}.kertas{border:none;max-width:none;margin:0;padding:14mm 12mm}.kertas,table.dok th,table.dok tr.total td{-webkit-print-color-adjust:exact;print-color-adjust:exact}.no-print,.peringatan-logo,.toolbar,.topbar{display:none!important}}