:root{--bg: #f4f6f9;--panel: #ffffff;--text: #1f2933;--muted: #6b7785;--border: #dde3ea;--primary: #1f5fbf;--primary-hover: #174c9a;--danger: #c0392b;--side: #17212f;--side-text: #c6d0dc;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}h1{font-size:20px;margin:0}h3{font-size:15px;margin:0 0 10px}.layout{display:flex;min-height:100vh}aside{width:220px;background:var(--side);color:var(--side-text);padding:16px 0;flex-shrink:0}.brand{font-weight:700;color:#fff;font-size:16px;padding:0 18px 16px}aside nav{display:flex;flex-direction:column;margin-bottom:10px}.nav-section{text-transform:uppercase;font-size:11px;letter-spacing:.06em;color:#7d8a9a;padding:10px 18px 4px}aside a,aside .soon{color:var(--side-text);text-decoration:none;padding:7px 18px}aside a:hover{background:#223047}aside a.active{background:var(--primary);color:#fff}aside .soon{color:#5d6a7a;cursor:default}main{flex:1;padding:20px 24px;min-width:0}.page-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.page-head h1{margin-right:auto}.card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:14px;margin-bottom:14px}.table-wrap{padding:0;overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}th{background:#f8fafc;font-weight:600;font-size:12px;color:var(--muted)}tfoot td{font-weight:700;background:#f8fafc}.num{text-align:right}tr.clickable{cursor:pointer}tr.clickable:hover{background:#f1f6ff}.lines input,.lines select{width:100%;min-width:90px}.lines-foot{display:flex;justify-content:space-between;align-items:center;padding:10px}input,select,textarea{font:inherit;padding:6px 8px;border:1px solid var(--border);border-radius:5px;background:#fff}input:disabled,select:disabled{background:#f3f5f7;color:var(--text)}input:focus,select:focus,textarea:focus{outline:2px solid #bcd3f5;border-color:var(--primary)}.search{min-width:220px}button,.button{font:inherit;padding:7px 14px;border-radius:5px;border:1px solid var(--border);background:#fff;color:var(--text);cursor:pointer;text-decoration:none;display:inline-block}button:hover,.button:hover{background:#f1f4f8}button.primary,.button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover,.button.primary:hover{background:var(--primary-hover)}button.danger{color:var(--danger);border-color:#e7b7b1}button.link{border:none;background:none;color:var(--danger);padding:2px 6px}button:disabled{opacity:.6;cursor:wait}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px 16px}.form-grid label{display:flex;flex-direction:column;gap:4px}.form-grid label>span{font-size:12px;color:var(--muted);font-weight:600}.form-grid label.check{flex-direction:row;align-items:center;gap:8px}.form-grid label.check>span{font-size:14px;color:var(--text);font-weight:400}.form-grid .full{grid-column:1 / -1}.actions{display:flex;gap:8px}.error{background:#fdecea;color:var(--danger);border:1px solid #f5c6c0;padding:9px 12px;border-radius:6px;margin-bottom:12px}.muted{color:var(--muted)}.center{text-align:center}.badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px}.badge.green{background:#e3f6e8;color:#1e7b3a}.badge.amber{background:#fff3d6;color:#8a5a00}.badge.grey{background:#eceff3;color:#5d6a7a}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-bottom:14px}.tile{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit;margin:0}.tile strong{font-size:22px}.tile:hover{border-color:var(--primary)}.tile.alert strong{color:var(--danger)}.badge.blue{background:#e3edfb;color:#1f5fbf}.text-danger{color:var(--danger)}.ok{color:#1e7b3a;font-weight:600}.lines td small{display:block;font-size:11px}button.link-plain{border:none;background:none;color:var(--primary);padding:2px 6px;font-size:12px}.lines-foot{align-items:flex-start}table.totals{width:300px}table.totals td{padding:5px 10px;border-bottom:1px solid var(--border)}table.totals tr.grand td{font-weight:700;font-size:15px;border-bottom:none}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172373;display:flex;align-items:flex-start;justify-content:center;padding-top:8vh;z-index:10}.modal{width:min(960px,94vw);max-height:80vh;overflow:auto}.modal .actions{margin-top:12px}.print-page{max-width:900px;margin:0 auto;padding:24px;background:#fff;color:#000;font-size:12px}.print-head{display:flex;justify-content:space-between;border-bottom:2px solid #000;padding-bottom:10px}.print-head h2{margin:0 0 4px;font-size:18px}.print-title{font-size:18px;font-weight:700;align-self:flex-end}.print-parties{display:flex;justify-content:space-between;gap:20px;padding:12px 0}.print-parties table{width:auto}.print-parties td{border:none;padding:2px 8px}.print-lines th,.print-lines td{border:1px solid #999;padding:5px 6px;white-space:normal}.print-lines th{background:#eee;color:#000}.print-foot{display:flex;justify-content:space-between;gap:20px;margin-top:12px}.print-terms pre{font-family:inherit;white-space:pre-wrap;margin:4px 0}.print-sign{display:flex;justify-content:space-between;margin-top:50px}@media print{.print-page{padding:0}@page{size:A4;margin:12mm}}.print-copy{text-align:right;font-size:11px;font-style:italic;margin-bottom:4px}.print-party-name{font-weight:700;font-size:13px}.print-words{margin-bottom:8px}.print-hsn{width:auto;margin-top:4px}.print-bank{margin-top:8px}.section-title{margin:6px 0 8px}.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:14px}.progress{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.progress div{height:100%;background:#1e7b3a}.bom-tree,.bom-tree ul{list-style:none;margin:0;padding-left:18px}.bom-tree{padding-left:0}.bom-tree li{border-left:1px dashed var(--border);padding:3px 0 3px 10px}.bom-tree .tree-asm{font-weight:600}.badge.red{background:#fdecea;color:var(--danger)}tr.row-fail td{background:#fff5f4}.inline{display:flex;gap:8px;align-items:center}.check-inline{display:inline-flex;gap:4px;align-items:center;white-space:nowrap}.tabs{display:flex;gap:4px;margin-bottom:10px}.tab{border-radius:5px 5px 0 0}.tab.active{background:var(--primary);border-color:var(--primary);color:#fff}table.peg{width:auto;margin:4px 0 8px}table.peg td{padding:3px 10px;border-bottom:1px dashed var(--border)}.peg-wrap{padding:6px 0}.strong-row td{font-weight:700}.small{font-size:11px}.nowrap{white-space:nowrap}tr.row-unmarked td{background:#fffbea}table.muster th,table.muster td{padding:4px 3px;font-size:11px;text-align:center}table.muster td:first-child{text-align:left;white-space:nowrap}.att-A{color:var(--danger);font-weight:700}.att-WO,.att-H{color:var(--muted);background:#f3f5f7}.att-HD{color:#8a5a00}table.register td{vertical-align:top}.user-box{padding:0 18px 14px;margin-bottom:6px;border-bottom:1px solid #223047;font-size:12px}.user-box .user-name{color:#fff;font-weight:600;font-size:13px}.user-box .user-role{color:#7d8a9a;margin-bottom:4px}.user-box a{display:inline;padding:0;color:var(--side-text);text-decoration:underline}.user-box a:hover{background:none;color:#fff}button.link-side{border:none;background:none;padding:0;color:var(--side-text);text-decoration:underline;font-size:12px;cursor:pointer}button.link-side:hover{background:none;color:#fff}.auth-screen{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}.auth-card{width:min(380px,100%);padding:24px}.auth-card h1{margin-bottom:6px}.auth-brand{font-weight:700;color:var(--primary);margin-bottom:14px}.auth-form{display:flex;flex-direction:column;gap:12px;margin-top:12px}.auth-form label{display:flex;flex-direction:column;gap:4px}.auth-form label>span{font-size:12px;color:var(--muted);font-weight:600}.auth-form p{margin:0}.success{background:#e3f6e8;color:#1e7b3a;border:1px solid #b9e3c4;padding:9px 12px;border-radius:6px}table.perm-matrix{width:auto;min-width:520px;margin:12px 0}table.perm-matrix td,table.perm-matrix th{padding:6px 14px}.no-access{max-width:520px}.einv h3{margin-top:4px}.einv-ewb{border-top:1px solid var(--border);margin-top:14px;padding-top:10px}.einv-irn{display:flex;gap:14px;align-items:flex-start}.einv-record{margin-top:10px}.einv-record textarea,.card textarea.mono{width:100%}.mono{font-family:ui-monospace,Consolas,monospace;font-size:12px}.irn{word-break:break-all}.problems{margin:6px 0;padding-left:20px}.actions.wrap{flex-wrap:wrap;align-items:center}.check-inline{display:inline-flex;align-items:center;gap:6px}.print-irn{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid #000;padding:6px 0}.print-irn .irn{font-size:11px}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}table.calc td{padding:5px 10px}table.calc input{width:140px}.form16 h2{margin:0 0 4px}.form16 h3{margin:14px 0 6px;font-size:14px}.form16 h4{margin:10px 0 4px;font-size:12px}table.f16-grid td{border:1px solid #999;padding:6px;vertical-align:top;width:50%}table.f16-b td.f16-no{width:36px}.f16-verify{text-align:justify;line-height:1.5}@media print{.form16{page-break-after:always}.page-break{page-break-before:always}}.module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}.module-card{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--border);border-radius:6px;padding:8px 10px;cursor:pointer}.module-card.on{border-color:var(--primary);background:#f3f7fd}.module-card input{margin-top:3px}.tabs.wrap{flex-wrap:wrap}table.import-problems{margin-top:6px;background:transparent}table.import-problems td{padding:2px 10px 2px 0;border:none;color:inherit}.billing-banner{background:#fff3d6;color:#8a5a00;border:1px solid #f0d58c;padding:8px 12px;border-radius:6px;margin-bottom:12px}.billing-banner.late{background:#fdecea;color:var(--danger);border-color:#f5c6c0}table.totals{width:auto;min-width:260px}table.totals td{padding:3px 8px}
