:root{--tat-bg: #f7f3eb;--tat-surface: #fffdf8;--tat-surface-muted: #fbf6ed;--tat-border: #e0d6c6;--tat-border-strong: #d6c8b4;--tat-text: #203047;--tat-text-muted: #766d60;--tat-primary: #2f8a9b;--tat-primary-strong: #216e78;--tat-brand: #b66a3c;--tat-brand-soft: #fff0e3;--tat-warning: #a85d30;--tat-success-bg: #e8f3f1;--tat-radius: 10px;--tat-shadow: 0 18px 40px rgba(74, 62, 42, .1)}*,*:before,*:after{box-sizing:border-box}html,body,#app{min-height:100vh;min-width:0}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans SC,sans-serif;font-size:14px;line-height:1.5;color:var(--tat-text);background:var(--tat-bg);-webkit-font-smoothing:antialiased;overflow-x:hidden}button,input,select,textarea{font:inherit;min-width:0}a{color:inherit;text-decoration:none}.btn{min-width:0;max-width:140px;height:34px;padding:0 14px;border-radius:8px;border:1px solid var(--tat-border-strong);background:var(--tat-surface);color:var(--tat-text);cursor:pointer;display:inline-grid;place-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-primary{border-color:var(--tat-primary);background:var(--tat-primary);color:#fff}.btn-outline{background:var(--tat-surface);color:var(--tat-text-muted)}.btn-link{border:0;background:transparent;color:var(--tat-primary-strong);cursor:pointer;padding:0 4px;max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-link.danger{color:var(--tat-warning)}.page-header,.filter-bar,.table-wrap,.modal-panel,.state-hint{min-width:0;max-width:100%;border:1px solid var(--tat-border);background:#fffdf8f0;border-radius:12px}.page-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px;margin-bottom:14px}.page-title{min-width:0;margin:0;color:var(--tat-text);font-size:20px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-actions,.actions{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap;justify-content:flex-end}.filter-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding:14px;margin-bottom:14px}.filter-item{min-width:150px;flex:1 1 170px}.filter-label,.form-label{display:block;color:var(--tat-text-muted);font-size:12px;margin-bottom:6px}.filter-input,.form-input{width:100%;min-width:0;height:34px;border:1px solid var(--tat-border-strong);border-radius:8px;background:#fffaf2;color:var(--tat-text);padding:0 10px}.table-wrap{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;min-width:960px}th,td{padding:11px 12px;border-bottom:1px solid #f0e8dc;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}th{background:var(--tat-surface-muted);color:#928572;font-size:12px;font-weight:700}.badge-on,.badge-off,.status-badge{display:inline-block;max-width:86px;padding:3px 8px;border-radius:999px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge-on,.status-badge.success{background:var(--tat-success-bg);color:var(--tat-primary-strong)}.badge-off,.status-badge.warn{background:var(--tat-brand-soft);color:var(--tat-warning)}.state-hint{padding:22px;color:var(--tat-text-muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#20304757;display:grid;place-items:center;padding:20px;z-index:1000;overflow:auto}.modal-panel{width:min(760px,100%);max-height:calc(100vh - 40px);overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto;box-shadow:var(--tat-shadow)}.modal-body{overflow:auto;padding:18px}.modal-header,.modal-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--tat-border)}.modal-footer{border-top:1px solid var(--tat-border);border-bottom:0;justify-content:flex-end}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:12px}.form-group,.flex-1,.modal-header,.modal-footer{min-width:0}@media (max-width: 760px){.page-header{grid-template-columns:minmax(0,1fr);padding:14px}.page-actions{justify-content:flex-start}.filter-item{min-width:0;flex-basis:100%}.filter-bar{align-items:stretch;gap:10px}.filter-bar>.btn,.page-actions>.btn{max-width:none;flex:1 1 120px}.modal-overlay{align-items:end;padding:10px}.modal-panel{width:100%;max-height:calc(100dvh - 20px);border-radius:12px}.modal-header,.modal-footer,.modal-body{padding:12px}}
