*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font:15px/1.5 var(--fm-font);color:var(--fm-text);background:var(--fm-bg);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:600}h1{font-size:1.45rem}h3{font-size:1.05rem}a{color:var(--fm-primary);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--fm-muted);font-size:.9rem}:focus-visible{outline:2px solid var(--fm-primary);outline-offset:2px}.shell{flex-direction:column;height:100%;display:flex}.topbar{color:#fff;background:#000;border-bottom:1px solid #1f1f1f;flex:none;align-items:center;gap:6px;height:54px;padding:0 16px;display:flex}.brand{color:#fff;align-items:center;gap:8px;margin-right:8px;font-size:1.1rem;font-weight:650;display:flex}.brand:hover{text-decoration:none}.topbar .btn{color:#fff;background:0 0;border-color:#0000}.topbar .btn:hover:not(:disabled){background:#1c1c1c}.topbar .only-mobile{margin-right:4px}.lang-btn{height:34px;font:inherit;color:#bdbdbd;border-radius:var(--fm-radius);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:0 8px;font-size:.85rem;font-weight:600;display:inline-flex}.lang-btn:hover{color:#fff;background:#1c1c1c}.lang-btn.on{color:#fff;border-color:#5a5a5a}.who{color:#fff;align-items:center;gap:6px;max-width:220px;padding:0 10px;font-size:.9rem;display:inline-flex}.who span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.spacer{flex:1}.body{flex:1;min-height:0;display:flex}.sidebar{background:var(--fm-surface);border-right:1px solid var(--fm-border);flex-direction:column;flex:none;gap:2px;width:220px;padding:12px 10px;display:flex;overflow:auto}.nav-link{border-radius:var(--fm-radius);color:var(--fm-text);align-items:center;gap:10px;padding:8px 12px;display:flex}.nav-link:hover{background:var(--fm-hover);text-decoration:none}.nav-link.active{background:var(--fm-primary-soft);color:var(--fm-primary);font-weight:600}.nav-group{flex-direction:column;gap:2px;display:flex}.nav-link.sub{margin-left:18px;padding:6px 12px;font-size:.93rem}.nav-group>.nav-link:first-child{font-weight:600}.nav-group>.nav-link:first-child.active{background:0 0}.content{--pad-b:48px;min-width:0;padding:24px 28px var(--pad-b);text-align:left;flex:1;overflow:auto}.btn.only-mobile,.scrim{display:none}.settings{align-items:flex-start;gap:28px;display:flex}.settings-nav{flex-direction:column;flex:none;gap:2px;width:190px;display:flex}.settings-nav h2{color:var(--fm-muted);padding:0 12px 8px;font-size:.95rem;font-weight:600}.settings-body{flex:1;min-width:0}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.head-left,.head-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.list.embedded{margin-top:28px}.list.embedded .page-head{margin-bottom:10px}.btn{height:36px;font:inherit;color:var(--fm-text);background:var(--fm-surface);border:1px solid var(--fm-border-strong);border-radius:var(--fm-radius);cursor:pointer;align-items:center;gap:6px;padding:0 14px;display:inline-flex}.btn:hover:not(:disabled){background:var(--fm-hover)}.btn:disabled{opacity:.5;cursor:default}.btn.icon{justify-content:center;width:36px;padding:0}.btn.primary{background:var(--fm-primary);border-color:var(--fm-primary);color:var(--fm-on-primary)}.btn.primary:hover:not(:disabled){background:var(--fm-primary-strong)}.btn.danger{background:var(--fm-danger);border-color:var(--fm-danger);color:#fff}.btn.danger-outline{color:var(--fm-danger);border-color:var(--fm-danger);background:0 0}.btn.danger-outline:hover:not(:disabled){background:var(--fm-danger-soft)}.seg{border:1px solid var(--fm-border-strong);border-radius:var(--fm-radius);display:inline-flex;overflow:hidden}.seg button{height:34px;color:var(--fm-muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 10px}.seg button.on{background:var(--fm-primary-soft);color:var(--fm-primary);font-weight:600}.toolbar{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:12px;display:flex}.search{color:var(--fm-muted);align-items:center;display:flex;position:relative}.search svg{pointer-events:none;position:absolute;left:10px}.search input{width:280px;max-width:100%;height:36px;padding:0 12px 0 34px}input,select,textarea{font:inherit;color:var(--fm-text);background:var(--fm-surface);border:1px solid var(--fm-border-strong);border-radius:var(--fm-radius);width:100%;padding:7px 10px}input:disabled,select:disabled{background:var(--fm-hover)}input[type=checkbox]{width:auto}textarea{resize:vertical}.table-wrap{background:var(--fm-surface);border:1px solid var(--fm-border);border-radius:var(--fm-radius-lg);overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;white-space:nowrap;padding:10px 14px}th{color:var(--fm-muted);background:var(--fm-surface-2);border-bottom:1px solid var(--fm-border);padding:0;font-size:.85rem;font-weight:600}.th-btn{all:unset;box-sizing:border-box;cursor:pointer;width:100%;padding:10px 14px;display:block}.th-btn:hover{color:var(--fm-text)}td{border-bottom:1px solid var(--fm-border)}tbody tr{cursor:pointer}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--fm-hover)}tr.inactive td{color:var(--fm-muted)}.empty{text-align:center;color:var(--fm-muted);padding:36px}.pager{color:var(--fm-muted);align-items:center;gap:12px;margin-top:12px;display:flex}.badge{border-radius:999px;padding:1px 9px;font-size:.8rem;font-weight:600;display:inline-block}.badge.ok{background:var(--fm-ok-soft);color:var(--fm-ok)}.badge.off{background:var(--fm-hover);color:var(--fm-muted)}.badge.info{background:var(--fm-primary-soft);color:var(--fm-primary)}.card{background:var(--fm-surface);border:1px solid var(--fm-border);border-radius:var(--fm-radius-lg);flex-direction:column;gap:16px;max-width:880px;padding:20px;display:flex}.row{gap:16px;display:grid}.field label{margin-bottom:4px;font-size:.85rem;font-weight:600;display:block}.field.inline{align-items:center;gap:8px;display:flex}.field.inline label{margin:0}.req{color:var(--fm-danger)}.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:var(--fm-danger)}.field-error{color:var(--fm-danger);margin-top:4px;font-size:.85rem}.field-hint{color:var(--fm-muted);margin-top:4px;font-size:.82rem}.form-wrap{max-width:880px}.form-wrap .card{max-width:none}.form-bar{bottom:calc(-1 * var(--pad-b));z-index:5;background:var(--fm-bg);border-top:1px solid var(--fm-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:12px 0;display:flex;position:sticky}.bar-main,.bar-side{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.audit{margin-top:16px}.notice-text{background:var(--fm-hover);border-radius:var(--fm-radius);-webkit-user-select:all;user-select:all;word-break:break-all;padding:10px 12px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1.05rem;color:var(--fm-text)!important}.overlay{z-index:50;background:#00000073;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--fm-surface);border:1px solid var(--fm-border);border-radius:var(--fm-radius-lg);width:100%;max-width:400px;box-shadow:var(--fm-shadow);padding:22px}.dialog p{color:var(--fm-muted);margin:8px 0 0}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.toasts{z-index:60;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:16px;right:16px}.toast{border-radius:var(--fm-radius);background:var(--fm-text);color:var(--fm-bg);box-shadow:var(--fm-shadow);max-width:360px;padding:10px 16px}.toast.error{background:var(--fm-danger);color:#fff}.boot,.boot-error{color:var(--fm-muted);padding:40px}.login-wrap{background:var(--fm-bg);place-items:center;min-height:100%;padding:24px 16px;display:grid}.login-card{text-align:left;background:var(--fm-surface);border:1px solid var(--fm-border);border-radius:var(--fm-radius-lg);width:100%;max-width:380px;box-shadow:var(--fm-shadow);flex-direction:column;gap:14px;padding:28px;display:flex}.login-card.wide{max-width:460px}.login-card .card{box-shadow:none;border:0;max-width:none;padding:0}.login-submit{justify-content:center;height:40px}.login-lang{gap:6px;margin-top:4px;display:flex}.login-lang .lang-btn{color:var(--fm-muted);border-color:var(--fm-border)}.login-lang .lang-btn:hover{background:var(--fm-hover);color:var(--fm-text)}.login-lang .lang-btn.on{color:var(--fm-primary);border-color:var(--fm-primary)}@media (width<=760px){.btn.only-mobile{display:inline-flex}.sidebar{z-index:40;box-shadow:var(--fm-shadow);transition:transform .18s;position:fixed;top:54px;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:none}.scrim{z-index:30;background:#00000059;display:block;position:fixed;inset:54px 0 0}.content{--pad-b:40px;padding:16px 16px var(--pad-b)}.settings{flex-direction:column;gap:12px}.settings-nav{flex-flow:wrap;width:100%}.settings-nav h2{width:100%;padding-bottom:0}.row{grid-template-columns:1fr!important}.search input{width:100%}.search{flex:1}.who span,.lang-btn span{display:none}.topbar{gap:2px;padding:0 8px}}:root,:root[data-mode=light]{--fm-font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--fm-bg:#f4f8f9;--fm-surface:#fff;--fm-surface-2:#f8fbfb;--fm-hover:#eef4f5;--fm-text:#14262b;--fm-muted:#5d7279;--fm-border:#dde7ea;--fm-border-strong:#c3d3d8;--fm-primary:#0e7490;--fm-primary-strong:#0b5f77;--fm-primary-soft:#dff1f6;--fm-on-primary:#fff;--fm-ok:#166534;--fm-ok-soft:#dcf5e4;--fm-radius:8px;--fm-radius-lg:12px;--fm-shadow:0 8px 28px #0f283229;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-mode=dark]{--fm-bg:#0d1a1e;--fm-surface:#14252a;--fm-surface-2:#182c32;--fm-hover:#1b3138;--fm-text:#e3eef1;--fm-muted:#8fa8af;--fm-border:#243b42;--fm-border-strong:#33505a;--fm-primary:#38bdd8;--fm-primary-strong:#5fcfe5;--fm-primary-soft:#153a45;--fm-on-primary:#06232b;--fm-ok:#6ee79a;--fm-ok-soft:#14392a;--fm-shadow:0 8px 28px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root,:root[data-mode=light]{--fm-danger:#b91c1c;--fm-danger-soft:#fdeaea;--fm-warn:#92400e;--fm-warn-soft:#fef0d6;--fm-warn-line:#f0c36d;--fm-bad:#b91c1c;--fm-bad-soft:#fdeaea;--fm-bad-line:#f1a8a8;--fm-low:#3b5b8a;--fm-low-soft:#e6eefb;--fm-info:#52606d;--fm-info-soft:#eceff3;--fm-good-line:#9bd8b0}:root[data-mode=dark]{--fm-danger:#f87171;--fm-danger-soft:#3a1c1f;--fm-warn:#fbbf5a;--fm-warn-soft:#3b2e12;--fm-warn-line:#7a5b1c;--fm-bad:#f87171;--fm-bad-soft:#3a1c1f;--fm-bad-line:#7c3338;--fm-low:#8db4f0;--fm-low-soft:#1a2a45;--fm-info:#a6b4c2;--fm-info-soft:#232f3a;--fm-good-line:#2f6a49}.home{text-align:left;flex-direction:column;gap:14px;max-width:760px;display:flex}.home-next{margin:8px 0 0;padding-left:1.2em}.home-next li{margin:4px 0}.tag{background:var(--fm-info-soft);color:var(--fm-info);border-radius:999px;padding:1px 9px;font-size:.78rem;font-weight:600;display:inline-block}.tag-a{background:var(--fm-ok-soft);color:var(--fm-ok)}.tag-i{background:var(--fm-info-soft);color:var(--fm-muted)}.help-box{border-radius:var(--fm-radius);background:var(--fm-primary-soft);color:var(--fm-text);align-items:flex-start;gap:8px;margin:0 0 14px;padding:10px 14px;font-size:.9rem;display:flex}.help-box svg{color:var(--fm-primary);flex:none;margin-top:2px}.filter{color:var(--fm-muted);align-items:center;gap:6px;font-size:.85rem;display:flex}.filter select{width:auto;min-width:120px;height:36px;padding:0 8px}.table-wrap.static tbody tr{cursor:default}.table-wrap.static tbody tr:hover{background:0 0}.detail-cell{white-space:normal;max-width:520px;color:var(--fm-muted)}.panel{background:var(--fm-surface);border:1px solid var(--fm-border);border-radius:var(--fm-radius-lg);max-width:980px;margin-bottom:18px;padding:20px}.panel h3{margin-bottom:6px}.panel>.muted{margin:0 0 14px}.panel .actions{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}th:has(.th-btn){text-align:left}.maintenance,.datalist{text-align:left}.tag-error{background:var(--fm-bad-soft);color:var(--fm-bad)}.tag-warning{background:var(--fm-warn-soft);color:var(--fm-warn)}.tag-info{background:var(--fm-info-soft);color:var(--fm-info)}.log-counts{flex-wrap:wrap;gap:6px;display:inline-flex}.nowrap{white-space:nowrap}.log-event{white-space:nowrap;font-weight:600}.log-detail{text-overflow:ellipsis;max-width:640px;font:.8rem/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:hidden}.log-line{white-space:pre-wrap;word-break:break-word;font:.82rem/1.4 ui-monospace,SFMono-Regular,Consolas,monospace}tr.row-error td{background:var(--fm-bad-soft)}.logview .table-wrap{max-height:68vh}.logview th{z-index:1;position:sticky;top:0}.about,.account{text-align:left;flex-direction:column;gap:18px;max-width:760px;display:flex}.kv-list{grid-template-columns:minmax(150px,220px) 1fr;gap:8px 18px;margin:0;display:grid}.kv-list dt{color:var(--fm-muted);font-size:.9rem;font-weight:600}.kv-list dd{overflow-wrap:anywhere;margin:0}.about .rights{color:var(--fm-muted);font-size:.9rem}.account h3{margin-bottom:2px}@media (width<=760px){.kv-list{grid-template-columns:1fr;gap:2px}.kv-list dd{margin-bottom:10px}}.crumbs{color:var(--fm-muted);flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 6px;font-size:.85rem;display:flex}.crumbs span{align-items:center;gap:8px;display:inline-flex}.crumbs i{opacity:.6;font-style:normal}.crumbs a{color:inherit;text-decoration:none}.crumbs a:hover,.crumbs a:focus-visible{color:var(--fm-primary);text-decoration:underline}.crumbs b{color:var(--fm-text);font-weight:600}.head-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sale-assistant{text-align:left;max-width:1240px}.sale-assistant h1{margin-bottom:18px}.sa-layout{align-items:flex-start;gap:24px;display:flex}.sa-main{flex-direction:column;flex:1;gap:18px;min-width:0;display:flex}.sa-block{flex-direction:column;gap:8px;display:flex}.sa-label{color:var(--fm-muted);font-size:.85rem;font-weight:600}.sa-question{width:100%;min-height:70px;font:inherit;color:var(--fm-text);background:var(--fm-surface);border:1px solid var(--fm-border);border-radius:var(--fm-radius-lg);resize:vertical;cursor:default;padding:12px 14px}.sa-question:focus{outline:2px solid var(--fm-primary);outline-offset:1px}.sa-send-row{align-items:center;gap:12px;display:flex}.sa-hint{font-size:.85rem}.sa-answer-box{background:var(--fm-surface);border:1px solid var(--fm-border);border-radius:var(--fm-radius-lg);flex-direction:column;gap:16px;min-height:220px;padding:18px 20px;display:flex}.sa-summary{margin:0;font-size:1.02rem;font-weight:550}.sa-table-wrap{max-height:360px}.sa-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.sa-chart h4{color:var(--fm-muted);margin:0 0 10px;font-size:.9rem;font-weight:600}.sa-help{flex-direction:column;flex:none;gap:12px;width:320px;display:flex}.sa-tabs{width:100%}.sa-tabs button{flex:1}.sa-question-list{flex-direction:column;gap:6px;max-height:70vh;display:flex;overflow:auto}.sa-question-item{text-align:left;border:1px solid var(--fm-border);border-radius:var(--fm-radius);background:var(--fm-surface);color:var(--fm-text);font:inherit;cursor:pointer;padding:10px 12px;font-size:.9rem;line-height:1.35}.sa-question-item:hover{background:var(--fm-hover)}.sa-question-item.on{border-color:var(--fm-primary);background:var(--fm-primary-soft);color:var(--fm-primary);font-weight:600}@media (width<=920px){.sa-layout{flex-direction:column}.sa-help{width:100%}}.chart{width:100%}.chart-bar-row{grid-template-columns:150px 1fr 90px;align-items:center;gap:10px;margin:7px 0;display:grid}.chart-bar-label{color:var(--fm-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.chart-bar-track{background:var(--fm-hover);border-radius:999px;height:14px;overflow:hidden}.chart-bar-fill{background:var(--fm-primary);border-radius:999px;min-width:2px;height:100%}.chart-bar-value{text-align:right;font-variant-numeric:tabular-nums;font-size:.85rem}.chart-legend{color:var(--fm-muted);flex-wrap:wrap;gap:16px;margin-bottom:10px;font-size:.85rem;display:flex}.chart-legend i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.chart-legend-col{flex-direction:column;gap:6px}.chart-bar2-rows{align-items:flex-end;gap:10px;height:160px;display:flex}.chart-bar2-group{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.chart-bar2-pair{justify-content:center;align-items:flex-end;gap:3px;width:100%;height:130px;display:flex}.chart-bar2-bar{border-radius:2px 2px 0 0;width:10px;min-height:1px}.chart-bar2-label{color:var(--fm-muted);white-space:nowrap;font-size:.72rem}.chart-line-ends{color:var(--fm-muted);justify-content:space-between;margin-top:4px;font-size:.8rem;display:flex}.chart-pie{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.login-page{flex-direction:column;min-height:100%;display:flex}.login-page .login-wrap{flex:1;min-height:0}.login-topbar{color:#fff;background:#000;flex:none;justify-content:space-between;align-items:center;height:52px;padding:0 20px;display:flex}.login-topbar-brand{letter-spacing:.02em;font-weight:700}.login-topbar-sep{opacity:.5;margin:0 2px}.login-topbar-right{align-items:center;gap:18px;display:flex}.login-topbar-zone,.login-topbar-date,.login-topbar-time{color:#ffffffd9;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.95rem}.login-topbar-date,.login-topbar-time{padding-left:18px;position:relative}.login-topbar-date:before,.login-topbar-time:before{content:"·";opacity:.5;position:absolute;top:50%;left:7px;transform:translateY(-50%)}.login-topbar .login-lang{margin-top:0}.login-topbar .login-lang .lang-btn{color:#ffffffbf;border-color:#ffffff4d}.login-topbar .login-lang .lang-btn:hover{color:#fff;background:#ffffff1f}.login-topbar .login-lang .lang-btn.on{color:#fff;border-color:#fff}.login-logo{width:100%;max-width:280px;height:auto;margin:0 auto 10px;display:block}.login-card h1{text-align:center}@media (width<=640px){.login-topbar-zone,.login-topbar-date{display:none}}.btn.only-mobile{display:inline-flex}.sidebar{z-index:40;box-shadow:var(--fm-shadow);transition:transform .18s;position:fixed;top:54px;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:none}.scrim{z-index:30;background:#00000059;display:block;position:fixed;inset:54px 0 0}
