:root{--ft-primary: #8B5CF6;--ft-primary-light: #EDE9FE;--ft-text: #111827;--ft-text-muted: #6B7280;--ft-surface: #fff;--ft-bg: #FAFAFB;--ft-border: #E5E7EB;--ft-hover: #FAFAFA;--ft-radius-card: 16px;--ft-radius-control: 12px;--ft-shadow-card: 0 2px 8px rgba(0,0,0,.03)}*{box-sizing:border-box}body{margin:0;font-family:Inter,sans-serif;color:var(--ft-text);background:var(--ft-bg);font-size:14px}a{color:inherit;text-decoration:none}button{font-family:inherit}:focus-visible{outline:2px solid var(--ft-primary);outline-offset:2px}.ft-app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.ft-sidebar{background:var(--ft-surface);border-right:1px solid var(--ft-border);padding:16px 12px}.ft-logo{display:flex;align-items:center;gap:8px;font-weight:700;font-size:18px;padding:4px 8px 16px}.ft-logo-dot{width:22px;height:22px;border-radius:7px;background:var(--ft-primary)}.ft-nav-section{font-size:11px;letter-spacing:.08em;color:var(--ft-primary);font-weight:600;margin:16px 8px 6px}.ft-nav-link{display:block;padding:9px 12px;border-radius:var(--ft-radius-control);color:var(--ft-text);margin-bottom:2px}.ft-nav-link:hover{background:var(--ft-hover)}.ft-nav-link.active{background:var(--ft-primary-light);color:var(--ft-primary);font-weight:600}.ft-main{display:flex;flex-direction:column;min-width:0}.ft-header{display:flex;align-items:center;gap:16px;padding:12px 24px;background:var(--ft-surface);border-bottom:1px solid var(--ft-border)}.ft-header h1{font-size:20px;font-weight:600;margin:0}.ft-header .sub{color:var(--ft-text-muted);font-size:12px}.ft-search{flex:1;max-width:480px;padding:9px 14px;border:1px solid var(--ft-border);border-radius:var(--ft-radius-control);background:var(--ft-bg);color:var(--ft-text-muted)}.ft-content{padding:24px}.ft-breadcrumb{font-size:12px;color:var(--ft-text-muted);margin-bottom:12px}.ft-card{background:var(--ft-surface);border:1px solid var(--ft-border);border-radius:var(--ft-radius-card);box-shadow:var(--ft-shadow-card);padding:16px}.ft-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.ft-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 16px;color:var(--ft-text-muted);text-align:center}.ft-empty .title{font-size:16px;font-weight:600;color:var(--ft-text)}.ft-menu-toggle{display:none}@media (max-width: 1279px){.ft-app{grid-template-columns:200px 1fr}.ft-content{padding:16px}}@media (max-width: 767px){.ft-app{grid-template-columns:1fr}.ft-sidebar{position:fixed;top:0;right:30%;bottom:0;left:0;z-index:20;transform:translate(-100%);transition:transform .2s}.ft-sidebar.open{transform:none;box-shadow:0 0 0 100vmax #00000040}.ft-menu-toggle{display:inline-flex;border:1px solid var(--ft-border);background:var(--ft-surface);border-radius:10px;padding:8px 10px}.ft-search{display:none}}.ft-btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:var(--ft-radius-control);border:1px solid transparent;font-size:13px;font-weight:600;cursor:pointer;transition:background .12s ease}.ft-btn.primary{background:var(--ft-primary);color:#fff}.ft-btn.primary:hover{background:#7c4def}.ft-btn.secondary{background:#fff;color:var(--ft-text);border-color:var(--ft-border)}.ft-btn.secondary:hover{background:var(--ft-hover)}.ft-btn.danger{background:#ef4444;color:#fff}.ft-btn.danger:hover{background:#dc2626}.ft-btn.ghost{background:transparent;color:var(--ft-text-muted)}.ft-btn.ghost:hover{background:#f5f5f7}.ft-btn:disabled{opacity:.5;cursor:not-allowed}.ft-btn.sm{height:30px;padding:0 10px;font-size:12px}.ft-input,.ft-select,.ft-textarea{height:36px;padding:0 12px;border:1px solid var(--ft-border);border-radius:var(--ft-radius-control);font:inherit;background:#fff;width:100%}.ft-textarea{height:auto;padding:8px 12px}.ft-label{display:block;font-size:12px;color:var(--ft-text-muted);margin-bottom:4px}.ft-field{margin-bottom:12px}.ft-field .error{color:#ef4444;font-size:12px;margin-top:4px}.ft-table{width:100%;border-collapse:collapse}.ft-table th{text-align:left;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ft-text-muted);padding:8px 12px;border-bottom:1px solid var(--ft-border)}.ft-table td{height:44px;padding:0 12px;border-bottom:1px solid var(--ft-border);font-size:13px}.ft-table tbody tr:hover{background:var(--ft-hover)}.ft-kpi{min-width:160px}.ft-kpi .value{font-size:28px;font-weight:700;line-height:1.1}.ft-kpi .label{font-size:12px;color:var(--ft-text-muted)}.ft-tabs{display:flex;gap:4px;border-bottom:1px solid var(--ft-border);margin-bottom:16px}.ft-tab{padding:9px 14px;border:none;background:none;font:inherit;font-weight:500;color:var(--ft-text-muted);border-bottom:2px solid transparent;cursor:pointer}.ft-tab[aria-selected=true]{color:var(--ft-primary);border-bottom-color:var(--ft-primary);font-weight:600}.ft-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182759;z-index:50;display:flex;align-items:center;justify-content:center}.ft-modal{background:#fff;border-radius:var(--ft-radius-card);box-shadow:0 12px 32px #0000001f;width:min(520px,calc(100vw - 32px));padding:20px}.ft-modal h2{font-size:16px;margin:0 0 12px}.ft-modal .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.ft-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182759;z-index:50}.ft-drawer{position:fixed;top:0;right:0;bottom:0;width:min(480px,90vw);background:#fff;box-shadow:0 12px 32px #0000001f;z-index:51;padding:20px;overflow-y:auto;animation:ft-slide-in .2s ease}@keyframes ft-slide-in{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}.ft-skeleton{background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb 37%,#f3f4f6 63%);background-size:400% 100%;animation:ft-shimmer 1.4s ease infinite;border-radius:8px}@keyframes ft-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.ft-loader{width:20px;height:20px;border:2px solid var(--ft-border);border-top-color:var(--ft-primary);border-radius:50%;animation:ft-spin .8s linear infinite}@keyframes ft-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.ft-skeleton,.ft-loader,.ft-drawer{animation:none}}.ft-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.ft-page-header .titles h2{font-size:20px;font-weight:600;margin:0}.ft-page-header .titles .sub{color:var(--ft-text-muted);font-size:12px;margin-top:2px}.ft-review-banner{background:#fef3c7;color:#92400e;font-size:12px;font-weight:600;text-align:center;padding:6px 12px}
