:root{--paper: #f1ece0;--sheet: #fbf8f1;--sheet-2: #f6f2e8;--ink: #14181c;--ink-2: #4d5661;--ink-3: #8d949c;--rule: #d6cdb9;--rule-soft: #e4dccb;--rule-hard: #14181c;--dark: #0d1114;--dark-2: #161c21;--dark-line: rgba(226, 220, 205, .14);--dark-txt: #ded8c9;--dark-txt-2: #9aa0a4;--acc: #dd5019;--acc-soft: #fbe6db;--blue: #1a3fbf;--blue-soft: #e0e5f8;--ok: #2f7d4f;--warn: #a97400;--danger: #b8321f;--bg: var(--paper);--bg-2: var(--sheet-2);--panel: var(--sheet);--panel-2: var(--sheet-2);--panel-hi: #ece6d8;--line: var(--rule);--line-soft: var(--rule-soft);--txt: var(--ink);--txt-2: var(--ink-2);--txt-3: var(--ink-3);--brand: var(--acc);--brand-2: var(--blue);--info: var(--blue);--r-sm: 2px;--r: 2px;--r-lg: 3px;--sidebar: 272px;--shadow: none;--ff: "Archivo", "Inter", -apple-system, "Segoe UI", sans-serif;--ff-mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--ff);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background-color:var(--paper);background-image:linear-gradient(rgba(20,24,28,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(20,24,28,.035) 1px,transparent 1px);background-size:26px 26px}a{color:inherit;text-decoration:none}button{font-family:inherit}h1,h2,h3,h4{margin:0;font-weight:800;letter-spacing:-.015em}p{margin:0 0 .8em;line-height:1.65}.mono,.tag,.nav-count,.chip,.table th,.crumbs,.mat-foot,.stat span,.sheet-no{font-family:var(--ff-mono);font-variant-numeric:tabular-nums}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--rule);border:4px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#bdb29b;background-clip:content-box}.shell{display:flex;min-height:100vh}.main{flex:1;min-width:0;margin-left:var(--sidebar);display:flex;flex-direction:column}.page{padding:20px 26px 64px;flex:1;max-width:1620px;width:100%}@media (max-width: 1080px){.main{margin-left:0}.page{padding:14px 13px 48px}}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--dark);color:var(--dark-txt);border-right:1px solid var(--rule-hard);display:flex;flex-direction:column;z-index:60}.brand{display:flex;align-items:center;gap:11px;padding:17px 16px;border-bottom:1px solid var(--dark-line)}.brand-logo{flex:none;border-radius:50%;background:#ffffff0f}.brand-text b{display:block;font-size:14.4px;font-weight:700;line-height:1.2;color:#f2eee3;letter-spacing:-.01em}.brand-text span{display:block;font-family:var(--ff-mono);font-size:10.6px;color:var(--dark-txt-2);margin-top:3px;letter-spacing:.02em}.nav{flex:1;overflow-y:auto;padding:10px 0 16px}.nav-label{font-family:var(--ff-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#6d7479;padding:18px 18px 8px;font-weight:500}.nav-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 18px;border:0;border-left:2px solid transparent;background:none;color:var(--dark-txt-2);font-size:13.6px;font-weight:500;font-family:inherit;cursor:pointer;text-align:left;transition:color .13s,background .13s;line-height:1.3}.nav-item:hover{background:#ffffff0b;color:#f2eee3}.nav-item.active{background:#ffffff0f;border-left-color:var(--acc);color:#fff;font-weight:600}.nav-item.active .ico{color:var(--acc)}.nav-item .ico{flex:none;color:#7d848a;transition:color .13s}.nav-item:hover .ico{color:#cdd2d5}.nav-item .caret{margin-left:auto;flex:none;transition:transform .18s;opacity:.5}.nav-item.open .caret{transform:rotate(90deg)}.nav-count{margin-left:auto;font-size:10.4px;font-weight:500;color:#fff;background:var(--acc);padding:1px 6px;min-width:19px;text-align:center}.nav-children{margin:0 0 4px 30px;padding-left:12px;border-left:1px dashed var(--dark-line)}.nav-children .nav-item{font-size:12.8px;padding:7px 12px;border-left:0}.side-plate{padding:14px 16px 0;border-top:1px solid var(--dark-line)}.side-plate svg{display:block;width:100%;height:auto;color:#6e757b}.side-meta{margin:14px 16px 16px;border:1px solid var(--dark-line);font-family:var(--ff-mono);font-size:9.6px;letter-spacing:.04em;color:var(--dark-txt-2)}.side-meta div{display:flex;border-bottom:1px solid var(--dark-line)}.side-meta div:last-child{border-bottom:0}.side-meta dt{width:78px;flex:none;padding:5px 8px;margin:0;border-right:1px solid var(--dark-line);color:#6d7479;text-transform:uppercase}.side-meta dd{padding:5px 8px;margin:0;color:#c3c8cb;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-foot{padding:0}.sidebar-backdrop{display:none}@media (max-width: 1080px){.sidebar{transform:translate(-100%);transition:transform .24s cubic-bezier(.4,0,.2,1);width:292px}.sidebar.open{transform:none}.sidebar-backdrop.show{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0d11148c;z-index:55}}.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:12px;padding:11px 26px;background:var(--paper);border-bottom:1px solid var(--rule)}@media (max-width: 1080px){.topbar{padding:9px 13px}}.burger{display:none;width:38px;height:38px;border-radius:0;border:1px solid var(--rule-hard);background:var(--sheet);color:var(--ink);cursor:pointer;place-items:center}@media (max-width: 1080px){.burger{display:grid}}.search{position:relative;flex:1;max-width:440px}.search input{width:100%;padding:9px 13px 9px 38px;border-radius:0;border:1px solid var(--rule);background:var(--sheet);color:var(--ink);font-size:13.2px;font-family:inherit;outline:none;transition:border-color .14s}.search input::placeholder{color:var(--ink-3)}.search input:focus{border-color:var(--rule-hard)}.search .ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ink-3);pointer-events:none}.search-results{position:absolute;top:calc(100% + 5px);left:0;right:0;background:var(--sheet);border:1px solid var(--rule-hard);overflow:hidden;max-height:380px;overflow-y:auto;z-index:50}.search-results a{display:block;padding:10px 13px;border-bottom:1px solid var(--rule-soft);font-size:13.2px;font-weight:500;transition:background .12s}.search-results a:last-child{border-bottom:0}.search-results a:hover{background:var(--acc-soft)}.search-results small{display:block;font-family:var(--ff-mono);color:var(--ink-3);font-size:10.8px;margin-top:3px}.topbar-spacer{flex:1}.user-chip{display:flex;align-items:center;gap:9px;padding:6px 11px;border-radius:0;border:1px solid var(--rule);background:var(--sheet);cursor:pointer;color:var(--ink);font-family:inherit}.user-chip:hover{border-color:var(--rule-hard)}.avatar{width:28px;height:28px;border-radius:0;display:grid;place-items:center;background:var(--ink);font-family:var(--ff-mono);font-size:11.4px;font-weight:600;color:#fff;flex:none}.user-chip .who{text-align:left;line-height:1.25}.user-chip .who b{display:block;font-size:12.6px;font-weight:600}.user-chip .who span{font-family:var(--ff-mono);font-size:10.2px;color:var(--ink-3)}@media (max-width: 600px){.user-chip .who{display:none}}.menu-pop{position:absolute;top:56px;right:24px;min-width:208px;background:var(--sheet);border:1px solid var(--rule-hard);border-radius:0;padding:0;z-index:70}.menu-pop button,.menu-pop a{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:0;border-bottom:1px solid var(--rule-soft);background:none;color:var(--ink-2);border-radius:0;font-size:13px;font-family:inherit;font-weight:500;cursor:pointer;text-align:left}.menu-pop button:last-child,.menu-pop a:last-child{border-bottom:0}.menu-pop button:hover,.menu-pop a:hover{background:var(--acc-soft);color:var(--ink)}.menu-pop .sep{height:0;margin:0}.card{background:var(--sheet);border:1px solid var(--rule-hard);border-radius:0;box-shadow:none}.card-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--rule-hard);background:var(--sheet-2)}.card-head h3{font-size:12.4px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.card-head .ico{color:var(--ink-2)}.card-head .more{margin-left:auto;font-family:var(--ff-mono);font-size:11px;color:var(--acc);font-weight:500;border-bottom:1px solid currentColor}.card-body{padding:16px}@media (max-width: 760px){.card-head .tag{display:none}}.grid{display:grid;gap:14px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid-3{grid-template-columns:repeat(auto-fill,minmax(262px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.layout-main{display:grid;grid-template-columns:minmax(0,1fr) 336px;gap:14px;align-items:start}@media (max-width: 1300px){.layout-main{grid-template-columns:minmax(0,1fr)}}.hero{position:relative;border:1px solid var(--rule-hard);background:var(--sheet);padding:0;display:block;overflow:hidden}.hero-ruler{height:15px;border-bottom:1px solid var(--rule-hard);background-image:repeating-linear-gradient(90deg,var(--rule-hard) 0 1px,transparent 1px 12px);background-size:100% 6px;background-repeat:repeat-x;background-position:bottom;opacity:.55}.hero-in{display:flex;align-items:center;gap:22px;padding:26px 30px 30px}.hero-body{min-width:0;flex:1}.hero h1{font-size:clamp(38px,7vw,78px);line-height:.86;font-weight:900;font-stretch:88%;letter-spacing:-.035em;text-transform:uppercase;margin:0}.hero h1 .thin{display:block;font-size:.32em;font-weight:600;font-stretch:100%;letter-spacing:.02em;color:var(--acc);margin-top:8px}.hero p{color:var(--ink-2);font-size:14px;max-width:330px;margin:16px 0 18px}.hero-art{flex:none;color:var(--ink);width:56%;margin:-14px -14px -22px 0}.hero-art svg{display:block;width:100%;height:auto}.hero-formula{display:flex;flex-wrap:wrap;border-top:1px solid var(--rule-hard);font-family:var(--ff-mono);font-size:11.4px;color:var(--ink-2)}.hero-formula span{padding:8px 16px;border-right:1px solid var(--rule);white-space:nowrap}.hero-formula span:first-child{color:var(--ink);font-weight:600}@media (max-width: 980px){.hero-in{padding:20px 16px 24px;gap:12px}.hero-art{display:none}.hero p{max-width:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 16px;border-radius:0;border:1px solid var(--acc);background:var(--acc);color:#fff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:background .14s,color .14s,border-color .14s,opacity .14s;box-shadow:none;white-space:nowrap}.btn:hover{background:#c34412;border-color:#c34412}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{background:transparent;border-color:var(--rule-hard);color:var(--ink)}.btn.ghost:hover{background:var(--ink);color:var(--sheet)}.btn.light{background:var(--ink);border-color:var(--ink);color:var(--sheet)}.btn.light:hover{background:var(--acc);border-color:var(--acc)}.btn.danger{background:var(--danger);border-color:var(--danger)}.btn.danger:hover{background:#94271a;border-color:#94271a}.btn.sm{padding:6px 11px;font-size:12.2px}.btn.icon{padding:0;width:32px;height:32px}.btn.block{width:100%}.stat{display:flex;align-items:center;gap:13px;padding:14px 16px}.stat .bubble{width:40px;height:40px;flex:none;border-radius:0;border:1px solid var(--rule-hard);display:grid;place-items:center;background:transparent;color:var(--ink)}.stat b{display:block;font-family:var(--ff-mono);font-size:25px;font-weight:600;line-height:1;letter-spacing:-.03em}.stat span{font-size:11px;color:var(--ink-3);font-weight:500;letter-spacing:.05em;text-transform:uppercase}.mat-card{position:relative;display:flex;flex-direction:column;padding:14px 15px 13px;border-radius:0;border:1px solid var(--rule-hard);background:var(--sheet);transition:background .14s,box-shadow .14s;height:100%;cursor:pointer}.mat-card:before{content:"";order:98;flex:1 0 13px}.mat-card:after{content:"";position:absolute;top:0;right:0;width:15px;height:15px;background:linear-gradient(225deg,var(--paper) 50%,var(--rule-hard) 50%,var(--sheet-2) 52%);border-left:1px solid var(--rule-hard);border-bottom:1px solid var(--rule-hard)}.mat-card:hover{background:#fffdf7;box-shadow:4px 4px 0 var(--ink)}.mat-top{display:flex;align-items:center;gap:9px;margin-bottom:11px;padding-right:16px}.type-badge{width:34px;height:34px;flex:none;border-radius:0;border:1px solid var(--rule-hard);display:grid;place-items:center;background:transparent;color:var(--ink)}.type-doc,.type-video,.type-html,.type-link,.type-iframe,.type-file{background:transparent}.type-video{color:var(--danger);border-color:var(--danger)}.type-iframe{color:var(--acc);border-color:var(--acc)}.type-link{color:var(--blue);border-color:var(--blue)}.mat-card h4{font-size:14px;line-height:1.35;font-weight:700;margin-bottom:5px;letter-spacing:-.01em}.mat-card p{font-size:12.2px;color:var(--ink-2);margin:0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mat-foot{order:99;margin:0 -15px -13px;padding:7px 15px;border-top:1px solid var(--rule);display:flex;align-items:center;gap:7px;font-size:10.4px;color:var(--ink-3);font-weight:500;letter-spacing:.06em;text-transform:uppercase;background:var(--sheet-2)}.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;border-radius:0;font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;background:var(--ink);color:var(--sheet)}.chip.ok{background:var(--ok);color:#fff}.chip.warn{background:var(--warn);color:#fff}.chip.danger{background:var(--danger);color:#fff}.chip.brand{background:var(--acc);color:#fff}.wired{position:relative}.wired:after{content:"";position:absolute;right:-9px;top:-15px;bottom:-15px;width:8px;background:linear-gradient(90deg,#7a3f18,#c9773a 30%,#f6cfa8,#b4692e 74%,#7a3f18);border-top:1px solid #5e3011;border-bottom:1px solid #5e3011}@media (max-width: 980px){.wired:after{display:none}}.lab-card{position:relative;display:flex;flex-direction:column;padding:15px 16px 0;border:1px solid var(--rule-hard);background:var(--sheet);height:100%;cursor:pointer;transition:box-shadow .15s,border-color .15s,background .15s}.lab-card:hover{background:#fffdf7;box-shadow:5px 5px 0 var(--ink)}.lab-card.hi{border-color:var(--blue);box-shadow:0 0 0 3px #1a3fbf1f}.lab-card.hi:hover{box-shadow:5px 5px 0 var(--blue)}.lab-top{display:flex;align-items:center;gap:10px;margin-bottom:8px}.lab-top .chip{margin-left:auto}.lab-card h4{font-size:13.6px;line-height:1.35;font-weight:700;min-height:2.7em;letter-spacing:-.01em}.lab-art{margin:4px -16px 0;padding:6px 14px 10px;border-top:1px solid var(--rule-soft);background:linear-gradient(rgba(20,24,28,.028) 1px,transparent 1px) 0 0 / 100% 13px,linear-gradient(90deg,rgba(20,24,28,.028) 1px,transparent 1px) 0 0 / 13px 100%,var(--sheet-2)}.lab-art svg{display:block;width:100%;height:auto}.lab-meta{display:flex;margin:0 -16px;padding:0;border-top:1px solid var(--rule-hard);border-bottom:1px solid var(--rule-soft);font-family:var(--ff-mono);font-size:9.6px;letter-spacing:.05em;text-transform:uppercase}.lab-meta>div{flex:1;min-width:0;padding:6px 10px;border-right:1px dotted var(--rule)}.lab-meta>div:last-child{border-right:0}.lab-meta dt{margin:0;color:var(--ink-3)}.lab-meta dd{margin:2px 0 0;color:var(--ink);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lab-meta dd.on{display:flex;align-items:center;gap:5px;color:var(--blue)}.lab-meta dd.on i{width:6px;height:6px;flex:none;border-radius:50%;background:var(--blue)}.lab-open{display:flex;align-items:center;gap:7px;margin:0 -16px;padding:10px 16px;font-size:12.4px;font-weight:600;color:var(--ink);transition:background .14s,color .14s}.lab-card:hover .lab-open{background:var(--acc);color:#fff}.lab-card.hi:hover .lab-open{background:var(--blue)}.chip.blue{background:var(--blue);color:#fff}.gauge-bar{position:relative;display:flex;flex-wrap:wrap;background:var(--dark);border:1px solid var(--rule-hard);padding:4px 18px}.gauge-bar:before,.gauge-bar:after{content:"";position:absolute;top:50%;width:16px;height:34px;transform:translateY(-50%);background:linear-gradient(180deg,#8a4a1e,#c9773a 26%,#f6cfa8 46%,#b4692e 72%,#7a3f18);border:1px solid #5e3011}.gauge-bar:before{left:-9px}.gauge-bar:after{right:-9px}.gauge{flex:1 1 190px;display:flex;align-items:center;gap:12px;padding:14px 16px;border-right:1px dotted rgba(226,220,205,.18)}.gauge:last-child{border-right:0}.gauge-ico{width:34px;height:34px;flex:none;display:grid;place-items:center;border:1px solid currentColor}.gauge-ico.cu{color:#e08a4d}.gauge-ico.bl{color:#6b93ff}.gauge-ico.ye{color:#e3b23c}.gauge b{display:block;font-family:var(--ff-mono);font-size:24px;font-weight:600;line-height:1;color:#f4f1e8}.gauge span:last-child,.gauge>div>span{font-size:11px;color:#9aa0a4;letter-spacing:.04em}.route{position:relative;display:flex;align-items:stretch;flex-wrap:wrap;padding:6px 0 2px}.route-wire{position:absolute;top:34px;left:6%;width:88%;height:10px;z-index:0}.route:before,.route:after{content:"";position:absolute;top:31px;width:15px;height:15px;border-radius:50%;background:radial-gradient(circle at 34% 32%,#f6cfa8,#c9773a 52%,#7a3f18);border:1px solid #5e3011;z-index:0}.route:before{left:calc(6% - 8px)}.route:after{right:calc(6% - 8px)}@media (max-width: 700px){.route:before,.route:after{display:none}}.stop{position:relative;z-index:1;flex:1 1 130px;padding:0 12px 8px;text-align:center;display:block}.ring{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 10px;border-radius:50%;border:3px solid #b4692e;background:var(--sheet);font-family:var(--ff-mono);font-size:26px;font-weight:600;color:var(--ink);transition:border-color .15s,color .15s}.stop:hover .ring{border-color:var(--acc);color:var(--acc)}.stop.live .ring{border-color:var(--blue);color:var(--blue);box-shadow:0 0 0 5px #1a3fbf21}.stop h4{font-size:12.8px;font-weight:600;margin-bottom:3px}.stop .qty{font-family:var(--ff-mono);font-size:10.6px;color:var(--ink-3)}@media (max-width: 700px){.route-wire{display:none}}.klass-line{position:relative;display:flex;align-items:stretch;gap:0;flex-wrap:wrap}.klass-card{position:relative;flex:1 1 130px;padding:24px 14px 16px;border:0;border-right:1px dashed var(--rule);background:transparent;border-radius:0;display:block;text-align:center;transition:background .14s}.klass-card:last-child{border-right:0}.klass-card:hover{background:var(--acc-soft)}.klass-card:before{content:"";position:absolute;top:9px;left:50%;width:9px;height:9px;margin-left:-4.5px;border:2px solid var(--blue);background:var(--sheet);border-radius:50%;z-index:2}.klass-card:after{content:"";position:absolute;top:13px;left:0;right:0;height:1px;background:var(--blue);opacity:.45}.klass-card:first-child:after{left:50%}.klass-card:last-child:after{right:50%}.klass-card .num{font-family:var(--ff-mono);font-size:34px;font-weight:600;letter-spacing:-.04em;color:var(--blue);line-height:1}.klass-card h4{font-size:12.6px;font-weight:600;margin:6px 0 3px}.klass-card span{font-family:var(--ff-mono);font-size:10.6px;color:var(--ink-3)}.viewer{border-radius:0;border:1px solid var(--rule-hard);overflow:hidden;background:var(--sheet)}.viewer iframe{display:block;width:100%;border:0;background:#fff}.viewer.video iframe{aspect-ratio:16 / 9;height:auto;background:#000}.viewer.doc iframe{height:min(80vh,900px)}.viewer.app iframe{height:min(86vh,1000px);background:#fff}.prose{font-size:15px;line-height:1.75;color:var(--ink-2)}.prose h1,.prose h2,.prose h3{color:var(--ink);margin:1.4em 0 .5em}.prose h2{font-size:20px}.prose h3{font-size:16.5px}.prose a{color:var(--blue);text-decoration:underline}.prose img{max-width:100%;border:1px solid var(--rule);margin:10px 0}.prose ul,.prose ol{padding-left:1.35em}.prose li{margin-bottom:.4em}.prose table{width:100%;border-collapse:collapse;margin:1em 0;font-size:14px}.prose th,.prose td{border:1px solid var(--rule-hard);padding:7px 10px;text-align:left}.prose th{background:var(--sheet-2);color:var(--ink)}.prose blockquote{margin:1em 0;padding:6px 16px;border-left:3px solid var(--acc);color:var(--ink-2);background:var(--sheet-2)}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:7px;font-size:11px;color:var(--ink-3);margin-bottom:12px;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.crumbs a:hover{color:var(--acc)}.crumbs .sep{opacity:.5}.page-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:18px;padding-bottom:14px;border-bottom:2px solid var(--rule-hard);flex-wrap:wrap}.page-head h1{font-size:26px;line-height:1.15;font-weight:800;letter-spacing:-.025em}.page-head p{font-family:var(--ff-mono);color:var(--ink-3);font-size:11.6px;margin:6px 0 0}.page-head .actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.field{margin-bottom:14px}.field label{display:block;font-size:10.8px;font-weight:600;color:var(--ink-2);margin-bottom:5px;letter-spacing:.08em;text-transform:uppercase}.field .hint{font-family:var(--ff-mono);font-size:10.8px;color:var(--ink-3);margin-top:5px;font-weight:400;line-height:1.5;text-transform:none;letter-spacing:0}.input,.select,.textarea{width:100%;padding:9px 12px;border-radius:0;border:1px solid var(--rule);background:var(--sheet);color:var(--ink);font-size:13.6px;font-family:inherit;outline:none;transition:border-color .14s}.input:focus,.select:focus,.textarea:focus{border-color:var(--rule-hard);box-shadow:inset 0 -2px 0 var(--acc)}.textarea{min-height:110px;resize:vertical;line-height:1.6}.select option{background:var(--sheet);color:var(--ink)}.row{display:grid;gap:13px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:13px;font-weight:500;color:var(--ink-2);-webkit-user-select:none;user-select:none}.switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:38px;height:20px;border-radius:0;border:1px solid var(--rule-hard);background:var(--sheet);position:relative;cursor:pointer;transition:background .16s;margin:0;flex:none}.switch input:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--ink-3);transition:transform .16s,background .16s}.switch input:checked{background:var(--acc-soft);border-color:var(--acc)}.switch input:checked:after{transform:translate(18px);background:var(--acc)}.table{width:100%;border-collapse:collapse;font-size:13.2px}.table th{text-align:left;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding:9px 12px;border-bottom:1px solid var(--rule-hard);font-weight:500;white-space:nowrap;background:var(--sheet-2)}.table td{padding:10px 12px;border-bottom:1px solid var(--rule-soft);color:var(--ink-2);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:var(--sheet-2)}.table .t-actions{display:flex;gap:6px;justify-content:flex-end}.table-wrap{overflow-x:auto}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#14181c80;display:grid;place-items:center;padding:18px;z-index:200;animation:fade .14s ease}.modal{width:100%;max-width:620px;max-height:90vh;overflow-y:auto;background:var(--sheet);border:1px solid var(--rule-hard);border-radius:0;box-shadow:8px 8px #14181c29;animation:pop .16s ease}.modal.wide{max-width:940px}.modal-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--rule-hard);position:sticky;top:0;background:var(--sheet-2);z-index:2}.modal-head h3{font-size:13px;letter-spacing:.12em;text-transform:uppercase}.modal-body{padding:18px}.modal-foot{display:flex;gap:9px;justify-content:flex-end;padding:14px 18px;border-top:1px solid var(--rule);position:sticky;bottom:0;background:var(--sheet-2)}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px)}}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);z-index:400;padding:11px 18px;border-radius:0;background:var(--ink);border:1px solid var(--ink);color:var(--sheet);font-size:13px;font-weight:500;animation:pop .18s ease;max-width:calc(100vw - 40px)}.toast.error{background:var(--danger);border-color:var(--danger);color:#fff}.toast.ok{background:var(--ok);border-color:var(--ok);color:#fff}.empty{text-align:center;padding:50px 24px;color:var(--ink-3);border:1px dashed var(--rule)}.empty .ico{opacity:.42;margin-bottom:12px}.empty h3{font-size:15px;color:var(--ink-2);margin-bottom:6px}.empty p{font-size:13px;max-width:400px;margin:0 auto}.skeleton{border:1px solid var(--rule-soft);background:repeating-linear-gradient(45deg,var(--sheet-2) 0 8px,var(--sheet) 8px 16px);animation:shimmer 1.4s linear infinite;background-size:200% 100%}@keyframes shimmer{to{background-position:-46px 0}}.spinner{width:30px;height:30px;border:2px solid var(--rule);border-top-color:var(--acc);border-radius:50%;animation:spin .8s linear infinite;margin:56px auto}@keyframes spin{to{transform:rotate(360deg)}}.auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--paper)}.auth-panel{position:relative;display:flex;flex-direction:column;padding:28px 34px 24px;background:var(--dark);color:var(--dark-txt);border-right:8px solid #b4692e}.auth-brand{display:flex;align-items:center;gap:12px}.auth-brand img{flex:none;border-radius:50%;background:#ffffff0f}.auth-brand b{display:block;font-size:15px;color:#f2eee3;line-height:1.2}.auth-brand span{display:block;font-family:var(--ff-mono);font-size:11px;color:var(--dark-txt-2);margin-top:3px}.auth-meter{width:min(340px,100%);margin:26px 0 0}.auth-meter svg{display:block;width:100%;height:auto}.auth-units{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:18px;font-family:var(--ff-mono);font-size:11.6px;color:var(--dark-txt-2)}.auth-units b{color:#f2eee3;font-weight:600}.auth-title{margin:auto 0 22px;padding-top:24px;font-size:clamp(32px,4.4vw,58px);line-height:.92;font-weight:900;font-stretch:88%;letter-spacing:-.03em;text-transform:uppercase;color:#f2eee3}.auth-gauges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid rgba(226,220,205,.16)}.auth-gauges>div{display:flex;align-items:center;gap:11px;padding:12px 14px;border-right:1px dotted rgba(226,220,205,.16);border-bottom:1px dotted rgba(226,220,205,.16);min-width:0}.auth-gauges>div:nth-child(2n){border-right:0}.auth-gauges>div:nth-last-child(-n+2){border-bottom:0}.auth-gauges b{display:block;font-family:var(--ff-mono);font-size:21px;font-weight:600;line-height:1;color:#f4f1e8}.auth-gauges span:last-child{font-size:10.4px;color:#9aa0a4;letter-spacing:.03em}.auth-side{display:flex;flex-direction:column;justify-content:center;padding:26px 34px;min-width:0;background-image:linear-gradient(rgba(20,24,28,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(20,24,28,.035) 1px,transparent 1px);background-size:26px 26px}.auth-tabs{display:flex;max-width:480px;width:100%;margin:0 auto}.auth-tabs a{flex:1;padding:12px 14px;text-align:center;font-size:13.4px;font-weight:700;letter-spacing:.04em;color:var(--ink-2);border:1px solid var(--rule-hard);border-bottom:0;background:var(--sheet-2)}.auth-tabs a+a{border-left:0}.auth-tabs a.on{background:var(--ink);color:#fff;box-shadow:inset 0 3px 0 var(--acc)}.auth-sheet{max-width:480px;width:100%;margin:0 auto;padding:26px 28px 24px;background:var(--sheet);border:1px solid var(--rule-hard)}.auth-sheet h1{font-size:25px;letter-spacing:-.02em;margin-bottom:6px}.auth-sheet>p{font-size:13.2px;color:var(--ink-2);margin-bottom:20px}.gbtn{display:flex;justify-content:center;margin-bottom:16px;color-scheme:light}.auth-or{position:relative;text-align:center;margin-bottom:18px}.auth-or:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--rule)}.auth-or span{position:relative;padding:0 12px;background:var(--sheet);font-family:var(--ff-mono);font-size:11px;color:var(--ink-3)}.auth-row{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.check{display:inline-flex;align-items:center;gap:8px;font-size:12.8px;color:var(--ink-2);cursor:pointer;-webkit-user-select:none;user-select:none}.check input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;margin:0;flex:none;border:1px solid var(--rule-hard);background:var(--sheet);cursor:pointer;position:relative}.check input:checked{background:var(--acc);border-color:var(--acc)}.check input:checked:after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(42deg)}.linky{margin-left:auto;border:0;background:none;padding:0;font-family:inherit;font-size:12.8px;font-weight:600;color:var(--acc);cursor:pointer}.linky:hover{text-decoration:underline}.auth-hint{padding:9px 12px;margin-bottom:16px;font-size:12.6px;color:var(--ink-2);background:var(--sheet-2);border-left:3px solid var(--acc)}.auth-swap{margin-top:16px;text-align:center;font-size:13px;color:var(--ink-2)}.auth-swap a{color:var(--acc);font-weight:700}.auth-guest{display:flex;align-items:center;gap:13px;margin-top:20px;padding-top:20px;border-top:1px dashed var(--rule)}.auth-guest .ico-box{width:42px;height:42px;flex:none;display:grid;place-items:center;border:1px solid var(--rule-hard);color:var(--ink)}.auth-guest b{display:block;font-size:14px;font-weight:700}.auth-guest small{display:block;font-size:12.2px;color:var(--ink-3);margin-top:2px}.auth-guest:hover .ico-box{background:var(--acc);border-color:var(--acc);color:#fff}.auth-foot{max-width:480px;width:100%;margin:18px auto 0;display:flex;align-items:center;gap:12px;font-family:var(--ff-mono);font-size:10.6px;color:var(--ink-3)}.lang-row{display:flex;margin-left:auto;border:1px solid var(--rule)}.lang-row button{padding:4px 10px;border:0;background:none;font-family:var(--ff-mono);font-size:10.6px;font-weight:500;color:var(--ink-3);cursor:pointer}.lang-row button+button{border-left:1px solid var(--rule)}.lang-row button.on{background:var(--ink);color:var(--sheet)}@media (max-width: 1000px){.auth{grid-template-columns:minmax(0,1fr)}.auth-panel{border-right:0;border-bottom:6px solid #b4692e;padding:20px 18px}.auth-title{margin:20px 0 18px;padding-top:0}.auth-meter{width:min(280px,100%);margin:18px auto 0}.auth-side{padding:18px 14px}}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:408px;padding:30px 28px;border-radius:0;background:var(--sheet);border:1px solid var(--rule-hard);box-shadow:8px 8px #14181c1f}.brand-mark{width:44px;height:44px;flex:none;border-radius:0;border:1px solid var(--rule-hard);display:grid;place-items:center;background:var(--ink);color:var(--sheet)}.login-card .brand-mark{width:46px;height:46px;margin-bottom:16px}.login-card h1{font-size:22px;margin-bottom:6px}.login-card>p{font-family:var(--ff-mono);color:var(--ink-3);font-size:12.4px;margin-bottom:22px}.alert{padding:10px 13px;border-radius:0;font-size:12.8px;font-weight:500;margin-bottom:15px;background:#fbe5e1;border:1px solid var(--danger);color:#8f2416}.editor-tools{display:flex;flex-wrap:wrap;gap:3px;padding:6px;border:1px solid var(--rule);border-bottom:0;border-radius:0;background:var(--sheet-2)}.editor-tools button{min-width:30px;height:28px;padding:0 8px;border-radius:0;border:0;background:none;color:var(--ink-2);cursor:pointer;font-size:12.4px;font-weight:600;display:grid;place-items:center}.editor-tools button:hover{background:var(--ink);color:var(--sheet)}.editor-tools .divider{width:1px;background:var(--rule);margin:4px 3px}.editor-area{min-height:300px;max-height:60vh;overflow-y:auto;padding:15px 16px;border:1px solid var(--rule);border-radius:0;background:var(--sheet);outline:none;font-size:14.5px;line-height:1.75;color:var(--ink)}.editor-area:focus{border-color:var(--rule-hard)}.editor-area:empty:before{content:attr(data-placeholder);color:var(--ink-3)}.tree-node{border:1px solid var(--rule);border-radius:0;margin-bottom:5px;background:var(--sheet)}.tree-row{display:flex;align-items:center;gap:10px;padding:9px 11px}.tree-row .name{font-size:13.4px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-row .slug{font-family:var(--ff-mono);font-size:10.8px;color:var(--ink-3)}.tree-row .t-actions{margin-left:auto;display:flex;gap:5px;flex:none}.tree-kids{padding:0 10px 8px 24px}.toggle-btn{width:22px;height:22px;border-radius:0;border:1px solid var(--rule);background:var(--sheet-2);color:var(--ink-2);cursor:pointer;display:grid;place-items:center;flex:none}.toggle-btn:hover{background:var(--ink);color:var(--sheet)}.bar{height:6px;border-radius:0;background:var(--rule-soft);overflow:hidden}.bar>i{display:block;height:100%;background:var(--blue);transition:width .5s ease}.bar-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px dotted var(--rule);font-size:12.6px}.bar-row:last-child{border-bottom:0}.bar-row .no{font-family:var(--ff-mono);font-size:10.6px;color:var(--ink-3);width:16px;flex:none}.bar-row .bar{flex:1}.bar-row .lbl{width:118px;flex:none;color:var(--ink-2);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-row .val{font-family:var(--ff-mono);width:30px;text-align:right;color:var(--ink);font-weight:600;flex:none}.bar-row:hover .lbl{color:var(--acc)}.vtile{padding:12px 14px;border:1px solid var(--rule-hard);background:var(--sheet-2)}.vtile b{display:block;font-family:var(--ff-mono);font-size:26px;font-weight:600;line-height:1.1;margin-top:4px}.vtile .sub{font-family:var(--ff-mono);font-size:10.6px;color:var(--ink-3)}.vchart{display:flex;align-items:flex-end;gap:3px;height:120px;padding:0 2px;border-bottom:1px solid var(--rule-hard)}.vbar{position:relative;flex:1;height:100%;display:flex;align-items:flex-end;justify-content:center}.vbar i{display:block;width:100%;background:var(--rule)}.vbar u{position:absolute;bottom:0;left:0;right:0;background:var(--blue)}.vbar:hover i{background:#c3b89f}.feed-item{display:flex;gap:11px;padding:11px 0;border-bottom:1px solid var(--rule-soft)}.feed-item:last-child{border-bottom:0}.feed-item .type-badge{width:30px;height:30px}.feed-item b{display:block;font-size:13px;font-weight:600;line-height:1.35}.feed-item span{font-family:var(--ff-mono);font-size:11px;color:var(--ink-3)}.feed-item time{margin-left:auto;font-family:var(--ff-mono);font-size:10.6px;color:var(--ink-3);white-space:nowrap;flex:none}.muted{color:var(--ink-3)}.flex{display:flex;align-items:center;gap:10px}.wrap{flex-wrap:wrap}.mt{margin-top:16px}.mb{margin-bottom:14px}.tag{display:inline-block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.sheet-no{font-size:32px;font-weight:600;line-height:1;letter-spacing:-.04em;color:var(--ink)}.tabs{display:flex;gap:0;padding:0;background:transparent;border:0;border-bottom:1px solid var(--rule-hard);overflow-x:auto}.tabs button{padding:8px 15px;border:1px solid transparent;border-bottom:0;border-radius:0;background:none;color:var(--ink-2);font-size:12.4px;font-weight:600;font-family:inherit;letter-spacing:.04em;cursor:pointer;white-space:nowrap;margin-bottom:-1px}.tabs button.on{background:var(--sheet);border-color:var(--rule-hard);color:var(--ink);box-shadow:inset 0 2px 0 var(--acc)}@media print{.sidebar,.topbar,.print-hide{display:none!important}.main{margin-left:0}}
