:root{--bg: #081624;--bg-accent: #123651;--surface: #f6fbff;--surface-2: #ffffff;--line: #d4e3f1;--text: #12202f;--text-soft: #4f6479;--primary: #0d87c4;--primary-deep: #0a6ea0;--danger: #ce4454;--success: #2f9f66;--radius: 14px;--shadow: 0 10px 28px rgba(9, 40, 68, .12)}*{box-sizing:border-box}html,body{height:100%;margin:0;font-family:Manrope,Segoe UI,sans-serif;color:var(--text);background:radial-gradient(circle at top left,rgba(22,86,130,.2),transparent 48%),radial-gradient(circle at bottom right,rgba(30,115,170,.18),transparent 45%),linear-gradient(140deg,#e7f3fb,#f8fcff 45%,#edf6fc)}h1,h2,h3,h4{margin:0;font-family:Sora,Manrope,sans-serif}button,input,select,textarea{font:inherit}app-root{display:block;min-height:100%}.page-shell{display:grid;gap:1rem}.surface{background:var(--surface-2);border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.page-header p{margin:.3rem 0 0;color:var(--text-soft);font-size:.9rem}.toolbar{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.btn{border:1px solid transparent;border-radius:12px;padding:.55rem .9rem;min-height:42px;font-weight:700;cursor:pointer;transition:.2s ease}.btn-primary{background:linear-gradient(120deg,var(--primary),var(--primary-deep));color:#fff}.btn-primary:hover{filter:brightness(1.06)}.btn-ghost{background:#f4f9fd;border-color:#c9def0;color:#29506f}.btn-danger{background:#fff0f2;border-color:#f0bbc2;color:#9f2030}.btn:disabled{opacity:.6;cursor:not-allowed}.field,.field-inline{display:grid;gap:.35rem}.field label,.field-inline label{font-size:.78rem;font-weight:700;color:#3e566f;text-transform:uppercase;letter-spacing:.04em}input,select,textarea{border:1px solid #c5d9ea;border-radius:11px;padding:.58rem .7rem;min-height:42px;background:#fff;color:var(--text)}textarea{min-height:96px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid rgba(14,135,196,.22);border-color:#6fb8df}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse}th,td{padding:.68rem;text-align:left;border-bottom:1px solid #e2edf6}th{font-size:.73rem;text-transform:uppercase;letter-spacing:.05em;color:#54728c;background:#f4f9fd}.pagination{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;color:var(--text-soft)}.pagination .controls{display:flex;align-items:center;gap:.45rem}.badge{padding:.25rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700;display:inline-flex;align-items:center;gap:.25rem}.badge-success{background:#e8f8ee;color:#26784e}.badge-warning{background:#fff5dd;color:#8f6418}.badge-danger{background:#ffecef;color:#983446}.muted{color:var(--text-soft)}.error-text{color:#b72038}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#03152394;display:grid;place-items:center;padding:1rem}.modal{width:min(780px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;border:1px solid #d3e3f2;box-shadow:0 28px 60px #04182847}.modal-header,.modal-body,.modal-footer{padding:1rem}.modal-header{border-bottom:1px solid #e5eff7}.modal-footer{border-top:1px solid #e5eff7;display:flex;justify-content:flex-end;gap:.6rem}@media (max-width: 900px){.page-header{align-items:flex-start;flex-direction:column}.toolbar{width:100%}.toolbar .btn{flex:1 1 auto}th,td{padding:.56rem}}@media (max-width: 760px){.page-shell{gap:.8rem}.pagination{align-items:stretch;flex-direction:column}.pagination .controls{width:100%}.pagination .controls .btn{flex:1 1 0}table.mobile-table,table.mobile-table tbody,table.mobile-table tr,table.mobile-table td{display:block;width:100%}table.mobile-table thead{display:none}table.mobile-table tbody{display:grid;gap:.65rem}table.mobile-table tr{border:1px solid #d7e6f3;border-radius:12px;background:#fff;box-shadow:0 5px 14px #0b2c4a14;padding:.3rem 0}table.mobile-table td{border-bottom:1px solid #e8f1f8;padding:.52rem .72rem;display:grid;grid-template-columns:minmax(84px,38%) 1fr;align-items:start;gap:.55rem;text-align:left}table.mobile-table td:before{content:attr(data-label);color:#4f6d86;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}table.mobile-table td:last-child{border-bottom:0}}
