:root{--bg: #0f1419;--bg-elev: #1a2129;--bg-elev-2: #232c36;--border: #2d3742;--text: #e8eef5;--text-dim: #8a99a8;--text-faint: #5a6573;--accent: #ffb627;--ok: #4ade80;--warn: #fbbf24;--err: #f87171;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--mono: "SF Mono", "JetBrains Mono", Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--sans);background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}.logo-svg{display:block}.login-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:20px}.login-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:32px 24px;width:100%;max-width:360px;box-shadow:0 20px 60px #0006}.login-logo-svg{height:56px;width:auto;display:block;margin:0 auto 24px}.login-sub{text-align:center;color:var(--text-dim);font-size:12px;margin-bottom:28px;font-family:var(--mono);letter-spacing:.05em}.form-row{margin-bottom:14px}.form-row label{display:block;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:6px}.form-row input{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:12px;border-radius:6px;font-size:14px}.form-row input:focus{outline:none;border-color:var(--accent)}.btn-primary{width:100%;background:var(--accent);color:#1a1408;border:none;padding:13px;border-radius:6px;font-weight:700;font-size:14px;margin-top:8px}.btn-primary:active{opacity:.85}.btn-primary:disabled{opacity:.5;cursor:default}.btn-secondary{width:100%;background:var(--bg-elev-2);color:var(--text);border:1px solid var(--border);padding:12px;border-radius:6px;font-size:14px}.login-err{background:#f871711a;border:1px solid var(--err);color:var(--err);padding:10px 12px;border-radius:6px;font-size:13px;margin-bottom:14px}.login-toggle{text-align:center;margin-top:18px;font-size:13px;color:var(--text-dim)}.login-toggle button{background:none;border:none;color:var(--accent);font-size:13px;text-decoration:underline;padding:0}.center-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;color:var(--text-dim);font-family:var(--mono);font-size:13px}.topbar{display:flex;align-items:center;gap:12px;padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left));background:var(--bg-elev);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}.topbar .logo-svg{height:26px}.topbar .spacer{flex:1}.icon-btn{background:transparent;border:none;color:var(--text);font-size:22px;padding:4px 10px;border-radius:6px}.icon-btn:active{background:var(--bg-elev-2)}.app-body{padding:24px 16px}.dash-actions{display:flex;gap:10px;margin-bottom:24px;flex-wrap:wrap}.dash-action{flex:1;min-width:140px;background:var(--accent);color:#1a1408;border:none;border-radius:10px;padding:16px;font-weight:700;font-size:14px;text-align:center}.dash-action.secondary{background:var(--bg-elev-2);color:var(--text);border:1px solid var(--border)}.dash-action:active{opacity:.85}.section-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin:24px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.project-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:10px;display:flex;align-items:center;gap:12px;cursor:pointer}.project-card:active{border-color:var(--accent)}.project-card .info{flex:1;min-width:0}.project-card .pname{font-size:15px;font-weight:600;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card .pmeta{font-family:var(--mono);font-size:11px;color:var(--text-dim)}.project-card .paid-badge{font-family:var(--mono);font-size:9px;padding:3px 7px;border-radius:4px;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.paid-badge.yes{background:#4ade8026;color:var(--ok)}.paid-badge.no{background:var(--bg-elev-2);color:var(--text-faint)}.project-card .del-btn{background:transparent;border:none;color:var(--text-faint);font-size:18px;padding:4px 8px;flex-shrink:0}.project-card .del-btn:active{color:var(--err)}.empty-projects{text-align:center;padding:40px 20px;color:var(--text-dim);font-size:14px}.tree-node{margin-bottom:6px}.tree-row{display:flex;align-items:center;gap:10px;background:var(--bg-elev);border:1px solid var(--border);border-left:3px solid var(--text-faint);border-radius:8px;padding:12px 14px;cursor:pointer}.tree-row:active{border-color:var(--accent)}.tree-row.status-ok{border-left-color:var(--ok)}.tree-row.status-err{border-left-color:var(--err)}.tree-row.status-warn{border-left-color:var(--warn)}.tree-row.status-none{border-left-color:var(--text-faint)}.tree-toggle{background:transparent;border:none;color:var(--text-dim);font-size:14px;width:20px;flex-shrink:0;padding:0}.tree-icon{font-size:16px;flex-shrink:0;width:22px;text-align:center}.tree-info{flex:1;min-width:0}.tree-title{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-title .tid{color:var(--accent)}.tree-meta{font-family:var(--mono);font-size:10px;color:var(--text-dim);margin-top:1px}.tree-add{background:transparent;border:1px dashed var(--border);color:var(--text-dim);border-radius:6px;padding:6px 10px;font-size:12px;flex-shrink:0}.tree-add:active{border-color:var(--accent);color:var(--accent)}.tree-children{margin-left:18px;margin-top:6px;padding-left:10px;border-left:1px solid var(--border)}.fab{position:fixed;bottom:24px;right:24px;background:var(--accent);color:#1a1408;border:none;border-radius:50%;width:56px;height:56px;font-size:28px;box-shadow:0 6px 20px #0006;z-index:50}.fab:active{opacity:.85}.back-btn{background:transparent;border:none;color:var(--text);font-size:20px;padding:4px 8px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:100}.sheet{position:fixed;left:0;right:0;bottom:0;max-height:90vh;overflow-y:auto;background:var(--bg-elev);border-top-left-radius:16px;border-top-right-radius:16px;z-index:101;padding:8px 18px 32px;-webkit-overflow-scrolling:touch}.sheet-handle{width:40px;height:4px;background:var(--border);border-radius:2px;margin:8px auto 16px}.sheet-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.sheet-header h2{font-size:18px;font-weight:700}.sheet-close{background:transparent;border:none;color:var(--text);font-size:24px}.type-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.type-btn{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:16px 12px;text-align:left;color:var(--text)}.type-btn:active{border-color:var(--accent)}.type-btn .ticon{font-size:22px;margin-bottom:6px}.type-btn .tlabel{font-size:14px;font-weight:600}.type-btn .tdesc{font-size:11px;color:var(--text-dim);margin-top:2px;line-height:1.3}.section-title{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:18px 0 10px}.btn-danger{width:100%;background:transparent;color:var(--err);border:1px solid var(--err);padding:12px;border-radius:6px;font-size:14px;margin-top:10px}.field-select{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:12px;border-radius:6px;font-size:14px}.conn-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.conn-summary{background:#4ade800f;border:1px solid var(--border);border-radius:8px;padding:12px;margin-top:10px;font-family:var(--mono);font-size:12px;color:var(--text-dim);line-height:1.6}.conn-summary strong{color:var(--text)}.conn-details-toggle{background:transparent;border:none;color:var(--accent);font-size:12px;padding:8px 0;margin-top:6px}.cl-allbtns{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-bottom:12px}.cl-allbtn{padding:9px 4px;border-radius:6px;font-size:11px;font-weight:600;border:1px solid var(--border);background:transparent}.cl-allbtn.ok{color:var(--ok);border-color:var(--ok);background:#4ade8014}.cl-allbtn.nok{color:var(--err);border-color:var(--err);background:#f8717114}.cl-allbtn.nvt{color:var(--text-dim)}.cl-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.cl-item:last-child{border-bottom:none}.cl-label{flex:1;font-size:13px;line-height:1.4}.cl-status-grp{display:flex;gap:3px;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:2px;flex-shrink:0}.cl-sbtn{background:transparent;border:none;color:var(--text-dim);padding:5px 8px;border-radius:4px;font-size:10px;font-family:var(--mono);font-weight:700;min-width:34px}.cl-sbtn.active.ok{background:var(--ok);color:#fff}.cl-sbtn.active.nok{background:var(--err);color:#fff}.cl-sbtn.active.nvt{background:var(--text-dim);color:var(--bg-elev)}.cl-remove{background:transparent;border:none;color:var(--text-faint);font-size:16px;flex-shrink:0}.cl-add{display:flex;gap:6px;margin-top:10px}.cl-add input{flex:1;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:8px;border-radius:4px;font-size:13px}.cl-add button{background:var(--bg-elev-2);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:0 14px;font-size:16px}.sheet select,.sheet input,.sheet textarea,.sheet button{position:relative;z-index:1;pointer-events:auto}.view-switch{display:flex;background:var(--bg);border:1px solid var(--border);border-radius:7px;overflow:hidden}.view-switch button{background:transparent;border:none;color:var(--text-dim);padding:7px 14px;font-size:12px;font-family:var(--mono);font-weight:600;letter-spacing:.05em}.view-switch button.active{background:var(--accent);color:#1a1408}.admin-tabs{display:flex;gap:6px;margin-bottom:20px;border-bottom:1px solid var(--border)}.admin-tabs button{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-dim);padding:10px 14px;font-size:13px;font-weight:600}.admin-tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-bottom:24px}.stat-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:16px}.stat-card .val{font-size:26px;font-weight:700;color:var(--accent)}.stat-card .lbl{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin-top:2px}.admin-row{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:10px}.admin-row .top{display:flex;align-items:center;gap:10px}.admin-row .name{flex:1;font-weight:600;font-size:14px}.admin-row .sub{font-family:var(--mono);font-size:11px;color:var(--text-dim);margin-top:2px}.toggle-pill{border:none;border-radius:20px;padding:6px 14px;font-size:11px;font-weight:700;font-family:var(--mono);letter-spacing:.04em}.toggle-pill.on{background:var(--ok);color:#04240f}.toggle-pill.off{background:var(--bg-elev-2);color:var(--text-dim);border:1px solid var(--border)}.admin-note{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:8px;border-radius:6px;font-size:12px;margin-top:10px;resize:vertical}.mini-badge{font-family:var(--mono);font-size:9px;padding:2px 6px;border-radius:4px;background:var(--bg-elev-2);color:var(--text-dim)}.mini-badge.admin{background:#ffb62726;color:var(--accent)}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150}.menu{position:fixed;top:calc(56px + env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;z-index:151;min-width:230px;max-height:80vh;overflow-y:auto;box-shadow:0 8px 24px #00000080}.menu button{display:block;width:100%;background:transparent;border:none;color:var(--text);text-align:left;padding:13px 16px;font-size:14px;border-bottom:1px solid var(--border)}.menu button:last-child{border-bottom:none}.menu button:active{background:var(--bg-elev-2)}.menu .menu-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);padding:10px 16px 6px;border-bottom:1px solid var(--border)}.ref-table{width:100%;border-collapse:collapse;font-size:12px}.ref-table th{text-align:left;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);padding:8px 6px;border-bottom:1px solid var(--border)}.ref-table td{padding:9px 6px;border-bottom:1px solid var(--border);color:var(--text)}.ref-table td.sec{color:var(--accent);font-weight:600;font-family:var(--mono)}.ref-block{margin-bottom:24px}.ref-block h3{font-size:14px;color:var(--accent);margin-bottom:10px}.ref-block ul{list-style:none}.ref-block li{font-size:13px;color:var(--text);padding:7px 0 7px 18px;position:relative;line-height:1.45;border-bottom:1px solid var(--border)}.ref-block li:before{content:"▸";position:absolute;left:0;color:var(--accent)}.tpl-type-tabs{display:flex;gap:6px;overflow-x:auto;margin-bottom:16px;padding-bottom:8px;-webkit-overflow-scrolling:touch}.tpl-type-tabs button{background:var(--bg-elev);border:1px solid var(--border);color:var(--text-dim);padding:8px 12px;border-radius:7px;font-size:12px;font-weight:600;white-space:nowrap;flex-shrink:0}.tpl-type-tabs button.active{background:var(--accent);color:#1a1408;border-color:var(--accent)}.tpl-level-switch{display:flex;background:var(--bg);border:1px solid var(--border);border-radius:7px;overflow:hidden;margin-bottom:16px}.tpl-level-switch button{flex:1;background:transparent;border:none;color:var(--text-dim);padding:9px;font-size:12px;font-weight:600}.tpl-level-switch button.active{background:var(--accent);color:#1a1408}.tpl-item{display:flex;align-items:center;gap:8px;background:var(--bg-elev);border:1px solid var(--border);border-radius:7px;padding:10px 12px;margin-bottom:6px}.tpl-item .txt{flex:1;font-size:13px}.tpl-item .order-btn,.tpl-item .del-btn{background:transparent;border:none;color:var(--text-dim);font-size:15px;padding:2px 6px}.tpl-item .del-btn{color:var(--err)}.photo-area{border:1px dashed var(--border);border-radius:8px;padding:14px;margin-top:4px;text-align:center}.photo-preview{max-width:100%;max-height:220px;border-radius:6px;display:block;margin:0 auto 10px}.photo-btn{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:10px 14px;border-radius:6px;font-size:13px;cursor:pointer;display:inline-block}.photo-btn input{display:none}.export-opt{display:flex;align-items:flex-start;gap:10px;padding:10px 0;cursor:pointer;-webkit-user-select:none;user-select:none}.export-opt input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);margin-top:2px;flex-shrink:0}.export-opt .opt-text{flex:1}.export-opt .opt-label{font-size:14px;color:var(--text);font-weight:500}.export-opt .opt-sub{font-size:12px;color:var(--text-dim);margin-top:2px;line-height:1.4}.src-list{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:6px 8px;max-height:240px;overflow-y:auto}.src-opt{display:flex;align-items:center;gap:10px;padding:9px 6px;border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none}.src-opt:last-child{border-bottom:none}.src-opt input{width:18px;height:18px;accent-color:var(--accent)}.src-opt .src-id{font-family:var(--mono);color:var(--accent);font-size:12px;min-width:70px}.src-opt .src-name{flex:1;font-size:13px}.src-opt .src-pow{font-size:11px;color:var(--text-dim);font-family:var(--mono)}.src-empty{padding:14px;font-size:12px;color:var(--text-dim);text-align:center}.sync-sources{background:var(--bg);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:6px;padding:8px 12px;margin:4px 0 6px 32px;font-size:12px}.sync-sources .sx-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:4px}.sync-sources .sx-bits{color:var(--text)}.sync-sources .sx-total{font-family:var(--mono);color:var(--text-dim);margin-top:4px;font-size:11px}.action-btns{display:flex;flex-direction:column;gap:8px;margin-top:10px}.btn-move{width:100%;background:transparent;color:var(--accent);border:1px solid var(--accent);padding:12px;border-radius:6px;font-size:14px;font-weight:500}.btn-soft-danger{width:100%;background:transparent;color:var(--warn);border:1px solid var(--warn);padding:12px;border-radius:6px;font-size:13px}.move-target{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-elev);border:1px solid var(--border);border-radius:7px;margin-bottom:6px;cursor:pointer;font-size:13px}.move-target:active{border-color:var(--accent)}.move-target.indent-1{margin-left:14px}.move-target.indent-2{margin-left:28px}.move-target.indent-3{margin-left:42px}.move-target.indent-4{margin-left:56px}.move-target .mt-icon{color:var(--text-dim)}.move-target .mt-name{flex:1}.move-target .mt-meta{font-family:var(--mono);font-size:10px;color:var(--text-dim)}.tier-grid{display:grid;gap:10px;grid-template-columns:1fr}.tier-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:14px 16px;cursor:pointer;display:flex;align-items:center;gap:12px}.tier-card:active{border-color:var(--accent)}.tier-card.selected{border-color:var(--accent);background:#ffb6270f}.tier-card .t-name{font-size:15px;font-weight:700;flex:1}.tier-card .t-limit{font-family:var(--mono);font-size:12px;color:var(--text-dim);margin-top:2px}.tier-card .t-price{font-size:18px;font-weight:700;color:var(--accent);font-family:var(--mono)}.usage-bar{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:10px 14px;margin-bottom:14px;display:flex;align-items:center;gap:12px}.usage-bar .ub-text{font-family:var(--mono);font-size:12px;color:var(--text-dim);flex-shrink:0}.usage-bar .ub-text strong{color:var(--text);font-size:13px}.usage-bar .ub-track{flex:1;height:6px;background:var(--bg);border-radius:3px;overflow:hidden;position:relative}.usage-bar .ub-fill{height:100%;background:var(--ok);transition:width .3s}.usage-bar.warn .ub-fill{background:var(--warn)}.usage-bar.full .ub-fill{background:var(--err)}.usage-bar .ub-badge{font-family:var(--mono);font-size:10px;padding:3px 7px;border-radius:4px;background:var(--bg-elev-2);color:var(--text-dim)}.usage-bar.full .ub-badge{background:var(--err);color:#fff}.upgrade-banner{background:#f8717114;border:1px solid var(--err);border-radius:8px;padding:14px;margin-bottom:14px}.upgrade-banner .ub-title{font-size:14px;font-weight:700;color:var(--err);margin-bottom:6px}.upgrade-banner .ub-desc{font-size:13px;color:var(--text);line-height:1.5;margin-bottom:10px}.access-mode-sel{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:7px 10px;border-radius:6px;font-size:12px;font-family:var(--mono)}.demo-banner{background:#ffb6271f;border-bottom:1px solid var(--accent);padding:10px 16px;display:flex;align-items:center;gap:10px;font-size:12px}.demo-banner .db-tag{background:var(--accent);color:#1a1408;font-family:var(--mono);font-weight:700;font-size:10px;padding:3px 7px;border-radius:4px;letter-spacing:.05em;flex-shrink:0}.demo-banner .db-text{flex:1;color:var(--text-dim);line-height:1.4}.demo-banner .db-text strong{color:var(--text)}.demo-creds{background:var(--bg-elev);border:1px solid var(--accent);border-radius:10px;padding:18px;margin:16px 0;font-family:var(--mono);font-size:13px}.demo-creds .dc-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border)}.demo-creds .dc-row:last-child{border-bottom:none}.demo-creds .dc-label{color:var(--text-dim);font-size:11px;text-transform:uppercase}.demo-creds .dc-val{color:var(--accent);font-weight:700}
