:root{--brand-dark:#2b2f38;--brand-dark-2:#363b46;--brand-accent:#b8c83f;--brand-accent-ink:#3f4718;--bg:#f4f5f7;--surface:#fff;--border:#e3e6ea;--text:#1c1f26;--muted:#6b7280;--row-alt:#fafbfc;--row-hover:#f0f4e6;--radius:10px;--shadow:0 1px 3px #14171c14, 0 1px 2px #14171c0a;--header-h:50px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;min-height:100dvh;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app-header{z-index:30;height:var(--header-h);background:var(--brand-dark);color:#fff;align-items:center;gap:12px;padding:0 16px;display:flex;position:sticky;top:0}.app-header img{width:auto;height:26px;display:block}.app-header .spacer{flex:1}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;min-height:40px;padding:8px 14px;transition:background .12s,border-color .12s}button:hover:not(:disabled){background:#f7f8f9;border-color:#c8ccd2}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--brand-accent);border-color:var(--brand-accent);color:var(--brand-accent-ink);font-weight:600}button.primary:hover:not(:disabled){background:#aebb38;border-color:#aebb38}input,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;min-height:40px;padding:8px 10px}input:focus,select:focus{outline:2px solid var(--brand-accent);outline-offset:-1px;border-color:var(--brand-accent)}.dt{flex-direction:column;gap:12px;min-width:0;display:flex}.dt-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dt-ctl-btn{min-height:38px;padding:7px 12px}.dt-ctl-btn.is-active{border-color:var(--brand-accent);background:var(--row-hover);font-weight:600}.dt-sortctl{color:var(--muted);align-items:center;gap:6px;margin-left:auto;font-size:14px;display:inline-flex}.dt-sortctl select{min-height:38px}.dt-filters{grid-template-columns:1fr;gap:10px;display:grid}.dt-filter-field{flex-direction:column;gap:4px;display:flex}.dt-filter-field span{color:var(--muted);font-size:12px;font-weight:600}.dt-filter-input{align-items:center;gap:6px;display:flex}.dt-filter-input input{flex:1;min-width:0}.dt-op{color:var(--muted);font-weight:700}.dt-scroll{min-width:0}.dt-table{border-collapse:separate;border-spacing:0;width:100%;font-size:13.5px}.dt-table thead th{top:var(--header-h);z-index:2;background:var(--brand-dark);color:#fff;text-align:left;vertical-align:bottom;border-bottom:2px solid var(--brand-accent);white-space:normal;max-width:150px;padding:8px 10px;line-height:1.2;position:sticky}.dt-th-label{cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600}.dt-sort{color:var(--brand-accent);margin-left:4px;font-size:11px}.dt-table tbody td{border-bottom:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;max-width:260px;padding:7px 10px;overflow:hidden}.dt-table tbody td.num-cell{font-variant-numeric:tabular-nums}.dt-table tbody tr:nth-child(2n) td{background:var(--row-alt)}.dt-table tbody tr:hover td{background:var(--row-hover)}.dt-table tbody tr:last-child td{border-bottom:none}.dt-empty{text-align:center;color:var(--muted);padding:32px 16px}.dt-pager{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dt-pager .page-info{font-size:14px}.dt-pager .result-count{color:var(--muted);margin-left:auto;font-size:13px}.dt-modal-backdrop{z-index:50;background:#14171c80;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dt-modal{background:var(--surface);border-radius:var(--radius);flex-direction:column;width:100%;max-width:640px;max-height:calc(100dvh - 32px);display:flex;overflow:hidden;box-shadow:0 12px 48px #00000047}.dt-modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.dt-modal-head h3{margin:0;font-size:16px}.dt-modal-close{min-height:auto;color:var(--muted);background:0 0;border:none;padding:0 6px;font-size:24px;line-height:1}.dt-modal-body{padding:16px;overflow-y:auto}.dt-modal-foot{border-top:1px solid var(--border);align-items:center;gap:8px;padding:12px 16px;display:flex}.dt-modal-foot .result-count{color:var(--muted);font-size:13px}.section{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.section>summary{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--radius);align-items:center;gap:8px;padding:12px 14px;font-weight:600;list-style:none;display:flex}.section>summary::-webkit-details-marker{display:none}.section>summary:before{content:"▸";color:var(--brand-accent);font-size:12px;transition:transform .15s}.section[open]>summary:before{transform:rotate(90deg)}.section>summary:hover{background:var(--bg)}.section[open]>summary{border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0}.section-body{padding:12px 14px 14px}.col-order{flex-direction:column;gap:6px;max-width:460px;margin:6px 0 0;padding:0;list-style:none;display:flex}.col-item{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}.col-head{align-items:center;gap:8px;display:flex}.col-actions{gap:4px;margin-left:auto;display:flex}.col-cfg{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.col-filter-type{min-height:28px;padding:2px 6px;font-size:12px}.col-item.dragging{opacity:.5;border-color:var(--brand-accent)}.col-grip{cursor:grab;color:var(--muted);-webkit-user-select:none;user-select:none;font-size:16px;line-height:1}.col-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.col-item button{min-height:30px;padding:2px 8px}.col-filter{color:var(--muted);white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:inline-flex}.col-filter input{min-height:auto}.page{grid-template-columns:minmax(0,1fr);gap:16px;padding:16px;display:grid}.page>*{min-width:0}@media (max-width:600px){.page{padding:10px 0}.dt-controls,.dt-pager{padding:0 10px}.dt-scroll{border-left:none;border-right:none;border-radius:0}.dt-sortctl{margin-left:0}}@media (min-width:768px){.page{padding:24px}.dt-filters{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}}
