#root{min-height:100vh}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-content{width:min(1560px,100% - 1rem);margin:0 auto;padding:var(--space-4) 0}.route-fallback{display:flex;align-items:center;gap:12px;min-height:96px;padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--text-muted);box-shadow:var(--shadow-soft)}.route-fallback__bar{width:32px;height:32px;border-radius:999px;border:3px solid color-mix(in srgb,var(--accent) 18%,var(--line));border-top-color:var(--accent);animation:route-fallback-spin .9s linear infinite}@keyframes route-fallback-spin{to{transform:rotate(360deg)}}.route-error{display:grid;gap:12px;padding:var(--space-5);border:1px solid color-mix(in srgb,var(--danger) 30%,var(--line));border-radius:var(--radius-md);background:color-mix(in srgb,var(--danger-surface) 72%,var(--surface));box-shadow:var(--shadow-soft)}.route-error__title{margin:0;color:var(--danger-strong)}.route-error__message{margin:0;color:var(--text-muted)}.route-error__action{width:fit-content}.top-nav{position:sticky;top:0;z-index:20;display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 90%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);overflow:visible}.top-nav-dropdown{position:relative}.top-nav-dropdown.is-open{z-index:40}.top-nav-dropdown-trigger{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 var(--space-3);border-radius:999px;border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;transition:all .15s ease}.top-nav-dropdown-trigger:hover,.top-nav-dropdown.is-open .top-nav-dropdown-trigger{background:var(--surface-muted);color:var(--text)}.top-nav-dropdown-trigger:focus-visible,.top-nav-link:focus-visible,.logout-btn:focus-visible,.control-select:focus-visible,.theme-btn:focus-visible,.primary-btn:focus-visible,.login-input:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 60%,#fff);outline-offset:2px}.top-nav-dropdown-trigger.is-active{border-color:color-mix(in srgb,var(--accent) 30%,var(--line));color:var(--accent-strong)}.top-nav-caret{font-size:.7rem;line-height:1}.top-nav-dropdown-menu{position:absolute;top:calc(100% + 8px);left:0;min-width:220px;display:none;flex-direction:column;gap:4px;padding:8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-soft);z-index:50}.top-nav-dropdown.is-open .top-nav-dropdown-menu{display:flex}.top-nav-link{display:inline-flex;align-items:center;min-height:36px;padding:0 var(--space-3);border-radius:999px;font-size:.92rem;color:var(--text-muted);text-decoration:none;transition:all .15s ease}.top-nav-dropdown-menu .top-nav-link{border-radius:10px}.top-nav-link:hover{background:var(--surface-muted);color:var(--text)}.top-nav-link.is-active{color:#fff;background:var(--accent);box-shadow:var(--accent-shadow)}.top-nav-spacer{margin-left:auto}.control-field{display:grid;gap:4px;min-width:140px}.control-field--inline{display:inline-flex;align-items:center;gap:10px;min-width:0}.control-label{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.control-field--inline .control-label{white-space:nowrap}.control-select{min-height:36px;padding:0 36px 0 12px;border:1px solid var(--line);border-radius:999px;background:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%) calc(100% - 18px) calc(50% - 1px) / 6px 6px no-repeat,linear-gradient(135deg,var(--text-muted) 50%,transparent 50%) calc(100% - 12px) calc(50% - 1px) / 6px 6px no-repeat,color-mix(in srgb,var(--surface) 94%,transparent);color:var(--text);-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;cursor:pointer}.control-select:hover{border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}.theme-switch{display:inline-flex;align-items:center;gap:6px;padding:4px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--surface) 94%,transparent)}.theme-btn{min-width:70px;border:none;border-radius:999px;background:transparent;color:var(--text-muted);padding:6px 12px;cursor:pointer;font-size:.8rem;font-weight:700;letter-spacing:.04em}.theme-btn:hover{color:var(--text)}.theme-btn.is-active{background:var(--accent);color:#fff;box-shadow:var(--accent-shadow)}.logout-btn{border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);padding:8px 14px;cursor:pointer}.logout-btn:hover{border-color:color-mix(in srgb,#d63636 55%,var(--line));color:#b71c1c;box-shadow:var(--danger-shadow)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4)}.login-card{width:min(420px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:var(--space-6)}.login-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:var(--space-2);margin-bottom:var(--space-5)}.login-title{margin:0 0 var(--space-5)}.login-form{display:grid;gap:var(--space-3)}.login-field{display:grid;gap:6px}.login-label{font-size:.92rem;font-weight:600}.login-input{height:42px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-muted);padding:0 12px}.login-input:focus{outline:none;border-color:color-mix(in srgb,var(--accent) 60%,var(--line));background:var(--surface)}.primary-btn{height:42px;border:none;border-radius:var(--radius-sm);color:#fff;background:linear-gradient(135deg,var(--accent) 0%,#2f7f51 100%);font-weight:600;cursor:pointer}.primary-btn:hover{background:linear-gradient(135deg,var(--accent-strong) 0%,#256b43 100%)}.debug-errors{margin-bottom:var(--space-4);padding:var(--space-3);border-radius:var(--radius-sm);background:#101510;color:#dfefe0;max-height:220px;overflow:auto;font-size:12px}.table-page{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);padding:var(--space-3);display:flex;flex-direction:column;min-width:0;overflow:hidden}.table-page--fill{height:calc(100vh - 96px);min-height:calc(100vh - 96px)}.table-page--auto{height:auto;min-height:0}.table-page--embedded{height:100%;min-height:520px}.table-toolbar{display:flex;justify-content:flex-end;margin-bottom:var(--space-2)}.table-action-link{display:inline-flex;align-items:center;min-height:36px;padding:0 var(--space-3);border-radius:999px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));color:var(--accent-strong);text-decoration:none}.table-action-link:hover{background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.table-grid{width:100%;display:flex;flex:1 1 0;height:100%;min-height:320px;min-width:0;align-items:stretch}.table-grid>.MuiDataGrid-root{width:100%;min-width:0;height:100%;min-height:320px;flex:1 1 auto}.table-grid--auto{display:block;flex:0 0 auto;height:auto;min-height:0}.table-grid--auto>.MuiDataGrid-root{height:auto;min-height:0;flex:0 0 auto}.grid-action-btn{width:32px;height:32px;border-radius:10px;border:1px solid transparent;background:color-mix(in srgb,var(--surface-muted) 86%,var(--surface-elevated));color:color-mix(in srgb,var(--text-muted) 88%,var(--text));transition:all .15s ease}.grid-action-btn:hover{background:color-mix(in srgb,var(--accent) 12%,var(--surface));border-color:color-mix(in srgb,var(--accent) 30%,var(--line));color:var(--accent-strong);box-shadow:0 6px 14px #15563624}@media (max-width: 900px){.top-nav{align-items:stretch;gap:6px;padding:var(--space-2)}.top-nav-dropdown{flex:1 1 100%}.top-nav-dropdown-trigger{width:100%;justify-content:space-between}.top-nav-dropdown-menu{position:static;top:auto;left:auto;width:100%;min-width:0;margin-top:6px;box-shadow:none}.top-nav-spacer{display:none}.control-field--inline{justify-content:space-between;width:100%}.control-field--inline .control-select{flex:1 1 auto}.logout-btn{margin-left:auto}}.grid-action-btn:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 60%,#fff);outline-offset:2px}.MuiDataGrid-row:hover .grid-action-btn{color:var(--text);border-color:color-mix(in srgb,var(--accent) 20%,var(--line))}.table-grid .grid-actions-header,.table-grid .grid-actions-cell{position:sticky;right:0;z-index:3;background:var(--surface)}.table-grid .grid-actions-header{z-index:4;border-left:1px solid color-mix(in srgb,var(--line) 80%,var(--surface))}.platforms-page{display:grid;gap:var(--space-3)}.platforms-hero,.platforms-section-shell{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-soft)}.platforms-hero{padding:var(--space-4);background:radial-gradient(circle at top right,color-mix(in srgb,var(--accent) 10%,transparent),transparent 34%),linear-gradient(180deg,color-mix(in srgb,var(--surface-muted) 80%,var(--surface-elevated)),var(--surface))}body,.route-fallback,.route-error,.top-nav,.top-nav-dropdown-trigger,.top-nav-dropdown-menu,.top-nav-link,.control-field,.control-select,.theme-switch,.theme-btn,.logout-btn,.login-card,.login-input,.primary-btn,.table-page,.table-action-link,.grid-action-btn,.platforms-hero,.platforms-section-shell{transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}.platforms-quick-links{align-items:center}.platforms-section-shell{overflow:hidden}.platforms-tabs{padding:0 var(--space-2);border-bottom:1px solid var(--line)}.platforms-section-header{padding:var(--space-3) var(--space-3) 0}@media (max-width: 900px){.app-content{width:min(1560px,100% - .5rem);padding:var(--space-3) 0}.table-page{padding:var(--space-2)}.table-page--fill{height:calc(100vh - 88px)}.platforms-hero,.platforms-section-header{padding-left:var(--space-2);padding-right:var(--space-2)}.login-toolbar{justify-content:stretch}.login-toolbar .lang-switch,.login-toolbar .theme-switch{width:100%;justify-content:center}}:root{--bg: #f3f4ee;--surface: #ffffff;--surface-muted: #f7f8f2;--surface-elevated: #ffffff;--text: #1a1f16;--text-muted: #5e6756;--accent: #1f6f43;--accent-strong: #155636;--line: #d9ded0;--danger: #b32323;--danger-strong: #8f1313;--danger-surface: #fff1f1;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--shadow-soft: 0 10px 30px rgba(21, 38, 18, .08);--accent-shadow: 0 8px 20px rgba(31, 111, 67, .25);--danger-shadow: 0 0 16px rgba(214, 54, 54, .35);--page-glow-top: rgba(31, 111, 67, .16);--page-glow-bottom: rgba(146, 190, 67, .18);--page-start: #f8f9f4;--page-end: #eff2e7}:root[data-theme=dark]{--bg: #08110e;--surface: #101b17;--surface-muted: #16221d;--surface-elevated: #1a2821;--text: #edf3ee;--text-muted: #a3b6aa;--accent: #52b37a;--accent-strong: #77d498;--line: #2b3c34;--danger: #ff7b7b;--danger-strong: #ffb2b2;--danger-surface: #261517;--shadow-soft: 0 18px 40px rgba(0, 0, 0, .28);--accent-shadow: 0 10px 24px rgba(82, 179, 122, .26);--danger-shadow: 0 0 18px rgba(255, 123, 123, .18);--page-glow-top: rgba(82, 179, 122, .16);--page-glow-bottom: rgba(18, 72, 49, .24);--page-start: #101814;--page-end: #07100c}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%}body{margin:0;color:var(--text);font-family:Segoe UI,Noto Sans,Helvetica Neue,sans-serif;line-height:1.45;background:radial-gradient(circle at 0% 0%,var(--page-glow-top) 0%,transparent 32%),radial-gradient(circle at 100% 100%,var(--page-glow-bottom) 0%,transparent 36%),linear-gradient(180deg,var(--page-start) 0%,var(--page-end) 100%);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:JetBrains Mono,SFMono-Regular,Menlo,Consolas,monospace}a{color:inherit}input,textarea,select,button{font:inherit}.toast-top-right{top:12px;right:12px}.toast-container{pointer-events:none;position:fixed;z-index:999999}.btnTool{text-align:left}
