@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.inline{display:inline}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.break-all{word-break:break-all}.uppercase{text-transform:uppercase}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--bg:#f4f3f0;--surface:#fff;--surface-2:#faf9f7;--surface-sink:#f0efe9;--line:#18161214;--line-2:#1816121f;--ink:#1c1a16;--ink-2:#1c1a1699;--ink-3:#1c1a1666;--ink-4:#1c1a1647;--accent:#e85d2a;--accent-ink:#b8420f;--accent-soft:#e85d2a1a;--accent-line:#e85d2a4d;--run:#1f9d57;--warn:#c97c12;--stop:#cc3b2e;--info:#2f6df0;--run-soft:#1f9d571a;--warn-soft:#c97c121a;--stop-soft:#cc3b2e1a;--info-soft:#2f6df01a;--line-strong:#18161233;--shadow-card:0 1px 2px #1816120a, 0 6px 20px -12px #1816122e;--shadow-pop:0 12px 40px -8px #18161238, 0 2px 8px #1816121a;--sidebar-w:248px;--r-card:16px;--r-ctl:10px;--r-pill:999px;--r-sm:8px;--r-md:12px;--page-pad:36px;--card-pad:22px;--grid-gap:18px;--ease:cubic-bezier(.32, .08, .24, 1)}*,:before,:after{box-sizing:border-box}html{background:var(--bg);min-height:100vh}body{min-height:100vh;color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:0 0;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;line-height:1.5}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit}h1,h2,h3{line-height:1.2}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#18161233}#root{min-height:100vh}@media(prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.45}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}@keyframes toast-slide{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes skeleton-shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-pop);padding:32px;width:100%;max-width:400px;display:flex;flex-direction:column;gap:20px}.auth-brand{display:flex;align-items:center;gap:10px;justify-content:center;margin-bottom:4px}.auth-brand-icon{font-size:28px}.auth-brand-name{font-size:22px;font-weight:700;color:var(--ink);letter-spacing:-.02em}.auth-title{font-size:18px;font-weight:700;color:var(--ink);margin:0;text-align:center}.auth-subtitle{font-size:13px;color:var(--ink-3);text-align:center;margin:0}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-field{display:flex;flex-direction:column;gap:5px}.auth-label{font-size:12px;font-weight:600;color:var(--ink-2)}.auth-input{height:38px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-sink);color:var(--ink);font-size:13px;outline:none;transition:border-color .12s;width:100%}.auth-input:focus{border-color:var(--accent);background:var(--surface)}.auth-input::placeholder{color:var(--ink-4)}.auth-submit{height:40px;background:var(--accent);border:none;border-radius:var(--r-md);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .12s;width:100%;margin-top:4px}.auth-submit:hover{background:var(--accent-ink)}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-error{font-size:12px;color:var(--stop);background:var(--stop-soft);border:1px solid rgba(204,59,46,.2);border-radius:var(--r-sm);padding:8px 12px}.auth-success{font-size:12px;color:var(--run);background:var(--run-soft);border:1px solid rgba(31,157,87,.2);border-radius:var(--r-sm);padding:8px 12px}.auth-switch{text-align:center;font-size:13px;color:var(--ink-3)}.auth-link{color:var(--accent);font-weight:600;cursor:pointer;background:none;border:none;font-size:inherit;padding:0}.auth-link:hover{color:var(--accent-ink)}.auth-field-row{display:flex;gap:8px}.auth-field-row .auth-field{flex:1}.auth-tabs{display:flex;gap:2px;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);padding:2px}.auth-tab{flex:1;height:32px;border:none;border-radius:calc(var(--r-sm) - 2px);background:transparent;color:var(--ink-3);font-size:13px;font-weight:500;cursor:pointer;transition:background .12s,color .12s}.auth-tab:hover{color:var(--ink)}.auth-tab.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card)}.dashboard-page{padding:var(--page-pad, 36px);max-width:1320px;margin:0 auto;width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:20px}.content-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.content-title{font-size:18px;font-weight:700;color:var(--ink);margin:0;letter-spacing:-.02em;flex-shrink:0}.container-count{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--ink-3);background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-pill);padding:2px 8px;flex-shrink:0}.btn-start-all{height:28px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--run);font-size:12px;font-weight:500;cursor:pointer;transition:border-color .12s,background .12s;white-space:nowrap}.btn-start-all:hover{border-color:var(--run);background:var(--run-soft)}.btn-start-all:disabled{opacity:.4;cursor:not-allowed}.btn-open-drawer{height:28px;padding:0 12px;background:var(--accent);border:none;border-radius:var(--r-sm);color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s;white-space:nowrap;margin-left:auto}.btn-open-drawer:hover{background:var(--accent-ink)}.btn-chip{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-2);font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:border-color .12s,color .12s}.btn-chip:hover{border-color:var(--line-2);color:var(--ink)}.filter-group{flex-shrink:0}.btn-view-toggle{height:32px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-2);font-size:12px;font-weight:500;cursor:pointer;transition:border-color .12s,color .12s,background .12s;white-space:nowrap;flex-shrink:0}.btn-view-toggle:hover{border-color:var(--line-2);color:var(--ink)}.btn-view-toggle.active{background:var(--surface-sink);border-color:var(--line-2);color:var(--ink)}.section-block{display:flex;flex-direction:column;gap:10px}.section-divider{border:none;border-top:1px solid var(--line);margin:4px 0}.modal-overlay{position:fixed;inset:0;z-index:200;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:1rem}.modal-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-pop);width:100%;max-width:540px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--line)}.modal-title{font-size:1rem;font-weight:600;color:var(--ink)}.modal-close{background:transparent;border:none;color:var(--ink-3);font-size:1rem;cursor:pointer;padding:.2rem .4rem;border-radius:var(--r-sm)}.modal-close:hover{color:var(--stop)}.modal-view-toggle{display:flex;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);padding:2px;gap:0;margin-left:auto;margin-right:.75rem}.modal-view-btn{background:transparent;border:none;border-radius:var(--r-sm);color:var(--ink-3);font-size:.78rem;font-weight:500;padding:.2rem .6rem;cursor:pointer;transition:background .15s,color .15s}.modal-view-btn.active{background:var(--line);color:var(--ink)}.modal-view-btn:hover:not(.active){color:var(--ink)}.modal-json-hint{font-size:.78rem;color:var(--ink-3);margin:0 0 .5rem}.modal-json-hint code{background:var(--surface-sink);border-radius:3px;padding:.05rem .3rem;font-size:.75rem;color:var(--ink-3)}.modal-json-editor{width:100%;box-sizing:border-box;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink);font-family:JetBrains Mono,monospace;font-size:.82rem;line-height:1.5;padding:.75rem;resize:vertical;outline:none;transition:border-color .15s}.modal-json-editor:focus{border-color:var(--accent)}.modal-body{padding:1rem 1.25rem;overflow-y:auto;display:flex;flex-direction:column;gap:.7rem;flex:1}.modal-hint{padding:1.5rem;color:var(--ink-3);text-align:center}.modal-row{display:flex;align-items:center;gap:.75rem}.modal-label{font-size:.82rem;color:var(--ink-2);width:7rem;flex-shrink:0}.modal-input{flex:1;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink);padding:.4rem .7rem;font-size:.88rem;min-width:0}.modal-input:focus{outline:none;border-color:var(--accent)}.modal-input::placeholder{color:var(--ink-3)}.modal-input-sm{max-width:7rem;flex:0 0 7rem}.modal-mem-slider{flex:1;display:flex;flex-direction:column;gap:.2rem}.modal-mem-slider input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer}.modal-mem-labels{display:flex;justify-content:space-between;font-size:.7rem;color:var(--ink-3)}.modal-mem-value{font-size:.82rem;font-weight:600;color:var(--accent);min-width:4.5rem;text-align:right;flex-shrink:0}.modal-section-label{font-size:.75rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin-top:.3rem}.modal-env-row{display:flex;align-items:center;gap:.4rem}.modal-env-key{flex:0 0 38%;font-family:JetBrains Mono,monospace;font-size:.82rem}.modal-env-val{flex:1;font-family:JetBrains Mono,monospace;font-size:.82rem}.modal-env-sep{color:var(--ink-3);font-size:.9rem;flex-shrink:0}.btn-env-remove{background:transparent;border:none;color:var(--ink-3);cursor:pointer;font-size:.75rem;padding:.2rem .3rem;border-radius:var(--r-sm);flex-shrink:0}.btn-env-remove:hover{color:var(--stop)}.btn-add-env{background:transparent;border:1px dashed var(--line-2);border-radius:var(--r-sm);color:var(--ink-3);padding:.3rem .6rem;font-size:.8rem;cursor:pointer;transition:border-color .15s,color .15s;align-self:flex-start}.modal-error{color:var(--stop);font-size:.85rem;background:var(--stop-soft);border:1px solid var(--stop);border-radius:var(--r-sm);padding:.5rem .75rem;margin:0}.modal-footer{display:flex;gap:.75rem;justify-content:flex-end;padding:.875rem 1.25rem;border-top:1px solid var(--line)}.modal-btn-cancel{background:transparent;border:1px solid var(--line-2);border-radius:var(--r-md);color:var(--ink-2);padding:.5rem 1rem;font-size:.88rem;cursor:pointer}.modal-btn-cancel:hover{border-color:var(--ink-2)}.modal-btn-save{background:var(--accent);border:none;border-radius:var(--r-md);color:#fff;padding:.5rem 1.1rem;font-size:.88rem;font-weight:600;cursor:pointer;transition:background .2s}.modal-btn-save:hover:not(:disabled){background:var(--accent-ink)}.modal-btn-save:disabled{opacity:.5;cursor:not-allowed}.logs-overlay{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:200;padding:1.5rem}.logs-modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-pop);width:100%;max-width:900px;height:75vh;display:flex;flex-direction:column;overflow:hidden;position:relative}.logs-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--surface-sink);border-bottom:1px solid var(--line);flex-shrink:0;gap:1rem}.logs-title{display:flex;align-items:center;gap:.5rem;min-width:0}.logs-icon{font-size:1rem;color:var(--ink-3);flex-shrink:0}.logs-name{font-size:.9rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logs-live-badge{font-size:.72rem;font-weight:700;color:var(--run);letter-spacing:.05em;flex-shrink:0;animation:pulse-soft 2s infinite}.logs-live-badge-polling{color:var(--warn)}.logs-controls{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.logs-tail-label{font-size:.78rem;color:var(--ink-3);margin-right:.1rem}.logs-tail-btn{background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-2);font-size:.75rem;padding:.2rem .5rem;cursor:pointer;transition:all .15s}.logs-tail-btn:hover{border-color:var(--line-2);color:var(--ink)}.logs-tail-btn.active{background:var(--surface-sink);border-color:var(--accent);color:var(--accent)}.logs-actions{display:flex;gap:.25rem;margin-left:.25rem}.logs-action-btn{background:transparent;border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-3);font-size:.85rem;width:1.8rem;height:1.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.logs-action-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.logs-action-btn:disabled{opacity:.3;cursor:default}.logs-close-btn{background:transparent;border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-3);font-size:.85rem;width:1.8rem;height:1.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;margin-left:.25rem}.logs-close-btn:hover{border-color:var(--stop);color:var(--stop)}.logs-body{flex:1;overflow-y:auto;padding:.75rem 1rem;font-family:JetBrains Mono,monospace;font-size:.78rem;line-height:1.6;color:var(--ink)}.logs-body::-webkit-scrollbar{width:6px}.logs-body::-webkit-scrollbar-track{background:transparent}.logs-body::-webkit-scrollbar-thumb{background:var(--surface-sink);border-radius:3px}.log-line{white-space:pre-wrap;word-break:break-all;padding:.05rem 0;border-bottom:1px solid transparent}.log-line:hover{background:var(--surface-sink);border-color:var(--line);border-radius:3px}.logs-hint{color:var(--ink-3);font-size:.85rem;font-family:inherit}.logs-scroll-btn{position:absolute;bottom:1rem;right:1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);color:var(--ink);font-size:.78rem;padding:.35rem .85rem;cursor:pointer;transition:all .15s}.logs-scroll-btn:hover{border-color:var(--line-2)}.rg-backdrop{position:fixed;inset:0;z-index:200;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:1rem}.rg-modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-pop);width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.rg-header{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.25rem;border-bottom:1px solid var(--line);flex-shrink:0}.rg-title{font-size:.95rem;font-weight:700;color:var(--ink)}.rg-close{background:transparent;border:none;color:var(--ink-3);font-size:.9rem;cursor:pointer;padding:.25rem .4rem;border-radius:var(--r-sm);transition:color .15s}.rg-close:hover{color:var(--stop)}.rg-body{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:1rem}.rg-meta{display:flex;align-items:center;gap:.75rem;font-size:.75rem;color:var(--ink-3)}.rg-meta-count{flex-shrink:0}.rg-meta-range{color:var(--ink-4)}.rg-charts{display:flex;flex-direction:column;gap:1rem}.rg-chart-block{background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-md);padding:.75rem 1rem}.rg-chart-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.rg-chart-label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}.rg-chart-value{font-size:.85rem;font-weight:700;font-family:JetBrains Mono,monospace}.sparkline{display:block;border-radius:4px;overflow:visible}.rg-chart-axis{display:flex;justify-content:space-between;margin-top:.25rem;font-size:.65rem;color:var(--ink-4);font-family:JetBrains Mono,monospace}.rg-hint{font-size:.82rem;color:var(--ink-3);text-align:center;margin:0;padding:.5rem 0}.rg-error{font-size:.82rem;color:var(--stop);text-align:center;margin:0}.rg-footer{display:flex;justify-content:flex-end;padding:.75rem 1.25rem;border-top:1px solid var(--line)}.rg-btn-close{background:transparent;border:1px solid var(--line-2);border-radius:var(--r-md);color:var(--ink-2);font-size:.82rem;padding:.45rem .9rem;cursor:pointer;transition:border-color .15s,color .15s}.rg-btn-close:hover{border-color:var(--ink-2);color:var(--ink)}.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-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{font-family:monospace;-webkit-user-select:text;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:fit-content}.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}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.toast-container{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:400;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--ink);color:#fff;border-radius:var(--r-pill);font-size:13px;font-weight:500;box-shadow:var(--shadow-pop);pointer-events:all;animation:toast-slide .15s var(--ease) both;max-width:380px;white-space:nowrap}.toast-strip{display:none}.toast-body{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.toast-msg{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.toast-action{background:#ffffff26;border:none;border-radius:6px;color:#fff;font-size:12px;font-weight:600;padding:3px 8px;cursor:pointer;white-space:nowrap}.toast-action:hover{background:#ffffff40}.toast-close{background:transparent;border:none;color:#fff9;cursor:pointer;display:flex;align-items:center;padding:0;flex-shrink:0}.toast-close:hover{color:#fff}.toast-success{border-left:3px solid var(--run)}.toast-error{border-left:3px solid var(--stop)}.toast-warning{border-left:3px solid var(--warn)}.toast-info{border-left:3px solid var(--info)}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:var(--r-pill);font-size:11px;font-weight:600}.pill-run{background:var(--run-soft);color:var(--run)}.pill-stop{background:#1c1a1612;color:#1c1a1666}.pill-warn{background:var(--warn-soft);color:var(--warn)}.pill-start{background:var(--info-soft);color:var(--info)}.pill-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.pill-run .pill-dot{animation:pulse-dot 1.8s ease-in-out infinite}.container-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--card-pad, 22px);display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow-card);transition:border-color .16s var(--ease),background .16s var(--ease);cursor:pointer}.container-card:hover{border-color:var(--line-2)}.container-card.card-stopped{background:var(--surface-2)}.card-header{display:flex;align-items:flex-start;gap:12px}.card-tpl-ico{width:38px;height:38px;flex:none;border-radius:10px;background:var(--surface-sink);border:1px solid var(--line);display:grid;place-items:center;font-family:JetBrains Mono,monospace;font-weight:600;font-size:12px;color:var(--ink-2);letter-spacing:-.02em}.card-head-info{flex:1;min-width:0}.card-name{font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-meta{font-family:JetBrains Mono,monospace;font-size:11.5px;color:var(--ink-3);margin-top:3px;display:flex;gap:7px;flex-wrap:wrap;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-meta-sep{color:var(--ink-4)}.card-head-right{flex-shrink:0}.card-timer{display:inline-flex;align-items:center;gap:5px;font-family:JetBrains Mono,monospace;font-size:12px;color:var(--ink-3)}.card-timer.expiring{color:var(--warn)}.card-connection{display:flex;align-items:center;gap:6px;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);padding:5px 8px}.card-conn-str{flex:1;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-copy-conn{background:transparent;border:none;color:var(--ink-3);cursor:pointer;font-size:11px;padding:2px 4px;border-radius:4px;flex-shrink:0}.btn-copy-conn:hover{color:var(--accent)}.card-stats{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stat-row{display:flex;flex-direction:column;gap:6px}.stat-row-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}.stat-lbl{font-family:JetBrains Mono,monospace;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.13em;color:var(--ink-3)}.stat-val{font-family:JetBrains Mono,monospace;font-size:13px;font-weight:550;color:var(--ink)}.stat-val-dim{color:var(--ink-4)}.stat-sparkline{height:26px}.card-foot{display:flex;align-items:center;gap:10px;padding-top:14px;border-top:1px solid var(--line)}.card-foot-left{flex:1;min-width:0}.card-foot-owner{font-family:JetBrains Mono,monospace;font-size:11.5px;color:var(--ink-4)}.card-foot-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.act{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;border:none;background:transparent;color:var(--ink-2);cursor:pointer;transition:background .13s var(--ease),color .13s var(--ease);flex-shrink:0}.act:hover{background:var(--surface-sink);color:var(--ink)}.act:disabled{opacity:.35;cursor:not-allowed}.act.danger:hover{background:var(--accent-soft);color:var(--accent-ink)}.act.go:hover{background:var(--run-soft);color:var(--run)}.card-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px;margin-top:2px}.btn-sm{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 10px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:12px;font-weight:500;cursor:pointer;transition:background .12s,border-color .12s,color .12s;white-space:nowrap}.btn-sm:hover{border-color:var(--line-2);color:var(--ink)}.btn-sm:disabled{opacity:.4;cursor:not-allowed}.btn-destructive{border-color:var(--stop-soft);color:var(--stop);background:var(--stop-soft)}.btn-destructive:hover{background:#cc3b2e29;border-color:#cc3b2e4d}.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover{background:var(--surface-sink);border-color:var(--line)}.btn-icon-sm{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink-3);cursor:pointer;flex-shrink:0;transition:background .12s,color .12s}.btn-icon-sm:hover{color:var(--ink);background:var(--surface-sink)}.btn-icon-sm.btn-destructive{color:var(--stop);border-color:var(--stop-soft);background:var(--stop-soft)}.btn-icon-sm.btn-ghost{border-color:transparent;background:transparent}.health-badge{font-size:10px;font-weight:600;padding:2px 7px;border-radius:var(--r-pill)}.health-up{background:var(--run-soft);color:var(--run)}.health-down{background:var(--stop-soft);color:var(--stop)}.container-row{display:grid;grid-template-columns:auto 80px 1fr auto auto auto auto auto auto;align-items:center;gap:10px;padding:8px 12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;transition:border-color .12s,background .12s}.container-row:hover{border-color:var(--line-2);background:var(--surface-2)}.container-row.card-stopped{opacity:.65}.row-status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.row-status-dot.status-dot-running{background:var(--run)}.row-status-dot.status-dot-exited{background:var(--stop)}.row-status-dot.status-dot-stopped{background:var(--ink-4)}.row-status-dot.status-dot-starting{background:var(--info)}.row-status-dot.status-dot-paused,.row-status-dot.status-dot-pending{background:var(--warn)}.row-status-label{font-size:11px;font-weight:600;text-transform:capitalize}.status-running{color:var(--run)}.status-stopped{color:var(--ink-3)}.status-exited{color:var(--stop)}.status-starting{color:var(--info)}.status-paused,.status-pending{color:var(--warn)}.row-name{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-port{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-3)}.row-sparkline{width:60px;height:16px}.row-started-by{font-size:11px;color:var(--ink-3)}.row-timer{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-3)}.row-timer.expiring{color:var(--warn)}.row-cpu-val{font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}.row-actions{display:flex;align-items:center;gap:4px}.confirm-label{font-size:11px;color:var(--stop);font-weight:600}.extend-popover{position:absolute;top:calc(100% + 4px);left:0;z-index:100;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:4px;display:flex;flex-direction:column;gap:2px;min-width:7rem;box-shadow:var(--shadow-pop)}.live-badge{display:inline-flex;align-items:center;gap:4px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;color:var(--run);background:var(--run-soft);border-radius:var(--r-pill);padding:2px 7px}.live-badge-dot{width:5px;height:5px;border-radius:50%;background:var(--run);animation:pulse-dot 1.4s ease-in-out infinite}.card-save-form,.card-share-form{background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px;display:flex;flex-direction:column;gap:6px}.card-save-form input,.card-share-form input{width:100%;padding:5px 8px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font-size:12px;outline:none}.card-save-form input:focus,.card-share-form input:focus{border-color:var(--accent)}.card-form-row{display:flex;gap:6px}.share-list{display:flex;flex-direction:column;gap:4px;margin-top:4px}.share-item{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--ink-2);padding:3px 0}.pending-card{opacity:.7;cursor:default;animation:pending-pulse 1.8s ease-in-out infinite}.pending-card:hover{border-color:var(--line)}.pending-status{display:flex;align-items:center;gap:6px}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.status-dot-starting{background:var(--info, #60a5fa);animation:pending-pulse 1s ease-in-out infinite}@keyframes pending-pulse{0%,to{opacity:.7}50%{opacity:1}}.stack-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:16px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-card)}.stack-card-header{display:flex;align-items:center;gap:10px}.stack-card-name{font-size:14px;font-weight:600;color:var(--ink);flex:1}.stack-card-status{font-size:11px;font-weight:600;color:var(--ink-3)}.stack-card-status.active{color:var(--run)}.stack-containers{display:flex;flex-direction:column;gap:4px}.stack-container-row{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--surface-sink);border-radius:var(--r-sm);font-size:12px}.stack-container-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.stack-dot-run{background:var(--run)}.stack-dot-stop{background:var(--ink-4)}.stack-dot-warn{background:var(--warn)}.stack-container-name{flex:1;font-family:JetBrains Mono,monospace;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stack-card-actions{display:flex;gap:6px;border-top:1px solid var(--line);padding-top:10px}.btn-stack{height:28px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-2);font-size:12px;font-weight:500;cursor:pointer;transition:border-color .12s,color .12s}.btn-stack:hover{border-color:var(--line-2);color:var(--ink)}.btn-stack:disabled{opacity:.4;cursor:not-allowed}.btn-stack-stop{color:var(--stop);border-color:var(--stop-soft);background:var(--stop-soft)}.btn-stack-stop:hover{background:#cc3b2e29}.dash-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:16px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:4px}.stat-card-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-4);font-family:JetBrains Mono,monospace}.stat-card-value{font-size:28px;font-weight:700;color:var(--ink);line-height:1;font-family:JetBrains Mono,monospace}.stat-card-sub{font-size:11px;color:var(--ink-4)}.stat-green{color:var(--run)}.stat-red{color:var(--stop)}.stat-blue{color:var(--info)}.stat-card-bar{gap:6px}.stat-bar-header{display:flex;align-items:center;justify-content:space-between}.stat-bar-value{font-family:JetBrains Mono,monospace;font-size:14px;font-weight:700}.stat-progress-track{height:4px;background:var(--surface-sink);border-radius:2px;overflow:hidden}.stat-progress-fill{height:100%;border-radius:2px;background:var(--accent);transition:width .3s var(--ease)}.stat-bar-sub{font-size:10px;color:var(--ink-4)}.stat-divider{display:none}.stat-card-templates{grid-column:span 2}.stat-card-label-top{margin-bottom:6px;display:block}.stat-template-bars{display:flex;flex-direction:column;gap:6px}.stat-tpl-row{display:grid;grid-template-columns:1fr 60px auto;align-items:center;gap:8px}.stat-tpl-name{font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-tpl-track{height:4px;background:var(--surface-sink);border-radius:2px}.stat-tpl-fill{height:100%;background:var(--accent-soft);border-radius:2px}.stat-tpl-count{font-size:11px;color:var(--ink-4);font-family:JetBrains Mono,monospace;text-align:right}@media(max-width:900px){.dash-stats{grid-template-columns:repeat(2,1fr)}}.segmented{display:flex;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);padding:2px;gap:1px}.seg-btn{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:calc(var(--r-sm) - 2px);border:none;background:transparent;color:var(--ink-3);font-size:12px;font-weight:500;cursor:pointer;transition:background .12s,color .12s,box-shadow .12s}.seg-btn:hover{color:var(--ink)}.seg-btn.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card)}.seg-count{font-size:10px;color:var(--ink-4);font-variant-numeric:tabular-nums}.seg-btn.active .seg-count{color:var(--ink-3)}.modal-backdrop{position:fixed;inset:0;z-index:100;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:1rem}.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-pop);width:100%;max-width:600px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:1}.modal-header h2{margin:0;font-size:1.05rem;color:var(--ink)}.modal-close{background:transparent;border:none;color:var(--ink-3);font-size:1rem;cursor:pointer;padding:0;line-height:1}.modal-form{padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.field{display:flex;flex-direction:column;gap:.35rem}.field label{font-size:.8rem;color:var(--ink-2);font-weight:500}.field-hint{color:var(--ink-3);font-weight:400}.field input,.field textarea{background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);font-size:.875rem;padding:.5rem .75rem;outline:none;font-family:inherit;resize:vertical;transition:border-color .15s}.field input:focus,.field textarea:focus{border-color:var(--accent)}.field input::placeholder,.field textarea::placeholder{color:var(--ink-3)}.field-row{display:flex;gap:.75rem}.field-row .field{flex:1}.containers-section{display:flex;flex-direction:column;gap:.75rem}.containers-header{display:flex;align-items:center;justify-content:space-between}.section-label{font-size:.85rem;font-weight:600;color:var(--ink)}.btn-add-container{background:transparent;border:1px dashed var(--line-2);border-radius:var(--r-sm);color:var(--accent);font-size:.8rem;padding:.3rem .75rem;cursor:pointer;transition:all .15s}.btn-add-container:hover{border-color:var(--accent);background:var(--accent-soft)}.container-config{background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-md);padding:1rem;display:flex;flex-direction:column;gap:.75rem}.container-config-header{display:flex;align-items:center;justify-content:space-between}.container-index{font-size:.8rem;font-weight:600;color:var(--accent)}.btn-remove{background:transparent;border:none;color:var(--ink-3);font-size:.8rem;cursor:pointer;padding:0}.btn-remove:hover{color:var(--stop)}.modal-error{background:var(--stop-soft);border:1px solid var(--stop);border-radius:var(--r-md);color:var(--stop);font-size:.83rem;margin:0;padding:.55rem .75rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:.25rem}.btn-cancel{background:transparent;border:1px solid var(--line-2);border-radius:var(--r-md);color:var(--ink-2);font-size:.875rem;padding:.55rem 1.25rem;cursor:pointer;transition:all .15s}.btn-cancel:hover{border-color:var(--ink-2)}.btn-create{background:var(--accent);border:none;border-radius:var(--r-md);color:#fff;font-size:.875rem;font-weight:700;padding:.55rem 1.25rem;cursor:pointer;transition:background .2s}.btn-create:hover:not(:disabled){background:var(--accent-ink)}.btn-create:disabled{opacity:.5;cursor:not-allowed}.templates-page{display:flex;flex-direction:column;gap:24px;padding:var(--page-pad, 36px);max-width:1320px;margin:0 auto;width:100%;box-sizing:border-box}.tp-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.tp-header h2{margin:0 0 4px;font-size:20px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.tp-sub{margin:0;font-size:13px;color:var(--ink-3)}.tp-header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.tp-search-wrap{position:relative;display:flex;align-items:center}.tp-search-icon{position:absolute;left:11px;color:var(--ink-3);pointer-events:none}.tp-search{height:36px;padding:0 12px 0 32px;border:1px solid var(--line-2);border-radius:var(--r-ctl, 10px);background:var(--surface);color:var(--ink);font-size:13.5px;width:220px;outline:none;transition:border-color .14s var(--ease),box-shadow .14s var(--ease);box-sizing:border-box}.tp-search:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.tp-search::placeholder{color:var(--ink-4)}.btn-new-template{height:36px;padding:0 16px;background:var(--accent);border:1px solid var(--accent);border-radius:var(--r-ctl, 10px);color:#fff;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .14s var(--ease)}.btn-new-template:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.tp-no-results{color:var(--ink-3);font-size:14px;padding:48px 0;text-align:center}.tp-layout{display:flex;gap:24px;align-items:flex-start}.tp-sidebar{width:256px;flex-shrink:0;display:flex;flex-direction:column;gap:4px}.favorites-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow-card)}.favorites-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}.favorites-header-label{font-size:13px;font-weight:600;color:var(--ink)}.fav-count{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-3);background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-pill);padding:2px 8px}.favorites-drop-zone{padding:8px;min-height:180px;transition:background .14s var(--ease)}.favorites-drop-zone.drag-over{background:var(--accent-soft)}.fav-empty{color:var(--ink-3);font-size:12.5px;text-align:center;padding:32px 16px;margin:0;border:1px dashed var(--line);border-radius:var(--r-sm)}.fav-item{display:flex;align-items:center;gap:8px;padding:8px 10px;margin-bottom:4px;border-radius:var(--r-sm);cursor:grab;-webkit-user-select:none;user-select:none;transition:background .12s var(--ease)}.fav-item:hover{background:var(--surface-sink)}.fav-item:active{cursor:grabbing}.fav-tile{width:28px;height:28px;border-radius:7px;background:var(--surface-sink);border:1px solid var(--line);display:grid;place-items:center;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;color:var(--ink-2);letter-spacing:-.02em;flex-shrink:0}.fav-drag-handle{color:var(--ink-4);font-size:13px;flex-shrink:0}.fav-label{flex:1;font-size:13px;font-weight:500;color:var(--ink);text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fav-remove{background:transparent;border:none;color:var(--ink-4);font-size:11px;cursor:pointer;padding:2px 4px;border-radius:4px;flex-shrink:0;line-height:1;transition:color .12s}.fav-remove:hover{color:var(--ink-2)}.fav-trash-zone{border:1px dashed var(--line-2);border-radius:var(--r-sm);color:var(--ink-3);font-size:12px;text-align:center;padding:10px;margin:4px 0 0;transition:border-color .14s,color .14s}.fav-trash-zone:hover{border-color:var(--accent-line);color:var(--accent-ink)}.tp-library{flex:1;min-width:0;display:flex;flex-direction:column;gap:28px}.library-section-title{font-family:JetBrains Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);margin:0 0 14px}.library-section-header{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}.library-section-header .library-section-title{margin-bottom:0}.team-section-hint{font-size:12px;color:var(--ink-4)}.tp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--grid-gap, 18px)}.template-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:16px;display:flex;flex-direction:column;gap:12px;cursor:grab;-webkit-user-select:none;user-select:none;transition:border-color .14s var(--ease),transform .1s var(--ease);box-shadow:var(--shadow-card)}.template-card:hover{border-color:var(--line-2);transform:translateY(-1px)}.template-card:active{cursor:grabbing;transform:none}.template-card.is-favorite{border-color:var(--accent-line)}.tc-head{display:flex;align-items:center;gap:12px}.tc-tile{width:36px;height:36px;flex:none;border-radius:9px;background:var(--surface-sink);border:1px solid var(--line);display:grid;place-items:center;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;color:var(--ink-2);letter-spacing:-.02em}.tc-info{flex:1;min-width:0}.tc-name{font-size:14px;font-weight:600;color:var(--ink);text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tc-type{font-family:JetBrains Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);margin-top:2px}.tc-desc{font-size:12.5px;color:var(--ink-3);line-height:1.45}.tc-containers{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-3);background:var(--surface-sink);border-radius:var(--r-sm);padding:5px 8px}.tc-creator{font-size:11.5px;color:var(--ink-3);font-weight:500}.tc-actions{display:flex;gap:6px;flex-wrap:wrap}.tc-btn{flex:1;height:30px;padding:0 10px;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-2);font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;transition:border-color .14s var(--ease),color .14s var(--ease)}.tc-btn:hover{border-color:var(--accent-line);color:var(--accent-ink)}.tc-btn-remove{flex:1;height:30px;padding:0 10px;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r-sm);color:var(--accent-ink);font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap}.tc-btn-delete{height:30px;padding:0 10px;background:transparent;border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-3);font-size:12px;cursor:pointer;white-space:nowrap;transition:border-color .14s,color .14s}.tc-btn-delete:hover{border-color:var(--accent-line);color:var(--accent-ink)}.tc-btn-confirm-yes,.tc-btn-confirm-no{height:28px;padding:0 10px;background:transparent;border-radius:var(--r-sm);font-size:12px;cursor:pointer;transition:background .12s}.tc-btn-confirm-yes{border:1px solid var(--run);color:var(--run)}.tc-btn-confirm-no{border:1px solid var(--line);color:var(--ink-3)}.tc-btn-confirm-no:hover,.custom-card{border-color:var(--line-2)}.team-card{border-color:color-mix(in srgb,#7a5ae0 25%,transparent)}.team-card:hover{border-color:color-mix(in srgb,#7a5ae0 60%,transparent)}.team-card.is-favorite{border-color:#7a5ae0}.empty-custom{text-align:center;color:var(--ink-3);font-size:14px;padding:40px 24px;border:1px dashed var(--line);border-radius:var(--r-card);display:flex;flex-direction:column;align-items:center;gap:16px}.empty-custom p{margin:0}.page-wrap{max-width:1200px;padding:24px;display:flex;flex-direction:column;gap:20px}.page-header{display:flex;align-items:center;justify-content:space-between}.page-title{font-size:20px;font-weight:700;color:var(--ink);margin:0;letter-spacing:-.02em}.page-sub{font-size:13px;color:var(--ink-3);margin:4px 0 0}.tsb-backdrop{position:fixed;inset:0;z-index:200;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:1rem}.tsb-modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-pop);width:100%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.tsb-header{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.25rem;border-bottom:1px solid var(--line);flex-shrink:0}.tsb-title{font-size:1rem;font-weight:700;color:var(--ink)}.tsb-close{background:transparent;border:none;color:var(--ink-3);font-size:.9rem;cursor:pointer;padding:.25rem .4rem;border-radius:var(--r-sm);transition:color .15s}.tsb-close:hover{color:var(--stop)}.tsb-body{display:grid;grid-template-columns:260px 1fr;gap:0;overflow:hidden;flex:1;min-height:0}.tsb-left{display:flex;flex-direction:column;gap:.6rem;padding:1.1rem 1rem;border-right:1px solid var(--line);background:var(--surface-sink);overflow-y:auto}.tsb-right{display:flex;flex-direction:column;gap:.75rem;padding:1.1rem;overflow-y:auto}.tsb-section-label{font-size:.7rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}.tsb-hint{font-size:.8rem;color:var(--ink-3);margin:0}.tsb-error{font-size:.82rem;color:var(--stop);background:var(--stop-soft);border:1px solid var(--stop);border-radius:var(--r-sm);padding:.45rem .7rem;margin:0}.tsb-field-row{display:flex;gap:.5rem}.tsb-field{display:flex;flex-direction:column;gap:.3rem}.tsb-label{font-size:.75rem;color:var(--ink-2)}.tsb-input{background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink);font-size:.88rem;padding:.45rem .6rem;outline:none;width:100%;box-sizing:border-box;transition:border-color .15s}.tsb-input:focus{border-color:var(--accent)}.tsb-input::placeholder{color:var(--ink-3)}.tsb-container-summary{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.tsb-summary-item{display:flex;align-items:center;gap:.4rem;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);padding:.3rem .5rem;font-size:.78rem}.tsb-summary-icon{flex-shrink:0;font-size:.9rem}.tsb-summary-name{font-weight:600;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tsb-summary-image{color:var(--ink-3);font-family:JetBrains Mono,monospace;font-size:.72rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-left:auto}.tsb-btn-submit{background:var(--accent);border:none;border-radius:var(--r-sm);color:#fff;font-size:.88rem;font-weight:700;padding:.6rem .9rem;cursor:pointer;transition:background .15s}.tsb-btn-submit:hover:not(:disabled){background:var(--accent-ink)}.tsb-btn-submit:disabled{opacity:.45;cursor:not-allowed}.tsb-btn-cancel{background:transparent;border:1px solid var(--line-2);border-radius:var(--r-sm);color:var(--ink-2);font-size:.82rem;padding:.5rem .9rem;cursor:pointer;transition:border-color .15s,color .15s}.tsb-btn-cancel:hover{border-color:var(--ink-2);color:var(--ink)}.tsb-palette{display:flex;flex-wrap:wrap;gap:.35rem}.tsb-chip{display:flex;align-items:center;gap:.3rem;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-2);padding:.28rem .55rem;font-size:.78rem;cursor:grab;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:border-color .15s,background .15s,color .15s}.tsb-chip:hover{border-color:#7a5ae0;color:var(--ink);background:var(--line)}.tsb-chip:active{cursor:grabbing}.tsb-chip-label{font-weight:500}.tsb-chip-multi{background:var(--line);color:var(--ink-2);font-size:.62rem;border-radius:99px;padding:.05rem .3rem;font-weight:700;line-height:1.4}.tsb-drop-zone{flex:1;min-height:120px;border:1.5px dashed var(--line-2);border-radius:var(--r-sm);padding:.6rem;display:flex;flex-direction:column;gap:.45rem;transition:border-color .15s,background .15s}.tsb-dz-over{border-color:#7a5ae0;background:#7a5ae01a}.tsb-dz-hint{margin:auto;font-size:.82rem;color:var(--ink-3);text-align:center;pointer-events:none}.tsb-item{background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}.tsb-item-header{display:flex;align-items:center;gap:.45rem;padding:.45rem .6rem}.tsb-item-icon{font-size:1rem;flex-shrink:0}.tsb-item-name{font-size:.82rem;font-weight:600;color:var(--ink);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tsb-item-image{font-size:.72rem;color:var(--ink-3);font-family:JetBrains Mono,monospace;max-width:8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}.tsb-item-btn{background:transparent;border:none;cursor:pointer;border-radius:var(--r-sm);padding:.15rem .35rem;font-size:.75rem;flex-shrink:0;color:var(--ink-3);transition:color .15s}.tsb-item-btn:hover{color:#7a5ae0}.tsb-item-remove:hover{color:var(--stop)!important}.tsb-item-drag-handle{cursor:grab;color:var(--ink-4);font-size:.9rem;flex-shrink:0;-webkit-user-select:none;user-select:none;transition:color .12s}.tsb-item:hover .tsb-item-drag-handle{color:var(--ink-3)}.tsb-item-dragging{opacity:.4}.tsb-item-drag-over{border-color:#7a5ae0;box-shadow:0 -2px #7a5ae0}.tsb-item-config{border-top:1px solid var(--line);padding:.6rem .75rem;display:flex;flex-direction:column;gap:.4rem}.tsb-cfg-row{display:flex;align-items:center;gap:.5rem}.tsb-cfg-label{font-size:.75rem;color:var(--ink-3);width:5.5rem;flex-shrink:0}.tsb-cfg-input{flex:1;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink);font-size:.82rem;padding:.3rem .5rem;outline:none;min-width:0;transition:border-color .15s}.tsb-cfg-input:focus{border-color:var(--accent)}.tsb-cfg-input-sm{max-width:120px;flex:0 0 120px}.tsb-env-title{font-size:.7rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin-top:.1rem}.tsb-env-row{display:flex;align-items:center;gap:.35rem}.tsb-env-key{flex:0 0 38%;font-family:JetBrains Mono,monospace;font-size:.78rem}.tsb-env-val{flex:1;font-family:JetBrains Mono,monospace;font-size:.78rem}.tsb-env-sep{color:var(--ink-3);font-size:.9rem;flex-shrink:0}.tsb-btn-add-env{background:transparent;border:1px dashed var(--line-2);border-radius:var(--r-sm);color:var(--ink-3);padding:.25rem .55rem;font-size:.75rem;cursor:pointer;align-self:flex-start;transition:border-color .15s,color .15s}.tsb-btn-add-env:hover{border-color:var(--accent);color:var(--accent)}.teams-page{display:flex;flex-direction:column;gap:24px;padding:var(--page-pad, 36px);max-width:1320px;margin:0 auto;width:100%;box-sizing:border-box}.teams-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.teams-header h2{margin:0 0 4px;font-size:20px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.teams-sub{margin:0;font-size:13px;color:var(--ink-3)}.btn-create-team{height:36px;padding:0 16px;background:var(--accent);border:1px solid var(--accent);border-radius:var(--r-ctl, 10px);color:#fff;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .14s var(--ease)}.btn-create-team:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.team-selector-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:12px 16px;box-shadow:var(--shadow-card)}.team-selector-left{display:flex;align-items:center;gap:10px}.team-selector-label{font-family:JetBrains Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap}.team-dropdown{height:32px;padding:0 10px;background:var(--surface-sink);border:1px solid var(--line-2);border-radius:var(--r-sm);color:var(--ink);font-size:13.5px;font-weight:500;cursor:pointer;outline:none;transition:border-color .14s var(--ease);min-width:220px}.team-dropdown:focus{border-color:var(--accent-line)}.my-role-badge{font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-radius:var(--r-pill);padding:3px 8px}.role-admin{background:var(--stop-soft);color:var(--stop)}.role-manager{background:var(--info-soft);color:var(--info)}.role-member{background:var(--surface-sink);color:var(--ink-2);border:1px solid var(--line)}.btn-delete-team{height:30px;padding:0 12px;background:transparent;border:1px solid var(--line-2);border-radius:var(--r-sm);color:var(--ink-3);font-size:12px;cursor:pointer;transition:border-color .14s,color .14s;white-space:nowrap}.btn-delete-team:hover{border-color:var(--accent-line);color:var(--accent-ink)}.delete-team-confirm{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--warn)}.btn-confirm-yes-sm{height:28px;padding:0 10px;background:transparent;border:1px solid var(--run);border-radius:var(--r-sm);color:var(--run);font-size:12px;cursor:pointer;transition:background .14s}.btn-confirm-yes-sm:hover{background:var(--run-soft)}.btn-confirm-no-sm{height:28px;padding:0 10px;background:transparent;border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-3);font-size:12px;cursor:pointer;transition:border-color .14s}.btn-confirm-no-sm:hover{border-color:var(--line-2)}.teams-empty{text-align:center;padding:60px 24px;display:flex;flex-direction:column;align-items:center;gap:12px;border:1px dashed var(--line);border-radius:var(--r-card)}.teams-empty-title{margin:0;font-size:16px;font-weight:600;color:var(--ink)}.teams-empty-sub{margin:0;font-size:13px;color:var(--ink-3)}.team-body{display:grid;grid-template-columns:280px 1fr;gap:20px;align-items:start}.team-loading{grid-column:1 / -1;display:flex;justify-content:center;align-items:center;padding:48px;color:var(--ink-3);font-size:14px}.panel-header{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line)}.panel-title{font-family:JetBrains Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);flex:1}.panel-count{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-3);background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-pill);padding:2px 8px}.team-members-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow-card);display:flex;flex-direction:column}.members-list{display:flex;flex-direction:column}.member-row{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line);transition:background .12s var(--ease)}.member-row:last-child{border-bottom:none}.member-row:hover{background:var(--surface-sink)}.member-avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;flex-shrink:0}.member-info{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.member-name{font-size:13px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-handle{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--ink-3)}.member-role{font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-radius:var(--r-pill);padding:3px 8px;flex-shrink:0}.member-role-select{font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border-radius:var(--r-sm);padding:3px 6px;cursor:pointer;outline:none;border:1px solid var(--line);background:var(--surface-sink);color:var(--ink);flex-shrink:0;transition:border-color .14s}.member-role-select:focus{border-color:var(--accent-line)}.member-role-select.role-admin{border-color:var(--stop);color:var(--stop)}.member-role-select.role-manager{border-color:var(--info);color:var(--info)}.btn-remove-member{background:transparent;border:none;color:var(--ink-4);font-size:11px;cursor:pointer;padding:3px 6px;border-radius:var(--r-sm);flex-shrink:0;white-space:nowrap;transition:color .12s,background .12s}.btn-remove-member:hover{color:var(--ink-2);background:var(--surface-sink)}.add-member-form{display:flex;flex-direction:column;gap:6px;padding:12px;background:var(--surface-sink);border-top:1px solid var(--line)}.add-member-input{width:100%;box-sizing:border-box;height:32px;padding:0 10px;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm);color:var(--ink);font-size:13px;outline:none;transition:border-color .14s var(--ease),box-shadow .14s var(--ease)}.add-member-input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.add-member-input::placeholder{color:var(--ink-4)}.btn-add-member{width:100%;height:30px;background:var(--accent);border:1px solid var(--accent);border-radius:var(--r-sm);color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:background .14s var(--ease)}.btn-add-member:hover:not(:disabled){background:var(--accent-ink);border-color:var(--accent-ink)}.btn-add-member:disabled{opacity:.45;cursor:not-allowed}.team-templates-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow-card)}.btn-add-template{height:28px;padding:0 12px;background:var(--accent);border:1px solid var(--accent);border-radius:var(--r-sm);color:#fff;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .14s var(--ease);margin-left:auto}.btn-add-template:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.templates-empty{padding:40px 24px;text-align:center;color:var(--ink-3);font-size:14px;display:flex;flex-direction:column;align-items:center;gap:14px}.templates-empty p{margin:0}.team-templates-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--grid-gap, 18px);padding:16px}.team-tmpl-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:16px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow-card);transition:border-color .14s var(--ease)}.team-tmpl-card:hover{border-color:var(--line-2)}.ttc-head{display:flex;align-items:center;gap:12px}.ttc-tile{width:36px;height:36px;flex-shrink:0;border-radius:9px;background:var(--surface-sink);border:1px solid var(--line);display:grid;place-items:center;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;color:var(--ink-2);letter-spacing:-.02em}.ttc-info{flex:1;min-width:0}.ttc-name{font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ttc-creator{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);margin-top:2px}.ttc-desc{font-size:12.5px;color:var(--ink-3);line-height:1.45}.ttc-containers{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-3);background:var(--surface-sink);border-radius:var(--r-sm);padding:5px 8px}.ttc-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.ttc-btn{height:28px;padding:0 10px;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-2);font-size:11.5px;font-weight:500;cursor:pointer;white-space:nowrap;transition:border-color .14s var(--ease),color .14s var(--ease)}.ttc-btn:hover:not(:disabled){border-color:var(--accent-line);color:var(--accent-ink)}.ttc-btn:disabled{opacity:.45;cursor:not-allowed}.ttc-btn-fav-active{border-color:var(--accent-line);color:var(--accent-ink);background:var(--accent-soft)}.ttc-btn-fav-active:hover{border-color:var(--line-2);color:var(--ink-2);background:var(--surface-sink)}.tc-confirm-label{font-size:11px;color:var(--warn);font-weight:500;align-self:center}.tc-btn-confirm-yes{height:28px;padding:0 10px;background:transparent;border:1px solid var(--run);border-radius:var(--r-sm);color:var(--run);font-size:12px;cursor:pointer;transition:background .12s}.tc-btn-confirm-yes:hover{background:var(--run-soft)}.tc-btn-confirm-no{height:28px;padding:0 10px;background:transparent;border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-3);font-size:12px;cursor:pointer;transition:border-color .14s}.tc-btn-confirm-no:hover{border-color:var(--line-2)}.create-team-input{width:100%;box-sizing:border-box;height:36px;padding:0 12px;background:var(--surface-sink);border:1px solid var(--line-2);border-radius:var(--r-sm);color:var(--ink);font-size:13.5px;outline:none;transition:border-color .14s var(--ease),box-shadow .14s var(--ease);margin-bottom:4px}.create-team-input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.create-team-input::placeholder{color:var(--ink-4)}.mp-page{display:flex;flex-direction:column;gap:24px;padding:var(--page-pad, 36px);max-width:1320px;margin:0 auto;width:100%;box-sizing:border-box}.mp-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.mp-header h2{margin:0 0 4px;font-size:20px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.mp-sub{margin:0;font-size:13px;color:var(--ink-3)}.mp-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.mp-search-form{display:flex;gap:8px;flex:1;min-width:200px}.mp-search-input{flex:1;height:36px;padding:0 12px;border:1px solid var(--line-2);border-radius:var(--r-ctl, 10px);background:var(--surface);color:var(--ink);font-size:13.5px;outline:none;transition:border-color .14s var(--ease),box-shadow .14s var(--ease);box-sizing:border-box}.mp-search-input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.mp-search-input::placeholder{color:var(--ink-4)}.btn-search{height:36px;padding:0 16px;background:var(--accent);border:1px solid var(--accent);border-radius:var(--r-ctl, 10px);color:#fff;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .14s var(--ease)}.btn-search:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.mp-sort{display:flex;align-items:center;gap:6px}.mp-sort-label{font-size:12px;color:var(--ink-3);white-space:nowrap}.btn-sort{height:36px;padding:0 12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-ctl, 10px);color:var(--ink-2);font-size:12.5px;font-weight:500;cursor:pointer;transition:border-color .14s var(--ease),color .14s var(--ease),background .14s var(--ease);white-space:nowrap}.btn-sort.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn-sort:not(.active):hover{border-color:var(--accent-line);color:var(--accent-ink)}.btn-publish-open{height:36px;padding:0 16px;background:var(--accent);border:1px solid var(--accent);border-radius:var(--r-ctl, 10px);color:#fff;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .14s var(--ease)}.btn-publish-open:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.mp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--grid-gap, 18px)}.mp-loading{text-align:center;padding:48px;color:var(--ink-3);font-size:14px}.mp-empty{text-align:center;padding:48px 24px;color:var(--ink-3);font-size:14px;display:flex;flex-direction:column;align-items:center;gap:16px}.mp-empty p{margin:0}.mp-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:16px;display:flex;flex-direction:column;gap:10px;cursor:pointer;transition:border-color .14s var(--ease),transform .1s var(--ease);box-shadow:var(--shadow-card)}.mp-card:hover{border-color:var(--line-2);transform:translateY(-1px)}.mp-card-head{display:flex;align-items:center;gap:12px}.mp-tile{width:36px;height:36px;flex-shrink:0;border-radius:9px;background:var(--surface-sink);border:1px solid var(--line);display:grid;place-items:center;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;color:var(--ink-2);letter-spacing:-.02em}.mp-tile-lg{width:44px;height:44px;border-radius:11px;font-size:13px}.mp-card-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.mp-name{font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-publisher{font-size:11.5px;color:var(--ink-3)}.mp-own-badge{background:var(--accent-soft);color:var(--accent-ink);border:1px solid var(--accent-line);border-radius:var(--r-pill);font-size:10px;font-weight:600;padding:2px 8px;white-space:nowrap;flex-shrink:0}.mp-desc{margin:0;font-size:12.5px;color:var(--ink-3);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mp-tags{display:flex;flex-wrap:wrap;gap:4px}.mp-tag{background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-pill);color:var(--ink-3);font-size:10.5px;font-weight:500;padding:2px 8px}.mp-card-footer{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-3);margin-top:auto;padding-top:10px;border-top:1px solid var(--line)}.mp-separator{color:var(--ink-4)}.mp-rating-num{color:var(--warn);font-weight:600}.stars{display:inline-flex;gap:1px}.star{color:var(--line-2);font-size:13px;line-height:1;transition:color .1s;-webkit-user-select:none;user-select:none}.star-filled{color:var(--warn)}.mp-detail-modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-pop);padding:28px;width:700px;max-width:95vw;max-height:90vh;overflow-y:auto;position:relative;display:flex;flex-direction:column;gap:20px}.mp-detail-header{display:flex;align-items:center;gap:14px}.mp-detail-title{margin:0 0 2px;font-size:18px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.mp-detail-actions{margin-left:auto;display:flex;gap:8px}.btn-import{height:34px;padding:0 14px;background:var(--accent);border:1px solid var(--accent);border-radius:var(--r-ctl, 10px);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:background .14s var(--ease)}.btn-import:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.btn-delete-tmpl{height:34px;padding:0 14px;background:transparent;border:1px solid var(--line-2);border-radius:var(--r-ctl, 10px);color:var(--ink-3);font-size:13px;cursor:pointer;transition:border-color .14s,color .14s}.btn-delete-tmpl:hover{border-color:var(--accent-line);color:var(--accent-ink)}.mp-detail-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-3)}.mp-detail-desc{margin:0;font-size:13.5px;color:var(--ink-2);line-height:1.55}.mp-section{display:flex;flex-direction:column;gap:10px}.mp-section h3{margin:0;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3)}.mp-section-header{display:flex;align-items:center;justify-content:space-between}.mp-section-header h3{margin:0}.mp-container-list{display:flex;flex-direction:column;gap:6px}.mp-container-item{display:flex;align-items:center;gap:10px;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 12px;font-size:12.5px}.mp-container-name{font-weight:600;color:var(--ink);min-width:80px}.mp-container-image{font-family:JetBrains Mono,monospace;font-size:11.5px;color:var(--ink-2)}.mp-container-port{font-family:JetBrains Mono,monospace;font-size:11.5px;color:var(--ink-3);margin-left:auto}.mp-images{display:flex;flex-wrap:wrap;gap:10px}.mp-image-wrap{position:relative;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--line)}.mp-image{width:140px;height:100px;object-fit:cover;display:block;cursor:zoom-in}.btn-delete-img{position:absolute;top:4px;right:4px;background:#0000008c;border:none;border-radius:4px;color:#fff;font-size:10px;padding:2px 5px;cursor:pointer;line-height:1}.btn-upload{height:30px;padding:0 12px;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-2);font-size:12px;font-weight:500;cursor:pointer;transition:border-color .14s,color .14s}.btn-upload:hover{border-color:var(--accent-line);color:var(--accent-ink)}.mp-lightbox{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;cursor:zoom-out}.mp-lightbox-img{max-width:90vw;max-height:90vh;border-radius:var(--r-sm);object-fit:contain;box-shadow:var(--shadow-pop)}.mp-empty-hint{margin:0;font-size:12.5px;color:var(--ink-3)}.mp-comments{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}.mp-comment{background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px}.mp-comment-meta{display:flex;align-items:center;gap:8px;margin-bottom:6px}.mp-comment-user{font-weight:600;font-size:12px;color:var(--accent-ink)}.mp-comment-date{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--ink-3);margin-left:auto}.btn-delete-comment{background:transparent;border:none;color:var(--ink-4);font-size:11px;cursor:pointer;padding:0;line-height:1}.btn-delete-comment:hover{color:var(--ink-2)}.mp-comment-text{margin:0;font-size:13px;color:var(--ink-2);line-height:1.45}.mp-comment-form{display:flex;gap:8px;align-items:flex-end}.mp-comment-input{flex:1;background:var(--surface-sink);border:1px solid var(--line-2);border-radius:var(--r-sm);color:var(--ink);font-size:13px;padding:8px 12px;resize:vertical;outline:none;transition:border-color .14s var(--ease),box-shadow .14s var(--ease)}.mp-comment-input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.btn-comment{height:34px;padding:0 14px;background:var(--accent);border:1px solid var(--accent);border-radius:var(--r-sm);color:#fff;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .14s var(--ease)}.btn-comment:disabled{opacity:.4;cursor:not-allowed}.btn-comment:not(:disabled):hover{background:var(--accent-ink);border-color:var(--accent-ink)}.mp-publish-modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-pop);padding:28px;width:560px;max-width:95vw;max-height:90vh;overflow-y:auto;position:relative;display:flex;flex-direction:column;gap:16px}.mp-publish-modal h2{margin:0 0 4px;font-size:18px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.mp-field{display:flex;flex-direction:column;gap:6px}.mp-field label{font-size:11px;font-weight:600;color:var(--ink-2);text-transform:uppercase;letter-spacing:.05em}.mp-field-row{display:flex;gap:10px;align-items:flex-end}.mp-input{background:var(--surface-sink);border:1px solid var(--line-2);border-radius:var(--r-sm);color:var(--ink);font-size:13.5px;padding:8px 12px;width:100%;box-sizing:border-box;resize:vertical;outline:none;transition:border-color .14s var(--ease),box-shadow .14s var(--ease)}.mp-input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.mp-select{background:var(--surface-sink);border:1px solid var(--line-2);border-radius:var(--r-sm);color:var(--ink);font-size:13.5px;padding:8px 12px;width:100%;cursor:pointer;outline:none;transition:border-color .14s var(--ease)}.mp-select:focus{border-color:var(--accent-line)}.mp-container-editor{display:flex;gap:6px;align-items:center;margin-top:6px}.mp-input-port{width:80px;flex-shrink:0}.btn-add-container{height:30px;padding:0 12px;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-2);font-size:12px;font-weight:500;cursor:pointer;transition:border-color .14s,color .14s}.btn-add-container:hover{border-color:var(--run);color:var(--run)}.btn-remove-container{background:transparent;border:none;color:var(--ink-4);font-size:13px;cursor:pointer;flex-shrink:0;padding:0 4px;line-height:1}.btn-remove-container:hover{color:var(--ink-2)}.mp-publish-footer{display:flex;justify-content:flex-end;gap:8px;padding-top:8px;border-top:1px solid var(--line)}.btn-cancel{height:34px;padding:0 14px;background:transparent;border:1px solid var(--line-2);border-radius:var(--r-sm);color:var(--ink-2);font-size:13px;cursor:pointer;transition:border-color .14s,color .14s}.btn-cancel:hover{border-color:var(--line-strong);color:var(--ink)}.btn-publish{height:34px;padding:0 16px;background:var(--accent);border:1px solid var(--accent);border-radius:var(--r-sm);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:background .14s var(--ease)}.btn-publish:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.audit-page{display:flex;flex-direction:column;gap:24px;padding:var(--page-pad, 36px);max-width:1320px;margin:0 auto;width:100%;box-sizing:border-box}.audit-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.audit-header h2{margin:0 0 4px;font-size:20px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.audit-sub{margin:0;font-size:13px;color:var(--ink-3)}.audit-filters{display:flex;gap:6px;flex-wrap:wrap}.audit-filter-btn{height:30px;padding:0 12px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:12.5px;font-weight:500;cursor:pointer;white-space:nowrap;transition:border-color .14s var(--ease),color .14s var(--ease),background .14s var(--ease)}.audit-filter-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.audit-filter-btn:not(.active):hover{border-color:var(--accent-line);color:var(--accent-ink)}.audit-empty{color:var(--ink-3);font-size:14px;padding:48px 0;text-align:center;margin:0}.audit-error{color:var(--stop);font-size:14px;margin:0}.audit-table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-card);overflow:hidden}.audit-table{width:100%;border-collapse:collapse;font-size:13px}.audit-table thead tr{border-bottom:1px solid var(--line)}.audit-table th{text-align:left;padding:12px 16px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap}.audit-table tbody tr{border-bottom:1px solid var(--line);transition:background .1s var(--ease)}.audit-table tbody tr:last-child{border-bottom:none}.audit-table tbody tr:hover{background:var(--surface-sink)}.audit-td{padding:10px 16px;vertical-align:middle}.audit-td-time{font-family:JetBrains Mono,monospace;font-size:11.5px;color:var(--ink-3);white-space:nowrap}.audit-td-name{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500;color:var(--ink)}.audit-td-muted{font-size:12.5px;color:var(--ink-3)}.audit-td-template{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-3)}.audit-action-badge{display:inline-flex;align-items:center;border-radius:var(--r-pill);padding:3px 10px;font-size:11px;font-weight:600;white-space:nowrap;letter-spacing:.02em}.audit-action-started{background:var(--run-soft);color:var(--run)}.audit-action-stopped{background:var(--surface-sink);color:var(--ink-3);border:1px solid var(--line)}.audit-action-removed{background:var(--accent-soft);color:var(--accent-ink)}.audit-action-restarted{background:var(--info-soft);color:var(--info)}.audit-action-extended,.audit-action-auto_stopped{background:var(--warn-soft);color:var(--warn)}.profile-section-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin-bottom:.5rem}.profile-info-grid{display:grid;grid-template-columns:7rem 1fr;gap:.4rem .75rem;font-size:.88rem}.profile-info-key{color:var(--ink-3)}.profile-info-val{color:var(--ink);font-weight:500}.profile-edit-grid{display:grid;grid-template-columns:7.5rem 1fr;gap:.45rem .75rem;align-items:center;font-size:.88rem}.profile-edit-label{color:var(--ink-2)}.profile-edit-input{background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink);font-size:.88rem;padding:.3rem .6rem;outline:none;width:100%;box-sizing:border-box}.profile-edit-input:focus{border-color:var(--accent)}.profile-prefs{display:flex;flex-direction:column;gap:.1rem}.pref-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem .75rem;border-radius:var(--r-md);cursor:pointer;transition:background .15s}.pref-row:hover{background:var(--surface-sink)}.pref-text{display:flex;flex-direction:column;gap:.15rem}.pref-label{font-size:.88rem;color:var(--ink);font-weight:500}.pref-desc{font-size:.78rem;color:var(--ink-3)}.theme-toggle-row{display:flex;gap:.5rem}.theme-btn{flex:1;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink-2);font-size:.875rem;padding:.5rem 1rem;cursor:pointer;transition:all .15s}.theme-btn:hover{border-color:var(--line-2);color:var(--ink)}.theme-btn.active{background:var(--line);border-color:var(--accent);color:var(--accent);font-weight:600}.toggle{width:2.5rem;height:1.4rem;background:var(--line);border-radius:99px;position:relative;flex-shrink:0;transition:background .2s;cursor:pointer}.toggle-on{background:var(--accent)}.toggle-thumb{position:absolute;top:3px;left:3px;width:1rem;height:1rem;background:#fff;border-radius:50%;transition:transform .2s}.toggle-on .toggle-thumb{transform:translate(1.1rem)}.avatar-section{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}.avatar-preview{position:relative;width:4rem;height:4rem;border-radius:50%;cursor:pointer;overflow:hidden;flex-shrink:0;border:2px solid var(--line-2)}.avatar-img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{width:100%;height:100%;background:var(--surface-sink);display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;color:var(--ink)}.avatar-overlay{position:absolute;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.1rem;opacity:0;transition:opacity .15s}.avatar-preview:hover .avatar-overlay{opacity:1}.avatar-hint{font-size:.75rem;color:var(--ink-3)}.profile-bio{resize:vertical;min-height:4rem;font-family:inherit}.cmd-scrim{position:fixed;inset:0;background:#00000040;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:300;display:flex;align-items:flex-start;justify-content:center;padding-top:80px}.cmd{width:600px;max-width:calc(100vw - 40px);background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-pop);overflow:hidden;max-height:calc(100vh - 160px);display:flex;flex-direction:column}.cmd-search{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.cmd-search-icon{color:var(--ink-3);flex-shrink:0}.cmd-input{flex:1;background:transparent;border:none;outline:none;font-size:15px;color:var(--ink)}.cmd-input::placeholder{color:var(--ink-4)}.cmd-kbd{font-family:JetBrains Mono,monospace;font-size:10px;background:var(--surface-sink);border:1px solid var(--line);border-radius:4px;padding:2px 6px;color:var(--ink-3)}.cmd-results{overflow-y:auto;padding:6px}.cmd-section{margin-bottom:4px}.cmd-section-label{font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-4);padding:6px 10px 4px}.cmd-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-sm);cursor:pointer;transition:background .08s}.cmd-item:hover,.cmd-item.active{background:var(--accent-soft)}.cmd-item-icon{color:var(--ink-3);flex-shrink:0}.cmd-item-label{font-size:13px;color:var(--ink);flex:1}.cmd-item-sub{font-size:11px;color:var(--ink-3)}.cmd-empty{padding:32px 20px;text-align:center;color:var(--ink-3);font-size:13px}.start-form{display:flex;flex-direction:column;gap:16px}.mode-tabs{display:flex;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-md);padding:3px;gap:2px}.mode-tab{flex:1;height:30px;border:none;border-radius:calc(var(--r-md) - 2px);background:transparent;color:var(--ink-3);font-size:13px;font-weight:500;cursor:pointer;transition:background .12s,color .12s,box-shadow .12s}.mode-tab:hover:not(.active){color:var(--ink-2)}.mode-tab.active{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 3px #00000014}.form-group{display:flex;flex-direction:column;gap:6px}.form-group>label{font-size:11px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.form-group>label strong{color:var(--ink);text-transform:none;letter-spacing:0;font-size:13px}.form-group>select{height:36px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-sink);color:var(--ink);font-size:13px;outline:none;cursor:pointer;width:100%;transition:border-color .12s}.form-group>select:focus{border-color:var(--accent)}input[type=range]{-webkit-appearance:none;width:100%;height:4px;border-radius:2px;background:var(--line-2);outline:none;cursor:pointer;accent-color:var(--accent)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:0 1px 3px #00000026;border:none}input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer;border:none;box-shadow:0 1px 3px #00000026}.range-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-4);margin-top:-2px}.btn-config-toggle{display:flex;align-items:center;justify-content:center;gap:6px;height:32px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-sink);color:var(--ink-3);font-size:12px;cursor:pointer;transition:border-color .12s,color .12s,background .12s}.btn-config-toggle:hover{border-color:var(--line-2);color:var(--ink-2)}.btn-config-toggle.open{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.toggle-arrow{font-size:10px}.config-panel{display:flex;flex-direction:column;gap:14px;padding:14px;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-md)}.config-row{display:flex;flex-direction:column;gap:4px}.config-label{font-size:11px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}.config-input{height:32px;padding:0 9px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font-size:13px;outline:none;width:100%;transition:border-color .12s;box-sizing:border-box}.config-input:focus{border-color:var(--accent)}.config-input::placeholder{color:var(--ink-4);font-size:12px}.config-input-sm{max-width:140px}.config-mem-slider{display:flex;flex-direction:column;gap:3px}.config-mem-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-4)}.config-mem-value{font-size:12px;font-weight:600;color:var(--accent);text-align:right;margin-top:1px}.config-section-label{font-size:11px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;padding-top:2px;border-top:1px solid var(--line);margin-top:2px}.config-pw-wrap{display:flex;gap:4px;align-items:center}.config-pw-input{flex:1;min-width:0}.btn-pw-toggle,.btn-pw-gen{flex-shrink:0;width:30px;height:32px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-2);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s}.btn-pw-toggle:hover,.btn-pw-gen:hover{background:var(--surface-sink)}.config-env-row{display:grid;grid-template-columns:1fr auto 1fr auto;align-items:center;gap:5px}.config-env-key,.config-env-val{height:28px;padding:0 7px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font-size:11px;font-family:JetBrains Mono,monospace;outline:none;width:100%;box-sizing:border-box;transition:border-color .12s}.config-env-key:focus,.config-env-val:focus{border-color:var(--accent)}.config-env-key::placeholder,.config-env-val::placeholder{color:var(--ink-4)}.config-env-sep{font-size:12px;color:var(--ink-4);font-family:JetBrains Mono,monospace;-webkit-user-select:none;user-select:none;text-align:center}.btn-env-remove{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--r-sm);background:transparent;color:var(--ink-4);cursor:pointer;font-size:11px;flex-shrink:0;transition:color .12s,border-color .12s}.btn-env-remove:hover{color:var(--stop);border-color:var(--stop)}.btn-add-env{height:26px;padding:0 10px;border:1px dashed var(--line-2);border-radius:var(--r-sm);background:transparent;color:var(--ink-3);font-size:12px;cursor:pointer;align-self:flex-start;margin-top:2px;transition:border-color .12s,color .12s}.btn-add-env:hover{border-color:var(--accent);color:var(--accent)}.custom-multi-hint{font-size:13px;color:var(--ink-2);background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 14px}.form-error{font-size:12px;color:var(--stop);padding:8px 10px;background:color-mix(in srgb,var(--stop) 6%,transparent);border:1px solid color-mix(in srgb,var(--stop) 18%,transparent);border-radius:var(--r-sm)}.btn-start{height:40px;background:var(--run);border:none;border-radius:var(--r-md);color:#fff;font-size:14px;font-weight:600;cursor:pointer;width:100%;transition:opacity .12s;letter-spacing:.01em}.btn-start:hover:not(:disabled){opacity:.88}.btn-start:disabled{opacity:.4;cursor:not-allowed}.stack-step-header{display:flex;flex-direction:column;gap:1px}.stack-step-label{font-size:11px;color:var(--ink-4);text-transform:uppercase;letter-spacing:.06em}.stack-step-title{font-size:15px;font-weight:600;color:var(--ink)}.service-grid{display:flex;flex-wrap:wrap;gap:6px}.service-chip{display:flex;align-items:center;gap:5px;padding:5px 10px 5px 8px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface-sink);cursor:pointer;font-size:12px;color:var(--ink-2);transition:border-color .12s,background .12s,color .12s}.service-chip:hover{border-color:var(--line-2);color:var(--ink);background:var(--surface)}.service-chip.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.chip-label{font-weight:500}.chip-multi{font-size:9px;background:var(--accent);color:#fff;border-radius:10px;padding:1px 5px;font-weight:700}.label-hint{font-size:11px;color:var(--ink-4);font-weight:400;text-transform:none;letter-spacing:0;margin-left:4px}.stack-name-input{height:36px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-sink);color:var(--ink);font-size:13px;outline:none;width:100%;transition:border-color .12s;box-sizing:border-box}.stack-name-input:focus{border-color:var(--accent)}.stack-name-input::placeholder{color:var(--ink-4)}.stack-containers-list{display:flex;flex-direction:column;gap:10px;max-height:calc(100dvh - 260px);overflow-y:auto;padding-right:2px}.stack-container-block{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-sink)}.scb-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid var(--line)}.scb-image{font-size:13px;font-weight:600;color:var(--ink)}.scb-from{font-size:11px;color:var(--ink-4);font-family:JetBrains Mono,monospace}.scb-row{display:flex;flex-direction:column;gap:3px}.scb-label{font-size:10px;font-weight:600;color:var(--ink-4);text-transform:uppercase;letter-spacing:.05em}.scb-input{height:30px;padding:0 8px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font-size:12px;outline:none;width:100%;transition:border-color .12s;box-sizing:border-box}.scb-input:focus{border-color:var(--accent)}.scb-input::placeholder{color:var(--ink-4)}.scb-input-sm{max-width:120px}.scb-env-label{font-size:10px;font-weight:600;color:var(--ink-4);text-transform:uppercase;letter-spacing:.05em;margin-top:2px;padding-top:6px;border-top:1px solid var(--line)}.stack-step2-actions{display:flex;gap:8px}.btn-back{height:40px;padding:0 16px;border:1px solid var(--line);border-radius:var(--r-md);background:transparent;color:var(--ink-3);font-size:13px;cursor:pointer;white-space:nowrap;transition:border-color .12s,color .12s}.btn-back:hover{border-color:var(--line-2);color:var(--ink)}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;height:100vh;overflow:hidden;background:var(--bg);color:var(--ink)}.sidebar{background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;overflow-y:auto}.sidebar-brand{height:60px;display:flex;align-items:center;gap:10px;padding:0 20px;border-bottom:1px solid var(--line);flex-shrink:0}.sidebar-brand-icon{font-size:20px}.sidebar-brand-name{font-size:15px;font-weight:700;color:var(--ink);letter-spacing:-.02em}.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:12px 8px;flex:1}.sidebar-nav-item{display:flex;align-items:center;gap:10px;height:36px;padding:0 12px;border-radius:var(--r-sm);border:none;background:transparent;color:var(--ink-3);font-size:13px;font-weight:500;cursor:pointer;text-align:left;transition:background .12s,color .12s;width:100%}.sidebar-nav-item:hover{background:var(--surface-sink);color:var(--ink)}.sidebar-nav-item.active{background:var(--accent-soft);color:var(--accent)}.sidebar-nav-icon{flex-shrink:0}.sidebar-nav-label{flex:1}.sidebar-nav-badge{background:var(--accent);color:#fff;border-radius:var(--r-pill);font-size:10px;font-weight:700;padding:1px 6px;min-width:18px;text-align:center}.sidebar-section{margin-top:auto;display:flex;flex-direction:column;gap:8px}.sidebar-quick-label{padding:0 8px;font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);font-weight:500}.sidebar-quick{display:flex;flex-wrap:wrap;gap:6px;padding:0 4px}.sidebar-quick-pill{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-2);background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-pill);padding:5px 11px;cursor:pointer;transition:border-color .14s var(--ease),color .14s var(--ease)}.sidebar-quick-pill:hover{border-color:var(--accent-line);color:var(--accent-ink)}.sidebar-foot{padding:12px 8px 4px;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--ink-4)}.sidebar-foot-dot{width:6px;height:6px;border-radius:50%;background:var(--run);flex-shrink:0}.main{display:flex;flex-direction:column;min-width:0;overflow:hidden}.topbar{height:60px;display:flex;align-items:center;gap:12px;padding:0 20px;background:color-mix(in srgb,var(--surface) 78%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);flex-shrink:0;z-index:50}.topbar-breadcrumb{display:flex;align-items:baseline;gap:10px;flex-shrink:0}.topbar-bc-title{font-size:16px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}.topbar-bc-sub{font-size:12.5px;color:var(--ink-3);white-space:nowrap}@media(max-width:1100px){.topbar-bc-sub{display:none}}.topbar-bc-sep{color:var(--ink-4)}.topbar-bc-current{color:var(--ink);font-weight:600}.topbar-cmdk{flex:1;max-width:280px;display:flex;align-items:center;gap:8px;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-pill);padding:0 12px;height:32px;color:var(--ink-3);font-size:12px;cursor:pointer;transition:border-color .12s;margin:0 auto}.topbar-cmdk:hover{border-color:var(--line-2)}.topbar-cmdk-label{flex:1;text-align:left}.topbar-cmdk-kbd{font-family:JetBrains Mono,monospace;font-size:10px;background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:1px 5px;color:var(--ink-3)}.topbar-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.topbar-icon-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--r-sm);color:var(--ink-3);cursor:pointer;position:relative;transition:background .12s,color .12s}.topbar-icon-btn:hover{background:var(--surface-sink);color:var(--ink)}.topbar-badge{position:absolute;top:5px;right:5px;width:7px;height:7px;background:var(--stop);border-radius:50%;border:1.5px solid var(--surface)}.topbar-btn-new{height:32px;padding:0 14px;background:var(--accent);border:none;border-radius:var(--r-md);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:background .12s;white-space:nowrap}.topbar-btn-new:hover{background:var(--accent-ink)}.topbar-user-pill{display:flex;align-items:center;gap:8px;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-pill);padding:3px 10px 3px 3px;cursor:pointer;transition:border-color .12s}.topbar-user-pill:hover{border-color:var(--line-2)}.topbar-avatar{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}.topbar-username{font-size:12px;font-weight:500;color:var(--ink-2)}.scroll{flex:1;overflow-y:auto}.error-banner{background:var(--stop-soft);border-bottom:1px solid var(--stop);color:var(--stop);padding:10px 20px;font-size:13px}.modal-overlay{position:fixed;inset:0;background:#00000040;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center}.modal-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-pop);width:90%;max-width:500px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.modal-title{font-size:15px;font-weight:600;color:var(--ink)}.modal-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-3);cursor:pointer;transition:color .12s}.modal-close:hover{color:var(--ink)}.modal-body{padding:16px 20px;overflow-y:auto}.drawer-scrim{position:fixed;inset:0;background:#0003;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:90}.drawer{position:fixed;top:14px;right:14px;bottom:14px;width:440px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-pop);z-index:100;display:flex;flex-direction:column;overflow:hidden}.drawer-header{display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 20px;border-bottom:1px solid var(--line);flex-shrink:0}.drawer-title{font-size:15px;font-weight:600;color:var(--ink)}.drawer-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-3);cursor:pointer;transition:background .12s,color .12s}.drawer-close:hover{background:var(--line);color:var(--ink)}.drawer-body{flex:1;overflow-y:auto;padding:20px}.loading-spinner-wrap{display:flex;justify-content:center;padding:48px 20px}.loading-spinner{width:28px;height:28px;border:2px solid var(--line-2);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.search-wrapper{display:flex;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:0 10px;gap:8px;min-width:200px;flex:1;max-width:280px;height:34px;transition:border-color .12s}.search-wrapper:focus-within{border-color:var(--accent)}.search-icon{color:var(--ink-3);flex-shrink:0}.search-input{background:transparent;border:none;color:var(--ink);font-size:13px;flex:1;outline:none;padding:0}.search-input::placeholder{color:var(--ink-4)}.search-clear{background:transparent;border:none;color:var(--ink-3);cursor:pointer;padding:0;display:flex;align-items:center}.search-clear:hover{color:var(--ink)}.view-toggle{display:flex;background:var(--surface-sink);border:1px solid var(--line);border-radius:var(--r-sm);padding:2px}.view-btn{background:transparent;border:none;border-radius:calc(var(--r-sm) - 2px);color:var(--ink-3);padding:4px 8px;cursor:pointer;display:flex;align-items:center;transition:background .12s,color .12s}.view-btn.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card)}.container-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--grid-gap)}.container-list{display:flex;flex-direction:column;gap:4px}.section-label{font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-4);display:flex;align-items:center;gap:8px}.section-count{background:var(--surface-sink);color:var(--ink-3);border-radius:var(--r-pill);padding:1px 6px;font-size:10px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:80px 24px;text-align:center}.empty-state-icon{color:var(--ink-4)}.empty-state-title{margin:0;font-size:18px;font-weight:600;color:var(--ink-3)}.empty-state-sub{margin:0;font-size:13px;color:var(--ink-3);max-width:300px}.bulk-bar{position:fixed;bottom:16px;left:calc(var(--sidebar-w) + 16px);right:16px;z-index:80;background:var(--ink);border-radius:var(--r-md);padding:10px 16px;display:flex;gap:10px;align-items:center;box-shadow:var(--shadow-pop)}
