#dashboard{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem;padding:1rem 1.2rem 4rem;max-width:100%}.panel{display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--accent-dim);border-radius:var(--radius);box-shadow:var(--border-glow);overflow:hidden;min-height:140px;min-width:0}.panel__header{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.35rem .75rem;background:linear-gradient(180deg,#001e2db3,#000a1299);border-bottom:1px solid rgba(0,217,255,.3);font-family:var(--font-display);font-size:.8rem;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);cursor:grab;user-select:none}.panel__header:active{cursor:grabbing}.panel__title-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px var(--accent);margin-right:.5rem;vertical-align:middle}.panel__actions{display:flex;gap:.3rem;align-items:center;font-size:.7rem;color:var(--muted);letter-spacing:.15em;cursor:default}.panel__actions button{background:transparent;border:1px solid var(--accent-dim);color:var(--accent);font-family:var(--font-mono);font-size:.7rem;padding:.15rem .45rem;border-radius:2px;cursor:pointer;letter-spacing:.08em;text-transform:uppercase}.panel__actions button:hover{background:var(--accent-soft);box-shadow:0 0 8px #00d9ff59}.panel__body{flex:1;overflow:auto;padding:.75rem;position:relative}.panel--offline .panel__body{opacity:.45;filter:grayscale(.4)}.panel__offline-chip{position:absolute;top:.5rem;right:.5rem;font-size:.65rem;letter-spacing:.15em;color:var(--warn);background:#00000080;padding:.1em .5em;border:1px solid var(--warn);border-radius:2px;text-transform:uppercase}.slot-hero,.slot-images,.slot-search{grid-column:span 12}.slot-metrics,.slot-tasks{grid-column:span 6}.slot-tree{grid-column:span 4}.slot-chat{grid-column:span 5}.slot-terminal{grid-column:span 3}.slot-docker,.slot-nginx{grid-column:span 6}.slot-skills,.slot-memory,.slot-audit{grid-column:span 4}@media (max-width: 1400px){.slot-tree,.slot-skills,.slot-memory,.slot-audit{grid-column:span 6}.slot-chat{grid-column:span 7}.slot-terminal{grid-column:span 12}}@media (max-width: 960px){.slot-metrics,.slot-tasks,.slot-docker,.slot-nginx,.slot-tree,.slot-chat,.slot-skills,.slot-memory,.slot-audit{grid-column:span 12}}.panel .data-table{width:100%;border-collapse:collapse;font-size:.82rem}.panel .data-table th{text-align:left;color:var(--muted);font-family:var(--font-display);font-weight:500;letter-spacing:.18em;text-transform:uppercase;font-size:.7rem;padding:.3rem .5rem;border-bottom:1px solid rgba(0,217,255,.18)}.panel .data-table td{padding:.3rem .5rem;border-bottom:1px solid rgba(0,217,255,.08);color:var(--fg);vertical-align:top}.panel .data-table tr:hover td{background:#00d9ff0d}.muted{color:var(--muted)}.dim{opacity:.6}.badge{display:inline-block;padding:.1em .55em;border:1px solid currentColor;border-radius:2px;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}.badge--ok{color:var(--ok)}.badge--warn{color:var(--warn)}.badge--danger{color:var(--danger)}.badge--info{color:var(--accent)}.btn{background:transparent;border:1px solid var(--accent-dim);color:var(--accent);padding:.35rem .7rem;font-family:var(--font-display);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;border-radius:2px;cursor:pointer}.btn:hover:not(:disabled){background:var(--accent-soft);box-shadow:0 0 8px #00d9ff59}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--danger{border-color:var(--danger);color:var(--danger)}.btn--ok{border-color:var(--ok);color:var(--ok)}.text-input{background:#00000073;border:1px solid var(--accent-dim);color:var(--fg);font-family:var(--font-mono);font-size:.85rem;padding:.35rem .55rem;border-radius:2px;outline:none;width:100%}.text-input:focus{border-color:var(--accent);box-shadow:0 0 6px #00d9ff80}#modal-root:empty{display:none}.modal-backdrop{position:fixed;inset:0;z-index:1000;background:#00050ad1;backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:2rem}.modal{background:var(--bg-panel);border:1px solid var(--accent);border-radius:var(--radius);box-shadow:0 0 40px #00d9ff4d;max-width:90vw;max-height:85vh;width:900px;display:flex;flex-direction:column;overflow:hidden}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;background:linear-gradient(180deg,#001e2de6,#000a12d9);border-bottom:1px solid var(--accent-dim);font-family:var(--font-display);letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}.modal__body{flex:1;overflow:auto;padding:1rem}.modal__close{background:transparent;border:none;color:var(--accent);font-size:1.2rem;cursor:pointer;padding:0 .4rem}.panel pre,.modal pre{background:#0000008c;border:1px solid rgba(0,217,255,.15);border-radius:2px;padding:.6rem .8rem;overflow:auto;font-family:var(--font-mono);font-size:.82rem;color:var(--fg)}.panel code,.modal code{font-family:var(--font-mono)}.proj-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}.proj-card{background:#000f19b3;border:1px solid var(--accent-dim);border-radius:2px;padding:.6rem .7rem;cursor:pointer;transition:border-color .15s,box-shadow .15s}.proj-card:hover{border-color:var(--accent);box-shadow:0 0 10px #00d9ff59}.proj-card--active{border-color:var(--accent);box-shadow:0 0 14px #00d9ff8c}.proj-card__name{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:.92rem;margin-bottom:.25rem}.proj-card__row{display:flex;justify-content:space-between;gap:.5rem;font-size:.72rem;color:var(--muted);margin-top:.15rem}.proj-card__commit{margin-top:.4rem;font-size:.75rem;color:var(--fg);opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.img-strip{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.4rem}.img-strip img{height:90px;width:auto;border:1px solid var(--accent-dim);border-radius:2px;cursor:pointer;flex:0 0 auto;background:#000}.img-strip img:hover{border-color:var(--accent);box-shadow:0 0 10px #00d9ff66}.tree-root{font-family:var(--font-mono);font-size:.82rem}.tree-node{padding:.12rem 0;white-space:nowrap;cursor:pointer;display:flex;align-items:center;gap:.3rem}.tree-node--selected{background:#00d9ff1f;color:var(--accent)}.tree-node:hover{background:#00d9ff0f}.tree-node__arrow{display:inline-block;width:10px;color:var(--accent-dim)}.tree-node__icon{color:var(--accent-dim)}.tree-children{padding-left:1.1rem}.chat-wrap{display:grid;grid-template-columns:180px 1fr;height:100%;min-height:320px;gap:.6rem}.chat-convs{border-right:1px solid rgba(0,217,255,.18);overflow-y:auto;padding-right:.4rem}.chat-conv{padding:.4rem .5rem;border:1px solid transparent;border-radius:2px;cursor:pointer;font-size:.82rem;margin-bottom:.2rem;color:var(--fg)}.chat-conv:hover{background:#00d9ff0f}.chat-conv--active{border-color:var(--accent-dim);background:#00d9ff1a;color:var(--accent)}.chat-main{display:flex;flex-direction:column;min-height:0}.chat-messages{flex:1;overflow-y:auto;padding:.4rem}.chat-msg{margin-bottom:.7rem;padding:.4rem .6rem;border-left:2px solid var(--accent-dim)}.chat-msg--user{border-left-color:var(--accent);color:var(--fg)}.chat-msg--assistant{border-left-color:var(--ok)}.chat-msg--tool{border-left-color:var(--warn);font-family:var(--font-mono)}.chat-msg__role{font-family:var(--font-display);letter-spacing:.2em;font-size:.68rem;color:var(--muted);text-transform:uppercase;margin-bottom:.2rem}.chat-msg__body{white-space:pre-wrap;word-wrap:break-word}.tool-card{border:1px solid var(--accent-dim);background:#00000059;padding:.4rem .55rem;border-radius:2px;margin:.3rem 0;cursor:pointer;font-size:.82rem}.tool-card summary{list-style:none;cursor:pointer;color:var(--warn)}.tool-card summary::-webkit-details-marker{display:none}.tool-card pre{margin-top:.4rem;font-size:.75rem;white-space:pre-wrap;max-height:260px;overflow:auto}.chat-input{display:flex;gap:.4rem;border-top:1px solid rgba(0,217,255,.18);padding:.4rem}.chat-input textarea{flex:1;background:#00000073;border:1px solid var(--accent-dim);color:var(--fg);font-family:var(--font-mono);font-size:.85rem;padding:.35rem .55rem;border-radius:2px;resize:vertical;min-height:36px;max-height:150px}.term-wrap{display:flex;flex-direction:column;height:100%;min-height:280px}.term-tabs{display:flex;gap:.3rem;padding:.3rem .4rem;border-bottom:1px solid rgba(0,217,255,.18);overflow-x:auto}.term-tab{display:inline-flex;gap:.35rem;align-items:center;padding:.2rem .55rem;background:transparent;border:1px solid var(--accent-dim);color:var(--muted);border-radius:2px;font-size:.75rem;cursor:pointer}.term-tab--active{color:var(--accent);border-color:var(--accent);background:#00d9ff14}.term-tab__x{color:var(--muted);padding:0 .15rem}.term-tab__x:hover{color:var(--danger)}.term-body{flex:1;background:#000;position:relative;min-height:240px}.term-pane{position:absolute;inset:0;padding:.3rem}.term-pane--hidden{display:none}.metrics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}.metrics-cell{border:1px solid var(--accent-dim);border-radius:2px;padding:.35rem .4rem;background:#00000059}.metrics-cell h4{margin:0 0 .2rem;font-size:.7rem;letter-spacing:.2em;color:var(--muted)}.metrics-cell .metric-value{font-family:var(--font-display);font-weight:700;color:var(--accent);font-size:1.4rem;text-shadow:var(--glow-soft)}.metrics-cell canvas{margin-top:.2rem;width:100%}.fv-body{max-height:72vh;overflow:auto}.fv-body pre{max-height:70vh}.fv-body img{max-width:100%;border:1px solid var(--accent-dim)}.fv-md h1,.fv-md h2,.fv-md h3{color:var(--accent);font-family:var(--font-display);letter-spacing:.15em}.fv-md a{color:var(--accent)}.fv-md code{background:#00000073;padding:.1em .35em;border-radius:2px}.search-bar{display:flex;gap:.5rem;align-items:center}.search-results{margin-top:.5rem;max-height:260px;overflow:auto}.search-hit{padding:.3rem .4rem;cursor:pointer;font-size:.82rem;border-bottom:1px solid rgba(0,217,255,.08)}.search-hit:hover{background:#00d9ff14}.task-group h4{color:var(--muted);font-size:.7rem;letter-spacing:.18em;margin:.6rem 0 .2rem;text-transform:uppercase}.task-row{display:flex;align-items:center;gap:.4rem;padding:.15rem .2rem;cursor:text}.task-row input[type=checkbox]{accent-color:var(--accent)}.task-row--done span{text-decoration:line-through;opacity:.55}.task-row__title{flex:1;background:transparent;border:none;color:var(--fg);font-family:var(--font-mono);font-size:.85rem;outline:none}.task-row__title[readonly]{cursor:pointer}.docker-row td code,.nginx-row td code{font-size:.75rem;color:var(--accent)}.domain-card{border:1px solid var(--accent-dim);border-radius:2px;padding:.4rem .5rem;margin-bottom:.4rem;background:#00000059}.domain-card__head{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--font-mono);font-size:.85rem}.domain-card__url{color:var(--accent)}.status-200{color:var(--ok)}.status-3xx{color:var(--warn)}.status-4xx,.status-5xx{color:var(--danger)}.status-nil{color:var(--muted)}.skill-row td.skill-name{color:var(--accent);font-family:var(--font-display);letter-spacing:.15em}.mem-wrap{display:grid;grid-template-columns:180px 1fr;gap:.6rem;min-height:200px}.mem-list{overflow-y:auto;max-height:300px;border-right:1px solid rgba(0,217,255,.15);padding-right:.3rem}.mem-item{padding:.3rem .4rem;border:1px solid transparent;border-radius:2px;cursor:pointer;font-size:.78rem}.mem-item:hover{background:#00d9ff0f}.mem-item--active{border-color:var(--accent-dim);color:var(--accent);background:#00d9ff14}.mem-body{overflow-y:auto;max-height:320px}.audit-log{font-family:var(--font-mono);font-size:.78rem;max-height:360px;overflow-y:auto}.audit-line{padding:.2rem .3rem;border-bottom:1px solid rgba(0,217,255,.08)}.audit-line__ts{color:var(--muted)}.audit-line__cat{color:var(--accent);padding:0 .4rem}.audit-line__actor{color:var(--warn)}.approval-card{padding:1rem;border:1px solid var(--warn);background:#1e0a0080;border-radius:2px}.approval-card h3{color:var(--warn);margin:0 0 .4rem}.approval-card pre{background:#000000a6;padding:.5rem;overflow:auto;max-height:260px;font-size:.78rem}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-formula{color:#c678dd}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string{color:#98c379}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{color:#d19a66}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-title.class_,.hljs-class .hljs-title{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}
