:root{--bg: #0a0d10;--bg-panel: #14181d;--bg-raised: #1b2129;--border: #2a323c;--text: #e8e2d4;--text-dim: #9aa4ad;--gold: #ffc86e;--gold-soft: rgba(255, 200, 110, .16);--blue: #8cdcff;--danger: #e2695f;--radius: 10px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif}.app{display:flex;flex-direction:column;height:100%}.boot{display:grid;place-items:center;height:100%;color:var(--text-dim)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#0d1014e6;border-bottom:1px solid var(--border);z-index:20}.brand{font-weight:600;letter-spacing:.04em;cursor:pointer;-webkit-user-select:none;user-select:none}.brand-mark{color:var(--gold);margin-right:7px;width:22px;height:22px;vertical-align:-5px}.topbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.whoami{color:var(--text-dim);font-size:13px;margin:0 4px}.btn{border:1px solid var(--border);background:var(--bg-raised);color:var(--text);border-radius:7px;padding:6px 12px;font-size:13px;cursor:pointer;transition:background .15s,border-color .15s}.btn:hover{background:#232b35}.btn.primary{background:var(--gold);border-color:var(--gold);color:#22160a;font-weight:600}.btn.primary:hover{background:#ffd68f}.btn.primary:disabled{opacity:.45;cursor:default}.btn.subtle{background:transparent}.btn.subtle:hover{background:var(--gold-soft)}.btn.subtle.active{background:var(--gold-soft);border-color:var(--gold)}.btn.danger{background:transparent;border-color:var(--danger);color:var(--danger)}.btn.danger:hover{background:#e2695f1f}.btn.tiny{padding:2px 7px;font-size:11px}.btn.close{border:none;font-size:15px}.canvas-wrap{position:relative;flex:1;overflow:hidden;display:flex;flex-direction:column}.tree-area{position:relative;flex:1;min-height:0;overflow:visible}.tree-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.tree-canvas.locked{cursor:default}.canvas-help{position:absolute;bottom:4px;left:148px;right:176px;transform:none;font-size:12px;color:var(--text-dim);background:#0a0d1099;padding:4px 16px;border-radius:999px;pointer-events:none;text-align:center;width:auto}.welcome{max-width:560px;margin:12vh auto 0;text-align:center;padding:0 24px}.welcome h1{font-size:34px;color:var(--gold);font-weight:600}.welcome p{color:var(--text-dim);line-height:1.6}.welcome-actions{display:flex;gap:12px;justify-content:center;margin-top:22px}.panel-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:10}.panel-window{display:flex;height:88%;max-height:88%;max-width:calc(100% - 24px);pointer-events:auto;animation:panel-in .28s ease-out;transition:width .3s ease}@keyframes panel-in{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}.node-panel{position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-width:0;width:min(58vw,860px);max-width:100%;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 18px 60px #0000008c,0 0 0 1px #ffc86e0d;overflow:hidden;user-select:none;-webkit-user-select:none}@media (max-width: 900px){.node-panel{width:min(92vw,100%)}}.comments-pane{width:340px;flex:0 0 340px;max-width:40%;margin-left:12px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden;animation:panel-in .25s ease-out}@media (max-width: 720px){.panel-window{flex-direction:column;width:min(92vw,100%);height:90%;max-height:90%}.comments-pane{flex:1 1 42%;width:100%;max-width:none;margin-left:0;margin-top:10px}}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px 12px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(255,200,110,.05),transparent)}.panel-header h2{margin:0;font-size:21px;color:var(--gold);font-weight:600}.panel-breadcrumb{font-size:12px;color:var(--text-dim)}.panel-actions{display:flex;gap:6px;flex-shrink:0}.panel-scroll{overflow-y:auto;padding:16px 24px 24px;flex:1}.panel-loading,.panel-error{color:var(--text-dim);padding:12px 0}.panel-error{color:var(--danger)}.toc{background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;padding:10px 16px;margin-bottom:18px;font-size:13.5px}.toc-title{font-weight:600;color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.toc ol{margin:0;padding-left:18px}.toc li{margin:3px 0}.toc li a{cursor:pointer;color:var(--blue)}.toc li a:hover{text-decoration:underline}.toc-l1{margin-left:0}.toc-l2{margin-left:12px}.toc-l3{margin-left:24px}.toc-l4{margin-left:36px}.node-content{line-height:1.65;font-size:15px;user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}.node-content h1{font-size:24px;color:var(--gold);border-bottom:1px solid var(--border);padding-bottom:6px}.node-content h2{font-size:19px;color:#f2d8a8;margin-top:28px}.node-content h3{font-size:16px;color:#f2d8a8}.node-content h4{font-size:14.5px;color:#f2d8a8}.node-content p{margin:12px 0}.node-content code{background:var(--bg-raised);border-radius:4px;padding:1px 5px;font-size:.9em}.node-content blockquote{border-left:3px solid var(--gold);margin-left:0;padding-left:14px;color:var(--text-dim)}.node-content a{color:var(--blue);text-decoration:none}.node-content a:hover{text-decoration:underline}.node-link{color:var(--blue);cursor:pointer}.stub-link{color:var(--text-dim);border-bottom:1px dashed var(--text-dim)}.stub-link.inert{cursor:default}.stub-note{color:var(--text-dim);font-style:italic}.needs-def{color:var(--text-dim);font-weight:400;font-size:.92em}::highlight(node-comments){background-color:#ffc86e38}::highlight(roots-comments){background-color:#a0acb847}::highlight(node-comment-active){background-color:#8cdcff66}.node-links-section{margin-top:34px;border-top:1px solid var(--border);padding-top:10px}.node-links-toggle{background:none;border:none;color:var(--text);cursor:pointer;font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px;padding:6px 0}.node-links-toggle .chevron{display:inline-block;transition:transform .18s;color:var(--gold)}.node-links-toggle .chevron.open{transform:rotate(90deg)}.node-links-toggle .count{background:var(--bg-raised);border:1px solid var(--border);border-radius:999px;font-size:11px;padding:0 8px;color:var(--text-dim);font-weight:400}.node-links-list{list-style:none;padding:4px 0 0 20px;margin:0}.node-links-list li{margin:5px 0;font-size:14px}.node-links-list .empty{color:var(--text-dim);font-style:italic}.node-links-zones{display:flex;flex-direction:column;gap:10px;padding:8px 0 0 20px}.node-links-zone{border:1px solid var(--border);border-radius:10px;padding:8px 12px 6px;background:#ffffff04}.node-links-zone-title{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);font-weight:600}.node-links-zone .node-links-list{padding:2px 0 0}.add-comment-float{position:absolute;z-index:5;background:var(--gold);color:#22160a;border:none;border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:600;cursor:pointer;box-shadow:0 4px 14px #00000080;touch-action:manipulation;user-select:none;-webkit-user-select:none}.comments-header{padding:14px 16px 8px;border-bottom:1px solid var(--border)}.comments-header h3{margin:0;font-size:15px}.comments-scroll{overflow-y:auto;padding:12px 14px;flex:1}.composer{margin-bottom:16px}.composer textarea{width:100%;background:var(--bg-raised);border:1px solid var(--border);border-radius:7px;color:var(--text);padding:8px 10px;font-family:inherit;font-size:13.5px;resize:vertical;margin:6px 0}.composer-hint{color:var(--text-dim);font-size:12.5px;margin:4px 0 10px}.composer-quote{display:flex;justify-content:space-between;align-items:flex-start;gap:6px;background:var(--gold-soft);border-left:3px solid var(--gold);border-radius:4px;padding:6px 8px;font-size:12.5px;color:var(--text-dim)}.comments-group-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:14px 0 6px}.comment-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;padding:9px 11px;margin-bottom:8px;font-size:13.5px}.comment-card.anchored{cursor:pointer}.comment-card.anchored:hover{border-color:var(--gold)}.comment-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px}.comment-meta .author{font-weight:600;font-size:12.5px}.comment-meta .date{color:var(--text-dim);font-size:11.5px;flex:1}.comment-quote{color:var(--text-dim);font-size:12px;font-style:italic;border-left:2px solid var(--gold);padding-left:8px;margin:4px 0}.comment-body{white-space:pre-wrap}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#040608a6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:40}.modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px 22px;width:min(560px,94vw);max-height:90vh;overflow-y:auto;box-shadow:0 22px 70px #0009;animation:panel-in .22s ease-out}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.modal-header h2{margin:0;font-size:18px;color:var(--gold)}.modal-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.hint{color:var(--text-dim);font-size:12.5px}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form label,.editor-fields label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--text-dim)}.auth-form input,.editor-fields input,.editor-fields select{background:var(--bg-raised);border:1px solid var(--border);border-radius:7px;color:var(--text);padding:8px 10px;font-size:14px;font-family:inherit}.auth-switch{margin-top:14px;font-size:13px;color:var(--text-dim)}.editor-modal{width:min(980px,96vw);height:92vh;display:flex;flex-direction:column}.editor-fields{display:grid;grid-template-columns:2fr 2fr 1.6fr 1.4fr;gap:12px;margin-bottom:10px}@media (max-width: 720px){.editor-fields{grid-template-columns:1fr}}.editor-toolbar{display:flex;align-items:center;gap:4px;padding:6px 0;border-top:1px solid var(--border)}.editor-toolbar .divider{width:1px;height:18px;background:var(--border);margin:0 6px}.editor-toolbar .spacer{flex:1}.editor-cm{flex:1;min-height:0;border:1px solid var(--border);border-radius:7px;overflow:hidden}.editor-cm>div{height:100%}.editor-cm .cm-editor{height:100%;font-size:14px}.editor-cm .cm-scroller{overflow:auto}.editor-preview{flex:1;min-height:0;overflow-y:auto;border:1px solid var(--border);border-radius:7px;padding:14px 20px}.import-modal{width:min(640px,94vw)}.file-drop{display:block;border:1.5px dashed var(--border);border-radius:8px;padding:26px;text-align:center;color:var(--text-dim);cursor:pointer;margin:12px 0;transition:border-color .15s}.file-drop:hover{border-color:var(--gold);color:var(--text)}.import-report{background:var(--bg-raised);border-radius:8px;padding:12px 16px;font-size:13.5px}.report-title{font-weight:600;margin-bottom:8px}.report-label{font-weight:600;font-size:12.5px;margin-top:8px}.report-label.soft{color:var(--text-dim);font-weight:400}.import-report ul{margin:4px 0;padding-left:20px}.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%);background:var(--bg-raised);border:1px solid var(--gold);color:var(--text);padding:10px 20px;border-radius:999px;font-size:13.5px;z-index:60;box-shadow:0 8px 30px #00000080;animation:panel-in .2s ease-out}.admin-page{padding:20px 30px;max-width:1080px;margin:0 auto;height:100%;overflow-y:auto}:where(.admin-page) select,:where(.admin-page) textarea{background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;color:var(--text)}.admin-header{display:flex;justify-content:space-between;align-items:center}.admin-header h1{font-size:22px;color:var(--gold)}.admin-tabs{display:flex;gap:6px;margin:14px 0 20px}.admin-section{margin-bottom:30px}.admin-table-scroll{display:contents}.admin-table{width:100%;border-collapse:collapse;font-size:13.5px}.admin-table th{text-align:left;color:var(--text-dim);font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;padding:6px 10px;border-bottom:1px solid var(--border)}.admin-table td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top}.admin-table select{background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:4px 8px;font-size:13px;max-width:280px}.badge{background:var(--gold-soft);color:var(--gold);border-radius:999px;font-size:10.5px;padding:1px 8px;margin-left:8px;text-transform:uppercase;letter-spacing:.05em}.status{text-transform:capitalize}.status.pending{color:var(--gold)}.status.approved{color:#7ed491}.status.rejected{color:var(--danger)}.queue-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}.queue-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.queue-actions{display:flex;gap:6px;flex-shrink:0}.queue-preview{margin-top:12px;padding:6px 16px;background:var(--bg-raised);border-radius:8px;max-height:420px;overflow-y:auto;font-size:14px}.queue-preview details summary{cursor:pointer;color:var(--blue);margin:6px 0}.timeline-bar{position:relative;height:118px;margin:12px 18px 14px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(180deg,#101419eb,#0a0d10f5);overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease;flex-shrink:0}.timeline-bar:hover{border-color:#ffc86e73;box-shadow:0 0 24px #ffbe5a1f,inset 0 0 40px #ffbe5a0a;transform:translateY(-2px)}.timeline-bar.dragging{cursor:grabbing;transform:translateY(-2px) scale(1.002)}.timeline-hint{position:absolute;top:6px;left:50%;transform:translate(-50%);font-size:10.5px;color:var(--text-dim);opacity:0;transition:opacity .25s ease;pointer-events:none;white-space:nowrap}.timeline-bar:hover .timeline-hint{opacity:.85}.timeline-axis{position:absolute;left:0;right:0;bottom:34px;height:2px;background:linear-gradient(90deg,transparent,rgba(255,200,110,.5) 8%,rgba(255,200,110,.5) 92%,transparent);box-shadow:0 0 8px #ffbe5a59}.timeline-tick{position:absolute;bottom:0;width:0}.timeline-tick-mark{position:absolute;bottom:30px;left:-.5px;width:1px;height:10px;background:#ffdc9666}.timeline-tick-label{position:absolute;bottom:6px;transform:translate(-50%);color:var(--text-dim);font-size:11.5px;font-variant-numeric:tabular-nums;padding:2px 6px;pointer-events:none}.timeline-event{position:absolute;bottom:35px;width:0}.timeline-dot{position:absolute;left:-5px;bottom:-5px;width:10px;height:10px;border-radius:50%;border:none;background:radial-gradient(circle,#ffecbe,#ffc86e 60%,#ffbe5a66);box-shadow:0 0 8px #ffbe5ab3;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.timeline-dot:hover{transform:scale(1.55);box-shadow:0 0 14px #ffc86ef2}.timeline-callout{position:absolute;transform:translate(-50%);background:none;border:none;color:var(--text-dim);font-size:11px;line-height:1.15;white-space:nowrap;cursor:pointer;padding:2px 6px;border-radius:6px;transition:color .15s ease,background .15s ease,transform .15s ease}.timeline-event.row-0 .timeline-callout{bottom:12px}.timeline-event.row-1 .timeline-callout{bottom:36px}.timeline-event.row-1 .timeline-dot:after{content:"";position:absolute;left:4.5px;bottom:10px;width:1px;height:24px;background:#ffdc962e}.timeline-callout:hover{color:var(--gold);background:#ffc86e1a;transform:translate(-50%) translateY(-1px)}.timeline-callout-year{color:#ffc86ebf;font-weight:600;margin-right:2px}.trunk-editor,.password-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;margin-bottom:22px}.trunk-editor-title{font-weight:600;font-size:14px;color:var(--gold);margin-bottom:4px}.trunk-list{list-style:none;margin:10px 0;padding:0}.trunk-list li{display:flex;align-items:center;gap:10px;padding:6px 8px;border:1px solid var(--border);border-radius:7px;margin-bottom:6px;background:var(--bg-raised);font-size:13.5px}.trunk-pos{width:38px;text-align:center;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--gold)}.trunk-name{flex:1}.trunk-actions{display:flex;gap:4px}.trunk-add{display:flex;gap:8px;align-items:center}.trunk-add select{background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:6px 10px;font-size:13px;max-width:320px}.password-card{margin-top:26px;max-width:560px}.password-fields{display:flex;flex-direction:column;gap:10px;margin:10px 0 12px}.password-fields label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-dim)}.password-fields input,.password-fields select,.password-fields textarea{background:var(--bg-raised);border:1px solid var(--border);border-radius:7px;color:var(--text);padding:8px 10px;font-size:14px}.password-ok{color:#7ed491;font-size:13px;margin-bottom:8px}.comment-thread{margin-bottom:10px}.comment-card.nested{margin-left:14px;border-left:2px solid var(--border)}.comment-location{color:var(--text-dim);font-size:12px;margin-bottom:4px}.comment-actions{display:flex;align-items:center;gap:10px;margin-top:6px}.comment-goto{color:var(--blue);font-size:12.5px;text-decoration:underline;cursor:pointer}.comment-goto:hover{color:var(--gold)}.replies-toggle{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:12.5px;display:flex;align-items:center;gap:6px;padding:4px 0 2px 4px}.replies-toggle .chevron{display:inline-block;transition:transform .18s;color:var(--gold);font-size:11px}.replies-toggle .chevron.open{transform:rotate(90deg)}.comment-replies{padding-left:4px}.reply-composer{margin:6px 0 8px 8px}.reply-composer textarea{width:100%;background:var(--bg-raised);border:1px solid var(--border);border-radius:7px;color:var(--text);padding:8px 10px;font-family:inherit;font-size:13px;resize:vertical}.reply-composer-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:6px}.comments-page{display:flex;flex-direction:column;height:100%;padding:20px 30px;max-width:1200px;margin:0 auto;min-height:0}.comments-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.comments-page-header h1{font-size:22px;color:var(--gold);margin:0}.comments-page-body{display:flex;gap:22px;flex:1;min-height:0}.comments-page-list{flex:1;overflow-y:auto;padding-right:8px;min-width:0}.comments-month-block{margin-bottom:22px}.comments-month-heading{position:sticky;top:0;background:var(--bg);font-size:13px;color:var(--gold);letter-spacing:.04em;text-transform:uppercase;padding:6px 0 8px;margin:0 0 8px;border-bottom:1px solid var(--border);z-index:1}.comments-calendar{width:240px;flex-shrink:0;overflow-y:auto}.comments-calendar-title{font-weight:600;font-size:14px;color:var(--gold);margin-bottom:4px}.comments-calendar-list{list-style:none;margin:10px 0 0;padding:0}.comments-calendar-list li{margin:0 0 6px}.comments-cal-item{width:100%;display:flex;justify-content:space-between;align-items:center;background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:8px 10px;font-size:13px;cursor:pointer}.comments-cal-item:hover:not(:disabled){border-color:var(--gold)}.comments-cal-item.active{border-color:var(--gold);background:var(--gold-soft)}.comments-cal-item:disabled{opacity:.4;cursor:default}.comments-cal-item .count{background:var(--bg-panel);border-radius:999px;padding:0 8px;font-size:11px;color:var(--text-dim)}@media (max-width: 720px){.comments-page{padding:14px 14px 20px}.comments-page-body{flex-direction:column-reverse}.comments-calendar{width:100%;max-height:180px}}.glossary{position:absolute;left:18px;bottom:4px;z-index:8;display:flex;flex-direction:column;align-items:flex-start;pointer-events:none}.glossary.open{width:33%;height:66%;max-width:440px}.glossary-toggle,.glossary-pane{pointer-events:auto}.glossary-toggle{background:#0d1014eb;border:1px solid var(--border);color:var(--text);border-radius:999px;padding:7px 14px;font-size:13px;cursor:pointer;box-shadow:0 8px 24px #0006}.fit-view-btn{position:absolute;top:12px;right:12px;z-index:8;width:36px;height:34px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--bg-panel);border:1px solid var(--border);border-radius:15px;color:var(--text);cursor:pointer;box-shadow:0 8px 24px #0006,0 0 0 1px #ffc86e0d}.fit-view-btn svg{width:18px;height:18px}.fit-view-btn:hover{border-color:var(--gold);background:var(--gold-soft);color:var(--gold)}.glossary-toggle:hover,.glossary-toggle.active{border-color:var(--gold);background:var(--gold-soft)}.glossary-pane{flex:1;min-height:0;width:100%;margin-bottom:8px;background:#14181df5;border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 18px 50px #00000080;display:flex;flex-direction:column;overflow:hidden;animation:panel-in .2s ease-out}.glossary-pane-header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px 8px;border-bottom:1px solid var(--border)}.glossary-pane-header h2{margin:0;font-size:15px;color:var(--gold)}.glossary-scroll{overflow-y:auto;padding:8px 12px 16px;flex:1}.glossary-group{margin-bottom:14px}.glossary-group h3{margin:8px 0 4px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.glossary-group ul{list-style:none;margin:0;padding:0}.glossary-link{display:block;width:100%;text-align:left;background:none;border:none;color:var(--blue);cursor:pointer;font-size:13.5px;padding:4px 2px;border-radius:4px}.glossary-link:hover{color:var(--gold);background:var(--gold-soft)}@media (max-width: 720px){.glossary.open{width:50%;height:50%}}.roots-toggle{position:absolute;right:18px;bottom:4px;z-index:8;background:none;border:none;box-shadow:none;color:var(--text-dim);padding:7px 0;font-size:13px;cursor:pointer;letter-spacing:.02em;overflow:visible;line-height:1.3}.roots-toggle:hover,.roots-toggle.return{color:#c5cdd6}.roots-toggle.return{display:flex;flex-direction:column;align-items:flex-end;gap:0}.roots-toggle-label{display:inline}.roots-word{position:relative;display:inline-block;border-bottom:1px solid currentColor;padding-bottom:1px}.roots-arrow{overflow:visible;color:inherit;pointer-events:none}.roots-arrow.down{position:absolute;left:50%;top:calc(100% - 1px);width:78px;height:26px;transform:translate(-50%);display:block}.roots-arrow.up{width:22px;height:44px;margin-right:28px;margin-bottom:1px}.roots-toggle-rule{display:block;width:100%;height:1px;background:currentColor;margin:0 0 5px}.roots-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;display:flex;justify-content:center;align-items:stretch;padding:72px 0 0;box-sizing:border-box;pointer-events:auto;animation:roots-in .45s ease-out}@keyframes roots-in{0%{opacity:0}to{opacity:1}}.roots-window{display:flex;align-items:stretch;height:100%;min-height:0;width:min(740px,92%);max-width:740px;transition:width .35s ease,max-width .35s ease;pointer-events:none}.roots-window.with-comments{width:min(1080px,96%);max-width:1080px}.roots-article{pointer-events:auto;position:relative;flex:1;min-width:0;height:100%;overflow-y:auto;padding:4px 28px 88px;background:linear-gradient(180deg,#07090c14,#07090c6b 10%,#07090c85)}.roots-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid rgba(140,148,158,.35)}.roots-title-row h1{margin:0;font-size:26px;font-weight:600;color:#d8d3c8;line-height:1.2}.roots-title-actions{display:flex;gap:6px;flex-shrink:0}.roots-overlay .add-comment-float{pointer-events:auto}.roots-overlay .node-content{color:#c9c4b8;text-shadow:0 1px 10px rgba(0,0,0,.55)}.roots-overlay .node-content>h1:first-child{display:none}.roots-overlay .node-content h2{color:#b9b3a8;margin-top:32px}.roots-overlay .node-content h3{color:#a8a297}.roots-comments-pane{pointer-events:auto;width:320px;flex-shrink:0;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;background:linear-gradient(180deg,#07090c38,#07090c80);border-left:1px solid rgba(140,148,158,.22)}.roots-comments-header{padding:16px 16px 8px;flex-shrink:0}.roots-comments-header h3{margin:0;font-size:15px;font-weight:600;color:#c5cdd6}.roots-comments-header .hint{display:block;margin-top:4px;color:var(--text-dim);font-size:12px}.roots-comments-scroll{overflow-y:auto;padding:8px 14px 88px;flex:1}.roots-comments-pane .comment-card{background:#14181d8c;border-color:#8c949e38}@media (max-width: 720px){.roots-window.with-comments{flex-direction:column;width:96%;max-width:none}.roots-comments-pane{width:100%;height:42%;border-left:none;border-top:1px solid rgba(140,148,158,.22)}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#2c343f;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#39434f}::-webkit-scrollbar-track{background:transparent}html[data-layout=phone] .fit-view-btn{top:10px;right:max(10px,calc(env(safe-area-inset-right) + 6px));width:42px;height:42px;border-radius:16px}html[data-layout=phone] .fit-view-btn svg{width:20px;height:20px}@media (hover: none){html[data-layout=phone] .fit-view-btn:hover{border-color:var(--border);background:var(--bg-panel);color:var(--text)}}html[data-layout=phone] .panel-overlay{pointer-events:auto;align-items:stretch;justify-content:stretch;background:#04060866;padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))}html[data-layout=phone] .panel-window{flex-direction:column;width:100%;max-width:100%;height:100%;max-height:100%}html[data-layout=phone] .node-panel{width:100%;max-width:100%;height:100%;border-radius:8px}html[data-layout=phone] .panel-header{padding:12px 12px 10px;flex-wrap:wrap;gap:8px}html[data-layout=phone] .panel-header-text{flex:1 1 140px;min-width:0}html[data-layout=phone] .panel-breadcrumb{line-height:1.35;overflow-wrap:anywhere}html[data-layout=phone] .panel-actions{flex-wrap:wrap;justify-content:flex-end}html[data-layout=phone] .panel-actions .btn,html[data-layout=phone] .roots-title-actions .btn{min-height:40px;padding:8px 12px}html[data-layout=phone] .panel-actions .btn.close{min-width:40px}html[data-layout=phone] .panel-scroll{padding:12px 14px 20px;min-height:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}html[data-layout=phone] .node-content{font-size:16px;overflow-wrap:anywhere}html[data-layout=phone] .toc-toggle{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;margin:0;padding:4px 0;background:none;border:none;color:var(--text);font:inherit;font-weight:600;font-size:13px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;text-align:left}html[data-layout=phone] .toc-toggle .chevron{display:inline-block;transition:transform .18s;color:var(--gold)}html[data-layout=phone] .toc-toggle .chevron.open{transform:rotate(90deg)}html[data-layout=phone] .toc.collapsed{padding:2px 12px}html[data-layout=phone] .toc li a{overflow-wrap:anywhere}html[data-layout=phone] .node-links-zones{padding:8px 0 0;min-width:0}html[data-layout=phone] .node-links-zone{min-width:0;padding:10px 12px 8px;overflow-wrap:anywhere}html[data-layout=phone] .node-links-zone-title{font-size:12px;letter-spacing:.06em;line-height:1.35}html[data-layout=phone] .node-links-list,html[data-layout=phone] .node-links-zone .node-links-list{padding-left:0;min-width:0}html[data-layout=phone] .node-links-list li{font-size:15px;line-height:1.45;overflow-wrap:anywhere}html[data-layout=phone] .node-links-toggle{min-height:44px;width:100%;text-align:left}html[data-layout=phone] .node-content,html[data-layout=phone] .comment-card,html[data-layout=phone] .comment-body,html[data-layout=phone] .comment-quote,html[data-layout=phone] .composer textarea,html[data-layout=phone] .reply-composer textarea{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}html[data-layout=phone] .add-comment-float{min-height:36px;padding:8px 14px;font-size:14px}html[data-layout=phone] .panel-overlay.with-comments .node-panel{flex:1 1 0;height:auto;min-height:0;width:100%}html[data-layout=phone] .panel-overlay.with-comments{background:#07090c}html[data-layout=phone] .panel-window{background:var(--bg-panel)}html[data-layout=phone] .panel-overlay.with-comments .node-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none}html[data-layout=phone] .comments-pane{flex:1 1 0;width:100%;max-width:none;min-height:0;margin-left:0;margin-top:0;border-top-left-radius:0;border-top-right-radius:0}html[data-layout=phone] .comments-header,html[data-layout=phone] .roots-comments-header{flex-shrink:0}html[data-layout=phone] .comments-scroll,html[data-layout=phone] .roots-comments-scroll{flex:1 1 auto;min-height:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}html[data-layout=phone] .comments-pane .composer,html[data-layout=phone] .roots-comments-pane .composer{flex-shrink:0;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;row-gap:6px;align-items:end;margin-bottom:0;padding:8px 12px;border-bottom:1px solid var(--border)}html[data-layout=phone] .comments-pane .composer-hint,html[data-layout=phone] .comments-pane .composer-quote,html[data-layout=phone] .roots-comments-pane .composer-hint,html[data-layout=phone] .roots-comments-pane .composer-quote{grid-column:1 / -1}html[data-layout=phone] .comments-pane .composer .btn.primary,html[data-layout=phone] .roots-comments-pane .composer .btn.primary{min-height:40px;align-self:end}html[data-layout=phone] .comments-pane>.composer-hint,html[data-layout=phone] .roots-comments-pane>.composer-hint{flex-shrink:0;margin:0;padding:8px 14px}html[data-layout=phone] .comments-pane .composer textarea,html[data-layout=phone] .roots-comments-pane .composer textarea{height:4em;min-height:0;margin:0;resize:none}html[data-layout=phone] .roots-overlay{padding:var(--roots-article-top, 98px) env(safe-area-inset-right) 0 env(safe-area-inset-left)}html[data-layout=phone] .roots-window,html[data-layout=phone] .roots-window.with-comments{width:100%;max-width:none;height:100%}html[data-layout=phone] .roots-article{padding:4px 16px 24px;background:linear-gradient(180deg,#07090c94,#07090cb8 18%,#07090cc7);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}html[data-layout=phone] .roots-comments-pane{background:linear-gradient(180deg,#07090c94,#07090cb8)}html[data-layout=phone] .roots-title-row{flex-wrap:wrap;align-items:flex-start}html[data-layout=phone] .roots-title-row h1{font-size:20px;overflow-wrap:anywhere}html[data-layout=phone] .roots-title-actions{width:100%;justify-content:flex-start}html[data-layout=phone] .roots-window.with-comments{flex-direction:column}html[data-layout=phone] .roots-window.with-comments .roots-article,html[data-layout=phone] .roots-window.with-comments .roots-comments-pane{flex:1 1 auto;height:50%;max-height:50%;min-height:0}html[data-layout=phone] .roots-window.with-comments .roots-article{padding-bottom:16px}html[data-layout=phone] .roots-window.with-comments .roots-comments-pane{width:100%;border-left:none;border-top:1px solid rgba(140,148,158,.22)}html[data-layout=phone] .roots-window.with-comments .roots-comments-scroll{padding-bottom:12px}html[data-layout=phone] .roots-toggle.return{display:none}html[data-layout=phone] .comment-flash>.comment-card,html[data-layout=phone] .comment-card.comment-flash{animation:comment-flash 1.6s ease}@keyframes comment-flash{0%,35%{box-shadow:inset 0 0 0 2px var(--gold);background-color:#ffc86e38}to{box-shadow:inset 0 0 0 0 transparent}}html[data-layout=phone] .comment-meta .btn.tiny,html[data-layout=phone] .comment-actions .btn.tiny,html[data-layout=phone] .reply-composer-actions .btn,html[data-layout=phone] .replies-toggle,html[data-layout=phone] .comment-goto{min-height:40px;padding:8px 12px;display:inline-flex;align-items:center}@media (max-height: 500px){html[data-layout=phone] .comments-header,html[data-layout=phone] .roots-comments-header,html[data-layout=phone] .comments-pane .composer .composer-hint,html[data-layout=phone] .roots-comments-pane .composer .composer-hint{display:none}html[data-layout=phone] .comments-pane .composer,html[data-layout=phone] .roots-comments-pane .composer{padding:4px 8px;row-gap:0}html[data-layout=phone] .comments-pane .composer textarea,html[data-layout=phone] .roots-comments-pane .composer textarea{height:32px}html[data-layout=phone] .comments-pane .composer .btn.primary,html[data-layout=phone] .roots-comments-pane .composer .btn.primary{min-height:32px}}@media (orientation: landscape){html[data-layout=phone] .panel-window{flex-direction:row}html[data-layout=phone] .panel-overlay.with-comments .node-panel{flex:58 1 0;width:auto;height:100%;border-radius:8px 0 0 8px;border-bottom:1px solid var(--border)}html[data-layout=phone] .panel-overlay.with-comments .comments-pane{flex:42 1 0;width:auto;height:100%;margin-top:0;border-radius:0 8px 8px 0}html[data-layout=phone] .roots-window.with-comments{flex-direction:row}html[data-layout=phone] .roots-window.with-comments .roots-article,html[data-layout=phone] .roots-window.with-comments .roots-comments-pane{height:100%;max-height:none}html[data-layout=phone] .roots-window.with-comments .roots-article{flex:58 1 0}html[data-layout=phone] .roots-window.with-comments .roots-comments-pane{flex:42 1 0;width:auto;border-top:none;border-left:1px solid rgba(140,148,158,.22)}html[data-layout=phone] .roots-title-actions{width:auto}html[data-layout=phone] .roots-overlay{padding-top:min(48px,var(--roots-article-top, 48px))}html[data-layout=phone] .comments-header,html[data-layout=phone] .roots-comments-header{display:block}html[data-layout=phone] .comments-pane .composer,html[data-layout=phone] .roots-comments-pane .composer{padding:8px 12px}html[data-layout=phone] .comments-pane .composer textarea,html[data-layout=phone] .roots-comments-pane .composer textarea{height:4em}html[data-layout=phone] .comments-pane .composer .btn.primary,html[data-layout=phone] .roots-comments-pane .composer .btn.primary{min-height:40px}}html[data-layout=phone] .comment-drawer-toggle{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:30px;margin:0;padding:0 12px;background:var(--bg-panel);color:var(--text-dim);border:1px solid var(--border);border-bottom:none;border-radius:0;font:inherit;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}html[data-layout=phone] .comment-drawer-toggle:active{color:var(--gold)}html[data-layout=phone] .comment-drawer-chevron{flex-shrink:0;color:var(--gold);transition:transform .28s ease}html[data-layout=phone] .comment-drawer-toggle.collapsed{border-radius:8px 8px 0 0}html[data-layout=phone] .comment-drawer-toggle.collapsed .comment-drawer-chevron{transform:rotate(180deg)}html[data-layout=phone] .roots-window .comment-drawer-toggle{background:#07090cb8;border-color:#8c949e38;border-left:none;border-right:none}html[data-layout=phone] .roots-window.with-comments .roots-comments-pane{border-top:none}html[data-layout=phone] .panel-overlay.with-comments .node-panel{transition:flex-grow .28s ease,visibility 0s}html[data-layout=phone] .panel-overlay.with-comments.article-collapsed .node-panel{flex-grow:0;border-width:0;visibility:hidden;transition:flex-grow .28s ease,visibility 0s linear .28s}html[data-layout=phone] .roots-window.with-comments .roots-article,html[data-layout=phone] .roots-window.with-comments .roots-comments-pane{transition:height .28s ease,max-height .28s ease,padding .28s ease,visibility 0s}html[data-layout=phone] .roots-window.with-comments.article-collapsed .roots-article{height:0;max-height:0;padding-top:0;padding-bottom:0;visibility:hidden;transition:height .28s ease,max-height .28s ease,padding .28s ease,visibility 0s linear .28s}html[data-layout=phone] .roots-window.with-comments.article-collapsed .roots-comments-pane{height:100%;max-height:100%}html[data-layout=phone] .panel-overlay.with-comments{padding-top:calc(max(6px,env(safe-area-inset-top)) + var(--kb-top, 0px));padding-bottom:calc(max(6px,env(safe-area-inset-bottom)) + var(--kb-bottom, 0px))}html[data-layout=phone] .roots-overlay.with-comments{padding-top:calc(var(--roots-article-top, 98px) + var(--kb-top, 0px));padding-bottom:var(--kb-bottom, 0px)}@media (orientation: landscape){html[data-layout=phone] .comment-drawer-toggle{flex-direction:column;width:30px;height:auto;align-self:stretch;padding:12px 0;border-bottom:1px solid var(--border);border-right:none}html[data-layout=phone] .comment-drawer-label{writing-mode:vertical-rl;transform:rotate(180deg)}html[data-layout=phone] .comment-drawer-chevron{transform:rotate(-90deg)}html[data-layout=phone] .comment-drawer-toggle.collapsed{border-radius:8px 0 0 8px}html[data-layout=phone] .comment-drawer-toggle.collapsed .comment-drawer-chevron{transform:rotate(90deg)}html[data-layout=phone] .panel-overlay.with-comments .node-panel{border-right:none}html[data-layout=phone] .roots-window .comment-drawer-toggle{border-top:none;border-bottom:none;border-left:1px solid rgba(140,148,158,.22)}html[data-layout=phone] .roots-window.with-comments .roots-comments-pane{border-left:none}html[data-layout=phone] .roots-window.with-comments .roots-article,html[data-layout=phone] .roots-window.with-comments .roots-comments-pane{transition:flex-grow .28s ease,padding .28s ease,visibility 0s}html[data-layout=phone] .roots-window.with-comments.article-collapsed .roots-article{flex-grow:0;height:100%;max-height:none;padding:0;transition:flex-grow .28s ease,padding .28s ease,visibility 0s linear .28s}html[data-layout=phone] .roots-window.with-comments.article-collapsed .roots-comments-pane{max-height:none}html[data-layout=phone] .roots-overlay.with-comments{padding-top:calc(min(48px,var(--roots-article-top, 48px)) + var(--kb-top, 0px))}}@media (prefers-reduced-motion: reduce){html[data-layout=phone] .comment-drawer-chevron,html[data-layout=phone] .panel-overlay.with-comments .node-panel,html[data-layout=phone] .panel-overlay.with-comments.article-collapsed .node-panel,html[data-layout=phone] .roots-window.with-comments .roots-article,html[data-layout=phone] .roots-window.with-comments .roots-comments-pane,html[data-layout=phone] .roots-window.with-comments.article-collapsed .roots-article{transition:none}}html[data-layout=phone] .timeline-dot,html[data-layout=phone] .timeline-callout{touch-action:none}html[data-layout=phone] .timeline-bar:hover,html[data-layout=phone] .timeline-bar.dragging{transform:none;box-shadow:none;border-color:var(--border)}html[data-layout=phone] .timeline-dot:hover{transform:none;box-shadow:0 0 8px #ffbe5ab3}html[data-layout=phone] .timeline-callout:hover{color:var(--text-dim);background:none;transform:translate(-50%)}html[data-layout=phone] .timeline-hint{opacity:.75;white-space:normal;text-align:center;width:calc(100% - 16px);line-height:1.35}html[data-layout=phone] .canvas-wrap:has(.panel-overlay) .timeline-bar{display:none}@media (orientation: landscape){html[data-layout=phone] .canvas-wrap:has(.glossary.open) .timeline-bar,html[data-layout=phone] .canvas-wrap:has(.roots-overlay) .timeline-bar{display:none}}html[data-layout=phone] .timeline-chooser{position:fixed;z-index:30;width:min(260px,calc(100vw - 16px));display:flex;flex-direction:column;gap:2px;padding:4px;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 32px #0000008c}html[data-layout=phone] .timeline-chooser button{min-height:44px;padding:8px 12px;border:none;border-radius:8px;background:none;color:var(--text);font:inherit;font-size:14px;text-align:left;cursor:pointer}html[data-layout=phone] .timeline-chooser button:hover,html[data-layout=phone] .timeline-chooser button:focus-visible{background:var(--gold-soft)}.canvas-help-short{display:none}html[data-layout=desktop] .layout-mode-switch{flex:0 0 auto;white-space:nowrap}html[data-layout=phone] .app{min-height:0}html[data-layout=phone] .topbar{position:relative;align-items:center;flex-wrap:nowrap;gap:8px;padding:8px 12px;padding-top:max(8px,env(safe-area-inset-top));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}html[data-layout=phone] .brand{font-size:13px;min-height:40px;display:flex;align-items:center;white-space:nowrap;flex-shrink:1;min-width:0;overflow:hidden}html[data-layout=phone] .brand-name{overflow:hidden;text-overflow:ellipsis;min-width:0}html[data-layout=phone] .brand-mark{flex-shrink:0}html[data-layout=phone] .topbar-actions{flex:0 1 auto;margin-left:auto;justify-content:flex-end;min-width:0;max-width:100%;overflow:visible;flex-wrap:nowrap}html[data-layout=phone] .topbar-actions>:first-child{margin-left:0}html[data-layout=phone] .phone-menu-btn{min-width:44px;padding-left:12px;padding-right:12px;font-size:20px;line-height:1;letter-spacing:0}html[data-layout=phone] .phone-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:24;margin:0;padding:0;border:none;background:transparent}html[data-layout=phone] .phone-menu{position:absolute;z-index:26;top:calc(100% + 4px);right:max(8px,env(safe-area-inset-right));left:auto;width:min(300px,calc(100vw - 16px));max-height:min(70dvh,520px);overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding:8px;background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 40px #0000008c}html[data-layout=phone] .phone-menu .btn,html[data-layout=phone] .phone-menu .layout-mode-switch{flex:0 0 auto;order:0;width:100%;min-height:44px;justify-content:flex-start;text-align:left;white-space:normal}html[data-layout=phone] .phone-menu-who{padding:6px 12px 8px;color:var(--text-dim);font-size:13px}html[data-layout=phone] .topbar .whoami{flex-shrink:0;white-space:nowrap}html[data-layout=phone] .topbar .btn,html[data-layout=phone] .welcome .btn,html[data-layout=phone] .modal .btn,html[data-layout=phone] .admin-page .btn,html[data-layout=phone] .comments-page .btn{min-height:40px;padding:8px 14px;white-space:nowrap;touch-action:manipulation}html[data-layout=phone] .modal .btn.close,html[data-layout=phone] .glossary-pane .btn.close{min-width:40px;min-height:40px;touch-action:manipulation}@media (orientation: landscape){html[data-layout=phone] .topbar{flex-wrap:nowrap;gap:6px;padding:4px 8px;padding-top:max(4px,env(safe-area-inset-top));padding-bottom:4px;padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right))}html[data-layout=phone] .brand{min-height:36px;font-size:12px}html[data-layout=phone] .topbar .btn{min-height:36px;padding:4px 10px}html[data-layout=phone] .phone-menu .btn,html[data-layout=phone] .phone-menu .layout-mode-switch{min-height:44px;padding:8px 12px}html[data-layout=phone] .timeline-bar{height:112px;margin:4px max(8px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}}html[data-layout=phone] .canvas-help{top:6px;bottom:auto;left:max(8px,env(safe-area-inset-left));right:auto;width:max-content;max-width:calc(100% - 64px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;font-size:11px;padding:3px 10px;line-height:1.3}@media (orientation: landscape){html[data-layout=phone] .canvas-help{display:none}}html[data-layout=phone] .canvas-help-full{display:none}html[data-layout=phone] .canvas-help-short{display:inline}html[data-layout=phone] .canvas-help.is-dismissed{opacity:0;transition:opacity .45s ease}html[data-layout=phone] .glossary-toggle,html[data-layout=phone] .glossary-link,html[data-layout=phone] .roots-toggle{touch-action:manipulation}html[data-layout=phone] .glossary{left:max(10px,env(safe-area-inset-left));bottom:8px}html[data-layout=phone] .glossary.open{z-index:9;width:auto;right:max(10px,env(safe-area-inset-right));height:calc(100% - 56px);max-width:none}html[data-layout=phone] .tree-area:has(.glossary.open) .fit-view-btn{visibility:hidden;pointer-events:none}html[data-layout=phone] .glossary-toggle{min-height:44px;padding:10px 16px;font-size:14px}html[data-layout=phone] .glossary-link{padding:10px 4px;font-size:15px;min-height:44px}html[data-layout=phone] .glossary-scroll,html[data-layout=phone] .modal,html[data-layout=phone] .admin-page,html[data-layout=phone] .comments-page-list,html[data-layout=phone] .comments-calendar{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}html[data-layout=phone] .roots-toggle{right:max(12px,env(safe-area-inset-right));bottom:8px;min-height:44px;padding:10px 4px;font-size:14px}html[data-layout=phone] .roots-arrow.down{transform:translate(calc(-50% - 18px))}html[data-layout=phone] .welcome{margin:8vh auto 0;padding:0 18px;padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}html[data-layout=phone] .welcome h1{font-size:26px}html[data-layout=phone] .toast{bottom:max(16px,env(safe-area-inset-bottom));left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));transform:none;text-align:center}html[data-layout=phone] .modal-overlay{padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}html[data-layout=phone] .modal{width:min(560px,100%);max-width:100%;max-height:100%;margin:0}html[data-layout=phone] .modal-header{gap:8px}html[data-layout=phone] .modal-header h2{min-width:0;overflow-wrap:anywhere}html[data-layout=phone] .auth-form input,html[data-layout=phone] .editor-fields input,html[data-layout=phone] .editor-fields select,html[data-layout=phone] .password-fields input,html[data-layout=phone] .trunk-add select{min-height:44px}html[data-layout=phone] .auth-form input,html[data-layout=phone] .editor-fields select,html[data-layout=phone] .trunk-add select{width:100%}html[data-layout=phone] .modal-overlay:has(.editor-modal){align-items:stretch;justify-content:stretch;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}html[data-layout=phone] .editor-modal{width:auto;max-width:none;height:auto;max-height:none;flex:1 1 auto;min-height:0;min-width:0;overflow:hidden}html[data-layout=phone] .editor-fields{grid-template-columns:1fr;min-height:0}html[data-layout=phone] .editor-toolbar{flex-wrap:wrap;row-gap:6px;flex-shrink:0}html[data-layout=phone] .editor-toolbar .spacer{display:none}html[data-layout=phone] .editor-modal .modal-header,html[data-layout=phone] .editor-modal .modal-footer{flex-shrink:0}html[data-layout=phone] .editor-modal .modal-footer{flex-wrap:wrap}html[data-layout=phone] .editor-modal .modal-footer .hint{flex:1 1 12em;min-width:0}html[data-layout=phone] div.editor-modal{overflow-y:auto}html[data-layout=phone] div.editor-modal .editor-fields{flex:0 0 auto;min-height:0;max-height:none;overflow:visible}html[data-layout=phone] div.editor-modal .editor-cm,html[data-layout=phone] div.editor-modal .editor-preview{flex:0 0 auto;min-height:300px;height:300px}html[data-layout=phone] .editor-cm .cm-scroller{-webkit-overflow-scrolling:touch}html[data-layout=phone] form.editor-modal .editor-fields{flex:1 1 auto;overflow-y:auto;grid-template-rows:auto auto auto minmax(140px,1fr)}html[data-layout=phone] form.editor-modal .editor-fields label:last-child{min-height:0}html[data-layout=phone] form.editor-modal textarea{width:100%;min-height:140px;height:100%;resize:none}@media (orientation: landscape){html[data-layout=phone] div.editor-modal .editor-fields{max-height:none;overflow:visible}html[data-layout=phone] div.editor-modal .editor-cm,html[data-layout=phone] div.editor-modal .editor-preview{min-height:220px;height:220px}html[data-layout=phone] form.editor-modal .editor-fields{grid-template-columns:.7fr 1.3fr 1.5fr;grid-template-rows:auto minmax(72px,1fr);overflow:hidden}html[data-layout=phone] form.editor-modal .editor-fields label:last-child{grid-column:1 / -1;height:100%;min-height:0}html[data-layout=phone] form.editor-modal textarea{min-height:72px}}html[data-layout=phone] .admin-page{padding:14px 14px 24px;padding-top:max(14px,env(safe-area-inset-top));padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));padding-bottom:max(24px,env(safe-area-inset-bottom))}html[data-layout=phone] .admin-header{flex-wrap:wrap;gap:8px;align-items:flex-start}html[data-layout=phone] .admin-header .panel-actions{flex-wrap:wrap}html[data-layout=phone] .admin-tabs{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none;margin-right:-4px}html[data-layout=phone] .admin-tabs::-webkit-scrollbar{display:none}html[data-layout=phone] .admin-tabs .btn{flex-shrink:0}html[data-layout=phone] .queue-card-header{flex-direction:column;align-items:stretch}html[data-layout=phone] .queue-actions,html[data-layout=phone] .trunk-list li,html[data-layout=phone] .trunk-add{flex-wrap:wrap}html[data-layout=phone] .trunk-add select{flex:1 1 100%;max-width:100%}html[data-layout=phone] .admin-table-scroll{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}html[data-layout=phone] .admin-table{display:block;width:max-content;min-width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}html[data-layout=phone] .admin-table-scroll>.admin-table{display:table;table-layout:fixed;width:820px;min-width:100%;max-width:none;overflow:visible}html[data-layout=phone] .admin-table-scroll>.admin-table th:first-child,html[data-layout=phone] .admin-table-scroll>.admin-table td:first-child{width:168px;max-width:168px;overflow:hidden;text-overflow:ellipsis}html[data-layout=phone] .admin-table th,html[data-layout=phone] .admin-table td{white-space:nowrap}html[data-layout=phone] .admin-table th:first-child,html[data-layout=phone] .admin-table td:first-child{position:sticky;left:0;z-index:1;background:var(--bg);box-shadow:1px 0 0 var(--border)}html[data-layout=phone] .admin-table thead th:first-child{z-index:2}html[data-layout=phone] .admin-table select{max-width:min(220px,calc(100vw - 220px));min-height:44px}html[data-layout=phone] .admin-table input[type=checkbox]{width:22px;height:22px}html[data-layout=phone] .comments-page{max-width:none;padding:14px 14px 20px;padding-top:max(14px,env(safe-area-inset-top));padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));padding-bottom:max(20px,env(safe-area-inset-bottom))}html[data-layout=phone] .comments-page-header{flex-wrap:wrap;gap:8px}html[data-layout=phone] .comments-page-body{flex-direction:column-reverse}html[data-layout=phone] .comments-calendar{width:100%;max-height:min(180px,32dvh)}html[data-layout=phone] .comments-cal-item{min-height:44px;touch-action:manipulation}html[data-layout=phone] input,html[data-layout=phone] textarea,html[data-layout=phone] select,html[data-layout=phone] .cm-editor,html[data-layout=phone] .cm-content{font-size:16px}
