:root{--bg-0: #0b0d10;--bg-1: #111418;--bg-2: #171b20;--bg-3: #1e232a;--fg-0: #e6ebf0;--fg-1: #b8c0ca;--fg-2: #7a828c;--fg-3: #4f565e;--amber: #ffbf46;--amber-dim: #8a6a2c;--cyan: #79ffe1;--cyan-dim: #4a9b8a;--violet: #c779ff;--violet-dim: #7548a4;--blue: #58a6ff;--green: #7ee787;--red: #ff6b6b;--border: #2f3640;--border-strong: #4a5560;--radius: 0;--radius-sm: 0;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, Menlo, Consolas, monospace;--font-ui: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, sans-serif;--dock-h: 58px;--top-h: 52px;--foot-h: 28px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;background:var(--bg-0);color:var(--fg-0);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;overscroll-behavior:none;touch-action:manipulation}.hosaka-shell{display:grid;grid-template-rows:var(--top-h) var(--dock-h) 1fr var(--foot-h);height:100dvh;background:radial-gradient(1200px 600px at 10% -10%,rgba(199,121,255,.08),transparent 70%),radial-gradient(1000px 500px at 110% 110%,rgba(255,191,70,.05),transparent 70%),var(--bg-0)}.hosaka-topbar{display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--border);background:linear-gradient(to bottom,var(--bg-1),var(--bg-0))}.hosaka-brand{display:flex;align-items:baseline;gap:10px;font-family:var(--font-mono)}.hosaka-brand-logo{color:var(--amber);letter-spacing:.2em;font-weight:700;font-size:15px;text-shadow:0 0 6px rgba(255,191,70,.25)}.hosaka-brand-sub{color:var(--fg-3);font-size:11px;letter-spacing:.08em}.hosaka-topbar-right{display:flex;gap:10px;align-items:center}.hosaka-dock{display:flex;gap:6px;align-items:stretch;padding:6px 10px;border-bottom:1px solid var(--border);background:var(--bg-1);overflow-x:auto;scrollbar-width:thin}.hosaka-dock-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;min-height:44px;background:transparent;color:var(--fg-1);border:1px solid transparent;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:13px;letter-spacing:.02em;cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease,border-color .15s ease}.hosaka-dock-btn:hover{background:var(--bg-2);color:var(--fg-0)}.hosaka-dock-btn.is-active{background:var(--bg-3);color:var(--amber);border-color:var(--amber-dim);box-shadow:inset 0 -2px 0 var(--amber);text-shadow:0 0 6px rgba(255,191,70,.25)}.hosaka-dock-glyph{color:var(--amber);font-weight:700}.hosaka-dock-label{letter-spacing:.08em;text-transform:lowercase}.hosaka-stage{position:relative;overflow:hidden}.hosaka-stage:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:10;background:repeating-linear-gradient(0deg,rgba(0,0,0,.08) 0 1px,transparent 1px 3px)}.hosaka-panel{position:absolute;inset:0;overflow:auto}.hosaka-panel[hidden]{display:none}.hosaka-footer{display:flex;align-items:center;justify-content:flex-end;padding:0 16px;border-top:1px solid var(--amber-dim);background:var(--bg-0);color:var(--fg-3);font-family:var(--font-mono);font-size:10px;letter-spacing:.08em}.hosaka-footer-dim{color:var(--fg-3)}.hosaka-footer-dot{color:var(--amber-dim);margin:0 4px}.signal-badge,.plant-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:0;background:var(--bg-2);border:1px solid var(--border);border-left:2px solid var(--amber-dim);font-family:var(--font-mono);font-size:11px;color:var(--fg-1)}.signal-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 8px #7ee787b3;animation:pulse 2.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.85)}}.plant-glyph{color:var(--green)}.lang-picker{background:var(--bg-2);border:1px solid var(--border);color:var(--fg-2);font-family:var(--font-mono);font-size:11px;padding:4px 6px;cursor:pointer}.terminal-wrap{position:absolute;inset:0;padding:10px;background:var(--bg-0)}.terminal-host{height:100%;width:100%;padding:10px;background:#0b0d10;border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden}.terminal-host .xterm{height:100%}.panel-header{padding:24px 28px 12px}.panel-header h2{margin:0 0 6px;font-family:var(--font-mono);font-size:20px;letter-spacing:.04em;color:var(--fg-0);display:inline-flex;align-items:center;gap:10px}.panel-glyph{color:var(--amber)}.panel-sub{margin:0;color:var(--fg-2);font-size:13px;max-width:680px;line-height:1.5}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 16px;border:1px solid var(--border-strong);background:var(--bg-2);color:var(--fg-0);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:13px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.btn:hover:not(:disabled){background:var(--bg-3);border-color:var(--amber-dim)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--amber);color:#201603;border-color:var(--amber);font-weight:600}.btn-primary:hover:not(:disabled){background:#ffcd6e;border-color:#ffcd6e}.btn-ghost{background:transparent}.btn-file{cursor:pointer}.pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:0;background:var(--bg-2);color:var(--fg-1);border:1px solid var(--border);font-family:var(--font-mono);font-size:12px;cursor:pointer}.pill:hover{background:var(--bg-3);color:var(--fg-0)}.err{color:var(--red);padding:0 28px;font-family:var(--font-mono);font-size:13px}.dim{color:var(--fg-2)}.dim.small{font-size:12px}.reading-wrap{display:flex;height:100%}.reading-sidebar{width:240px;min-width:200px;border-right:1px solid var(--border);background:var(--bg-1);display:flex;flex-direction:column;overflow-y:auto}.reading-sidebar-head{padding:14px 16px;font-family:var(--font-mono);font-size:13px;color:var(--amber);letter-spacing:.08em;border-bottom:1px solid var(--border)}.reading-entry{display:flex;flex-direction:column;gap:2px;padding:10px 16px;background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--fg-1);font-family:var(--font-mono);font-size:12px;text-align:left;cursor:pointer;transition:background .1s}.reading-entry:hover{background:var(--bg-2)}.reading-entry.is-active{background:var(--bg-3);border-left:2px solid var(--amber);color:var(--amber)}.reading-entry-title{font-weight:600}.reading-entry-meta{color:var(--fg-3);font-size:10px}.reading-sidebar-foot{margin-top:auto;padding:12px 16px;border-top:1px solid var(--border)}.reading-order-btn{font-size:11px;width:100%}.reading-content{flex:1;overflow-y:auto;padding:24px 32px 40px}.reading-loading{color:var(--fg-3);font-family:var(--font-mono);font-size:13px}.reading-entry-tags{display:flex;gap:6px;margin-bottom:12px}.reading-tag{font-family:var(--font-mono);font-size:10px;padding:2px 8px;border:1px solid var(--border);color:var(--fg-2);letter-spacing:.06em}.reading-md{font-family:var(--font-mono);font-size:13px;line-height:1.7;color:var(--fg-1)}.reading-md h1{font-size:18px;color:var(--amber);margin:0 0 16px;border-bottom:1px solid var(--border);padding-bottom:8px}.reading-md h2{font-size:15px;color:var(--cyan);margin:20px 0 10px}.reading-md h3{font-size:13px;color:var(--violet);margin:16px 0 8px}.reading-md blockquote{border-left:2px solid var(--amber-dim);padding:4px 16px;margin:12px 0;color:var(--fg-2);font-style:italic}.reading-md code{background:var(--bg-3);padding:1px 6px;font-size:12px}.reading-md pre{background:var(--bg-2);border:1px solid var(--border);padding:12px 16px;overflow-x:auto;margin:12px 0}.reading-md pre code{background:transparent;padding:0}.reading-md table{border-collapse:collapse;margin:12px 0}.reading-md th,.reading-md td{border:1px solid var(--border);padding:6px 12px;text-align:left}.reading-md th{background:var(--bg-2);color:var(--amber);font-weight:600}.reading-md hr{border:none;border-top:1px solid var(--border);margin:20px 0}.reading-md ul,.reading-md ol{padding-left:20px}.reading-md li{margin-bottom:4px}.reading-md strong{color:var(--fg-0)}.reading-md em{color:var(--violet)}.reading-md a{color:var(--cyan);text-decoration:none}.reading-md a:hover{text-decoration:underline}.reading-empty{display:grid;place-items:center;min-height:200px;color:var(--fg-3);font-family:var(--font-mono);font-size:13px;text-align:center}@media(max-width:600px){.reading-wrap{flex-direction:column}.reading-sidebar{width:100%;min-width:unset;max-height:140px;border-right:none;border-bottom:1px solid var(--border);flex-direction:row;overflow-x:auto;overflow-y:hidden}.reading-sidebar-head,.reading-sidebar-foot{display:none}.reading-entry{min-width:120px;border-bottom:none;border-right:1px solid var(--border)}.reading-entry.is-active{border-left:none;border-bottom:2px solid var(--amber)}.reading-content{padding:16px}}.todo-wrap{padding-bottom:24px}.todo-compose{display:flex;gap:10px;padding:0 28px 16px}.todo-compose input{flex:1;padding:10px 12px;min-height:40px;background:var(--bg-2);border:1px solid var(--border-strong);color:var(--fg-0);font-family:var(--font-mono);font-size:13px}.todo-list{padding:0 28px}.todo-empty{color:var(--fg-3);font-family:var(--font-mono);font-size:13px;padding:20px 0}.todo-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:13px}.todo-closed{opacity:.45}.todo-closed .todo-text{text-decoration:line-through}.todo-check{background:none;border:none;color:var(--cyan);font-size:16px;cursor:pointer;padding:0;line-height:1}.todo-text{flex:1;color:var(--fg-1)}.todo-remove{font-size:16px;padding:2px 6px;min-height:unset}.todo-section-label{padding:12px 0 6px;font-family:var(--font-mono);font-size:11px;color:var(--fg-3);letter-spacing:.1em;text-transform:uppercase}.messages-wrap{display:flex;flex-direction:column;height:100%}.messages-toolbar{display:flex;gap:10px;align-items:center;padding:0 28px 10px;font-family:var(--font-mono);font-size:12px}.messages-toolbar .spacer{flex:1}.messages-settings{display:grid;gap:10px;margin:0 28px 14px;padding:14px 16px;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius)}.messages-settings label{display:grid;gap:4px;font-family:var(--font-mono);font-size:12px;color:var(--fg-2)}.messages-settings input,.messages-settings select{padding:10px 12px;min-height:40px;background:var(--bg-2);border:1px solid var(--border-strong);color:var(--fg-0);font-family:var(--font-mono);font-size:13px;border-radius:var(--radius-sm)}.messages-log{flex:1;overflow:auto;padding:4px 28px 12px;display:flex;flex-direction:column;gap:10px}.messages-empty{padding:30px 0;text-align:center;font-family:var(--font-mono)}.msg{padding:10px 14px;border-radius:var(--radius-sm);max-width:640px;border:1px solid var(--border);background:var(--bg-1);font-family:var(--font-mono);font-size:13px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.msg-meta{display:flex;gap:10px;font-size:11px;color:var(--fg-3);margin-bottom:4px;align-items:center}.msg-from{color:var(--amber);letter-spacing:.08em;text-transform:uppercase}.msg-time{color:var(--fg-3)}.msg-status{padding:1px 6px;border-radius:999px;border:1px solid var(--border)}.msg-status-failed{color:var(--red);border-color:#ff6b6b66}.msg-status-pending{color:var(--blue);border-color:#58a6ff66}.msg-operator{align-self:flex-end;border-color:var(--amber-dim);background:#1a1509}.msg-orb{align-self:flex-start;border-color:var(--violet-dim);background:#17111e}.msg-system{align-self:center;border-style:dashed;color:var(--fg-2);font-size:12px}.messages-compose{display:flex;gap:10px;padding:12px 28px 20px;border-top:1px solid var(--border);background:var(--bg-1)}.messages-compose textarea{flex:1;resize:vertical;min-height:46px;padding:10px 12px;background:var(--bg-2);border:1px solid var(--border-strong);color:var(--fg-0);font-family:var(--font-mono);font-size:13px;border-radius:var(--radius-sm)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:0;background:var(--bg-2);border:1px solid var(--border);color:var(--amber);font-size:16px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.icon-btn:hover{background:var(--bg-3);border-color:var(--amber-dim)}.drawer-scrim{position:fixed;inset:0;background:#0000008c;backdrop-filter:blur(2px);z-index:50;display:flex;justify-content:flex-end}.drawer{width:min(460px,100vw);height:100dvh;background:var(--bg-1);border-left:1px solid var(--border-strong);box-shadow:-8px 0 20px #00000080;display:flex;flex-direction:column;animation:drawer-in .2s ease-out}@keyframes drawer-in{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}.drawer-head h2{margin:0;font-family:var(--font-mono);font-size:16px;letter-spacing:.06em;display:inline-flex;gap:10px;align-items:center}.drawer-section{padding:18px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.drawer-section h3{margin:0;font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--amber)}.drawer-field{display:grid;gap:6px;font-family:var(--font-mono);font-size:12px;color:var(--fg-2)}.drawer-field input,.drawer-field select{padding:10px 12px;min-height:42px;background:var(--bg-2);border:1px solid var(--border-strong);color:var(--fg-0);font-family:var(--font-mono);font-size:13px;border-radius:var(--radius-sm)}.drawer-field a{color:var(--amber);text-decoration:none}.drawer-field a:hover{text-decoration:underline}.drawer-key{display:flex;gap:8px}.drawer-key input{flex:1}.drawer-actions{display:flex;gap:12px;align-items:center}.drawer-flash{font-family:var(--font-mono);font-size:12px;color:var(--green);opacity:0;transition:opacity .3s ease}.drawer-flash.on{opacity:1}.drawer-section ul{margin:0;padding-left:18px}@media(max-width:600px){.hosaka-brand-sub{display:none}.panel-header{padding:16px 16px 8px}.messages-toolbar,.messages-log,.messages-compose,.todo-compose,.todo-list{padding-left:16px;padding-right:16px;margin-left:0;margin-right:0}.hosaka-dock-label{font-size:12px}.hosaka-topbar{padding:4px 10px}.hosaka-brand-logo{font-size:13px}.signal-badge,.plant-badge{padding:3px 8px;font-size:10px}.plant-badge{display:none}.icon-btn{width:32px;height:32px}.hosaka-dock{padding:3px 6px;gap:4px}.hosaka-dock-btn{padding:5px 10px;min-height:36px;font-size:12px}.terminal-wrap{padding:4px}.terminal-host{padding:6px}.hosaka-footer{display:none}}/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;inset:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;inset:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}
