:root{--header-height: 64px;--footer-height: 64px;--ai-panel-max-height: 200px;--ai-panel-height: var(--ai-panel-max-height);--app-page-max-width: 1200px;--app-page-gutter: 30px;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-soft: #e8f0ff;--color-text: #1f2937;--color-heading: #111827;--color-muted: #6b7280;--color-subtle: #4b5563;--color-background: #f9fafb;--color-card: #ffffff;--color-border: #e5e7eb;--color-dark: #111827;--color-success: #22c55e;--color-danger: #b00020;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--radius-pill: 999px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 40px;--space-2xl: 72px;--shadow-card: 0 4px 12px rgba(0, 0, 0, .08);--shadow-card-lg: 0 12px 30px rgba(17, 24, 39, .06);--shadow-primary: 0 10px 24px rgba(37, 99, 235, .28)}*,*:before,*:after{box-sizing:border-box}html{width:100%;overflow-x:hidden}body{width:100%;margin:0;font-family:Arial,sans-serif;background:var(--color-background);color:var(--color-text);overflow-x:hidden}main.app-content{padding-top:var(--header-height);padding-bottom:calc(var(--footer-height) + var(--ai-panel-height, var(--ai-panel-max-height)));min-height:calc(100vh - var(--header-height))}.app-page{width:100%;max-width:var(--app-page-max-width);margin:0 auto;padding:32px var(--app-page-gutter)}.page-container{width:100%;max-width:var(--app-page-max-width);margin:0 auto;padding-left:var(--app-page-gutter);padding-right:var(--app-page-gutter)}.full-width-section{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}h1{font-size:36px;font-weight:700}h2{font-size:28px}.app-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-lg)}.app-button{border:none;border-radius:var(--radius-md);padding:12px 18px;font-size:14px;font-weight:600;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.app-button:hover{transform:translateY(-1px)}.app-button-primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-primary)}.app-button-primary:hover{background:var(--color-primary-hover)}.app-button-secondary{background:#ffffff;color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--shadow-card)}.app-button-secondary:hover{background:var(--color-background)}.app-input{width:100%;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md)}.app-section-card{margin-bottom:var(--space-lg);padding:18px 22px;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:radial-gradient(circle at top left,rgba(37,99,235,.08),transparent 34%),linear-gradient(135deg,#ffffff 0%,#f8fbff 100%);box-shadow:var(--shadow-card-lg)}.app-section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md)}.app-section-header>div{display:flex;flex-direction:column;gap:10px}.app-section-header h1,.app-section-header h2,.app-section-header h3{margin:0;color:var(--color-heading);font-size:28px;font-weight:900;line-height:1.1}.app-section-header p{margin:0;color:var(--color-muted);font-size:14px;line-height:1.5}.app-section-header p:first-child{color:var(--color-primary);font-size:12px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;line-height:1}@media (max-width: 650px){.app-section-header{flex-direction:column}.app-section-header .app-button{width:100%}}.app-table-card{width:100%;padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-card);box-shadow:var(--shadow-card-lg);overflow:hidden}.app-table-toolbar{display:flex;justify-content:flex-start;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);flex-wrap:wrap}.app-table-status{color:var(--color-muted);font-size:14px}.app-error{color:var(--color-danger);font-size:14px;font-weight:600}.app-pager{display:flex;align-items:center;gap:var(--space-sm);color:var(--color-muted);font-size:14px}.app-pager label{display:flex;align-items:center;gap:var(--space-sm)}.app-pager select{padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#ffffff;color:var(--color-text)}.app-table-button{border:1px solid var(--color-border);border-radius:var(--radius-md);background:#ffffff;color:var(--color-text);padding:8px 12px;font-size:13px;font-weight:700;cursor:pointer}.app-table-button:hover:not(:disabled){background:var(--color-background)}.app-table-button:disabled{cursor:not-allowed;opacity:.5}.app-table-scroll{width:100%;overflow-x:auto}.app-table{width:100%;border-collapse:separate;border-spacing:0;color:var(--color-text);font-size:14px}.app-table th,.app-table td{padding:13px 14px;border-bottom:1px solid var(--color-border);text-align:left;white-space:nowrap}.app-table th{background:var(--color-background);color:var(--color-heading);font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.app-table tbody tr:hover{background:#f8fbff}.app-table tbody tr:last-child td{border-bottom:none}.app-table th[role=button]{cursor:pointer;-webkit-user-select:none;user-select:none}.app-table .clickable-row{cursor:pointer}.app-table .clickable-row:focus{outline:2px solid rgba(37,99,235,.45);outline-offset:-2px}.app-table-empty{text-align:center;color:var(--color-muted);padding:var(--space-lg)}@media screen and (max-width: 700px){.app-table-toolbar{flex-direction:column;align-items:stretch}.app-pager{justify-content:space-between;flex-wrap:wrap;margin-left:0}}.app-page-indicator{color:var(--color-muted);font-weight:600}.app-page-size{display:flex;align-items:center;gap:var(--space-sm);margin-left:var(--space-md)}.app-button-danger{background:var(--color-danger);color:#fff;box-shadow:0 10px 24px #b0002038}.app-button-danger:hover{background:#8f001a}.app-muted{color:var(--color-muted)}.app-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.app-strong{font-weight:900}.app-field-error{margin-top:6px;font-size:12px;font-weight:700;color:var(--color-danger)}.app-alert{border-radius:var(--radius-lg);padding:12px 14px;border:1px solid rgba(176,0,32,.22);background:#fff1f2;color:var(--color-danger)}.app-alert-title{font-weight:900;margin-bottom:2px}.app-empty-state{background:var(--color-card);border:1px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);text-align:center}.app-empty-title{font-weight:900;font-size:16px;margin-bottom:6px}.app-empty-body{color:var(--color-muted);margin-bottom:var(--space-md)}.app-empty-inline{color:var(--color-muted);padding:10px 0}.app-pill,.app-badge,.app-chip{display:inline-flex;align-items:center;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-background);color:var(--color-text);font-size:12px;font-weight:800}.app-pill{gap:8px;padding:6px 10px}.app-badge,.app-chip{padding:4px 8px}.app-dot{width:8px;height:8px;border-radius:var(--radius-pill);background:var(--color-muted)}.app-dot-success{background:var(--color-success)}.app-spinner{width:14px;height:14px;border-radius:var(--radius-pill);border:2px solid rgba(255,255,255,.35);border-top-color:#fff;display:inline-block;animation:app-spin .8s linear infinite}@keyframes app-spin{to{transform:rotate(360deg)}}.app-skeleton-card,.app-skeleton-table{border-radius:var(--radius-lg);border:1px solid var(--color-border);background:linear-gradient(90deg,#f1f5f9 25%,#e5e7eb 37%,#f1f5f9 63%);background-size:400% 100%;animation:app-shimmer 1.2s ease-in-out infinite}.app-skeleton-card{height:180px}.app-skeleton-table{height:280px}@keyframes app-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.app-icon-button{width:42px;height:42px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#ffffff;color:var(--color-text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-card);transition:background .18s ease,transform .18s ease,border-color .18s ease}.app-icon-button:hover:not(:disabled){background:var(--color-background);transform:translateY(-1px)}.app-icon-button:disabled{opacity:.5;cursor:not-allowed}.app-icon{font-size:18px;line-height:1}.app-icon-spin{animation:app-icon-spin .8s linear infinite}@keyframes app-icon-spin{to{transform:rotate(360deg)}}.app-refresh-icon{font-size:20px;line-height:1;font-weight:700}.app-button-navigation{background:#eef2f7;color:#334155;border:1px solid #dbe3ee}.app-button-navigation:hover{background:#e2e8f0}
