@import url("./assets/open-color/open-color.css");
@font-face{font-family:"Pretendard";src:url("./assets/fonts/PretendardVariable.woff2") format("woff2");font-weight:100 900;font-display:swap}
:root{
 color-scheme:light;--ink:var(--oc-gray-9);--muted:var(--oc-gray-7);--bg:var(--oc-gray-0);--surface:var(--oc-white);
 --accent:var(--oc-indigo-7);--accent-hover:var(--oc-indigo-8);--accent-soft:var(--oc-indigo-0);--error:var(--oc-red-8);
 --line:var(--oc-gray-3);--line-soft:var(--oc-gray-2);--space:8px;--radius:8px;--text:var(--ink);
 --page-padding:32px;--section-padding-x:24px;--section-padding-y:24px;--section-gap:24px;--content-gap:16px;--control-gap:8px;
 --button-height:40px;--button-compact-height:32px;--button-radius:8px;--button-padding-x:14px;--button-font-size:13px;
 --shadow-control:0 1px 2px rgba(33,37,41,.04);--shadow-float:0 16px 48px rgba(33,37,41,.14),0 2px 8px rgba(33,37,41,.06);
 font-family:"Pretendard",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-size:14px;line-height:1.5;font-synthesis:none;
}
*{box-sizing:border-box}
*::-webkit-scrollbar{width:0;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--oc-gray-4);border-radius:4px}
body{margin:0;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
::selection{background:var(--oc-indigo-1);color:var(--oc-indigo-9)}input,textarea{caret-color:var(--accent)}
button{min-height:var(--button-height);padding:8px var(--button-padding-x);font-size:var(--button-font-size);line-height:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;white-space:nowrap;font-weight:550;box-shadow:var(--shadow-control)}
button:hover{background:var(--oc-gray-0);border-color:var(--oc-gray-4)}button:active{background:var(--oc-gray-1)}
button:disabled{background:var(--oc-gray-1);color:var(--oc-gray-6);border-color:var(--line-soft);box-shadow:none;cursor:not-allowed}
.primary{background:var(--accent);border-color:var(--accent);color:var(--oc-white)}.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.danger{color:var(--error);border-color:var(--oc-red-2);background:var(--oc-white)}.danger:hover{background:var(--oc-red-0);border-color:var(--oc-red-3)}
.quiet{border-color:transparent;background:transparent;box-shadow:none}.quiet:hover{border-color:transparent;background:var(--oc-gray-1)}
a{color:var(--accent);text-decoration:none;text-underline-offset:3px}a:hover{text-decoration:underline}
h1{font-size:28px;line-height:36px;letter-spacing:-.035em;margin:0 0 8px;font-weight:680;text-wrap:balance}
h2{font-size:17px;line-height:26px;letter-spacing:-.02em;margin:0;font-weight:650}h3{font-size:15px;line-height:24px;letter-spacing:-.015em;margin:0 0 8px;font-weight:620}
p{margin:0 0 16px;color:var(--muted);max-width:75ch}small{font-size:12px;line-height:18px;color:var(--muted)}
.icon{width:18px;height:18px;flex:none;vertical-align:middle;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.topbar{height:64px;background:var(--surface);border-bottom:1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:20;gap:24px}
.brand{font-weight:700;letter-spacing:-.6px;font-size:18px;display:flex;gap:10px;align-items:center;color:var(--ink);white-space:nowrap}.brand:hover{text-decoration:none}
.brand-logo{display:block;width:160px;height:24px;flex:none;filter:brightness(0)}.brand-name{font-size:18px;line-height:24px;font-weight:650;letter-spacing:-.5px}
.brand small{font-size:11px;letter-spacing:.02em;border:1px solid var(--line);padding:2px 6px;border-radius:4px}
.topbar .actions{gap:16px}.topbar .secondary{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.account-link{display:inline-flex;gap:8px;align-items:center;color:var(--ink);font-weight:550}.avatar{width:28px;height:28px;display:inline-grid;place-items:center;background:var(--oc-indigo-0);color:var(--oc-indigo-8);border:1px solid var(--oc-indigo-1);border-radius:50%;font-size:12px}
.shell{display:grid;grid-template-columns:272px minmax(0,1fr);min-height:calc(100vh - 64px)}
.sidebar{border-right:1px solid var(--line-soft);padding:20px 12px 76px;background:var(--oc-gray-0);position:sticky;top:64px;height:calc(100vh - 64px);overflow:auto}
.sidebar .group{font-size:12px;font-weight:550;color:var(--muted);margin:22px 12px 6px}.sidebar a{display:flex;align-items:center;gap:10px;padding:9px 12px;min-height:38px;color:var(--muted);border-radius:7px;margin-bottom:2px;font-size:13px;font-weight:500;line-height:20px}.sidebar a .icon{color:var(--oc-gray-6)}
.sidebar a:hover{background:var(--oc-gray-1);text-decoration:none;color:var(--ink)}.sidebar a.active{background:var(--oc-white);color:var(--accent);font-weight:650;box-shadow:0 1px 3px rgba(33,37,41,.08),0 0 0 1px var(--line-soft)}.sidebar a.active .icon{color:var(--accent)}
.sidebar .context{padding:0 8px 20px;margin-bottom:16px;border-bottom:1px solid var(--line-soft)}.sidebar .context small{display:block;margin:0 4px 8px;font-weight:550}.sidebar .context p{margin:4px 0 0;font-size:12px}.sidebar select{width:100%;font-size:13px;font-weight:600;box-shadow:var(--shadow-control)}
.main:focus{outline:none}
.main{padding:var(--page-padding);min-width:0;width:100%;margin:0;align-self:start}
.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:var(--section-gap)}.page-heading p{margin:0;max-width:72ch;font-size:14px}.page-heading .actions{padding-top:2px;flex-shrink:0}
.actions{display:flex;gap:var(--control-gap);align-items:center;flex-wrap:wrap}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}
.card{background:var(--surface);border:1px solid var(--line-soft);border-radius:12px;padding:var(--section-padding-y) var(--section-padding-x);margin-bottom:var(--section-gap)}.card .notice:last-child,.card p:last-child{margin-bottom:0}.card>.card{border:0;border-radius:0;padding:16px 0;box-shadow:none}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--section-gap)}.grid>.card{margin:0}.metric{font-size:28px;line-height:36px;letter-spacing:-.03em;font-weight:650;margin:12px 0}
.workspace-team{margin-top:32px}.workspace-team>.section-heading{padding-bottom:16px;border-bottom:1px solid var(--line-soft);margin-bottom:20px}.workspace-team .section-heading .actions{margin-left:auto}.workspace-team .grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.project-card{border:1px solid var(--line-soft);border-radius:12px;padding:24px;background:var(--surface)}.project-card:hover{border-color:var(--oc-gray-4)}.project-heading{display:flex;gap:12px;align-items:center;margin-bottom:20px}.project-heading h3{margin:0;font-size:16px}.project-symbol{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;border:1px solid var(--line-soft);background:var(--oc-gray-0);color:var(--muted)}.project-card p{margin-bottom:24px;font-size:13px}.project-card .actions{justify-content:flex-end;border-top:1px solid var(--line-soft);padding-top:16px}.project-card button{min-height:34px;font-size:13px;padding:6px 12px}
.table-wrap{overflow:auto;max-width:100%;background:var(--surface);border:1px solid var(--line-soft);border-radius:10px}table{border-collapse:collapse;width:100%;text-align:left}th{background:var(--oc-gray-0);color:var(--muted);font-size:12px;font-weight:550}th,td{padding:14px 16px;border-bottom:1px solid var(--line-soft);vertical-align:middle}th{padding-top:8px;padding-bottom:8px;text-align:left}td{font-variant-numeric:tabular-nums;font-size:13px}td:first-child>a{font-weight:600;color:var(--ink)}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--oc-gray-0)}td>button,.table-actions>button{min-height:32px;padding:5px 10px;font-size:12px}td>button+button{margin-left:var(--control-gap)}
.table-tools,.table-pager{padding:12px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line-soft);font-size:12px}.table-tools label{display:flex;align-items:center;gap:8px}.table-tools input{font-size:13px;max-width:220px;min-height:34px;padding:6px 10px}.table-count{margin-left:auto;color:var(--muted)}.table-tools button,.table-pager button{font-size:12px;min-height:32px;padding:5px 10px}.table-pager{justify-content:flex-end;border-bottom:0;border-top:1px solid var(--line-soft)}.table-pager[hidden]{display:none}th .sort{padding:0;border:0;min-height:28px;background:transparent;color:inherit;font-size:inherit;box-shadow:none}
.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:5px;background:var(--oc-gray-1);color:var(--oc-gray-7);font-size:12px;line-height:18px;font-weight:500;white-space:nowrap}.badge:before{content:'';height:6px;width:6px;flex:none;border-radius:50%;background:var(--oc-gray-6)}
.badge.running,.badge.available,.badge.succeeded,.badge.active,.badge.valid{color:var(--oc-teal-9);background:var(--oc-teal-0)}.badge.running:before,.badge.succeeded:before,.badge.available:before,.badge.active:before,.badge.valid:before{background:var(--oc-teal-7)}
.badge.failed,.badge.recalled,.badge.expired,.badge.blocked{color:var(--oc-red-9);background:var(--oc-red-0)}.badge.failed:before,.badge.recalled:before,.badge.expired:before,.badge.blocked:before{background:var(--oc-red-7)}
.badge.pending,.badge.grace,.badge.creating,.badge.pending-dns,.badge.cert-issuing{color:var(--oc-orange-9);background:var(--oc-orange-0)}.badge.pending:before,.badge.grace:before,.badge.creating:before,.badge.pending-dns:before,.badge.cert-issuing:before{background:var(--oc-orange-7)}
.empty{text-align:center;padding:56px 24px;color:var(--muted);font-size:14px}
.field{margin-bottom:20px}.field label{display:block;font-size:13px;font-weight:600;margin-bottom:8px}.field label>span[aria-label]{color:var(--error)}.field input:not([type=checkbox]),.field select,.field textarea{width:100%}
input:not([type=checkbox]),select,textarea{border:1px solid var(--line);border-radius:7px;background:var(--surface);padding:9px 12px;min-height:40px;font-size:14px;line-height:20px;max-width:100%;box-shadow:var(--shadow-control)}input::placeholder,textarea::placeholder{color:var(--oc-gray-7)}input:hover,select:hover,textarea:hover{border-color:var(--oc-gray-4)}input:focus,select:focus,textarea:focus{border-color:var(--accent)}input:disabled,select:disabled,textarea:disabled,input[readonly]{background:var(--oc-gray-0);color:var(--muted)}textarea{resize:vertical}.field small{display:block;margin-top:6px}.field.check{display:flex;align-items:center;gap:10px}.field.check label{margin:0;order:1;font-weight:500}input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.form-error{color:var(--error);margin-top:16px;font-size:13px}.form-error:empty{margin:0}
.notice{padding:14px 16px;border:1px solid var(--oc-indigo-1);background:var(--oc-indigo-0);color:var(--oc-indigo-9);border-radius:8px;margin-bottom:20px;font-size:13px;line-height:21px}.notice.warning{background:var(--oc-orange-0);border-color:var(--oc-orange-2);color:var(--oc-orange-9)}.notice.error{background:var(--oc-red-0);border-color:var(--oc-red-2);color:var(--oc-red-9)}.notice p{color:inherit;margin:8px 0 0}
.tabs{display:flex;gap:24px;border-bottom:1px solid var(--line-soft);margin-bottom:var(--section-gap);overflow:auto;white-space:nowrap}.tabs a{color:var(--muted);padding:12px 2px;border-bottom:2px solid transparent;font-size:13px}.tabs a:hover{color:var(--ink);text-decoration:none}.tabs a.active{color:var(--accent);border-color:var(--accent);font-weight:650}
.overlay{position:fixed;inset:0;z-index:100;background:rgba(17,18,20,.56);display:flex;align-items:center;justify-content:center;padding:32px;animation:fade 160ms ease-out}.overlay section[role=dialog]{width:560px;max-width:100%;max-height:calc(100dvh - 64px);background:var(--surface);border:1px solid var(--line-soft);border-radius:14px;box-shadow:var(--shadow-float);display:flex;flex-direction:column;outline:none}.overlay header{padding:var(--content-gap) var(--section-padding-x);border-bottom:1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between;gap:24px}.overlay header h2{font-size:18px}.overlay header button{font-size:24px;min-height:32px;min-width:32px;padding:0 6px;border:0;box-shadow:none;color:var(--muted)}.overlay form{min-height:0;display:flex;flex-direction:column}.dialog-body{overflow:auto;padding:var(--section-padding-y) var(--section-padding-x);min-height:0}.overlay footer{border-top:1px solid var(--line-soft);padding:var(--content-gap) var(--section-padding-x);display:flex;justify-content:flex-end;gap:8px;background:var(--oc-gray-0);border-radius:0 0 14px 14px}.overlay.drawer{padding:0;justify-content:flex-end}.overlay.drawer section[role=dialog]{width:640px;height:100dvh;max-height:none;border-radius:0}.overlay.drawer form{flex:1}.overlay.drawer .dialog-body{flex:1}.overlay.drawer footer{border-radius:0}.overlay.wide{padding:16px}.overlay.wide section[role=dialog]{width:1100px;height:calc(100dvh - 32px);max-height:none}.overlay.wide form,.overlay.wide .dialog-body{flex:1}
#toasts{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:300;display:grid;gap:8px;max-width:calc(100% - 32px)}.toast{padding:12px 20px;background:var(--chrome-bg);color:var(--oc-white);border-radius:8px;box-shadow:var(--shadow-float);font-size:13px}
.review-toggle{position:fixed;left:16px;bottom:16px;z-index:210;font-size:12px;min-height:34px;background:var(--oc-white);color:var(--muted);box-shadow:0 2px 8px rgba(33,37,41,.06)}.review-panel{position:fixed;right:16px;bottom:64px;z-index:211;width:360px;max-height:70vh;overflow:auto;background:var(--surface);padding:24px;border:1px solid var(--line);box-shadow:var(--shadow-float);border-radius:12px}.review-panel select{font-size:13px;width:100%}.review-panel .actions{margin:12px 0}
.auth{max-width:440px;margin:64px auto}.auth .card{padding:32px;box-shadow:0 8px 32px rgba(33,37,41,.04)}.auth .section-heading{margin-bottom:24px}.auth h1{font-size:24px;line-height:32px}.auth form>.primary{width:100%;margin-top:8px}.breadcrumb{font-size:12px;color:var(--muted);margin-bottom:18px}.breadcrumb a{color:var(--muted)}
.code{background:var(--oc-gray-0);border:1px solid var(--line-soft);padding:16px;border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere;font:13px/22px Consolas,monospace}.editor-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:24px}.step{border:1px solid var(--line-soft);padding:14px;border-radius:8px;margin-bottom:8px;background:var(--surface)}.step.selected{border-color:var(--oc-indigo-3);background:var(--accent-soft)}.chat{display:flex;flex-direction:column;gap:16px;max-width:860px;margin:auto}.bubble{max-width:80%;padding:16px;border:1px solid var(--line-soft);border-radius:12px;background:var(--oc-gray-0)}.bubble.own{align-self:flex-end;background:var(--accent-soft);border-color:var(--oc-indigo-1)}.chat-input{display:flex;gap:8px;margin-top:24px}.chat-input input,.chat-input textarea{flex:1;min-width:0}
.skip{position:fixed;top:-100px;z-index:500}.skip:focus{top:8px;left:8px;background:var(--surface);padding:12px}.boot{padding:48px}.inline-fields{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:24px}.inline-fields .field{margin:0;flex:1}.spacer{height:24px}.muted{color:var(--muted)}.split{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:24px}.chart{width:100%;height:240px}details{margin:16px 0}summary{cursor:pointer;font-weight:550;padding:14px 0;font-size:14px}details[open]>summary{margin-bottom:12px}main>details{border-bottom:1px solid var(--line-soft)}dl{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px 24px;margin:20px 0 0;font-size:13px}dl:has(>div){grid-template-columns:minmax(0,1fr)}dt{color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}
#session-notice{position:fixed;z-index:80;top:72px;left:50%;transform:translateX(-50%);max-width:calc(100% - 48px);display:flex;gap:8px;align-items:start}#session-notice:empty{display:none}#session-notice .notice{box-shadow:var(--shadow-float)}
#run-stack{position:fixed;z-index:45;right:16px;bottom:72px;width:320px;max-height:55vh;overflow:auto;background:var(--surface);border:1px solid var(--line);padding:16px;border-radius:12px;box-shadow:var(--shadow-float)}#run-stack:empty{display:none}.stack-item{padding:12px 0;border-top:1px solid var(--line-soft)}.stack-item p{margin:8px 0}.stack-item button{min-height:32px;padding:4px 12px}
.settings-main>.card,.settings-main>.grid,.settings-main>.split,.settings-main>form,.settings-main>details{max-width:none}
@keyframes fade{from{opacity:0}to{opacity:1}}
@media(max-width:1279px){.shell{grid-template-columns:72px minmax(0,1fr)}.sidebar{padding:16px 8px 76px}.sidebar .context,.sidebar .group{display:none}.sidebar a{font-size:10px;line-height:15px;padding:8px 2px;gap:4px;text-align:center;flex-direction:column;overflow-wrap:anywhere}.sidebar a .icon{width:18px;height:18px}.main{padding:24px}.split{grid-template-columns:1fr}.review-toggle{left:8px;max-width:56px;white-space:normal;padding:6px;font-size:10px}}
@media(max-width:800px){.page-heading{flex-direction:column;gap:16px}.page-heading .actions{flex-shrink:1}.form-grid,.editor-grid{grid-template-columns:1fr}.main{padding:16px}.topbar{padding:0 16px}.topbar .secondary{display:none}.topbar .actions{gap:8px}.card{padding:16px}.overlay{padding:16px}.overlay section[role=dialog]{max-height:calc(100dvh - 32px)}.grid,.workspace-team .grid{grid-template-columns:1fr}.actions{gap:8px}.section-heading{flex-wrap:wrap}.workspace-team .section-heading .actions{margin-left:0}dl{grid-template-columns:80px minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){*{animation-duration:0s!important;transition-duration:0s!important}}
/* Semantic visuals: configuration, sequential recipes and reserved resources. */
.type-symbol{display:inline-grid;place-items:center;width:36px;height:36px;flex:none;border-radius:9px;background:var(--oc-gray-0);color:var(--oc-gray-7);border:1px solid var(--line-soft)}.type-symbol .icon{width:18px;height:18px}.type-llm{background:var(--oc-indigo-0);color:var(--oc-indigo-8);border-color:var(--oc-indigo-1)}.type-mcp{background:var(--oc-cyan-0);color:var(--oc-cyan-9);border-color:var(--oc-cyan-1)}.type-skill{background:var(--oc-teal-0);color:var(--oc-teal-9);border-color:var(--oc-teal-1)}
.collection-summary{display:flex;flex-wrap:wrap;gap:28px;padding:0 0 20px;margin-bottom:20px;border-bottom:1px solid var(--line-soft);color:var(--muted);font-size:13px}.collection-summary strong{margin-left:8px;color:var(--ink);font-size:16px;font-variant-numeric:tabular-nums}
.entity-cell{display:flex;align-items:center;gap:12px;min-width:160px}.entity-cell>div{min-width:0}.entity-cell a,.entity-cell strong{display:block;font-weight:600;color:var(--ink)}.entity-cell small{display:block;max-width:38ch;line-height:19px;margin-top:4px}.cell-detail{display:grid;gap:4px}.cell-detail small{max-width:30ch}
.setup-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line-soft);border-radius:10px;margin-bottom:24px;background:var(--surface);max-width:none}.setup-part{display:flex;align-items:flex-start;gap:12px;padding:var(--section-padding-y) var(--section-padding-x);min-width:0}.setup-part+.setup-part{border-left:1px solid var(--line-soft)}.setup-part>div{min-width:0}.setup-part strong{display:block;font-size:14px;margin:6px 0;overflow-wrap:anywhere}.setup-part small{display:block;font-size:12px;line-height:19px}.setup-part> .icon{width:20px;height:20px;flex:none;color:var(--muted);margin-top:2px}.setup-part .attention,.cell-detail .attention{color:var(--oc-orange-9)}
.flow-list{list-style:none;margin:20px 0 0;padding:0}.flow-node,.editor-flow>.step{position:relative;margin-bottom:28px;padding:16px;border:1px solid var(--line-soft);border-radius:10px;background:var(--surface)}.flow-node:not(:last-child):after,.editor-flow>.step:not(:last-child):after{content:'';position:absolute;height:28px;left:33px;top:100%;border-left:1px solid var(--oc-gray-4)}.flow-node:last-child{margin-bottom:0}.flow-node-head{display:flex;align-items:center;gap:12px;min-width:0}.flow-node-head>div{flex:1;min-width:0}.flow-node-head h3{margin:3px 0 0;font-size:14px;line-height:21px;overflow-wrap:anywhere}.flow-node-head small{font-size:12px}.flow-node-head>.badge{margin-left:auto}.reference-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.reference-list:empty{display:none}.reference-list>span{display:inline-flex;align-items:center;gap:6px;padding:4px 7px;background:var(--oc-gray-0);border-radius:5px;font-size:12px;color:var(--muted);overflow-wrap:anywhere;max-width:100%}.reference-list .icon,.artifact-label .icon{width:14px;height:14px;flex:none}.flow-hint{font-size:12px;margin:12px 0 0;color:var(--muted)}.artifact-label{display:inline-flex;gap:6px;align-items:center;color:var(--oc-teal-9);font-size:12px;margin-top:12px}.flow-duration{display:block;margin-top:10px}.flow-node.failed{border-color:var(--oc-red-3)}.flow-node.running{border-color:var(--oc-indigo-3)}.step-error{font-size:13px;color:var(--oc-red-9);background:var(--oc-red-0);padding:10px 12px;border-radius:6px;margin:12px 0 0}.step-output{border-top:1px solid var(--line-soft);margin:12px 0 0}.step-output summary{font-size:12px;padding:10px 0}.step-output .code{margin:0;font-size:12px}
.editor-flow{padding:16px;background:radial-gradient(var(--oc-gray-3) .7px,transparent .7px) 0 0/12px 12px;border:1px solid var(--line-soft);border-radius:10px;margin-bottom:16px}.editor-flow>.step:last-child{margin-bottom:0}.editor-flow>.step.selected{border-color:var(--oc-indigo-4);box-shadow:0 0 0 2px var(--oc-indigo-0);background:var(--surface)}.editor-flow .flow-node-head button{display:block;text-align:left;white-space:normal;overflow-wrap:anywhere;font-size:14px;font-weight:600;padding:4px 0;min-height:28px;width:100%;line-height:21px}.editor-flow .actions{border-top:1px solid var(--line-soft);padding-top:12px;margin-top:12px}.editor-flow .actions button{min-height:28px;font-size:12px;padding:3px 8px}
.reservation-summary{padding:var(--section-padding-y) var(--section-padding-x);border:1px solid var(--line-soft);border-radius:10px;margin-bottom:24px}.reservation-summary h2{font-size:15px;margin-bottom:4px}.resource-meters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:24px}.resource-meter>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;font-size:13px}.resource-meter strong{font-size:16px;font-variant-numeric:tabular-nums}.resource-meter strong small{font-size:12px;font-weight:400}.resource-track{height:6px;border-radius:3px;background:var(--oc-gray-1);overflow:hidden}.resource-track>span{display:block;height:100%;background:var(--oc-indigo-5);border-radius:3px}.resource-track.over-limit>span{background:var(--oc-red-7)}.resource-relationship{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:var(--section-padding-y) var(--section-padding-x);border:1px solid var(--line-soft);border-radius:10px;margin-bottom:24px}.relationship-arrow{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.resource-relationship>.badge{margin-left:auto}
@media(max-width:1000px){.setup-overview{grid-template-columns:1fr}.setup-part+.setup-part{border-left:0;border-top:1px solid var(--line-soft)}.resource-meters{gap:20px}}
@media(max-width:800px){.recipe-editor .editor-grid,.resource-meters{grid-template-columns:1fr}.flow-node-head{flex-wrap:wrap}.flow-node-head>.badge{margin-left:48px}}
.agent-create section[role=dialog]{width:640px}.agent-create [data-capacity]{font-size:13px;margin-bottom:20px}.agent-create [data-capacity] p{margin:6px 0}.agent-create h3{margin:20px 0 8px}.agent-create details ul{padding-left:20px;line-height:28px}.agent-create [data-model-fields]{border-top:1px solid var(--line-soft);padding-top:20px}.preparation-stages{display:flex;gap:24px;flex-wrap:wrap;padding-left:20px;font-size:13px}.preparation-stages .complete{color:var(--oc-teal-9)}.preparation-stages .current{font-weight:650;color:var(--accent)}
/* Context controls keep team administration separate from project work. */
.sidebar .context label{display:block;font-size:11px;font-weight:600;color:var(--gray-6,#868e96);margin:12px 0 6px}
.sidebar .context label:first-child{margin-top:0}
.sidebar .context select{width:100%;min-width:0}
.sidebar .context>a{display:block;padding:6px 2px;font-size:12px;color:var(--gray-7,#495057)}
.scope-heading{font-size:13px;color:var(--gray-6,#868e96);margin-bottom:16px}
.main.chat-main{height:calc(100dvh - 64px);padding:24px;min-height:560px}
.chat-shell{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:1px solid var(--line-soft);border-radius:12px;background:var(--surface);overflow:hidden}
.chat-header{display:flex;align-items:center;gap:12px;padding:20px 24px;border-bottom:1px solid var(--line-soft)}
.chat-header h1{font-size:18px;line-height:26px;margin:0}.chat-header h1 span{font-size:12px;font-weight:500;color:var(--muted);margin-left:8px}
.chat-header p{font-size:12px;color:var(--muted);margin:4px 0 0}.chat-header>button{margin-left:auto}
.chat-avatar{width:36px;height:36px;border-radius:10px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;flex:none;font-weight:600;font-size:13px}.chat-avatar .icon{width:20px;height:20px}
.chat-thread{overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:24px;background:var(--oc-gray-0)}
.chat-message{display:flex;align-items:flex-start;gap:12px;margin-bottom:24px}.chat-message:last-child{margin-bottom:0}.chat-message.own{flex-direction:row-reverse}.chat-message.own .chat-avatar{background:var(--oc-gray-2);color:var(--oc-gray-7)}
.message-body{max-width:min(76%,80ch);min-width:0}.message-meta{display:flex;align-items:center;gap:8px;font-size:12px;margin:0 0 8px}.message-meta time{font-size:11px;color:var(--muted)}.own .message-meta{justify-content:flex-end}
.chat-message .bubble{max-width:none;margin:0;padding:14px 18px;border-radius:0 12px 12px 12px;background:var(--surface);font-size:14px;line-height:1.7}.chat-message .bubble.own{border-radius:12px 0 12px 12px;background:var(--accent-soft)}.message-text{white-space:pre-wrap;overflow-wrap:anywhere}.bubble .actions,.chat-run{margin-top:12px}.chat-run{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.chat-welcome{height:100%;min-height:160px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}.chat-welcome-symbol{color:var(--accent);margin-bottom:16px}.chat-welcome-symbol .icon{width:36px;height:36px}.chat-welcome h2{font-size:20px;margin:0 0 8px}.chat-welcome p{font-size:14px;line-height:1.8;color:var(--muted);margin:0}
.chat-composer{padding:16px 24px 12px;border-top:1px solid var(--line-soft)}.chat-shortcuts{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.chat-shortcuts button{min-height:var(--button-compact-height);padding:4px 12px;font-size:var(--button-font-size);border-radius:var(--button-radius)}
.chat-input{display:block;margin:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px}.chat-input:focus-within{border-color:var(--accent)}.chat-input textarea{width:100%;border:0;box-shadow:none;resize:none;min-height:48px;max-height:160px;padding:4px;font-size:14px;line-height:24px;background:transparent}.chat-input textarea:focus-visible{outline:none}
.chat-compose-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:8px}.chat-compose-footer>span,.chat-channel-note{font-size:11px;color:var(--muted)}.chat-compose-footer button{display:flex;align-items:center;gap:8px;min-height:36px}.chat-compose-footer .icon{width:16px;height:16px}.chat-channel-note{display:block;text-align:center;margin-top:8px}.chat-feedback:empty{display:none}.chat-feedback{font-size:12px;margin-top:8px;color:var(--muted)}.chat-feedback.error{color:var(--oc-red-8)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Team preview is transient; only a project selection changes the workspace. */
.workspace-context{padding:4px 0 20px;margin-bottom:12px;border-bottom:1px solid var(--line-soft)}
#workspace-switch{display:flex;align-items:center;gap:10px;width:100%;padding:12px 10px;text-align:left;min-height:64px;border-radius:10px;background:var(--surface)}
.workspace-symbol{display:flex;color:var(--accent);flex:none}.workspace-current{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}.workspace-current small{font-size:11px;color:var(--muted)}.workspace-current strong{font-size:13px;font-weight:600}.workspace-current small,.workspace-current strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#workspace-switch>span:last-child{display:flex;color:var(--muted)}#workspace-switch>span:last-child .icon{width:14px;height:14px}
#workspace-picker{position:fixed;margin:0;padding:0;width:min(624px,calc(100vw - 24px));max-height:calc(100dvh - 96px);overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);box-shadow:0 12px 40px rgba(33,37,41,.14)}
#workspace-picker::backdrop{background:transparent}#workspace-picker>header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 8px}#workspace-picker>header>strong{font-size:15px}#workspace-picker>header button{border:0;box-shadow:none;padding:4px;min-height:32px;width:32px}
.workspace-search{padding:8px 20px 16px}.workspace-search input{width:100%;background:var(--oc-gray-0)}.workspace-columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}.workspace-columns>section{padding:16px 12px;min-width:0;display:flex;flex-direction:column}.workspace-columns>section:first-child{background:var(--oc-gray-0);border-right:1px solid var(--line-soft)}.workspace-columns h2{font-size:12px;line-height:18px;color:var(--muted);margin:0 8px 12px;overflow-wrap:anywhere}
[data-team-list],[data-project-list]{min-height:160px;max-height:240px;overflow:auto;flex:1}.workspace-columns [data-pick-team],.workspace-columns [data-project-list]>a{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:10px 12px;margin:0 0 4px;border:0;border-radius:6px;box-shadow:none;text-align:left;background:transparent;font-size:13px;color:var(--text);text-decoration:none}.workspace-columns [data-pick-team]>span,.workspace-columns a>span{flex:1;min-width:0;overflow-wrap:anywhere}.workspace-columns small{font-size:11px;color:var(--muted);white-space:nowrap}.workspace-columns .icon{width:16px;height:16px;flex:none;color:var(--muted)}.workspace-columns [aria-pressed=true],.workspace-columns a[aria-current]{background:var(--accent-soft);color:var(--accent)}.workspace-columns [data-pick-team]:hover,.workspace-columns [data-project-list]>a:hover{background:var(--oc-gray-2)}
.workspace-columns footer{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 8px 0;margin-top:12px;border-top:1px solid var(--line-soft)}.workspace-columns footer a{font-size:12px}.workspace-columns footer button{min-height:32px;font-size:12px;padding:4px 10px}.workspace-columns footer a+button{margin-left:auto}.picker-empty{padding:16px 8px;color:var(--muted);font-size:12px;line-height:1.7}.workspace-picker-hint{font-size:11px;color:var(--muted);margin:0;padding:12px 20px}.management-return{display:flex;justify-content:flex-end;margin-bottom:12px;font-size:12px}
@media(max-width:1279px){.workspace-context{padding:0 0 12px}#workspace-switch{padding:10px;justify-content:center;min-height:44px}.workspace-current,#workspace-switch>span:last-child{display:none}}
.workspace-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid var(--line-soft);margin:0 0 24px;padding:24px 0}.workspace-overview>div{display:flex;gap:16px;padding:0 24px}.workspace-overview>div+div{border-left:1px solid var(--line-soft)}.workspace-overview .icon{color:var(--accent);margin-top:3px}.workspace-overview>div>span{font-size:13px;color:var(--muted)}.workspace-overview strong{display:block;font-size:28px;line-height:40px;color:var(--text);font-weight:600;margin:4px 0}.workspace-overview strong small{font-size:13px;margin-left:6px;color:var(--muted);font-weight:400}.workspace-overview p{font-size:12px;margin:0}.dashboard-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.dashboard-columns>.card{min-width:0}.workspace-attention{display:flex;align-items:start;gap:32px;background:var(--oc-orange-0);border:1px solid var(--oc-orange-2);border-radius:10px;padding:var(--section-padding-y) var(--section-padding-x);margin-bottom:var(--section-gap)}.workspace-attention h2{font-size:14px;margin:0}.workspace-attention h2 span{color:var(--oc-orange-8);margin-left:8px}.workspace-attention p{font-size:12px;color:var(--muted);margin:8px 0 0}.workspace-attention ul{list-style:none;padding:0;margin:0;flex:1}.workspace-attention li{display:flex;justify-content:space-between;gap:16px;font-size:12px;padding:6px 0}.workspace-attention li span{color:var(--oc-orange-9)}
@media(max-width:1100px){.dashboard-columns{grid-template-columns:1fr}.workspace-attention{flex-direction:column;gap:16px}.workspace-attention ul{width:100%}}
.project-settings-link{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:8px 14px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:var(--surface);font-size:13px;text-decoration:none}.project-settings-link:hover{background:var(--oc-gray-0);text-decoration:none}.project-settings-link .icon{width:16px;height:16px}
/* Section rhythm: 24px surfaces, 16px inner groups, 8px controls. */
.project-card{padding:var(--section-padding-y) var(--section-padding-x)}
.setup-overview,.reservation-summary,.resource-relationship{margin-bottom:var(--section-gap)}
.split,.dashboard-columns{gap:var(--section-gap)}
.section-heading{margin-bottom:var(--content-gap)}
.card>.setup-overview{margin:var(--content-gap) 0 0}
.section-actions{margin-top:var(--content-gap);padding-top:var(--content-gap);border-top:1px solid var(--line-soft)}
.card>.section-actions:last-child{margin-bottom:0}
.card>.grid,.card>.split{margin-top:var(--content-gap)}
.card>.section-heading+:is(p,.notice){margin-bottom:var(--content-gap)}
.main>.table-wrap+:is(.card,.grid,.split,.page-heading),.main>.grid+:is(.card,.page-heading,.grid),.main>.actions+.page-heading{margin-top:var(--section-gap)}
.chat-header,.chat-thread{padding:var(--section-padding-y) var(--section-padding-x)}
.chat-composer{padding:var(--content-gap) var(--section-padding-x)}
@media(max-width:800px){:root{--page-padding:16px;--section-padding-x:16px;--section-padding-y:16px;--section-gap:16px}}
/* Button contract: text actions, icon-only surface controls; 40px / dense 32px. */
button,.project-settings-link{border-radius:var(--button-radius)}
.actions{gap:var(--control-gap)}
.ui-button,.project-settings-link{min-height:var(--button-height);padding:8px var(--button-padding-x);font-size:var(--button-font-size);line-height:20px;font-weight:550}
:is(td,.table-pager,.chat-shortcuts,.workspace-columns footer,.editor-flow .actions,.stack-item) button{min-height:var(--button-compact-height);padding:5px 10px;font-size:var(--button-font-size);line-height:20px;border-radius:var(--button-radius)}
.chat-compose-footer button,.project-card button{min-height:var(--button-height);font-size:var(--button-font-size)}
button.icon-button,.overlay header button.icon-button,#workspace-picker>header button.icon-button{display:inline-flex;align-items:center;justify-content:center;width:var(--button-height);height:var(--button-height);min-width:var(--button-height);min-height:var(--button-height);padding:0;flex:none;border:1px solid var(--line);border-radius:var(--button-radius);background:var(--surface);color:var(--muted);box-shadow:none}
button.icon-button .icon{width:18px;height:18px}
button.icon-button:hover{background:var(--oc-gray-0);border-color:var(--oc-gray-4);color:var(--ink)}
button.icon-button:disabled{color:var(--oc-gray-6);background:var(--oc-gray-1);border-color:var(--line-soft);cursor:not-allowed}
/* 닫기(X) 버튼은 테두리 없이 둔다(2026-10-01 사용자 요청) */
.overlay header button.icon-button[data-close],button.icon-button[data-rb-drawer-close],#workspace-picker>header button.icon-button{border-color:transparent;background:transparent}
.overlay header button.icon-button[data-close]:hover,button.icon-button[data-rb-drawer-close]:hover,#workspace-picker>header button.icon-button:hover{border-color:transparent;background:var(--oc-gray-1)}
:is(td,.table-tools,.table-pager) button.icon-button{width:var(--button-compact-height);height:var(--button-compact-height);min-width:var(--button-compact-height);min-height:var(--button-compact-height);padding:0}
/* A toolbar is one size context: inputs, selects and actions share its height. */
.table-tools{gap:var(--control-gap);align-items:center}
.table-tools label{gap:var(--control-gap);min-width:0}
.table-tools input:not([type=checkbox]),.table-tools select,.table-tools button{height:var(--button-height);min-height:var(--button-height);font-size:var(--button-font-size);line-height:20px;border-radius:var(--button-radius);padding:9px 12px}
.table-tools input:not([type=checkbox]){width:220px;min-width:0}
.table-tools button{padding-inline:var(--button-padding-x)}
.inline-fields input:not([type=checkbox]),.inline-fields select,.inline-fields>button{height:var(--button-height);min-height:var(--button-height);line-height:20px;border-radius:var(--button-radius)}
.table-tools button.icon-button{width:var(--button-height);height:var(--button-height);min-width:var(--button-height);min-height:var(--button-height);padding:0}
/* Infrastructure keeps list context; routed details use half the desktop viewport. */
body.infra-surface-open{overflow:hidden}
.infra-scrim{position:fixed;inset:0;background:rgba(17,18,20,.56);z-index:50}
.infra-surface{position:fixed;z-index:51;background:var(--white,#fff);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 16px 48px #21252926;outline:none}
.infra-detail-drawer{inset:0 0 0 auto;width:50vw;border-left:1px solid var(--gray-3,#dee2e6)}
.infra-create-modal{width:min(880px,calc(100vw - 64px));max-height:calc(100dvh - 64px);left:50%;top:50%;transform:translate(-50%,-50%);border-radius:12px}
.infra-surface-top{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--gray-3,#dee2e6);flex-shrink:0;font-weight:600}
.infra-surface-body{padding:24px;overflow:auto;overscroll-behavior:contain;min-height:0;scrollbar-gutter:stable}
.infra-surface-body>.page-heading{margin-bottom:24px}
.infra-surface .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.infra-surface .grid>.card:only-child{grid-column:1/-1}
.infra-surface .tabs{display:flex;flex-wrap:wrap;gap:4px 12px;overflow:visible;margin-bottom:24px}
.infra-surface .tabs a{padding:10px 2px;white-space:nowrap}
.infra-surface .table-wrap{max-width:100%;overflow:auto}
.infra-surface .page-heading{flex-wrap:wrap;gap:16px}
.infra-surface .card{min-width:0;overflow-wrap:anywhere}
.infra-surface .code{white-space:pre-wrap;overflow-wrap:anywhere}
.infra-observation{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px;border:1px solid var(--gray-3,#dee2e6);border-radius:10px;margin:24px 0}
.infra-observation h2{margin:0 0 8px;font-size:15px}
.infra-observation p{margin:0 0 8px}
.infra-observation .inline-fields{margin:0;flex-shrink:0}
.infra-observation .field{margin:0}
.infra-quick-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:24px}
.infra-quick-links a{display:flex;flex-direction:column;gap:8px;border:1px solid var(--gray-3,#dee2e6);border-radius:8px;padding:16px;color:inherit;text-decoration:none}
.infra-quick-links a:last-child:nth-child(odd){grid-column:1/-1}
.infra-quick-links a:hover{background:var(--gray-0,#f8f9fa);border-color:var(--indigo-4,#748ffc)}
.infra-quick-links span{font-size:12px;color:var(--gray-6,#868e96)}
.creation-steps{display:flex;list-style:none;padding:0;margin:0 0 24px;border-bottom:1px solid var(--gray-3,#dee2e6)}
.creation-steps li{flex:1;padding:12px;text-align:center;color:var(--gray-6,#868e96);border-bottom:2px solid transparent}
.creation-steps li.active{color:var(--indigo-6,#4c6ef5);border-color:currentColor;font-weight:600}
#service-create .creation-body>.card{margin-bottom:24px}
#service-create .actions{margin-bottom:16px}
#service-create .creation-footer{flex-shrink:0;padding:var(--content-gap) var(--section-padding-x);margin:0;background:var(--oc-gray-0);justify-content:flex-end;border-top:1px solid var(--line-soft)}
.creation-review{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;margin:0 0 24px}
.creation-review dt{color:var(--gray-6,#868e96)}
.creation-review dd{margin:0;overflow-wrap:anywhere}
.infra-detail-drawer .grid>.card:last-child:nth-child(odd){grid-column:1/-1}
.resource-settings{display:grid;gap:var(--section-gap)}
.resource-settings>.ui-button{justify-self:start}
.resource-settings>.card{margin:0}
/* Entity title precedes navigation. Content headings and local actions share a row. */
.page-heading h2{font-size:20px;line-height:28px;letter-spacing:-.02em;margin:0 0 8px;font-weight:650}
.tab-panel>.page-heading{align-items:center}
.tab-panel>.page-heading .actions{padding-top:0}
.tab-panel>.card{margin-bottom:var(--section-gap)}
.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:6px;line-height:20px;margin-bottom:16px}
.breadcrumb a:hover{color:var(--accent);text-decoration:underline}
.tab-panel>.table-wrap+.card{margin-top:var(--section-gap)}
/* White operations console: canvas, work surfaces, then transient layers. */
.main{background:var(--bg);min-height:calc(100dvh - 64px)}
.sidebar{background:var(--surface)}
.topbar{border-bottom-color:var(--line)}
.sidebar a.active{background:var(--accent-soft);box-shadow:none}
.sidebar a{font-weight:550}
.sidebar .group{font-size:11px;letter-spacing:.02em;color:var(--oc-gray-7)}
#workspace-switch{background:var(--oc-gray-0);box-shadow:none}
h1{font-weight:720;letter-spacing:-.035em}
.page-heading p{color:var(--oc-gray-7);line-height:22px}
.page-heading{align-items:center}
.page-heading .actions{padding-top:0}
.breadcrumb{font-size:12px;color:var(--oc-gray-7)}
.breadcrumb a{color:var(--oc-gray-7)}
.card,.table-wrap,.setup-overview,.reservation-summary,.resource-relationship,.settings-sheet{border-color:var(--line);background:var(--surface)}
.card{border-radius:10px;box-shadow:0 1px 2px rgba(33,37,41,.025)}
.card>.table-wrap{border:0;border-top:1px solid var(--line-soft);border-radius:0}
.card>.table-wrap .table-tools{padding-inline:0}
.section-heading h2{font-size:17px;line-height:26px;font-weight:680}
.section-heading>a{font-size:13px;font-weight:550}
th{color:var(--oc-gray-7);font-weight:600;background:var(--oc-gray-0);height:40px}
td{height:56px}
.table-tools{background:var(--surface)}
.entity-cell>div>a{font-size:14px;font-weight:650;color:var(--ink)}
.entity-cell small{margin-top:4px;color:var(--oc-gray-7)}
.notice.info{background:var(--oc-gray-0);border-color:var(--line-soft);color:var(--oc-gray-7)}
.tabs{border-bottom-color:var(--line);gap:28px}
.tabs a{padding:12px 0;font-weight:550}
.tabs a.active{font-weight:680}
.entity-title{display:flex;gap:16px;align-items:center;min-width:0}
.entity-title h1{margin-bottom:8px;overflow-wrap:anywhere}
.entity-emblem{display:grid;place-items:center;width:56px;height:56px;flex:none;border:1px solid var(--oc-indigo-1);border-radius:14px;background:var(--surface);color:var(--accent)}
.entity-emblem .icon{width:28px;height:28px}
.entity-subtitle{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.workspace-overview{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0;overflow:hidden}
.workspace-overview>div{padding:24px;position:relative;gap:16px}
.workspace-overview>div>.icon{width:24px;height:24px;color:var(--oc-gray-7);margin-top:2px}
.workspace-overview>div>span{flex:1;color:var(--ink);font-weight:600}
.workspace-overview strong{font-size:36px;line-height:44px;font-weight:700;letter-spacing:-.035em;margin:8px 0;font-variant-numeric:tabular-nums}
.workspace-overview p{font-weight:400;color:var(--muted)}
.workspace-overview .overview-detail{display:block;margin-top:16px;padding-top:12px;border-top:1px solid var(--line-soft);font-size:12px;font-weight:500;color:var(--oc-gray-7)}
.workspace-overview>div+div:before{content:'';position:absolute;left:-4px;top:36px;width:7px;height:7px;transform:rotate(-45deg);background:var(--surface);border-right:1px solid var(--oc-gray-6);border-bottom:1px solid var(--oc-gray-6)}
.workspace-attention{background:var(--surface);border-color:var(--oc-orange-2)}
.workspace-attention h2{font-weight:650}
.workspace-attention h2 span{display:inline-grid;place-items:center;min-width:24px;height:24px;padding-inline:6px;border-radius:6px;background:var(--oc-orange-0);color:var(--oc-orange-9)}
.workspace-attention li+li{border-top:1px solid var(--line-soft)}
.workspace-attention li>a{color:var(--ink);font-weight:600}
.setup-overview{overflow:hidden}.setup-part{background:var(--surface);border-radius:0}
.setup-part .setup-label{font-size:12px;color:var(--oc-gray-7)}
.setup-part strong{font-size:16px;line-height:24px;margin:8px 0;font-weight:650}
.setup-part+.setup-part{border-left-color:var(--line)}
.settings-sheet{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:24px}
.setting-row{display:grid;grid-template-columns:220px minmax(0,1fr) 224px;gap:24px;padding:24px;align-items:start}
.setting-row+.setting-row{border-top:1px solid var(--line-soft)}
.setting-heading h2{margin-bottom:6px}
.setting-heading p{font-size:13px;line-height:21px;margin:0;word-break:keep-all}
.setting-row dl{margin:0;grid-template-columns:64px minmax(0,1fr);gap:10px 16px;font-size:14px}
.setting-value>strong{font-size:15px;font-weight:650;line-height:24px}
.setting-value p{font-size:13px;margin:6px 0 0}
.setting-value small{display:block;line-height:20px;margin-top:12px;max-width:60ch}
.setting-value .setting-spec{font-size:14px;font-variant-numeric:tabular-nums;color:var(--ink)}
.setting-row>.actions{justify-content:flex-end;max-width:260px}
.settings-sheet>.setting-section{padding:24px;border-top:1px solid var(--line-soft)}
.setting-section>h2{margin-bottom:16px}
.setting-section .table-wrap{margin-bottom:16px}
.setting-section+.setting-row{border-top:1px solid var(--line-soft)}
.tab-panel>.card:has(>dl){display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,2fr);gap:24px}
.tab-panel>.card:has(>dl)>.section-heading{margin:0;align-items:start}
.tab-panel>.card:has(>dl)>dl{margin:0}
.reservation-summary{padding:24px;border-radius:10px}
.resource-meter>div:first-child{align-items:baseline}
.resource-meter strong{font-size:24px;font-weight:650;letter-spacing:-.02em}
.resource-track{height:8px;border-radius:4px;background:var(--oc-gray-2)}
.resource-track>span{background:var(--oc-indigo-6);border-radius:4px}
.resource-meters{gap:24px}
.resource-meters>.resource-meter{position:relative}.resource-meters>.resource-meter+.resource-meter:before{content:"";position:absolute;left:-12px;top:0;bottom:0;border-left:1px solid var(--line-soft)}
.infra-surface-body{background:var(--bg)}
.infra-surface-top{background:var(--surface)}
.infra-detail-drawer{box-shadow:-8px 0 32px rgba(33,37,41,.1)}
.resource-settings>.card{box-shadow:none}
.flow-list{position:relative;margin-top:24px}
.flow-node{border:0;border-bottom:1px solid var(--line-soft);border-radius:0;padding:0 0 24px 52px;margin-bottom:24px;background:transparent}
.flow-node-head>.type-symbol{position:absolute;left:0;top:0}
.flow-node:not(:last-child):after{top:40px;left:17px;height:calc(100% - 16px);border-color:var(--line)}
.flow-node:last-child{border-bottom:0;padding-bottom:0}
.flow-node-head h3{font-size:15px;line-height:24px;font-weight:650}
.flow-node.running>.flow-node-head h3{color:var(--accent)}
.flow-node.failed>.flow-node-head h3{color:var(--error)}
.reference-list>span{background:var(--oc-gray-1);color:var(--oc-gray-7)}
.overlay section[role=dialog]{box-shadow:var(--shadow-float)}
.overlay header{background:var(--surface)}
.overlay footer{background:var(--oc-gray-0)}
.chat-shell{box-shadow:0 2px 8px rgba(33,37,41,.04);border-color:var(--line)}
@media(max-width:1279px){.setting-row{grid-template-columns:minmax(150px,1fr) minmax(0,2fr)}.setting-row>.actions{grid-column:2;justify-content:flex-start;max-width:none}.agent-heading{flex-wrap:wrap}}
@media(max-width:1000px){.resource-meters>.resource-meter+.resource-meter:before{display:none}.workspace-overview>div{padding:20px 16px;gap:12px}.workspace-overview strong{font-size:30px}.entity-subtitle{gap:8px}.agent-heading>.actions{margin-left:72px}}
@media(max-width:800px){.setting-row,.tab-panel>.card:has(>dl){grid-template-columns:1fr;gap:16px}.setting-row>.actions{grid-column:auto}.workspace-overview{grid-template-columns:1fr}.workspace-overview>div+div{border-left:0;border-top:1px solid var(--line-soft)}.workspace-overview>div+div:before{display:none}.workspace-overview>div>span{display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:center}.workspace-overview strong{grid-column:2;grid-row:1/4;margin:0}.workspace-overview .overview-detail{border:0;padding:0;margin:0}.workspace-overview p{grid-column:1}.entity-title{align-items:start}.entity-emblem{width:44px;height:44px}.entity-emblem .icon{width:24px;height:24px}.agent-heading>.actions{margin-left:0}.setting-heading p{max-width:none}}
/* A list section owns its title, actions, filters and results as one surface. */
.list-section>.page-heading{margin-bottom:var(--content-gap)}
.list-section>.page-heading h2{font-size:17px;line-height:26px;margin-bottom:6px;font-weight:680}
.list-section>.page-heading p{font-size:13px;line-height:21px}
.list-section>.inline-fields{margin-top:24px;margin-bottom:16px}
.list-section>.inline-fields+label{display:block;margin-bottom:16px;font-size:13px}
.list-section>.table-wrap{margin-top:16px}
.list-section>.table-wrap:only-child{margin-top:0}
/* Task-focused recipe detail and contextual dialogs. */
.recipe-definition{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;align-items:start}
.recipe-definition>div{display:grid;gap:24px;min-width:0}
.recipe-definition .card{margin:0;min-width:0}
.input-schema{display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,1fr);margin:16px 0 0}
.input-schema dt,.input-schema dd{margin:0;padding:12px 0;border-top:1px solid var(--gray-2,#e9ecef);overflow-wrap:anywhere}
.input-schema dd small{display:block;margin-top:4px}
.required-label{font-size:11px;color:var(--gray-6,#868e96);font-weight:400;margin-left:6px}
.dialog-context{padding:0 0 20px;margin-bottom:20px;border-bottom:1px solid var(--gray-2,#e9ecef)}
.dialog-context>small,.dialog-context>strong{display:block}
.dialog-context>strong{font-size:16px;line-height:24px;margin-top:4px}
.dialog-context p{margin:8px 0 0}
.secondary-task{margin-top:24px;padding-top:16px;border-top:1px solid var(--gray-2,#e9ecef)}
.secondary-task summary{cursor:pointer;font-weight:600}
.secondary-task .actions{flex-wrap:wrap}
@media(max-width:1100px){.recipe-definition{grid-template-columns:minmax(0,1fr)}}
/* Message surfaces encode purpose, not just color. */
.notice{display:flex;align-items:flex-start;gap:10px}
.notice>.icon{flex:0 0 18px;width:18px;height:18px;margin-top:2px}
.notice>span{min-width:0;overflow-wrap:anywhere}
.notice.info{padding:0;border:0;border-radius:0;background:transparent;color:var(--oc-gray-7);font-size:13px;line-height:21px}
.notice.success{background:var(--oc-teal-0,#e6fcf5);border-color:var(--oc-teal-2,#96f2d7);color:var(--oc-teal-9,#087f5b)}
.notice.empty{display:block;padding:32px 24px;text-align:center;background:var(--oc-gray-0);border:1px dashed var(--oc-gray-3);color:var(--oc-gray-7)}
.workspace-attention,.action-notice{background:var(--oc-orange-0);border:1px solid var(--oc-orange-2);color:var(--oc-orange-9);border-radius:10px;padding:24px;margin-bottom:24px}
.workspace-attention{display:block}
.workspace-attention h2,.action-notice h2{display:flex;align-items:center;gap:10px;font-size:14px;line-height:22px;color:inherit;margin:0}
.workspace-attention h2 .icon,.action-notice h2 .icon{width:18px;height:18px;flex-shrink:0}
.workspace-attention h2 span{background:transparent;padding:0;margin:0;font-size:14px}
.workspace-attention p,.action-notice p{color:inherit;margin:8px 0 0}
.workspace-attention ul{margin-top:16px}
.workspace-attention li{padding:12px 0;align-items:center}
.workspace-attention li:last-child{padding-bottom:0}
.workspace-attention li+li{border-color:var(--oc-orange-2)}
.workspace-attention li>div{display:grid;gap:4px;min-width:0}
.workspace-attention li strong{font-size:13px;color:var(--text)}
.workspace-attention li>.ui-button{flex-shrink:0;color:var(--text)}
.action-notice .section-heading{margin-bottom:0}
.action-notice>.actions{margin-top:16px}
.action-notice>.notice{padding:0;border:0;background:transparent;margin-bottom:16px}
.workspace-attention,.action-notice{color:var(--oc-gray-9)}
.workspace-attention p,.workspace-attention li span,.action-notice p{color:var(--oc-gray-8)}
.workspace-attention h2>.icon,.action-notice h2>.icon{color:var(--oc-orange-9)}
.action-notice .ui-button{color:var(--text)}
.workspace-attention a.ui-button{display:inline-flex;align-items:center;justify-content:center;min-height:var(--button-height);padding:8px var(--button-padding-x);font-size:var(--button-font-size);line-height:20px;border:1px solid var(--line);border-radius:var(--button-radius);background:var(--surface);box-shadow:var(--shadow-control);text-decoration:none}
.workspace-attention a.ui-button:hover{border-color:var(--oc-gray-5)}
.notice.warning,.notice.error,.notice.success{color:var(--oc-gray-9)}
.notice.warning>.icon{color:var(--oc-orange-9)}
.notice.error>.icon{color:var(--oc-red-9)}
.notice.success>.icon{color:var(--oc-teal-9,#087f5b)}
.capacity-table{overflow-x:auto;border:1px solid var(--line-soft);border-radius:8px;margin:16px 0 20px}
.capacity-table td:last-child{text-align:left}
.recipe-start-options{display:grid;gap:16px;margin-top:20px}
.recipe-start-options button{text-align:left;white-space:normal;padding:24px}
.recipe-start-options strong,.recipe-start-options span{display:block}
.recipe-start-options strong{font-size:16px;margin-bottom:8px}
.recipe-start-options span{font-size:13px;font-weight:400;color:var(--muted);line-height:22px}
.recipe-guide>section{padding:24px 0;border-top:1px solid var(--line-soft)}
.recipe-guide>section>h3{margin:0 0 16px;font-size:16px}
.recipe-guide p,.recipe-guide li{font-size:13px;line-height:22px;overflow-wrap:anywhere}
.recipe-guide li+li{margin-top:8px}
.recipe-guide details{padding:16px 0;border-top:1px solid var(--line-soft)}
.recipe-guide summary{font-weight:600;cursor:pointer}
.recipe-guide .table-wrap{margin:16px 0}
/* Recipe editor: persistent context and task-specific work areas. */
.builder-context{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 24px;background:var(--oc-gray-0);border-bottom:1px solid var(--line-soft)}
.builder-context strong{font-size:15px;overflow-wrap:anywhere;min-width:0}
.builder-context>span{font-size:12px;color:var(--muted);flex-shrink:0}
.builder-tabs{display:flex;gap:24px;padding:0 24px;border-bottom:1px solid var(--line-soft);flex-shrink:0}
.builder-tabs button{padding:14px 0;border:0;border-radius:0;box-shadow:none;background:transparent;color:var(--muted);border-bottom:2px solid transparent}
.builder-tabs button[aria-current=page]{border-bottom-color:var(--accent);color:var(--accent);font-weight:650}
.builder-tabs span{font-size:12px;margin-left:4px}
.builder-step-list{padding:20px 16px;overflow:auto;min-height:0;background:var(--oc-gray-0);border-right:1px solid var(--line-soft)}
.builder-step-list>.section-heading{gap:12px;margin:0 0 16px}
.builder-step-list h3{font-size:14px;margin:0}
.builder-step-list h3 small{margin-left:4px;color:var(--muted);font-weight:400}
.builder-steps{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.builder-step{width:100%;display:flex;align-items:flex-start;gap:12px;padding:14px 12px;text-align:left;white-space:normal;box-shadow:none;background:transparent;border:1px solid transparent}
.builder-step:hover{background:var(--surface)}
.builder-step.selected{background:var(--surface);border-color:var(--oc-indigo-3)}
.step-index{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border-radius:6px;background:var(--oc-gray-2);color:var(--oc-gray-7);font-size:12px}
.builder-step.selected .step-index{background:var(--accent);color:white}
.step-caption{min-width:0;display:grid;gap:4px}
.step-caption strong{font-size:13px;line-height:21px;overflow-wrap:anywhere}
.step-caption small{font-weight:400;font-size:12px;color:var(--muted)}
.inspector-section h4{font-size:13px;margin:0 0 8px}
.inspector-section .reference-chips{margin-top:12px}.inspector-section>.actions{margin-top:12px}
.inspector-advanced{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:16px 0;margin-top:24px}
.inspector-advanced summary{font-size:13px;font-weight:600;cursor:pointer}
.inspector-advanced[open] summary{margin-bottom:20px}
.inspector-test{display:grid;gap:12px;padding-top:24px}
.inspector-test strong{display:block;font-size:13px}.inspector-test small{display:block;font-size:12px;margin-top:4px;color:var(--muted)}
.builder-input-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 0;border-bottom:1px solid var(--line-soft)}
.builder-input-row small{display:block;color:var(--muted);margin-top:4px}
.builder-empty{padding:32px 12px;color:var(--muted);font-size:13px;line-height:22px}
.builder-validation{flex-shrink:0;max-height:100px;overflow:auto;padding:0 24px}
.builder-validation .notice{margin:0 0 12px}
@media(max-width:1100px){.builder-context{align-items:flex-start}.builder-context>span{max-width:40%;white-space:normal}}
.workflow-settings>section{padding:0 0 24px;margin-bottom:24px;border-bottom:1px solid var(--line-soft)}
.workflow-settings h3{font-size:16px;margin:0 0 20px}
.workflow-settings details{margin-top:24px;padding-top:16px;border-top:1px solid var(--line-soft)}
.workflow-settings summary,.workflow-detail summary{font-weight:600;cursor:pointer}
.mail-rule{padding:20px;border:1px solid var(--line-soft);border-radius:10px;margin:16px 0;background:var(--oc-gray-0)}
.mail-rule .field{margin-bottom:16px}
.mail-rule .form-grid{align-items:start}
.mail-rule select{max-width:100%;white-space:normal}
/* Business settings retain a visible, selectable recipe flow. */
.recipe-structure-tools{margin-top:24px;padding:20px 0;border-top:1px solid var(--line-soft)}.recipe-structure-tools summary{cursor:pointer;font-weight:600}.recipe-structure-tools button+button{margin-left:8px}
.recipe-delete-section{margin-top:28px;padding-top:24px;border-top:1px solid var(--line-soft)}.recipe-delete-section h3{font-size:15px}.recipe-delete-section p{color:var(--muted)}
.collection-toolbar{display:flex;align-items:center;gap:12px;margin:0 0 20px}.collection-toolbar label{display:flex;align-items:center;gap:12px;font-size:13px}.collection-toolbar input{width:280px;height:40px;margin:0}.collection-toolbar button{height:40px}.collection-toolbar [data-card-count]{margin-left:auto;font-size:13px}
.entity-card-grid{display:grid;grid-template-columns:repeat(auto-fill,min(100%,300px));gap:20px;align-items:stretch;justify-content:start}
.entity-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:24px;overflow:hidden}
.entity-card[hidden]{display:none}.entity-card-top{display:flex;align-items:center;justify-content:space-between;min-height:24px;gap:12px;margin-bottom:16px;font-size:12px}.entity-kind{font-weight:600;color:var(--muted)}
.entity-card h3{margin:0 0 10px;font-size:17px;line-height:26px;overflow-wrap:anywhere}.entity-card h3 a{color:var(--text);text-decoration:none}.entity-card h3 a:hover{color:var(--accent);text-decoration:underline}.entity-card-description{color:var(--muted);font-size:13px;line-height:22px;min-height:44px;margin:0 0 20px;overflow-wrap:anywhere}
.entity-card-meta{margin:auto 0 20px;display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.entity-card-meta>div{display:flex;justify-content:space-between;gap:16px}.entity-card-meta dt{color:var(--muted);font-size:12px;white-space:nowrap;flex-shrink:0}.entity-card-meta dd{margin:0;text-align:right;font-size:13px;font-weight:500;overflow-wrap:anywhere}
.entity-card footer{display:flex;align-items:center;gap:8px;padding-top:20px;border-top:1px solid var(--line-soft);flex-wrap:wrap}.entity-card footer .primary{margin-left:auto}.collection-empty{padding:48px 24px;text-align:center;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}
.dashboard-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:24px}
.dashboard-summary-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px;min-width:0}
.dashboard-summary-card header{display:flex;align-items:center;justify-content:space-between;gap:16px}.dashboard-summary-card h2{margin:0;font-size:15px;line-height:24px;font-weight:600}.dashboard-summary-card strong{font-size:30px;line-height:36px;letter-spacing:-.6px;font-variant-numeric:tabular-nums}.dashboard-summary-card strong small{font-size:12px;font-weight:400;color:var(--muted);margin-left:6px}
.dashboard-summary-card>p{margin:12px 0 20px;font-size:13px;line-height:22px;color:var(--muted);min-height:44px}
.dashboard-summary-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line-soft);padding-top:16px;color:var(--muted);font-size:12px;line-height:20px}.dashboard-summary-card time{font-variant-numeric:tabular-nums;white-space:nowrap}
.dashboard-summary-card{display:flex;flex-direction:column}.dashboard-summary-card footer{margin-top:auto}.dashboard-resource-meters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:12px 0 20px}.dashboard-resource-meters .resource-meter{min-width:0}.dashboard-resource-meters .resource-meter>div:first-child{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-bottom:8px;font-size:13px;line-height:20px;color:var(--muted)}.dashboard-resource-meters .resource-track{height:6px}.dashboard-resource-meters .resource-meter strong{font-size:20px;line-height:28px;font-weight:650;letter-spacing:-.02em;color:var(--ink);white-space:nowrap}.dashboard-resource-meters .resource-meter strong small{font-size:12px;font-weight:400;color:var(--muted);letter-spacing:0}.dashboard-resource-card footer a{color:var(--accent);font-weight:500}
.step-contract{padding:20px;margin-bottom:24px;border:1px solid var(--line-soft);border-radius:10px;background:var(--oc-gray-0)}.step-contract h4{margin:0 0 12px;font-size:14px}.step-contract p,.step-contract li{font-size:13px;line-height:22px}.step-contract details{margin-top:12px}.step-contract summary{cursor:pointer;font-weight:600}.step-contract ol{padding-left:20px}
.field-error{display:block;margin-top:6px;color:var(--red-7,#c92a2a);font-size:12px}input[aria-invalid="true"]{border-color:var(--red-7,#c92a2a)}
.recipe-design{background:white;border:1px solid var(--line,#dee2e6);border-radius:12px;overflow:hidden;margin-top:24px}.design-heading,.design-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px}.design-heading h2{margin:0}.design-heading p{margin:8px 0 0;color:var(--muted)}.design-workbench{display:grid;grid-template-columns:minmax(280px,32%) minmax(0,1fr);border-block:1px solid var(--line,#dee2e6);height:740px;max-height:calc(100vh - 170px);min-height:480px}.design-flow{padding:20px;background:#f8f9fa;overflow:auto;border-right:1px solid #e9ecef}.design-flow ol{list-style:none;margin:20px 0 0;padding:0}.design-flow li{margin:0}.design-node,.design-common{width:100%;text-align:left;white-space:normal!important;height:auto!important;min-height:84px;display:flex;align-items:flex-start;gap:12px;padding:16px!important;border:1px solid #dee2e6;background:white;box-shadow:none!important}.design-node>span:nth-child(2){min-width:0;flex:1}.design-node strong,.design-node small,.design-node>span>span,.design-common small{display:block}.design-node strong{margin:5px 0;font-size:14px}.design-node small,.design-common small{font-size:12px;color:#495057}.design-node>span>span{font-size:12px;color:#495057;line-height:1.5}.design-node.active,.design-common.active{border-color:#4263eb;background:#edf2ff}.design-number{display:flex;align-items:center;justify-content:center;flex:0 0 26px;height:26px;background:#e9ecef;border-radius:6px;font-variant-numeric:tabular-nums}.design-node.active .design-number{background:#4263eb;color:white}.design-node svg{width:18px;height:18px;flex-shrink:0;color:#495057}.design-common{display:block;min-height:64px}.design-common small{margin-top:6px}.design-connector{display:block;text-align:center;height:24px;color:#868e96;line-height:24px}.design-inspector{padding:24px;overflow:auto;min-width:0}.design-panel-title{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}.design-panel-title h3{margin:0;font-size:18px}.design-panel-title p{margin:8px 0 0;color:#495057}.design-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid #dee2e6;margin-bottom:24px}.design-tabs button{border:0;border-radius:0;box-shadow:none;background:none;padding:10px 12px;min-height:40px}.design-tabs button[aria-current=page]{color:#3b5bdb;border-bottom:2px solid #4263eb}.design-inspector .field{margin-bottom:20px}.design-inspector textarea{line-height:1.65}.design-inspector .design-json{font-family:Consolas,monospace;font-size:13px;min-height:240px;background:#f8f9fa;tab-size:2}.design-contract{padding:20px 0;border-top:1px solid #e9ecef}.design-contract summary{cursor:pointer;font-weight:600;margin-bottom:16px}.design-footer{padding:16px 24px;background:#f8f9fa}.design-footer [role=status]{font-size:13px;color:#495057}.design-errors:empty{display:none}.design-errors{padding:16px 24px;white-space:pre-line;color:#c92a2a;background:#fff5f5}.design-inspector [data-local-persona]{padding:20px;background:#f8f9fa;margin-bottom:20px}
:is(.recipe-collection){container-type:inline-size}:is(.recipe-collection) .entity-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.entity-card-top-actions{display:flex;align-items:center;gap:8px}.entity-version{display:inline-block;margin-left:8px;padding:2px 7px;background:#f1f3f5;color:#495057;border-radius:4px;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}:is(.recipe-collection) .entity-card-top{min-height:40px}.recipe-collection .entity-card-top .icon-button{box-shadow:none;background:transparent;color:#495057}.recipe-collection .entity-card-top .icon-button:hover{background:#f1f3f5}
@container(min-width:940px){:is(.recipe-collection) .entity-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container(min-width:1280px){:is(.recipe-collection) .entity-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* Recipe authoring uses document scrolling, including long JSON and instructions. */
.recipe-design{overflow:visible}.design-workbench{height:auto;max-height:none;min-height:0;align-items:start;grid-template-columns:minmax(260px,30%) minmax(0,1fr)}.design-flow{overflow:visible;align-self:stretch}.design-inspector{overflow:visible;min-width:0}.recipe-design textarea{overflow:hidden;resize:none;white-space:pre-wrap;overflow-wrap:anywhere;max-height:none}.design-heading,.design-panel-title,.design-footer{flex-wrap:wrap}.design-panel-title>div:first-child{min-width:0}.design-panel-title h3{overflow-wrap:anywhere}
/* Shared single-select affordance: fixed arrow inset, independent of native browser chrome. */
select:not([multiple]):not([size]),select[size="1"]{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23495057' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px 16px}
@media(forced-colors:active){select:not([multiple]):not([size]),select[size="1"]{appearance:auto;background-image:none}}
.values-common-information h3{margin:0 0 20px;font-size:16px}
.values-common-information .field{margin:0}
/* Recent executions: compact status panel */
#run-stack{width:380px;padding:0;overflow:hidden;border-radius:14px;box-shadow:0 8px 28px rgb(33 37 41 / 12%),0 2px 6px rgb(33 37 41 / 4%)}
.run-stack-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;background:var(--oc-gray-0);border-bottom:1px solid var(--line-soft)}
.run-stack-heading{display:flex;align-items:center;gap:8px}.run-stack-heading>.icon{width:18px;height:18px;color:var(--muted)}
.run-stack-heading h3{margin:0;font-size:14px;font-weight:600}.run-stack-count{font-size:12px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
.run-stack-header .icon-button{width:32px;min-height:32px;padding:6px;background:transparent;border-color:transparent;box-shadow:none}
.run-stack-list{max-height:calc(55vh - 61px);overflow:auto}.run-stack-list .stack-item{padding:18px;border-top:0}.run-stack-list .stack-item+.stack-item{border-top:1px solid var(--line-soft)}
.run-stack-identity{display:flex;align-items:flex-start;gap:12px}.run-stack-symbol{display:flex;align-items:center;justify-content:center;flex:0 0 36px;height:36px;border-radius:10px;background:var(--oc-gray-1);color:var(--oc-gray-7)}
.run-stack-symbol.active{background:var(--oc-indigo-0);color:var(--oc-indigo-7)}.run-stack-symbol.success{background:var(--oc-teal-0);color:var(--oc-teal-8)}.run-stack-symbol .icon{width:18px;height:18px}
.run-stack-copy{min-width:0;flex:1}.run-stack-copy strong{display:block;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.stack-item .run-stack-copy p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
.run-stack-identity>.badge{flex-shrink:0;margin-top:2px}.run-stack-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px}.run-stack-footer>span{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.run-stack-footer .actions{display:flex;gap:6px;margin:0;flex-shrink:0}.run-stack-footer button{box-shadow:none}
#run-stack.is-collapsed{width:220px}.is-collapsed .run-stack-header{border-bottom:0}
#run-stack{left:12px;right:auto;bottom:16px;width:248px;max-height:calc(100vh - 96px)}#run-stack .run-stack-list{max-height:calc(100vh - 157px)}#run-stack .run-stack-header,#run-stack .run-stack-list .stack-item{padding-left:14px;padding-right:14px}
@media(max-width:1279px){#run-stack{left:8px;bottom:8px;width:320px}}
/* Execution results share the standard section spacing. */
.overlay.drawer .dialog-body:has(.run-result-content){padding:var(--section-padding-y) var(--section-padding-x)}
.run-result-content{display:flex;flex-direction:column;gap:var(--section-gap);min-width:0}
.run-result-content> :is(p,.page-heading,.notice,.card,.table-wrap,.actions){margin:0}
.run-result-content>.run-result-actions{display:flex;justify-content:flex-end;gap:var(--control-gap);padding-top:0}
.overlay .run-result-content h1{font-size:20px;line-height:1.4}
/* Market cards reuse the agent recipe card layout. */
.entity-card h3 .entity-card-title{display:inline;padding:0;min-height:0;border:0;border-radius:0;background:none;box-shadow:none;font:inherit;color:inherit;text-align:left;white-space:normal;overflow-wrap:anywhere}
.entity-card h3 .entity-card-title:hover{color:var(--accent);text-decoration:underline}
.market-count{margin-left:auto;font-size:13px}.market-collection .collection-empty{max-width:none}
.market-collection .collection-toolbar{flex-wrap:wrap}.market-collection .collection-toolbar label{min-width:0}.market-collection .collection-toolbar input[type=search]{max-width:100%;min-width:0}
/* Detail content fills the drawer even when a tab has little content. */
.infra-detail-drawer .infra-surface-body{flex:1;background:var(--bg)}
.infra-detail-drawer .infra-surface-body p{max-width:none}
.infra-info{margin:0;display:grid;gap:14px}.infra-info>div{display:grid;grid-template-columns:140px minmax(0,1fr);gap:16px}.infra-info dt{color:var(--muted);font-size:13px}.infra-info dd{margin:0;overflow-wrap:anywhere}
.resource-settings .section-heading .actions{margin-left:auto}
.resource-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.resource-charts>.card{margin:0;min-width:0}.resource-charts>.card:last-child:nth-child(odd){grid-column:1/-1}
.resource-chart-summary{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px}.resource-chart-summary strong{font-size:24px}.resource-chart-summary small{font-size:12px}.resource-charts svg{display:block;width:100%;height:auto}.resource-chart-empty{min-height:180px;display:grid;place-items:center;color:var(--muted);font-size:13px;border:1px dashed var(--line);border-radius:8px}
@media(max-width:1400px){.infra-detail-drawer .resource-charts{grid-template-columns:minmax(0,1fr)}}
.team-settings{border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden;margin-bottom:var(--section-gap)}
.team-setting-item{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px}
.team-setting-item+.team-setting-item{border-top:1px solid var(--line-soft)}
.team-setting-item>div:first-child{min-width:0}.team-setting-item h3{margin:0 0 8px;font-size:15px;line-height:22px}.team-setting-item p{margin:0;max-width:none;overflow-wrap:anywhere;font-size:14px}.team-setting-item>.actions{flex-shrink:0}
.team-management>.grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}.team-management .project-card{display:flex;flex-direction:column;min-width:0}.team-management .project-card .actions{margin-top:auto}
@media(max-width:800px){.team-setting-item{align-items:flex-start;flex-direction:column;gap:16px}}
.design-contract>h3{margin:0 0 16px;font-size:14px;line-height:22px;font-weight:600}
.admin-detail-info{margin:16px 0 24px}.admin-detail-info dd{white-space:pre-wrap;overflow-wrap:anywhere}
/* Routed server creation follows the shared modal appearance. */
.infra-create-scrim{background:rgba(33,37,41,.28)}
.infra-create-modal{border:1px solid var(--line-soft);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-float)}
.infra-create-modal .infra-surface-top{padding:var(--content-gap) var(--section-padding-x);border-color:var(--line-soft)}
.infra-create-modal .infra-surface-top h2{font-size:18px;margin:0}
.infra-create-modal .infra-surface-body{display:flex;flex-direction:column;padding:0;overflow:hidden;background:var(--surface)}
.infra-create-modal #service-create{display:flex;flex-direction:column;min-height:0}
.creation-body{padding:var(--section-padding-y) var(--section-padding-x);overflow:auto;min-height:0;overscroll-behavior:contain}
.creation-description{font-size:13px;margin:0 0 20px;max-width:none}
#service-create .creation-body>.card{padding:0;border:0;border-radius:0;box-shadow:none;background:transparent}
#service-create .creation-body>.card+.card{padding-top:24px;border-top:1px solid var(--line-soft)}
#service-create .creation-body>.card:last-of-type{margin-bottom:0}
#service-create .creation-body>.card>.section-heading h2{font-size:15px;line-height:22px}
/* Sequential progress for new recipes. */
.builder-progress{display:flex;list-style:none;gap:16px;margin:0;padding:24px;border-bottom:1px solid var(--line-soft);flex-shrink:0}
.builder-progress li{display:flex;align-items:center;gap:8px;flex:1;min-width:0;color:var(--muted);font-size:13px}
.builder-progress li:not(:last-child)::after{content:'';flex:1;min-width:12px;height:1px;background:var(--line);margin-left:8px}
.builder-progress-number{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;border:1px solid var(--line);border-radius:50%;font-weight:600}
.builder-progress .current{color:var(--accent);font-weight:600}
.builder-progress .current .builder-progress-number{background:var(--accent);border-color:var(--accent);color:white}
.builder-progress .complete .builder-progress-number{border-color:var(--accent);color:var(--accent)}
@media(max-width:600px){.builder-progress{gap:12px;padding:16px}.builder-progress li{flex-direction:column;text-align:center;font-size:12px}.builder-progress li:not(:last-child)::after{display:none}}
#recipe-input{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:24px;margin-bottom:24px}
#recipe-input [hidden]{display:none!important}
.saved-values-picker{display:flex;align-items:flex-end;gap:12px;margin-bottom:24px}
.saved-values-picker>.field{flex:1;margin:0;max-width:480px}
.saved-values-menu{position:relative}.saved-values-menu>summary{padding:8px 14px;border:1px solid var(--line);border-radius:8px;cursor:pointer;list-style:none}
.saved-values-menu>div{position:absolute;top:100%;right:0;min-width:160px;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:8px;z-index:10;box-shadow:0 8px 24px #0001}
.saved-values-menu button{display:block;width:100%;text-align:left;border:0;margin:4px 0}
.recipe-value-actions{justify-content:flex-end;padding:20px 0}
/* Account and recipe review adjustments. */
.account-profile{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;margin:0 0 24px}.account-profile>div{display:grid;grid-template-columns:140px minmax(0,1fr);gap:16px;min-width:0}.account-profile dt{color:var(--muted)}.account-profile dd{margin:0;overflow-wrap:anywhere}
.recipe-schedule-section{border-top:1px solid var(--line);padding-top:24px;margin-top:24px}.recipe-value-actions{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.collection-record{cursor:pointer}.collection-record:hover{background-color:var(--surface-hover,#f2f5ff)}.collection-record:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.market-collection .collection-toolbar>.field{margin:0;min-width:160px}.market-collection .collection-toolbar select{min-height:40px}
.entity-card footer{flex-wrap:wrap}.badge.공유됨{background:#e4f8f0;color:#067d59}
@media(max-width:600px){.account-profile>div{grid-template-columns:1fr;gap:6px}}
.asset-definition .card{padding:20px;margin:16px 0}.asset-definition .table-wrap td{white-space:pre-wrap;overflow-wrap:anywhere}.asset-definition .code{max-height:280px;overflow:auto}.asset-definition h4{margin:20px 0 8px}
/* Market and personal asset layout. */
.market-collection .collection-toolbar>.field{display:flex;align-items:center;gap:12px;min-width:0}
.market-collection .collection-toolbar>.field>label{margin:0;font-size:13px;font-weight:400;white-space:nowrap}
.market-collection .collection-toolbar>.field>select{width:160px;margin:0}
.card-collection>.collection-empty{width:100%;max-width:none;box-sizing:border-box}
.personal-collection .entity-card footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:40px;gap:8px;min-height:157px;align-content:start}
.personal-collection .entity-card footer .ui-button{margin:0;width:100%;min-width:0}
.personal-collection .entity-card footer>.ui-button:last-child:nth-child(odd){grid-column:1/-1}
.overlay.drawer.asset-detail-drawer>section[role=dialog]{width:50vw;max-width:100vw}
@media(max-width:800px){.overlay.drawer.asset-detail-drawer>section[role=dialog]{width:100vw}.personal-collection .entity-card-grid{grid-template-columns:minmax(0,1fr)}}
/* Table headings follow the same alignment as their column values. */
table :is(th,td)[data-column-align=left]{text-align:left}
table :is(th,td)[data-column-align=center]{text-align:center}
table :is(th,td)[data-column-align=right]{text-align:right}
.workspace-columns footer{justify-content:flex-start}.workspace-columns footer [data-team-management]{display:inline-flex}.workspace-columns footer [data-team-management] button{margin:0}
/* User account popover and inline profile actions. */
.topbar button.account-link{border:0;background:transparent;box-shadow:none;padding:4px 8px}
#account-menu{position:fixed;inset:auto;margin:0;padding:8px;width:260px;max-width:calc(100vw - 24px);border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-float);color:var(--text)}
#account-menu nav{display:grid;gap:4px}#account-menu nav a{display:block;padding:11px 12px;border-radius:6px;color:var(--text);font-size:13px;text-decoration:none;font-weight:400}
#account-menu nav a:hover,#account-menu nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent)}
#account-menu footer{margin-top:8px;padding-top:8px;border-top:1px solid var(--line-soft)}#account-menu footer button{width:100%;text-align:left;border:0;box-shadow:none;padding:11px 12px;background:transparent}
.account-profile{margin-bottom:0}.account-profile>div{align-items:center}.account-profile dd{display:flex;align-items:center;justify-content:space-between;gap:24px;min-width:0}.account-profile dd>span{min-width:0;overflow-wrap:anywhere}.account-profile dd>button{flex:none}
@media(max-width:600px){.account-profile dd{align-items:flex-start;gap:12px;flex-wrap:wrap}}
#account-menu .account-console-switch{display:flex;gap:4px;padding-top:8px;margin-top:8px;border-top:1px solid var(--line-soft)}
#account-menu .account-console-switch a{flex:1;text-align:center;border:1px solid var(--line);padding:8px 12px}
#account-menu .account-role-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding-top:8px;margin-top:8px;border-top:1px solid var(--line-soft)}
#account-menu .account-role-switch small{grid-column:1/-1;padding:0 4px 2px;color:var(--muted);font-size:12px}
#account-menu .account-role-switch button{padding:8px;border:1px solid var(--line);border-radius:6px;background:transparent;box-shadow:none;font-size:13px;color:var(--text)}
#account-menu .account-role-switch button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}
/* Shared spacing for action groups and content within sections. */
.section-heading>.actions{margin-left:auto;justify-content:flex-end}
.table-actions{display:inline-flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--control-gap);max-width:100%;vertical-align:middle}
label.field:not(.check)>:is(input:not([type=checkbox]),select,textarea){display:block;margin-top:var(--control-gap)}
.mail-rule{padding:var(--section-padding-y) var(--section-padding-x)}
.mail-rule .form-grid{gap:var(--content-gap) var(--section-padding-x)}
.mail-rule .field{margin-bottom:0}
.rule-actions{display:grid;gap:var(--content-gap);margin-top:var(--content-gap)}
.rule-actions>p{margin:0}
.recipe-schedule-section{display:flex;flex-direction:column;align-items:stretch;gap:var(--content-gap);padding-top:var(--section-gap);margin-top:var(--section-gap)}
.recipe-schedule-section>:is(h3,p){margin:0}
.recipe-value-actions{margin-top:var(--section-gap);padding:var(--section-gap) 0 0}
:is(.card,.dialog-body,.setting-section)>button+:is(p,.notice,.field,.table-wrap){margin-top:var(--content-gap)}
/* Personal recipes use the shared two-action card footer. */
.personal-recipes .entity-card{overflow:visible}
.personal-recipes .entity-card footer{display:flex;min-height:0;gap:var(--control-gap);align-content:normal}
.personal-recipes .entity-card footer .ui-button{width:auto;flex:none}
.personal-recipes .entity-card footer .primary{margin-left:auto}
.card-management{position:relative;flex:none}
.card-management>summary{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius);list-style:none;cursor:pointer;color:var(--muted)}
.card-management>summary::-webkit-details-marker{display:none}
.card-management>summary:hover,.card-management[open]>summary{background:var(--oc-gray-1);color:var(--accent)}
.card-management-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:10;display:grid;gap:4px;min-width:160px;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-float)}
.card-management-menu>button{width:100%;text-align:left;border:0;box-shadow:none;background:transparent}
.card-management-menu>button:hover{background:var(--oc-gray-0)}
.pending-approval{max-width:480px;margin:12vh auto 0;padding:40px 32px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:12px}.pending-approval-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--accent-soft);color:var(--accent);margin-bottom:20px}.pending-approval-icon .icon{width:24px;height:24px}.pending-approval h1{margin:0 0 8px;font-size:22px;line-height:32px;font-weight:650}.pending-approval p{margin:0;color:var(--muted);font-size:14px;line-height:22px;word-break:keep-all}.pending-approval dl{display:flex;justify-content:center;gap:8px;margin:24px 0 0;padding-top:20px;border-top:1px solid var(--line-soft);font-size:13px}.pending-approval dt{color:var(--muted)}.pending-approval dd{margin:0;font-weight:550}
.auth-page{min-height:calc(100vh - 64px);display:flex;align-items:flex-start;justify-content:center;padding:64px 16px 80px}
.auth-panel{width:100%;max-width:480px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:40px;box-shadow:0 12px 40px rgba(33,37,41,.06)}
.auth-head{margin-bottom:28px}.auth-head h1{margin:0 0 8px;font-size:24px;line-height:32px;font-weight:680;letter-spacing:-.02em}.auth-head p{margin:0;color:var(--muted);font-size:14px;line-height:22px;word-break:keep-all}
.auth-step{border:0;margin:0;padding:0;min-width:0}.auth-step+.auth-step{margin-top:28px;padding-top:28px;border-top:1px solid var(--line-soft)}
.auth-step legend{float:left;width:100%;display:flex;align-items:center;gap:8px;padding:0;margin-bottom:16px;font-size:15px;font-weight:650;line-height:24px}
.auth-step legend+*{clear:both}.auth-step-no{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.auth-step.verified .auth-step-no{background:var(--accent);color:#fff}
.auth-field+.auth-field{margin-top:16px}
.auth-field label{display:block;margin-bottom:8px;font-size:13px;font-weight:600;line-height:20px}
.auth-required{color:var(--error)}
.auth-control{display:flex;gap:8px}
.auth-page .auth-control input{flex:1;display:block;min-width:0;max-width:none;width:100%;height:40px;min-height:40px;margin:0;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:14px}
.auth-page .auth-control input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.auth-page .auth-control input[readonly]{background:var(--bg);color:var(--muted)}
.auth-page .auth-control input::placeholder{color:var(--oc-gray-5)}
.auth-control .ui-button{flex:none;min-width:120px;height:40px}
.auth-hint{display:block;margin-top:6px;font-size:12px;line-height:18px;color:var(--muted);word-break:keep-all}
.auth-status{margin:12px 0 0;font-size:13px;line-height:20px;word-break:keep-all}.auth-status:empty{display:none}.auth-status.info{color:var(--muted)}.auth-status.success{color:var(--oc-green-8);font-weight:550}.auth-status.error{color:var(--error)}
.auth-page .auth-submit{width:100%;height:40px;margin-top:28px}
.auth-page .form-error{margin-top:12px;font-size:13px;line-height:20px;color:var(--error)}.auth-page .form-error:empty{display:none}
.auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--muted);font-size:12px}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-top:1px solid var(--line-soft)}
.auth-page .auth-alt{width:100%}
.auth-foot{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:28px;padding-top:20px;border-top:1px solid var(--line-soft);font-size:13px;color:var(--muted)}.auth-foot:has(.auth-foot-split){justify-content:space-between}.auth-foot a{color:var(--accent);font-weight:550}
@media(max-width:600px){.auth-page{padding:24px 16px}.auth-panel{padding:28px 20px}.auth-control{flex-direction:column}.auth-control .ui-button{width:100%}}
.authoring-intro{margin:0 0 16px;color:var(--muted);font-size:13px;line-height:21px;word-break:keep-all}
.authoring-choices{display:grid;gap:10px;border:0;margin:0;padding:0}
.authoring-choice{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer}
.authoring-choice:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.authoring-choice:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.authoring-choice.disabled{cursor:not-allowed;background:var(--bg)}
.authoring-choice input{margin:3px 0 0;width:16px;height:16px;min-height:0;accent-color:var(--accent);flex:none}
.authoring-choice-body{display:grid;gap:4px}.authoring-choice-body strong{font-size:14px;line-height:22px}.authoring-choice-body small{font-size:13px;line-height:20px;color:var(--muted);word-break:keep-all}.authoring-choice-body em{font-style:normal;font-size:12px;line-height:18px;color:var(--error)}
.authoring-choice.disabled strong,.authoring-choice.disabled small{color:var(--oc-gray-5)}
.chat-authoring{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;min-height:460px}
.chat-authoring-log{flex:1;min-height:280px;max-height:420px;overflow-y:auto;margin:0;padding:4px 2px;list-style:none;display:flex;flex-direction:column;gap:10px}
.chat-authoring-log li{max-width:82%;padding:10px 14px;border-radius:12px;font-size:13px;line-height:21px;white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere}
.chat-authoring-log li.agent{align-self:flex-start;background:var(--oc-gray-1);border-top-left-radius:4px}
.chat-authoring-log li.user{align-self:flex-end;background:var(--accent);color:#fff;border-top-right-radius:4px}
.chat-authoring-composer{display:flex;gap:8px;align-items:flex-end}.chat-authoring-composer textarea{flex:1;max-width:none;min-height:64px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:13px;line-height:20px;resize:vertical}.chat-authoring-composer textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.chat-authoring-composer .ui-button{height:40px}
@media(max-width:1000px){.chat-authoring{grid-template-columns:1fr}}
.run-toast{display:flex;align-items:center;gap:12px;width:min(420px,calc(100vw - 32px));padding:14px 16px;border-radius:10px}
.run-toast-body{display:grid;gap:2px;flex:1;min-width:0}.run-toast-body strong{font-size:13px;font-weight:600;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-toast-body small{font-size:12px;line-height:18px;color:var(--oc-gray-4);word-break:keep-all}
.run-toast-track{height:4px;margin-top:6px;border-radius:2px;background:rgba(255,255,255,.18);overflow:hidden}.run-toast-track span{display:block;height:100%;background:var(--oc-indigo-3);transition:width .3s}
.run-toast-spinner{flex:none;width:18px;height:18px;border:2px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:run-toast-spin .8s linear infinite}
@keyframes run-toast-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.run-toast-spinner{animation:none;border-top-color:rgba(255,255,255,.7)}}
.run-toast-icon{flex:none;display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;border-radius:50%}.run-toast-icon .icon{width:14px;height:14px}
.run-toast.succeeded .run-toast-icon{background:var(--oc-green-6);color:#fff}.run-toast.failed .run-toast-icon{background:var(--oc-red-6);color:#fff}
.run-toast-actions{display:flex;align-items:center;gap:4px;flex:none}.run-toast-actions a{color:var(--oc-indigo-2);font-weight:600;font-size:13px;padding:4px 6px}
.run-toast-close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;border-radius:6px;background:transparent;color:var(--oc-gray-4);cursor:pointer}.run-toast-close:hover{background:rgba(255,255,255,.1);color:#fff}.run-toast-close .icon{width:14px;height:14px}
/* Recipe builder drawer: one 24px gutter and one section rhythm (24px · line · 24px). Overrides the layered rules above. */
.recipe-editor.drawer .builder-panels :is(section,.inspector-section,.form-grid)>.field:last-child,.recipe-editor.drawer .builder-panels .form-grid .field{margin-bottom:0}
.project-card{position:relative;cursor:pointer}.project-card-link{color:inherit}.project-card-link::after{content:"";position:absolute;inset:0;border-radius:12px}.project-card-link:focus-visible{outline:none}.project-card:has(.project-card-link:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.project-card p{margin-bottom:0}
/* Recipe builder step settings (Plan settings pane wording). */
.step-configured{margin-left:8px;vertical-align:middle;font-size:11px}
.step-target{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--line-soft);border-radius:10px;background:var(--bg)}
.step-target>div{display:grid;gap:2px;min-width:0}.step-target strong{font-size:14px;line-height:22px}.step-target small{font-size:12px;color:var(--muted)}
.ref-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 6px 0 10px;border:1px solid var(--oc-indigo-2);border-radius:14px;background:var(--accent-soft);color:var(--oc-indigo-8);font-size:12px;font-weight:550}
.ref-chip.missing{border-color:var(--oc-orange-3);background:var(--oc-orange-0);color:var(--oc-orange-8)}
.ref-chip button{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;font-size:14px;line-height:1;cursor:pointer}.ref-chip button:hover{background:rgba(0,0,0,.08)}
.tool-inputs{display:grid;gap:12px}
.tool-input{display:grid;gap:10px;padding:16px;border:1px solid var(--line-soft);border-radius:10px}
.tool-input-head{display:grid;gap:2px}.tool-input-head strong{font-size:13px;line-height:20px}.tool-input-head small{font-size:12px;color:var(--muted)}
.ref-switch{display:inline-flex;align-self:start;padding:3px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.ref-switch label{position:relative;display:block;cursor:pointer}.ref-switch input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.ref-switch span{display:block;height:30px;padding:0 12px;border-radius:6px;font-size:13px;line-height:30px;font-weight:550;color:var(--muted)}
.ref-switch input:checked+span{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-control)}
.ref-switch input:focus-visible+span{outline:2px solid var(--accent);outline-offset:1px}
.ref-pick{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,220px);gap:8px}.ref-pick select:only-child{grid-column:1/-1}
.ref-pick select,.ref-pick input,.tool-input textarea{width:100%;max-width:none}
.ask-list{display:grid;gap:8px;margin:0 0 16px}
.ask-item{border:1px solid var(--line-soft);border-radius:10px;background:var(--surface)}.ask-item.open{border-color:var(--oc-indigo-2)}
.ask-row{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 0}
.ask-toggle{flex:1;display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;padding:10px 16px;border:0;background:transparent;text-align:left;cursor:pointer;font:inherit}
.ask-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:550}.ask-text.empty{color:var(--muted);font-weight:400}
.ask-meta{display:flex;align-items:center;gap:8px;flex:none}.ask-meta small{font-size:12px;color:var(--muted)}
.ask-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;padding:4px 16px 20px;border-top:1px solid var(--line-soft);padding-top:16px}
.ask-fields .field{margin:0!important}.ask-fields .field:first-child{grid-column:1/-1}.ask-fields input:not([type=checkbox]),.ask-fields select{width:100%;max-width:none}
/* Add-step sheet: pick a capability the agent has; details go to the settings pane. */
.step-add-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;font-size:13px;color:var(--muted)}.step-add-head strong{color:var(--accent);font-weight:600}
.step-add-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px}.step-add-tools input{flex:1;min-width:220px;max-width:none;height:40px}
.step-add-filters{display:inline-flex;padding:3px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.step-add-filters button{height:32px;padding:0 12px;border:0;border-radius:6px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:550;cursor:pointer}.step-add-filters button[aria-pressed=true]{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-control)}
.step-add-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.step-add-card{position:relative;display:grid;gap:4px;align-content:start;min-height:112px;padding:16px 44px 16px 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);text-align:left;font:inherit;cursor:pointer}.step-add-card:hover,.step-add-card:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}
.step-add-kind{font-size:12px;color:var(--muted);font-weight:550}.step-add-kind em{margin-left:4px;font-style:normal;color:var(--oc-orange-8)}.step-add-card strong{font-size:14px;line-height:22px}.step-add-card small{font-size:12px;line-height:18px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.step-add-version{color:var(--oc-gray-6)}
.step-add-plus{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:15px}
.step-add-note{margin:16px 0 0;font-size:12px;line-height:18px;color:var(--muted);word-break:keep-all}
/* Conversation authoring: draft on the left, conversation on the right with the composer pinned to the bottom. */
.chat-authoring{flex:1;min-height:0;display:grid;grid-template-columns:320px minmax(0,1fr);gap:0}
.chat-authoring-log{flex:1;min-height:0;max-height:none;overflow-y:auto;padding:20px 24px}
.chat-authoring-composer{flex:none;padding:16px 24px;border-top:1px solid var(--line-soft);background:var(--surface)}
.chat-authoring-composer textarea{min-height:48px;max-height:160px}
@media(max-width:1000px){.chat-authoring{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}}
@keyframes mode-flash{0%,35%{box-shadow:0 0 0 3px var(--oc-indigo-3);background-color:var(--oc-indigo-0)}100%{box-shadow:0 0 0 0 transparent}}
/* One row height for every list: 64px body rows, 44px header. Content is vertically centered. */
.table-wrap thead th{height:44px;padding-top:0;padding-bottom:0;vertical-align:middle}
.table-wrap tbody td{height:64px;padding-top:8px;padding-bottom:8px;vertical-align:middle;box-sizing:border-box}
.table-wrap tbody td .entity-cell{align-items:center}
.table-wrap tbody td .entity-cell small{line-height:18px}
.table-wrap tbody td .table-actions{flex-wrap:nowrap;white-space:nowrap}
.card-management{margin:0}.card-management>summary{padding:0}
/* 정책(policies): 권한이 모자라 비활성인 조작과 사유, 설명 길이 안내 */
.denied{display:inline-flex;flex-direction:column;align-items:flex-start;gap:4px;max-width:340px;vertical-align:top}
.page-heading .actions .denied,.section-heading .actions .denied{align-items:flex-end;text-align:right}
.denied-reason{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.ui-button[disabled],button[disabled][data-reason]{cursor:not-allowed}
.notice.permission-reason{margin:0 0 12px}
.field .length-note:empty{display:none}
.field .length-note{color:var(--muted)}
/* 계정(account): 로그인·가입·재설정 카드의 경고 영역과 칸 아래 오류, 약관 동의, 승인 대기·정지 안내 */
.auth-alert{margin:-12px 0 20px;padding:10px 12px;border:1px solid var(--oc-red-2);border-radius:8px;background:var(--oc-red-0);color:var(--oc-red-8);font-size:13px;line-height:20px;word-break:keep-all}
.auth-alert:empty{display:none}
.auth-alert-links{display:flex;gap:12px;margin-top:4px}
.auth-alert-links a{color:var(--oc-red-8);font-weight:600;text-decoration:underline}
.auth-field-error{display:block;margin-top:6px;font-size:12px;line-height:18px;color:var(--error);word-break:keep-all}
.auth-field-error:empty{display:none}
.auth-page input[aria-invalid="true"]{border-color:var(--error)}
.auth-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.auth-pair .auth-field+.auth-field{margin-top:0}
.auth-field+.auth-pair,.auth-pair+.auth-field{margin-top:16px}
.auth-eyebrow{margin:0 0 8px;font-size:13px;line-height:20px;color:var(--muted)}
.auth-eyebrow strong{color:var(--accent);font-weight:650}
.auth-terms{margin-top:20px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.auth-terms-progress{margin:0;padding:10px 12px;font-size:12px;line-height:18px;color:var(--muted);background:var(--bg);border-bottom:1px solid var(--line-soft)}
.auth-term{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:4px 12px;font-size:13px;line-height:20px}
.auth-term+.auth-term{border-top:1px solid var(--line-soft)}
.auth-term label,.auth-term.auth-term-all{display:flex;align-items:center;gap:8px;margin:0;cursor:pointer}
.auth-term.auth-term-all{font-weight:600;justify-content:flex-start}
.auth-term input{width:16px;height:16px;margin:0;accent-color:var(--accent)}
.auth-term-tag{font-size:11px;line-height:16px;color:var(--muted)}
.auth-term.missing{background:var(--oc-red-0);box-shadow:inset 3px 0 0 var(--error)}
.auth-terms-empty{margin:20px 0 0;padding:12px;border-radius:8px;background:var(--bg);font-size:13px;line-height:20px;color:var(--muted);word-break:keep-all}
.auth-page .ui-button.auth-link{min-height:0;height:auto;padding:0;border:0;background:none;box-shadow:none;color:var(--accent);font-size:13px;font-weight:550}
.auth-page .ui-button.auth-link:hover{text-decoration:underline;background:none}
.auth-privacy{margin:12px 0 0;font-size:13px;line-height:20px}
.auth-page>.auth-privacy{width:100%;max-width:480px;text-align:center}
.auth-page:has(>.auth-privacy){flex-direction:column;align-items:center}
.auth-rules{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:4px;font-size:12px;line-height:18px;color:var(--muted)}
.auth-rules li{display:flex;justify-content:space-between;gap:8px}
.auth-rules li.met{color:var(--oc-green-8)}
.auth-rules+.auth-field{margin-top:16px}
.auth-reconsent{margin:0 0 20px;padding:12px 14px;border-radius:8px;background:var(--accent-soft);font-size:13px;line-height:20px;word-break:keep-all}
.auth-reconsent strong{display:block;margin-bottom:4px;font-size:14px}
.auth-reconsent p{margin:0}
.auth-page .auth-cancel,.auth-page .auth-logout,.auth-page .auth-directory-submit{width:100%;margin-top:12px}
.auth-contact{margin:0;padding:14px 16px;border:1px solid var(--line-soft);border-radius:8px;background:var(--bg)}
.auth-contact h2{margin:0 0 4px;font-size:13px;line-height:20px;font-weight:650}
.auth-contact p{margin:0;font-size:13px;line-height:20px;white-space:pre-line;word-break:keep-all}
.auth-suspended-until{margin:0 0 16px;font-size:13px;line-height:20px}
.auth-callback{margin:20vh auto 0;text-align:center;color:var(--muted);font-size:14px}
#directory-login .auth-field+.auth-field{margin-top:12px}
@media(max-width:600px){.auth-pair{grid-template-columns:1fr}}
/* 마켓(market): 종류 탭·분류 버튼의 개수, 기본 제공 표시, 에이전트·노출 범위 카드, 알림의 이동 링크 */
.tabs .tab-count,.category-chips .tab-count{margin-left:4px;font-size:12px;font-weight:500;color:var(--muted)}
.market-collection .category-chips{display:flex;gap:8px;flex:1 1 240px;flex-wrap:nowrap;overflow-x:auto;min-width:0;max-width:100%;scrollbar-width:thin}
@media(max-width:720px){.market-collection .category-chips{flex-basis:100%}}
.market-collection .category-chips a{display:inline-flex;align-items:center;height:36px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font-size:13px;white-space:nowrap;text-decoration:none}
.market-collection .category-chips a.active{border-color:var(--accent);color:var(--accent);font-weight:650}
.market-collection .category-chips a.active .tab-count{color:var(--accent)}
.entity-card h3 .entity-provided{display:inline-block;margin-left:6px;padding:0 8px;border:1px solid var(--line);border-radius:999px;font-size:12px;line-height:20px;font-weight:500;color:var(--muted);vertical-align:middle}
.entity-card-description.muted{color:var(--muted)}
.overlay .dialog-subtitle{margin:0 0 16px;color:var(--muted);font-size:13px}
.overlay .share-kind{margin:0 0 12px;font-size:13px}
.overlay .authoring-choices{margin:0 0 16px}
.overlay .authoring-choices>legend{margin:0 0 8px;font-size:13px;font-weight:600}
.overlay .scope-choices{grid-template-columns:repeat(3,minmax(0,1fr))}
.overlay .scope-choices:has(>label:nth-of-type(4)){grid-template-columns:repeat(2,minmax(0,1fr))}
.overlay .scope-choices .authoring-choice{padding:12px}
.overlay .scope-choices .authoring-choice-body{gap:2px}.overlay .scope-choices .authoring-choice-body small{font-size:12px;line-height:18px}
/* 공유 관리 창(2026-10-01): 맨 위 관리하는 항목 줄, 항목 정보·노출 범위 두 구역(에이전트 채용하기 창의 구역 머리와 같은 모양) */
.share-subject{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--line-soft);border-radius:10px;background:var(--bg)}
.share-subject-icon{display:grid;place-items:center;flex:none;width:36px;height:36px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface);color:var(--muted)}
.share-subject>div{display:grid;gap:2px;min-width:0}
.share-subject strong{overflow:hidden;font-size:14px;line-height:20px;text-overflow:ellipsis;white-space:nowrap}
.share-subject small{font-size:12px;line-height:18px;color:var(--muted)}
.share-section{padding:20px 0 4px;border-top:1px solid var(--line-soft)}
.share-subject+.share-section{margin-top:8px;border-top:0;padding-top:16px}
.share-section>h3{margin:0 0 16px;font-size:15px;line-height:22px}
.share-section>.muted{margin:0 0 8px;font-size:13px;line-height:20px;word-break:keep-all}
.share-manage .scope-choices>legend{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.overlay .bundled-title{margin:16px 0 8px;font-size:14px}
.overlay footer .share-manage-delete{margin-right:auto}
.toast-with-action{display:flex;align-items:center;gap:16px}
.toast-with-action a{color:var(--oc-white);font-weight:650;text-decoration:underline}
@media(max-width:640px){.overlay .scope-choices,.overlay .scope-choices:has(>label:nth-of-type(4)){grid-template-columns:minmax(0,1fr)}}
/* 에이전트(agent) 영역 — 작업공간 제목 줄·탭 개수, 목록 카드, 구성 탭 구역 카드, 스킬·MCP 카드, Slack 연결 절차, 확인창 */
.tabs a .tab-count{display:inline-block;margin-left:6px;padding:0 6px;min-width:18px;border-radius:9px;background:var(--oc-gray-1);color:var(--oc-gray-7);font-size:11px;line-height:18px;text-align:center;font-weight:600}
.tabs a.active .tab-count{background:var(--oc-indigo-0);color:var(--accent)}
.agent-name-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.agent-name-row h1{margin-bottom:0}
.agent-name-row .agent-rename{height:28px;min-height:28px;padding:0 10px;font-size:12px}
.agent-intro{margin:6px 0 8px;color:var(--muted);font-size:13px;line-height:21px;overflow-wrap:anywhere}
.agent-heading .entity-subtitle{margin-top:8px}
.agent-state-reason{font-size:12px;color:var(--muted)}
.badge.llm-missing{color:var(--oc-orange-9);background:var(--oc-orange-0)}
.badge.stopped,.badge.inactive{color:var(--oc-gray-7);background:var(--oc-gray-1)}
.badge.connected{color:var(--oc-indigo-9);background:var(--oc-indigo-0)}
.collection-count{margin:-8px 0 20px;color:var(--muted);font-size:13px}
.agent-card{position:relative}
.agent-card h3 a::after{content:'';position:absolute;inset:0;border-radius:12px}
.agent-card:hover{border-color:var(--accent)}
.agent-card:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.agent-card .entity-kind{display:inline-flex;align-items:center;gap:8px}
.agent-card .entity-kind .type-symbol{width:28px;height:28px}
.agent-card .entity-card-description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;height:44px;min-height:44px}
.agent-card .entity-card-meta{margin-bottom:0}
.agent-card-state{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;align-items:center}
.collection-empty.agent-empty strong{display:block;margin-bottom:6px;color:var(--ink);font-size:15px}
.collection-empty p{margin:0}
.collection-empty p+p{margin-top:4px}
.agent-config{display:grid;gap:var(--section-gap,24px);max-width:1280px}
.agent-config-card{padding:0;margin:0;overflow:hidden}
.config-card-head{padding:16px 24px;background:var(--oc-gray-0);border-bottom:1px solid var(--line-soft)}
.config-card-head h2{margin:0;font-size:15px;line-height:24px}
.config-card-head p{margin:2px 0 0;color:var(--muted);font-size:13px;line-height:20px}
.config-card-body{padding:8px 24px 20px}
.config-card-body>.notice{margin:16px 0 4px}
.config-rows{margin:0}
.config-row{display:grid;grid-template-columns:180px minmax(0,1fr) auto;gap:16px;align-items:start;padding:14px 0;border-bottom:1px solid var(--line-soft)}
.config-rows .config-row:last-child{border-bottom:0}
.config-row dt{color:var(--muted);font-size:13px;line-height:22px}
.config-row dd{margin:0;font-size:13px;line-height:22px;min-width:0;overflow-wrap:anywhere}
.config-row dd p{margin:0}
.config-row dd p+p{margin-top:4px}
.config-row dd small{display:block;color:var(--muted)}
.config-row .attention{color:var(--oc-red-9)}
.config-row.config-empty{grid-template-columns:minmax(0,1fr) auto;border-bottom:0}
.config-row.config-empty p{margin:0;color:var(--muted);font-size:13px;line-height:22px}
.config-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:flex-start}
.config-card-body>.config-actions{padding-top:16px}
.config-form{padding-top:8px}
.config-form .field{display:grid;grid-template-columns:180px minmax(0,1fr);column-gap:16px;align-items:center;margin:0;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.config-form .field[hidden]{display:none}
.config-form .field>label{margin:0;color:var(--muted);font-size:13px;font-weight:400}
.config-form .field>:is(input,select,textarea){max-width:420px}
.config-form .field>small{grid-column:2;margin-top:6px}
.config-form>.field-error{display:block;margin:4px 0 0 196px}
.config-form>.field-error:empty{display:none}
.config-form>.config-actions{padding-top:16px}
.memory-list{list-style:none;margin:0;padding:0}
.memory-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;padding:14px 0;border-bottom:1px solid var(--line-soft)}
.memory-list li p{margin:0;font-size:13px;line-height:22px;white-space:pre-wrap;overflow-wrap:anywhere}
.memory-list li small{grid-row:2;color:var(--muted);font-size:12px}
.memory-list li .config-actions{grid-column:2;grid-row:1/span 2}
.confirm-warning>div p{margin:0}
.confirm-warning>div p+p{margin-top:4px}
.confirm-reversible{margin:0 0 4px;font-size:13px;line-height:21px;color:var(--oc-gray-8)}
.ability-collection .entity-card-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.ability-card h3{font-size:16px}
.ability-card .entity-card-top .muted{font-size:12px}
.mcp-tools{margin:0 0 16px;font-size:13px}
.mcp-tools .mcp-label{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}
.mcp-tools ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.mcp-tools details{margin-top:4px}
.mcp-tools summary{cursor:pointer;color:var(--accent);font-size:12px}
.mcp-tools details ul{margin-top:4px}
.mcp-tools p{margin:0}
.mcp-values{margin:0 0 16px;display:grid;gap:8px}
.mcp-values>div{display:flex;justify-content:space-between;gap:12px;font-size:13px}
.mcp-values dt{color:var(--muted)}
.mcp-values dd{margin:0}
.ability-card>p.muted{margin:0 0 16px;font-size:13px}
.slack-guide>h3{margin:0 0 4px;font-size:15px}
.slack-guide>p{margin:0 0 16px;color:var(--muted);font-size:13px}
.slack-steps{list-style:none;counter-reset:slack;margin:0 0 16px;padding:0;display:grid;gap:12px}
.slack-steps>li{counter-increment:slack;border:1px solid var(--line-soft);border-radius:10px;padding:16px 16px 16px 52px;position:relative}
.slack-steps>li::before{content:counter(slack);position:absolute;left:16px;top:16px;width:24px;height:24px;border-radius:12px;background:var(--oc-indigo-0);color:var(--accent);font-size:12px;font-weight:700;line-height:24px;text-align:center}
.slack-steps h4{margin:0 0 6px;font-size:14px;line-height:24px}
.slack-steps p{margin:0 0 8px;font-size:13px;color:var(--oc-gray-7)}
.slack-steps .field{margin-bottom:12px}
.slack-steps .code-list{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.slack-steps .copy-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}
.slack-steps .copy-row code{overflow-wrap:anywhere}
.message-source{display:inline-block;margin-right:4px;padding:0 6px;border-radius:4px;background:var(--oc-red-0);color:var(--oc-red-9);font-size:12px;line-height:18px;font-weight:600}
@media (max-width:720px){.config-row,.config-form .field{grid-template-columns:minmax(0,1fr)}.config-form>.field-error{margin-left:0}.config-form .field>small{grid-column:1}.config-row .config-actions{justify-content:flex-start}}
/* 실행(run) 영역: 레시피 실행 화면 머리 카드·숫자 다섯 칸·입력 안내, 업무 이력 필터, 확인창 문단 */
.recipe-breadcrumb{margin:4px 0 12px}
.recipe-head{margin-bottom:var(--section-gap)}
.recipe-head-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.recipe-head-title{min-width:0}
.recipe-head-title h1{margin:0 0 4px;font-size:20px;line-height:28px;overflow-wrap:anywhere}
.recipe-head-title p{margin:0 0 4px}
.recipe-head-description{color:var(--ink)}
.recipe-head-top>.actions{display:flex;align-items:center;gap:8px;flex:none}
.recipe-head-io{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px;margin-top:12px;padding:12px 16px;border:1px solid var(--line-soft);border-radius:8px;background:var(--oc-gray-0);font-size:13px}
.recipe-head-io ul{margin:6px 0 4px;padding-left:18px}
.recipe-head-io p{margin:6px 0 0}
.recipe-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:var(--section-gap)}
.recipe-stats>div{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface)}
.recipe-stats span{color:var(--muted);font-size:12px}
.recipe-stats strong{font-size:14px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.run-input .required-mark{margin-left:6px;padding:1px 6px;border-radius:4px;background:var(--oc-gray-1);color:var(--ink);font-size:11px;font-weight:600}
.run-input small{display:block}
.run-input .field-error{color:var(--error)}
.run-progress{align-self:center;color:var(--muted);font-size:13px}
.run-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}
.run-state-filter{display:flex;flex-wrap:wrap;gap:0}
.run-state-filter .ui-button{border-radius:0}
.run-state-filter .ui-button:first-child{border-radius:var(--button-radius) 0 0 var(--button-radius)}
.run-state-filter .ui-button:last-child{border-radius:0 var(--button-radius) var(--button-radius) 0}
.run-state-filter .ui-button+.ui-button{margin-left:-1px}
.run-state-filter .ui-button.is-selected{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}
.run-state-filter .count{margin-left:4px;font-variant-numeric:tabular-nums}
.run-empty .empty-state{display:flex;flex-direction:column;align-items:center;gap:6px;padding:32px 16px;text-align:center}
.run-empty .empty-state p{margin:0;color:var(--muted)}
.notice[role=note]>p{margin:0}
.notice[role=note]>p+p{margin-top:4px}
@media (max-width:720px){.recipe-head-top{flex-direction:column}.recipe-head-io{grid-template-columns:1fr}.recipe-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* 워크스페이스(workspace): 팀 홈, 팀 설정 탭, 멤버·프로젝트 배치, 오너 이전 띠, 활동 내역, 계정 위험 구역 */
.card-description{margin:-8px 0 16px;color:var(--muted);font-size:13px}
.team-home-summary{margin:-8px 0 var(--section-gap);color:var(--muted);font-size:14px}
.team-home-panels{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--section-gap);align-items:start}
.team-home-panel{margin-bottom:0}
.team-home-panel h2 .count-badge{display:inline-flex;min-width:20px;height:20px;padding:0 6px;margin-left:6px;align-items:center;justify-content:center;border-radius:10px;background:var(--oc-gray-1);color:var(--muted);font-size:12px;font-weight:600;vertical-align:middle}
.team-recent-projects{list-style:none;margin:0;padding:0}
.team-recent-projects li+li{border-top:1px solid var(--line-soft)}
.team-recent-projects a{display:grid;grid-template-columns:36px minmax(0,1fr) auto auto;gap:12px;align-items:center;min-height:64px;color:inherit;text-decoration:none}
.team-recent-projects a:hover strong{color:var(--accent)}
.project-initial{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-weight:700}
.project-main{display:flex;flex-direction:column;min-width:0}
.project-main strong,.project-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.project-main small,.project-services{color:var(--muted);font-size:13px}
.team-home-empty strong{display:block;margin-bottom:6px;color:var(--ink)}
.team-home-empty p{margin:0}
.team-info{display:grid;margin:0}
.team-info>div{display:grid;grid-template-columns:160px minmax(0,1fr);gap:16px;align-items:center;min-height:64px}
.team-info>div+div{border-top:1px solid var(--line-soft)}
.team-info dt{color:var(--muted);font-size:14px}
.team-info dd{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0;flex-wrap:wrap}
.team-name-edit{flex:1;min-width:220px}
.team-name-edit input{width:100%;max-width:420px}
.danger-title{color:var(--error)}
.danger-row{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.danger-row p{margin:0}
.team-role-cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.team-role-select{min-width:120px}
.offer-flag{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:12px;background:var(--oc-yellow-0,#fff9db);color:var(--oc-yellow-9,#e67700);font-size:12px;white-space:nowrap}
.member-status.unregistered{color:var(--muted)}
.team-invite{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(140px,.6fr);gap:12px 16px;align-items:start}
.team-invite .invite-projects,.team-invite>[data-invite-manager-note],.team-invite>.actions{grid-column:1/-1}
.invite-projects{margin:0;padding:12px 16px;border:1px solid var(--line-soft);border-radius:8px}
.invite-projects legend{padding:0 4px;font-size:13px;color:var(--muted)}
.invite-projects[hidden],[data-invite-manager-note][hidden]{display:none}
.placement-rows{list-style:none;margin:0;padding:0}
.placement-row{display:grid;grid-template-columns:20px minmax(0,1fr) 160px;gap:12px;align-items:center;min-height:52px}
.placement-row+.placement-row{border-top:1px solid var(--line-soft)}
.placement-name{display:flex;flex-direction:column;min-width:0}
.placement-name small{color:var(--muted);font-size:12px}
.placement-leave{margin:12px 0 0}
.placement-leave[hidden]{display:none}
.owner-offer-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 16px;margin-bottom:var(--section-gap);border:1px solid var(--oc-indigo-2,#bac8ff);background:var(--accent-soft);border-radius:8px;font-size:14px}
.owner-offer-banner p{margin:0}
.owner-offer-banner p+p{margin-top:4px;color:var(--muted)}
.owner-offer-banner .actions{display:flex;gap:8px}
.audit-series{display:inline-flex;gap:4px;padding:4px;margin-bottom:16px;border-radius:8px;background:var(--oc-gray-1)}
.audit-series a{padding:6px 14px;border-radius:6px;color:var(--muted);text-decoration:none;font-size:13px}
.audit-series a.active{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:var(--shadow-control)}
.audit-filters{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.audit-filters .field{margin:0}
.audit-result{white-space:nowrap}
.audit-result.ok{color:var(--oc-teal-8,#099268)}
.audit-result.fail{color:var(--error)}
.audit-result.wait,.audit-result.off{color:var(--muted)}
.audit-empty p{margin:0 0 8px}
.audit-detail{display:grid;margin:0}
.audit-detail>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;padding:12px 0}
.audit-detail>div+div{border-top:1px solid var(--line-soft)}
.audit-detail dt{color:var(--muted)}
.audit-detail dd{margin:0;overflow-wrap:anywhere}
.withdraw-blocked{margin:0 0 12px;padding-left:18px}
.withdraw-blocked li+li{margin-top:6px}
@media (max-width:900px){.team-home-panels,.team-invite{grid-template-columns:minmax(0,1fr)}.team-info>div{grid-template-columns:minmax(0,1fr);gap:4px;padding:12px 0}.team-recent-projects a{grid-template-columns:36px minmax(0,1fr) auto}.team-recent-projects .project-services{display:none}}
/* 레시피(recipe) 빌더: 전체 화면 모달(흐름 pane · 설정 pane · 저장 막대), 단계 추가 서랍, 대화창 pane, 단계 탭의 보기 전용 모습 */
.overlay.rb-modal{padding:0;align-items:stretch;justify-content:stretch}
.overlay.rb-modal>section[role=dialog]{width:100vw;max-width:none;height:100dvh;max-height:none;border:0;border-radius:0}
.rb-modal>section>form{flex:1;min-height:0;display:flex;flex-direction:column}
.rb-modal>section>form>.dialog-body{flex:1;min-height:0;display:flex;flex-direction:column;padding:0;overflow:hidden}
.rb-modal .dialog-body>.form-error:empty{display:none}
.rb-modal footer{display:flex;align-items:center;gap:8px}
.rb-status{margin-right:auto;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-width:0;font-size:13px}
.rb-check{max-width:560px;padding:6px 10px;border:0;border-radius:6px;background:var(--oc-orange-0);color:var(--oc-orange-8);font:inherit;font-size:13px;font-weight:550;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rb-save-error{color:var(--error);line-height:20px;word-break:keep-all}
.rb-root{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}
.rb-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;border-bottom:1px solid var(--line-soft);background:var(--oc-gray-0)}
.rb-line{margin:0;font-size:13px;line-height:20px;color:var(--muted);word-break:keep-all}
.rb-badges{display:flex;gap:8px}
.rb-chat-note{flex:none;padding:12px 24px 0}.rb-chat-note .notice{margin:0}
.rb-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr)}
.rb-body.with-chat{grid-template-columns:minmax(280px,340px) minmax(300px,400px) minmax(0,1fr)}
.rb-flow,.rb-settings,.rb-chat{position:relative;min-height:0;display:flex;flex-direction:column}
.rb-flow{background:var(--oc-gray-0);border-right:1px solid var(--line-soft)}
.rb-settings{background:var(--surface)}
.rb-chat{background:var(--surface);border-right:1px solid var(--line-soft)}
.rb-scroll{flex:1;min-height:0;overflow:auto;padding:24px}
.rb-pane-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0 0 12px}
.rb-pane-head h3{margin:0;font-size:15px;line-height:24px;overflow-wrap:anywhere}
.rb-pane-head small{display:block;margin-top:2px;font-size:12px;line-height:18px;color:var(--muted);word-break:keep-all}
.rb-pane-note{margin:0 0 16px;font-size:12px;line-height:18px;color:var(--muted);word-break:keep-all}
.rb-cards{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.rb-card{width:100%;min-width:0;display:grid;gap:4px;padding:12px 14px;border:1px solid var(--line-soft);border-radius:10px;background:var(--surface);box-shadow:none;font:inherit;text-align:left;white-space:normal;cursor:pointer}
.rb-card[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.rb-card-label{font-size:12px;font-weight:550;color:var(--muted)}
.rb-card strong{min-width:0;font-size:13px;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rb-card-line1{display:flex;align-items:center;gap:8px;min-width:0}
.rb-num{font-size:12px;font-weight:650;color:var(--muted);font-variant-numeric:tabular-nums}
.rb-root .type-symbol{position:static;width:24px;height:24px;border-radius:6px}.rb-root .type-symbol .icon{width:14px;height:14px}
.rb-card-line2,.rb-card-line3{min-width:0;font-size:12px;line-height:18px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rb-card-line2.missing{color:var(--oc-orange-8)}
.rb-pin-badge{margin-left:auto;font-size:11px}
.rb-step{display:flex;align-items:flex-start;gap:4px}.rb-step>.rb-card{flex:1}
.rb-step.running .rb-card{border-color:var(--oc-indigo-3)}.rb-step.running .rb-card-line3{color:var(--accent)}
.rb-step.failed .rb-card{border-color:var(--oc-red-3)}.rb-step.failed .rb-card-line3{color:var(--error)}
.rb-step.drop-before{box-shadow:0 -3px 0 var(--accent)}.rb-step.drop-after{box-shadow:0 3px 0 var(--accent)}
.rb-card-tools{flex:none;display:flex;flex-direction:column;align-items:center;gap:2px}
.rb-card-tools .icon-button{width:28px;height:28px;min-height:0;padding:0}
.rb-card-menu{position:relative}
.rb-card-menu>summary{width:28px;height:28px;display:grid;place-items:center;list-style:none;border-radius:6px;color:var(--muted);cursor:pointer}
.rb-card-menu>summary::-webkit-details-marker{display:none}.rb-card-menu>summary:hover{background:var(--oc-gray-1)}
.rb-card-menu>div{position:absolute;right:0;top:30px;z-index:5;min-width:180px;max-height:240px;overflow:auto;display:grid;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-float)}
.rb-card-menu>div button{padding:8px 10px;border:0;border-radius:6px;background:transparent;font:inherit;font-size:13px;text-align:left;white-space:nowrap;cursor:pointer}
.rb-card-menu>div button:hover{background:var(--oc-gray-1)}.rb-card-menu>div .muted{padding:8px 10px;font-size:12px}
.rb-hint{padding:0 4px 4px;font-size:12px;color:var(--muted)}
.rb-slot button{width:100%;display:flex;align-items:center;gap:8px;height:16px;padding:0;border:0;background:transparent;color:var(--oc-gray-5);font:inherit;font-size:13px;opacity:.45;cursor:pointer}
.rb-slot:not(.last) button:before,.rb-slot:not(.last) button:after{content:"";flex:1;height:1px;background:currentColor}
.rb-slot:not(.last) button:hover,.rb-slot:not(.last) button:focus-visible{opacity:1;color:var(--accent)}
.rb-slot.last button{justify-content:center;height:40px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);font-weight:550;opacity:1}
.rb-slot.last button:hover{border-color:var(--accent);color:var(--accent);background:var(--surface)}
.rb-run{flex:none;display:grid;gap:6px;padding:16px 24px;border-top:1px solid var(--line-soft)}
.rb-run>.ui-button{justify-self:start}.rb-run>small{font-size:12px;line-height:18px;color:var(--muted);word-break:keep-all}
.rb-agent{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.rb-agent select{height:32px;min-height:0;font-size:13px}
.rb-run-error{margin:0;font-size:12px;line-height:18px;color:var(--error);word-break:keep-all}
.rb-drawer{position:absolute;left:0;right:0;top:12%;bottom:0;z-index:4;display:flex;flex-direction:column;padding:20px;background:var(--surface);border-top:1px solid var(--line);border-radius:14px 14px 0 0;box-shadow:0 -8px 24px rgba(33,37,41,.12);animation:rb-rise .18s ease-out}
.rb-drawer-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}
.rb-drawer-head h3{margin:0;font-size:15px;line-height:24px}.rb-drawer-head small{display:block;font-size:12px;color:var(--muted)}
.rb-drawer-head strong{margin-left:auto;font-size:13px;line-height:24px;color:var(--accent)}
.rb-drawer .step-add-tools{margin-bottom:12px}
.rb-drawer .step-add-grid{flex:1;min-height:0;overflow:auto;grid-template-columns:1fr;align-content:start}
@keyframes rb-rise{from{transform:translateY(24px);opacity:0}}
@media(prefers-reduced-motion:reduce){.rb-drawer{animation:none}}
.rb-settings .field{margin:0 0 16px}
.rb-settings .rb-scroll>section+section,.rb-settings .rb-scroll>.field+section{margin-top:20px}
.rb-group{padding-top:16px;border-top:1px solid var(--line-soft)}
.rb-group-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:8px}
.rb-group-head h4{margin:0;font-size:13px;line-height:20px}.rb-group-head small{font-size:12px;line-height:18px;color:var(--muted);word-break:keep-all}
.rb-advanced>summary{width:max-content;font-size:13px;font-weight:600;color:var(--accent);cursor:pointer}
.rb-advanced[open]>summary{margin-bottom:12px}
.tool-input .rb-advanced{margin-top:4px}
.rb-group:has(.rb-advanced[open]) .rb-default-note{display:none}
.rb-default-note{margin:0 0 8px}
.rb-field-error{display:block;margin:-10px 0 12px;font-size:12px;line-height:18px;color:var(--error)}.rb-field-error:empty{display:none}
.rb-step-head{justify-content:flex-start;align-items:center}
.rb-pin-note{margin:0 0 12px;font-size:12px;line-height:18px;color:var(--oc-orange-8);word-break:keep-all}.rb-pin-note:empty{display:none}
.rb-settings .inspector-section h4{margin:0 0 8px;font-size:13px;line-height:20px}
.rb-settings .inspector-section .inspector-text+h4,.rb-settings .inspector-section .field+h4{margin-top:16px}
.rb-settings .inspector-text{margin:0;font-size:13px;line-height:21px}
.rb-settings .inspector-text small,.rb-settings .inspector-note{display:block;margin-top:4px;font-size:12px;line-height:18px;color:var(--muted)}
.rb-tools{margin-top:12px}.rb-warn{margin:0;font-size:12px;line-height:18px;color:var(--oc-orange-8);word-break:keep-all}
.rb-prompt-wrap{position:relative}
.rb-prompt{min-height:132px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:14px;line-height:24px;white-space:pre-wrap;overflow-wrap:anywhere;outline:none}
.rb-prompt[contenteditable=true]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.rb-prompt:empty:before{content:attr(data-placeholder);color:var(--oc-gray-5)}
.rb-prompt .ref-chip{height:22px;margin:0 2px;padding:0 10px;vertical-align:baseline;user-select:all}
.rb-mention{position:absolute;left:0;right:0;top:100%;z-index:6;margin-top:4px;max-height:240px;overflow:auto;display:grid;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-float)}
.rb-mention button{padding:8px 10px;border:0;border-radius:6px;background:transparent;font:inherit;font-size:13px;text-align:left;cursor:pointer}
.rb-mention button.active,.rb-mention button:hover{background:var(--accent-soft);color:var(--oc-indigo-8)}
.rb-mention-empty,.rb-mention-hint{margin:0;padding:8px 10px;font-size:12px;line-height:18px;color:var(--muted);word-break:keep-all}
.rb-recv-list{display:grid;gap:8px}
.rb-recv{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:8px}
.rb-recv>div{min-width:0;display:grid;gap:2px}.rb-recv strong{font-size:13px}.rb-recv span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rb-recv .rb-pinned{font-size:12px;color:var(--accent)}.rb-recv .rb-released{font-size:12px;line-height:18px;color:var(--oc-orange-8);word-break:keep-all}
.rb-recv>.ui-button{flex:none}
.rb-needs{margin:0;padding-left:18px;font-size:13px;line-height:22px}
.rb-step-result{padding:8px 12px;border:1px solid var(--line-soft);border-radius:8px;font-size:13px}
.rb-step-result summary{cursor:pointer;font-weight:600}.rb-step-result.failed summary{color:var(--error)}
.rb-step-result pre{max-height:200px;overflow:auto;margin:8px 0 0}
.rb-busy{opacity:.7}
.rb-undo{position:absolute;left:50%;bottom:16px;z-index:7;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:8px;background:var(--oc-gray-9);color:#fff;font-size:13px;box-shadow:var(--shadow-float)}
.rb-undo:empty{display:none}
.rb-undo button{padding:0;border:0;background:transparent;color:var(--oc-indigo-2);font:inherit;font-weight:650;cursor:pointer}
.rb-chat .rb-pane-head{padding:20px 20px 0}
.rb-chat-agent{margin:8px 20px 0;font-size:12px;color:var(--muted)}
.rb-chat .chat-authoring-log{flex:1;min-height:0;max-height:none;overflow:auto;margin:0;padding:16px 20px;list-style:none;display:flex;flex-direction:column;gap:10px}
.rb-chat .chat-authoring-composer{flex:none;padding:12px 20px;border-top:1px solid var(--line-soft)}
.rb-chat-pick{display:grid;gap:8px;padding:16px 20px;font-size:13px}.rb-chat-pick .ui-button{justify-self:start}
.rb-first-edit p{margin:0 0 8px;font-size:13px;line-height:21px;word-break:keep-all}
.rb-first-edit p:first-child{font-weight:600}
.rb-first-edit .field{margin-top:16px}
.rb-inline{margin-top:16px;overflow:hidden;background:var(--surface);border:1px solid var(--line-soft);border-radius:12px}
.rb-inline .rb-root{height:min(720px,calc(100dvh - 240px));min-height:480px}
@media(max-width:1000px){.rb-body,.rb-body.with-chat{display:block;overflow:auto}.rb-flow,.rb-settings,.rb-chat{border-right:0;border-bottom:1px solid var(--line-soft)}.rb-scroll{overflow:visible}.rb-drawer{position:fixed;top:20%}.rb-chat .chat-authoring-log{max-height:320px}.rb-inline .rb-root{height:auto}}
/* 관리자(administration) 영역 정합 */
.notice .notice-lines{display:grid;gap:4px}
.notice .notice-lines p{margin:0}
.admin-bundle-picker{border:0;padding:0;margin:0 0 12px;display:grid;gap:6px}
.admin-bundle-picker legend{font-weight:600;margin-bottom:6px;padding:0}
.admin-bundle-picker label{display:flex;align-items:center;gap:8px}
.admin-bundle-picker small{color:var(--muted,#6b7280)}
.admin-perm-grid td{text-align:center}
.admin-perm-legend{font-size:13px;color:var(--muted,#6b7280);word-break:keep-all}
/* 테스트 정합(core): 진행 중 실행 알림은 누를 것이 없으므로 아래 확인창·시트의 버튼을 가리지 않게 한다 */
#toasts{pointer-events:none}#toasts>*{pointer-events:auto}#toasts>.run-toast.running{pointer-events:none}
/* 레시피 실행 화면 맨 아래 스케줄러·출처 접힌 줄 (run/execute/screens/recipe-run.md 「예약과 출처」) */
.recipe-tail{display:flex;flex-direction:column;border-top:1px solid var(--line);margin-top:var(--section-gap)}
.recipe-tail:empty{display:none}
.recipe-tail>.recipe-tail-item,.recipe-tail>.recipe-schedule-section{display:block;margin:0;padding:0;border-top:0;border-bottom:1px solid var(--line-soft)}
.recipe-tail-item>summary{display:flex;align-items:center;gap:12px;min-height:52px;cursor:pointer}
.recipe-tail-item .tail-title{font-weight:600;min-width:72px}
.recipe-tail-item .tail-line{flex:1;min-width:0;color:var(--muted);word-break:keep-all}
.recipe-tail-item .tail-alert{color:var(--error);font-weight:600;white-space:nowrap}
.recipe-tail-body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--content-gap);padding:4px 0 20px}
.recipe-tail-body>:is(p,h4,ul,.actions){margin:0}
.recipe-tail-body h4{font-size:14px}
.occurrence-list{list-style:none;padding:0;display:grid;gap:8px;width:100%}
.occurrence-list li{display:grid;grid-template-columns:minmax(120px,160px) 64px minmax(0,1fr) auto;gap:12px;align-items:center}
.occurrence-state.failed{color:var(--error);font-weight:600}
@media (max-width:640px){.occurrence-list li{grid-template-columns:1fr auto}}
/* 하단 실행 알림(최대 높이 약 100px)이 맨 아래 접힌 줄을 가리지 않게 스크롤 여유를 둔다 */
.recipe-tail{margin-bottom:112px}
/* 접힌 줄: 펼칠 수 있다는 화살표, 펼친 뒤 공통 summary 아래 여백(12px)은 받지 않는다 */
.recipe-tail-item>summary{padding:0;margin:0;list-style:none}
.recipe-tail-item>summary::-webkit-details-marker{display:none}
.recipe-tail-item>summary::after{content:'';flex:none;width:7px;height:7px;margin:0 6px 4px 0;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg);transition:transform .15s}
.recipe-tail-item[open]>summary{margin-bottom:0}
.recipe-tail-item[open]>summary::after{transform:rotate(-135deg);margin-bottom:-4px}
@media (prefers-reduced-motion:reduce){.recipe-tail-item>summary::after{transition:none}}
/* 에이전트 상세 Overview · Capabilities (리더십 피드백 2026-09-30) */
.overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--section-gap)}
.overview-grid>.overview-card{margin:0;padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--surface);display:flex;flex-direction:column;gap:var(--content-gap);min-width:0}
.overview-card>header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.overview-card>header h2{margin:0;font-size:15px;line-height:24px}
.overview-card>header p{margin:4px 0 0;flex-basis:100%;font-size:13px}
.overview-card>header a{font-size:13px;white-space:nowrap}
.overview-card>p{margin:0;word-break:keep-all}
.overview-persona{grid-column:1/-1}
.persona-quote{margin:0;padding:16px 20px;border:1px solid var(--line-soft);background:var(--oc-gray-0);border-radius:14px;white-space:pre-wrap;word-break:keep-all;line-height:1.7}
.overview-facts{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:0}
.overview-facts>div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;align-items:center}
.overview-facts dt{color:var(--muted);font-size:13px}.overview-facts dd{margin:0;min-width:0;word-break:keep-all}
.overview-count{font-weight:600}
.overview-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.overview-list li{display:grid;gap:2px;min-width:0}
.overview-list small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.overview-capability h3{margin:0 0 8px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px}
.overview-capability>p{margin:0}
.capability-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.capability-chips li{padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-size:13px;line-height:20px;background:var(--surface)}
.capability-chips li.muted{border-style:dashed}
.capability-tabs{margin:0 0 var(--section-gap)}
@media (max-width:900px){.overview-grid{grid-template-columns:minmax(0,1fr)}}
/* Scheduler 달력 (월·주) */
.schedule-calendar{display:flex;flex-direction:column;gap:var(--content-gap)}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.calendar-nav{display:flex;align-items:center;gap:8px}
.calendar-nav .icon-button{min-width:40px;justify-content:center;font-size:18px}
.calendar-title{margin:0 0 0 8px;font-size:18px;line-height:28px}
.calendar-legend{display:flex;gap:12px;font-size:12px;color:var(--muted);margin-left:auto}
.calendar-legend-item{display:inline-flex;align-items:center;gap:6px}
.calendar-legend-item::before{content:'';width:10px;height:10px;border-radius:3px;background:var(--cal-bg);border:1px solid var(--cal-line)}
.calendar-views{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.calendar-views a{padding:6px 16px;font-size:13px;color:var(--ink);text-decoration:none}
.calendar-views a+a{border-left:1px solid var(--line)}
.calendar-views a.active{background:var(--oc-gray-9);color:var(--oc-white,#fff)}
.calendar-event,.calendar-legend-item,.calendar-state{--cal-bg:var(--oc-indigo-0);--cal-line:var(--oc-indigo-3);--cal-ink:var(--oc-indigo-9)}
.succeeded{--cal-bg:var(--oc-teal-0);--cal-line:var(--oc-teal-2);--cal-ink:var(--oc-teal-9)}
.failed{--cal-bg:var(--oc-red-0);--cal-line:var(--oc-red-3);--cal-ink:var(--oc-red-9)}
.skipped,.cancelled{--cal-bg:var(--oc-gray-1);--cal-line:var(--oc-gray-3);--cal-ink:var(--oc-gray-7)}
.running{--cal-bg:var(--oc-orange-0);--cal-line:var(--oc-orange-3);--cal-ink:var(--oc-orange-9)}
.calendar-event{display:flex;align-items:center;gap:6px;width:100%;min-width:0;padding:2px 6px;border:1px solid var(--cal-line);border-radius:6px;background:var(--cal-bg);color:var(--cal-ink);font-size:12px;line-height:18px;text-align:left;cursor:pointer;box-shadow:none;min-height:0}
.calendar-event.skipped .calendar-event-name{text-decoration:line-through}
.calendar-event-time{flex:none;font-variant-numeric:tabular-nums;font-weight:600}
.calendar-event-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-event-state{flex:none;font-size:12px}
.calendar-state{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--cal-bg);color:var(--cal-ink);border:1px solid var(--cal-line);font-size:12px}
.calendar-month{border:1px solid var(--line);border-radius:10px;overflow:hidden}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-weekdays span{padding:8px 10px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line);background:var(--oc-gray-0)}
.sunday{color:var(--oc-red-7)!important}.saturday{color:var(--oc-indigo-7)!important}
.calendar-day{min-height:112px;padding:6px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);display:flex;flex-direction:column;gap:4px;min-width:0}
.calendar-day:nth-child(7n){border-right:0}
.calendar-day.other-month{background:var(--oc-gray-0)}.calendar-day.other-month .calendar-date{color:var(--oc-gray-5)}
.calendar-date{font-size:12px;font-weight:600;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}
.calendar-day.today .calendar-date{background:var(--oc-gray-9);color:var(--oc-white,#fff)}
.calendar-more{align-self:flex-start;padding:0 4px;border:0;background:none;color:var(--muted);font-size:12px;cursor:pointer;box-shadow:none;min-height:0}
.calendar-week{border:1px solid var(--line);border-radius:10px;overflow:hidden}
.calendar-week-head{display:grid;grid-template-columns:56px repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line);background:var(--oc-gray-0)}
.calendar-week-head span{display:flex;flex-direction:column;align-items:center;padding:6px 0;font-size:12px;color:var(--muted)}
.calendar-week-head strong{font-size:16px;color:var(--ink)}
.calendar-week-head span.today strong{background:var(--oc-gray-9);color:var(--oc-white,#fff);border-radius:50%;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center}
.calendar-week-body{height:560px;overflow-y:auto}
.calendar-week-grid{position:relative;display:grid;grid-template-columns:56px repeat(7,minmax(0,1fr));height:1152px;background:repeating-linear-gradient(to bottom,var(--line-soft) 0 1px,transparent 1px 48px)}
.calendar-hours{position:relative}
.calendar-hour{position:absolute;right:8px;transform:translateY(-50%);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.calendar-hour:first-child{transform:none}
.calendar-column{position:relative;border-left:1px solid var(--line-soft)}
.calendar-column.today{background:color-mix(in srgb,var(--oc-indigo-0) 45%,transparent)}
.calendar-event.timed{position:absolute;height:40px;flex-direction:column;align-items:flex-start;justify-content:center;gap:0}
.calendar-detail{display:grid;gap:10px;margin:0}
.calendar-detail>div{display:grid;grid-template-columns:88px minmax(0,1fr);gap:12px;align-items:center}
.calendar-detail dt{color:var(--muted);font-size:13px}.calendar-detail dd{margin:0}
.calendar-detail-actions{margin-top:var(--content-gap);flex-wrap:wrap}
.calendar-day-list{display:grid;gap:6px}
.calendar-day-list .calendar-event{padding:8px 10px;font-size:13px}
@media (max-width:760px){.calendar-day{min-height:72px}.calendar-legend{display:none}}
/* 달력 도구줄·회차 창의 링크 버튼은 일반 버튼과 같은 모양이다 */
.calendar-nav a.ui-button,.calendar-detail-actions a.ui-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);text-decoration:none;box-shadow:var(--shadow-control)}
.calendar-nav a.ui-button:hover,.calendar-detail-actions a.ui-button:hover{background:var(--oc-gray-0);border-color:var(--oc-gray-4)}
.calendar-nav a.icon-button{padding:8px 0;width:40px}
.schedule-calendar{margin:0}
.overview-card>header>div{min-width:0}
/* Capabilities 목록·상세 시트 (디자인 검토 2026-09-30 6-4·5-22·5-25·6-8) */
.badge.warning{color:var(--oc-gray-9);background:var(--oc-orange-0)}
.badge.warning:before{background:var(--oc-orange-7)}
.type-tool{background:var(--oc-gray-0);color:var(--oc-gray-8);border-color:var(--line)}
.capability-list .table-wrap{margin:0}
.cap-name{display:flex;align-items:center;gap:12px;min-width:0}
.cap-name .type-symbol{position:static;width:32px;height:32px;border-radius:8px}
.cap-name>div{display:flex;flex-direction:column;min-width:0}
.cap-name small{color:var(--muted);font-size:12px;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:420px}
.link-button{min-height:0;padding:0;border:0;background:none;box-shadow:none;color:var(--text);font-weight:600;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.link-button:hover{background:none;text-decoration:underline}
.cap-uses{white-space:nowrap}
.cap-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}
.cap-actions .ui-button{min-height:32px;padding:4px 12px}
.row-menu{margin:0}
.row-menu>summary{padding:4px 10px;min-height:32px;display:flex;align-items:center}
.row-menu>div{display:flex;flex-direction:column;gap:4px}
.row-menu>div .ui-button{width:100%;text-align:left;border:0;box-shadow:none;margin:0}
.capability-tabs a{position:relative}
.tab-alert{display:inline-block;width:7px;height:7px;margin-left:6px;border-radius:50%;background:var(--oc-orange-7);vertical-align:middle}
.cap-warning{display:flex;align-items:flex-start;gap:8px;margin:0 0 var(--content-gap)}
.cap-warning p{margin:0;word-break:keep-all}
.cap-detail{display:flex;flex-direction:column;gap:20px}
.cap-detail>p{margin:0;word-break:keep-all}
.cap-detail-head{display:flex;align-items:center;gap:12px}
.cap-detail-head .type-symbol{position:static;width:36px;height:36px}
.cap-detail-head p{margin:0;color:var(--muted);font-size:13px}
.cap-detail section h3{margin:0 0 8px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px}
.cap-detail section>p{margin:0}
.cap-fields{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cap-fields li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:8px}
.cap-fields li .badge{margin:0}
.cap-source{margin:0}
.cap-source pre{max-height:320px;overflow:auto}
.cap-detail-actions{margin-top:24px}
/* 표 안 버튼 공통 규칙(:is(td,…,.editor-flow .actions) button)이 (0,2,1)이라 한 단계 더 구체적으로 적는다 */
.capability-list .cap-name .link-button{margin:0;padding:0;min-width:0;min-height:0;font-size:14px;line-height:22px;border:0;border-radius:0;background:none;box-shadow:none}
.overlay footer .cap-remove{margin-right:auto}
.capability-chips li.chip-warning{border-color:var(--oc-orange-3);background:var(--oc-orange-0)}
.capability-chips li.chip-warning::before{content:'';display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:var(--oc-orange-7);vertical-align:middle}
.overview-warning{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;color:var(--text)}
.overview-warning .icon{color:var(--oc-orange-7);width:16px;height:16px}
/* Agents 목록은 Work·Agent Market과 같은 카드 목록을 쓴다. 카드 전체가 링크라 바닥 버튼만 링크 위로 올린다 */
.agent-card footer,.agent-card .entity-card-top-actions{position:relative;z-index:1}
.agent-card .entity-card-meta{margin-bottom:revert}
.agent-card .agent-card-state .badge{margin:0}
.agent-card .entity-kind{white-space:nowrap}
.agent-card-state{flex-wrap:nowrap}
/* 로그인·가입 화면: 카드 하나를 좌우로 나눈다. 왼쪽은 어두운 온보딩 패널(auth-showcase.js, GSAP), 오른쪽은 입력 폼 (2026-09-30) */
.auth-page{align-items:center;padding:40px 24px;background:var(--bg)}
.auth-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;max-width:1200px;min-height:680px;border-radius:20px;overflow:hidden;background:var(--surface);box-shadow:0 24px 64px rgba(16,18,40,.12)}
.auth-main{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 48px}
.auth-main>.auth-panel{max-width:420px;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent}
.auth-main>.auth-panel .auth-head{text-align:center}
.auth-showcase{--sc-ink:#e9e7ff;--sc-muted:#a9a4d6;--sc-line:rgba(151,117,250,.55);--sc-node:#2a2b2f;--sc-accent:#845ef7;position:relative;display:flex;flex-direction:column;justify-content:center;gap:28px;padding:48px 40px;color:var(--sc-ink);background-color:#1f2023;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:32px 32px}
.sc-stage{position:relative;width:100%;max-width:520px;margin:0 auto;aspect-ratio:520/400}
.sc-scene{position:absolute;inset:0}
.sc-scene[hidden]{display:none}
.sc-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.sc-line{fill:none;stroke:var(--sc-line);stroke-width:1.5}
.sc-runner{fill:#b197fc;filter:drop-shadow(0 0 6px #9775fa)}
.sc-pos{position:absolute;transform:translate(-50%,-50%)}
.sc-node{display:flex;flex-direction:column;align-items:center;gap:8px}
.sc-node-icon{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--sc-node);border:1px solid rgba(151,117,250,.35);color:#b197fc;box-shadow:0 6px 18px rgba(0,0,0,.35)}
.sc-node-icon .icon{width:22px;height:22px}
.sc-node-label{font-size:12px;line-height:16px;color:var(--sc-muted);white-space:nowrap}
.sc-core .sc-node-icon{width:96px;height:96px;background:radial-gradient(circle at 35% 30%,#9775fa,#6741d9);border:0;color:#fff;box-shadow:0 0 0 10px rgba(132,94,247,.16),0 12px 32px rgba(103,65,217,.5)}
.sc-core .sc-node-icon .icon{width:40px;height:40px}
.sc-step .sc-node-icon{border-radius:14px;transition:background .3s,color .3s,border-color .3s}
.sc-step.lit .sc-node-icon{background:var(--sc-accent);border-color:var(--sc-accent);color:#fff}
.sc-step.lit .sc-node-label{color:var(--sc-ink)}
.sc-result{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;background:var(--sc-node);border:1px solid rgba(151,117,250,.45);box-shadow:0 8px 24px rgba(0,0,0,.35)}
.sc-result .sc-node-icon{width:36px;height:36px;border-radius:10px;background:#34353a}
.sc-result strong{display:block;font-size:13px;line-height:18px;color:#fff}
.sc-result small{font-size:11px;line-height:16px;color:#96f2d7}
.sc-bars{display:flex;justify-content:center;gap:10px}
.sc-bar{position:relative;width:48px;min-height:0;height:12px;padding:0;border:0;background:none;box-shadow:none;cursor:pointer}
.sc-bar:hover{background:none}
.sc-bar::before,.sc-bar span{content:'';position:absolute;left:0;right:0;top:50%;height:3px;margin-top:-1.5px;border-radius:2px}
.sc-bar::before{background:rgba(255,255,255,.22)}
.sc-bar span{background:#fff;transform:scaleX(0);transform-origin:left center}
.sc-bar.done span,.sc-static .sc-bar[aria-selected=true] span{transform:scaleX(1)}
.sc-bar:focus-visible{outline:2px solid #b197fc;outline-offset:2px}
.sc-copy{text-align:center;max-width:400px;margin:0 auto}
.sc-copy h2{margin:0 0 8px;font-size:20px;line-height:28px;font-weight:650;color:#fff;word-break:keep-all}
.sc-copy p{margin:0;font-size:14px;line-height:22px;color:var(--sc-muted);word-break:keep-all}
@media (max-width:960px){.auth-shell{grid-template-columns:minmax(0,1fr);min-height:0}.auth-showcase{display:none}.auth-main{padding:40px 24px}}
.sc-result strong,.sc-result small{white-space:nowrap}
/* 아이콘 원의 가운데가 연결선 좌표에 오도록 이름표는 원 아래에 띄운다 */
.sc-node{position:relative}
.sc-node-label{position:absolute;top:100%;left:50%;margin-top:8px;transform:translateX(-50%)}
/* 로그인·가입: 머리 줄 없이 창 크기에 맞춘다. 페이지는 스크롤하지 않고, 폼이 길면(회원가입) 오른쪽 폼 영역 안에서만 스크롤한다 */
.auth-page{position:fixed;inset:0;z-index:1;min-height:0;height:100vh;height:100dvh;padding:24px;overflow:hidden;align-items:center}
.auth-shell{height:min(760px,100%);min-height:0}
.auth-main{justify-content:flex-start;overflow-y:auto;overflow-x:hidden;padding:48px 48px 40px;scrollbar-gutter:stable both-edges}
.auth-main>.auth-panel,.auth-main>.auth-logo{margin-top:auto}
.auth-main>:last-child{margin-bottom:auto}
.auth-logo{display:flex;align-items:center;gap:10px;margin-bottom:32px;color:var(--ink);text-decoration:none;flex:none}
.auth-logo:hover{text-decoration:none}
.auth-logo img{display:block;width:140px;height:21px;filter:brightness(0)}
.auth-logo span{font-size:17px;line-height:22px;font-weight:650;letter-spacing:-.5px}
.auth-main>.auth-panel{margin-top:0;flex:none;width:100%}
.sc-stage{width:min(100%,520px,calc((100dvh - 360px)*1.3))}
.auth-showcase{padding:40px;gap:24px;overflow:hidden}
@media (max-width:960px){.auth-page{padding:16px}.auth-shell{height:100%}.auth-main{padding:32px 20px}}
/* 장면은 사용자가 넘긴다: 진행 막대는 지금 장면까지 채우고, 패널에 스크롤 안내를 둔다 */
.sc-bar span{transition:transform .35s ease}
.auth-showcase:focus-visible{outline:2px solid #b197fc;outline-offset:-4px}
.sc-hint{position:absolute;right:24px;bottom:20px;font-size:11px;color:rgba(233,231,255,.45)}
/* 장면 넘기기: 패널 위쪽의 반투명 알약 하나에 ← 01 / 03 → (2026-09-30) */
.sc-pager{position:absolute;top:24px;right:24px;z-index:2;display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.sc-arrow{width:32px;height:32px;min-height:0;padding:0;border:0;border-radius:999px;background:transparent;color:#e9e7ff;box-shadow:none;display:inline-grid;place-items:center;cursor:pointer;transition:background .2s,color .2s,transform .2s}
.sc-arrow svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sc-arrow:hover:not(:disabled){background:rgba(151,117,250,.35);color:#fff}
.sc-arrow[data-sc-prev]:hover:not(:disabled){transform:translateX(-2px)}
.sc-arrow[data-sc-next]:hover:not(:disabled){transform:translateX(2px)}
.sc-arrow:disabled{color:rgba(233,231,255,.25);background:transparent;cursor:default}
.sc-arrow:focus-visible{outline:2px solid #b197fc;outline-offset:1px}
.sc-count{display:inline-flex;align-items:baseline;gap:4px;padding:0 6px;font-size:12px;letter-spacing:.08em;color:rgba(233,231,255,.5);font-variant-numeric:tabular-nums}
.sc-count strong{font-size:13px;font-weight:650;color:#fff}
/* 온보딩 다시 그리기 (2026-10-01): 패널의 먹색 격자에 맞춰 보라 대신 무채색 타일·흰 빛으로 그린다. 카드 뒤는 흐린 사무실 풍경 */
.auth-showcase{--sc-ink:#f1f3f5;--sc-muted:#9ea3ad;--sc-line:rgba(255,255,255,.2);--sc-node:#2a2c31;--sc-accent:#f8f9fa;background-color:#1f2023;background-image:radial-gradient(ellipse 70% 55% at 50% 42%,rgba(255,255,255,.07),transparent 70%),linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:auto,32px 32px,32px 32px;background-position:center,-1px -1px,-1px -1px}
.sc-line{stroke-width:1.25}
.sc-flow{fill:none;stroke:rgba(255,255,255,.85);stroke-width:1.5;stroke-linecap:round;stroke-dasharray:.07 .93;animation:sc-flow 2.4s linear infinite;filter:drop-shadow(0 0 3px rgba(255,255,255,.7))}
@keyframes sc-flow{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.sc-runner{fill:#fff;filter:drop-shadow(0 0 6px rgba(255,255,255,.8))}
.sc-node-icon{border-radius:12px;background:var(--sc-node);border:1px solid rgba(255,255,255,.12);color:#dee2e6;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 8px 20px rgba(0,0,0,.35)}
.sc-core .sc-node-icon{width:88px;height:88px;border-radius:24px;background:linear-gradient(160deg,#fff,#dee2e6);border:0;color:#1f2023;box-shadow:0 0 0 10px rgba(255,255,255,.05),0 16px 40px rgba(0,0,0,.5)}
.sc-core .sc-node-icon .icon{width:38px;height:38px}
.sc-step .sc-node-icon{border-radius:12px}
.sc-step.lit .sc-node-icon{background:#f8f9fa;border-color:#f8f9fa;color:#1f2023;box-shadow:0 0 0 6px rgba(255,255,255,.08),0 8px 20px rgba(0,0,0,.35)}
.sc-result{background:var(--sc-node);border:1px solid rgba(255,255,255,.16)}
.sc-result .sc-node-icon{background:#34363c;box-shadow:none}
.sc-result small{color:#8ce99a}
.sc-bar:focus-visible,.sc-arrow:focus-visible,.auth-showcase:focus-visible{outline-color:rgba(255,255,255,.7)}
.sc-arrow{color:#e9ecef}.sc-arrow:hover:not(:disabled){background:rgba(255,255,255,.14)}.sc-arrow:disabled{color:rgba(233,236,239,.25)}
.sc-count{color:rgba(233,236,239,.5)}
@media (prefers-reduced-motion:reduce){.sc-flow{animation:none;stroke-dasharray:none;stroke:rgba(255,255,255,.35);filter:none}}
.auth-page{background:#eceef1 url(assets/auth/office.svg?v=20261001-2) center bottom/cover no-repeat}
.auth-shell{position:relative;box-shadow:0 32px 80px rgba(16,18,40,.28),0 2px 8px rgba(16,18,40,.08)}
/* 로그인 방식 탭 (2026-10-01): 라디오를 탭처럼 보이고, 고른 쪽 구역만 보인다. 두 구역을 한 칸에 겹쳐 높은 쪽 높이로 고정해, 탭을 바꿔도 카드 내용이 위아래로 움직이지 않는다 */
.auth-method-stack{display:grid}
/* 로그인 화면의 로고 (2026-10-01 사용자 요청): 탭·폼은 「로고 30px + 간격 48px + 폼」 묶음을 세로 가운데에 둔 자리에 그대로 두고, 로고만 카드 위 끝과 탭 사이의 세로 가운데에 놓는다.
   로고 칸은 78px 을 기본으로, 맨 아래 빈 칸은 0 을 기본으로 남는 높이를 똑같이 나눠 가진다 */
.auth-main:has(.auth-methods){padding-top:0;padding-bottom:0}
.auth-main:has(.auth-methods)>.auth-logo{flex:1 1 78px;margin:0}
.auth-main:has(.auth-methods)>.auth-panel{margin-bottom:0}
.auth-main:has(.auth-methods):after{content:"";flex:1 1 0}
.auth-main:has(.auth-methods)>.auth-logo img{width:200px;height:30px}
.auth-main:has(.auth-methods)>.auth-logo span{font-size:24px;line-height:30px}
/* 로그인 화면은 제목을 보이지 않고 화면 낭독기에만 읽힌다 (2026-10-01 사용자 요청). .sr-only 와 같은 값이다 */
.auth-panel:has(>.auth-methods)>.auth-head{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.auth-method-stack>.auth-method{grid-area:1/1}
.auth-methods{display:flex;margin-bottom:24px;border-bottom:1px solid var(--line)}
.auth-methods label{position:relative;flex:1;text-align:center;cursor:pointer}
.auth-methods input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.auth-methods span{display:block;margin-bottom:-1px;padding:10px 0;border-bottom:2px solid transparent;color:var(--muted);font-size:14px;font-weight:600}
.auth-methods input:checked+span{color:var(--ink);border-color:var(--ink)}
.auth-methods input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.auth-panel:has([name=login-method][value=email]:checked) [data-method=sso],.auth-panel:has([name=login-method][value=sso]:checked) [data-method=email]{visibility:hidden}
.auth-sso-empty{margin:8px 0 0;padding:16px;border-radius:8px;background:var(--bg);color:var(--muted);font-size:13px;line-height:20px;text-align:center;word-break:keep-all}
/* GNB·LNB: 약간 푸른 기의 먹색 틀 (2026-09-30). 본문·팝업은 밝게 둔다. 같은 선택자를 뒤에 두어 앞의 화면 폭별 규칙보다 우선한다 */
:root{--chrome-bg:#1f2023;--chrome-raised:#2a2b2f;--chrome-hover:rgba(255,255,255,.06);--chrome-line:rgba(255,255,255,.08);--chrome-text:#d4d4d8;--chrome-muted:#8e8f96;--chrome-accent:#91a7ff}
.topbar{background:var(--chrome-bg);border-bottom:1px solid var(--chrome-line);color:var(--chrome-text)}
.topbar .brand{color:#fff}
.topbar .brand-logo{filter:brightness(0) invert(1)}
.topbar .brand small{color:var(--chrome-text);border-color:rgba(255,255,255,.18)}
.topbar .secondary{color:var(--chrome-muted)}
.topbar button.account-link{color:#e8e9f0;border-radius:999px}
.topbar button.account-link:hover{background:var(--chrome-hover)}
.topbar .avatar{background:rgba(145,167,255,.16);color:#c5d0ff;border-color:rgba(145,167,255,.28)}
.sidebar{background:var(--chrome-bg);border-right:1px solid var(--chrome-line);color-scheme:dark}
.sidebar .group{color:#8a8ea0;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.sidebar a{color:var(--chrome-text)}
.sidebar a .icon{color:var(--chrome-muted)}
.sidebar a:hover{background:var(--chrome-hover);color:#fff}
.sidebar a:hover .icon{color:#c7c9d4}
/* 선택 표시는 왼쪽 선 없이 은은하게 밝은 면으로만 한다(사용자 선호, 2026-09-30) */
.sidebar a.active{background:rgba(255,255,255,.09);color:#fff;font-weight:600;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.sidebar a.active .icon{color:var(--chrome-accent)}
.sidebar a:focus-visible{outline:2px solid var(--chrome-accent);outline-offset:-2px}
.sidebar .muted{color:var(--chrome-muted)}
.workspace-context{border-bottom-color:var(--chrome-line)}
#workspace-switch{background:var(--chrome-raised);border:1px solid var(--chrome-line);color:#fff;box-shadow:none}
#workspace-switch:hover{background:var(--chrome-raised);border-color:rgba(255,255,255,.12)}
.workspace-symbol{color:var(--chrome-accent)}
.workspace-current small{color:var(--chrome-muted)}
.workspace-current strong{color:#fff}
#workspace-switch>span:last-child{color:var(--chrome-muted)}
/* 달력은 창 아래 끝까지 남은 높이를 쓴다: 월 보기는 줄 높이를 나눠 갖고, 주 보기는 스크롤 영역이 늘어난다 (2026-09-30) */
.calendar-days{grid-auto-rows:minmax(96px,1fr)}
.calendar-day{min-height:0;overflow:hidden}
.calendar-week-body{height:auto}
/* market area (2026-09-30): 레시피 카드 발행 배지·소유자 줄, 공유 관리 창의 「마켓에서 내리기」 */
.entity-kind .recipe-publish{margin-left:6px;vertical-align:middle}
.badge.recipe-publish.is-published{background:#e4f8f0;color:#067d59}
.badge.recipe-publish.is-published:before{background:#12b886}
.badge.recipe-publish.is-unpublished{gap:4px}
.badge.recipe-publish.is-unpublished:before{display:none}
.badge.recipe-publish .icon{width:12px;height:12px;stroke-width:2}
.entity-card footer .entity-owner{display:inline-flex;align-items:center;gap:8px;min-width:0;flex:1 1 auto;margin-right:auto;font-size:13px;color:var(--oc-gray-8)}
.entity-card footer .entity-owner.muted{color:var(--oc-gray-6)}
.entity-owner .avatar{width:24px;height:24px;flex:none;font-size:11px}
.entity-owner-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.overlay footer .share-manage-delete:has(+.share-manage-unlist){margin-right:0}
.overlay footer .share-manage-unlist{margin-right:auto}
/* workspace: 초대 방법(회원 찾아 초대 · 이메일로 초대) — invitations-and-roles 누가 누구를 부르나 (Plan f97fd2a3) */
.team-invite .invite-method{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 20px;margin:0;padding:0;border:0}
.team-invite .invite-method legend{width:100%;margin-bottom:4px;padding:0;font-size:13px;color:var(--muted)}
.team-invite .invite-method label{display:inline-flex;align-items:center;gap:6px;font-size:14px}
.team-invite [data-invite-by][hidden]{display:none}
.invite-pick-count{margin:4px 0 0;font-size:13px;color:var(--muted)}
.invite-pick-count:empty{display:none}
.invite-pick-empty{margin:8px 0 0;font-size:13px}
.invite-pick-list{list-style:none;margin:8px 0 0;padding:0 12px;border:1px solid var(--line-soft);border-radius:8px;max-height:260px;overflow:auto}
.invite-pick-list li{display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:12px;align-items:center;min-height:52px;padding:6px 0}
.invite-pick-list li+li{border-top:1px solid var(--line-soft)}
.invite-pick-list label{display:flex;flex-direction:column;min-width:0}
.invite-pick-list label strong{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.invite-pick-list label small{color:var(--muted);font-size:12px}
.invite-pick-list .field-error{grid-column:2}
/* workspace: 팀 홈은 공지 패널을 뺐다(Plan ef7fd8d1). 최근 프로젝트 패널이 한 단으로 선다 */
.team-home-summary+.team-home-panel{margin-bottom:0}
/* run-agent: 실행 내역·웹챗이 작업공간 자리를 바꾸고 위쪽 버튼으로 돌아간다(Plan #55). 돌아가기 화살표는 왼쪽을 가리킨다 */
.workspace-back .icon{transform:scaleX(-1)}
.chat-header>.workspace-back{margin-left:0;margin-right:4px;flex:none}
/* run-agent: 웹챗 회원 말풍선의 보낸 사람(나 · 회원 이름 · 알 수 없는 멤버) */
.message-meta .message-sender{font-weight:600}
/* run-agent: 실행 상세 실패 단계 아래의 다음 행동 하나와 접힌 기술 원문(run-detail-sheet.md 다음 행동) */
.flow-node .next-action{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:8px 0 0;font-size:13px}
.flow-node .next-action p{margin:0;flex:1 1 220px;word-break:keep-all}
.flow-node .next-action-note{flex-basis:100%;color:var(--muted);font-size:12px}
.flow-node .step-raw{border-top:1px solid var(--line-soft);margin:12px 0 0}
.flow-node .step-raw summary{font-size:12px;padding:10px 0;cursor:pointer}
.flow-node .step-raw .code{margin:0;font-size:12px;white-space:pre-wrap;word-break:break-word}
.flow-node:focus{outline:none}
.flow-node.flow-node-target{box-shadow:0 0 0 2px var(--accent)}
/* run-agent: 기본 도구 상세의 도구 정보 */
.cap-facts{display:grid;gap:8px;margin:0}
.cap-facts>div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;align-items:center}
.cap-facts dt{color:var(--muted);font-size:13px}
.cap-facts dd{margin:0;min-width:0;word-break:break-all}
/* workspace: 초대 방법 라디오는 글자 입력 칸 모양을 받지 않는다 */
.team-invite .invite-method input[type=radio]{width:16px;height:16px;min-height:0;margin:0;padding:0;border:0;border-radius:50%;box-shadow:none;accent-color:var(--primary,#3b5bdb)}
.invite-pick-list label{margin-bottom:0;font-weight:400}.team-invite .invite-method label{margin-bottom:0;font-weight:400}
/* account-admin (2026-09-30): ① IdP 연결 — 구성 폼은 목록 아래에 펼치고, 프로토콜·그룹 조회 방식에 따라 칸을 바꾼다 (signup/screens/auth-settings.md) */
.idp-config-form{margin-top:16px;padding:16px;border:1px solid var(--line,#e5e7eb);border-radius:8px;display:grid;gap:12px}
.idp-config-form h3{margin:0}
.idp-config-form .actions{display:flex;gap:8px;justify-content:flex-end}
.idp-config-form fieldset.idp-sync{border:1px solid var(--line,#e5e7eb);border-radius:8px;padding:12px;display:grid;gap:12px}
.idp-config-form[data-protocol="oidc"] .idp-ldap-only,.idp-config-form[data-protocol="none"] .idp-ldap-only{display:none}
.idp-config-form[data-protocol="ldap"] .idp-oidc-only{display:none}
.idp-config-form[data-protocol="none"] label .idp-ldap-only{display:none}
.idp-config-form[data-protocol="none"] p.idp-oidc-only{display:none}
.idp-config-form[data-group-mode="attribute"] .idp-group-base{display:none}
.idp-config-form .form-error:empty{display:none}
.idp-row-error{display:block;color:var(--danger,#b42318);margin-top:4px}
/* account-admin (2026-09-30): ⑤ 시스템 자산 — 자산 찾기·쪽 넘김, 기본 도구 탭은 목록과 폼을 나란히 (system-assets/screens/system-assets.md) */
.asset-find{margin:12px 0}
.asset-find h3{margin:0 0 8px;font-size:14px}
.asset-find-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.asset-filter{display:grid;gap:4px;font-size:13px}
.asset-filter input,.asset-filter select{min-width:160px}
.asset-pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px}
.system-tools-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);gap:16px;align-items:start}
@media (max-width:1100px){.system-tools-layout{grid-template-columns:1fr}}
.system-tool-form{display:grid;gap:12px}
.system-tool-form .actions{display:flex;gap:8px;justify-content:flex-end}
.system-tool-form .form-error:empty{display:none}
/* account-admin (2026-09-30): ④ 마켓 심사 자산 상세의 「자산 내용」 (market-review/screens/admin-market-review.md) */
details.asset-content{border:1px solid var(--line,#e5e7eb);border-radius:8px;padding:8px 12px;margin:8px 0}
details.asset-content>summary{cursor:pointer;font-weight:600}
details.asset-content .content-version{display:flex;gap:8px;align-items:center;margin:8px 0}
.content-steps{list-style:none;padding:0;margin:8px 0;display:grid;gap:8px}
.content-step{border:1px solid var(--line,#e5e7eb);border-radius:6px;padding:8px 10px}
.content-step p{margin:4px 0}
/* account-admin (2026-09-30): 로그인 카드의 「알림과 초대를 받을 이메일」 (login-and-recovery/screens/login.md) */
#sso-email,#sso-link{display:grid;gap:10px}
#sso-email .auth-sso-actions{display:flex;gap:8px;flex-wrap:wrap}
#sso-email>.ui-button,#sso-link>.ui-button{width:100%;justify-content:center}
/* 색 톤 시안 (2026-09-30): 참고 스크린샷(tiimi 직원 상세) 톤. 먹색 GNB 한 줄 + 흰 LNB + 옅은 회청색 바탕. 2026-10-01: 먹색과 강조색을 중성 검정(#1f2023)으로 통일.
   강조색은 --accent와 인디고 단계(--oc-indigo-0~9)를 검정 기반 회색 단계로 바꿔 끼워, 인디고를 직접 쓰던 규칙도 함께 바뀐다. 이 블록을 지우면 앞의 먹색 틀·인디고로 돌아간다 */
:root{
 --oc-indigo-0:#f4f4f5;--oc-indigo-1:#e4e4e7;--oc-indigo-2:#d4d4d8;--oc-indigo-3:#a1a1aa;--oc-indigo-4:#71717a;
 --oc-indigo-5:#52525b;--oc-indigo-6:#3f3f46;--oc-indigo-7:#1f2023;--oc-indigo-8:#34353a;--oc-indigo-9:#111113;
 --accent:#1f2023;--accent-hover:#34353a;--accent-soft:#f1f1f3;
 --bg:#f4f5f9;--line-soft:#e9eaee;--line:#dcdfe5;
 --chrome-bg:#1f2023;--chrome-line:rgba(255,255,255,.08);--chrome-accent:#e4e4e7;
 --nav-text:#4d5867;--nav-muted:#8b93a1;--nav-hover:#f4f5f9;--nav-active:#eef1f5
}
.topbar .avatar{background:rgba(255,255,255,.16);color:#e4e4e7;border-color:rgba(255,255,255,.3)}
.sidebar{background:var(--surface);border-right:1px solid var(--line-soft);color-scheme:light}
.sidebar .group{color:var(--nav-muted)}
.sidebar a{color:var(--nav-text)}
.sidebar a .icon{color:var(--nav-muted)}
.sidebar a:hover{background:var(--nav-hover);color:var(--ink)}
.sidebar a:hover .icon{color:var(--nav-text)}
.sidebar a.active{background:var(--nav-active);color:var(--ink);box-shadow:none}
.sidebar a.active .icon{color:var(--ink)}
.sidebar a:focus-visible{outline-color:var(--accent)}
.sidebar .muted{color:var(--nav-muted)}
.workspace-context{border-bottom-color:var(--line-soft)}
#workspace-switch{background:var(--surface);border:1px solid var(--line-soft);color:var(--ink);box-shadow:var(--shadow-control)}
#workspace-switch:hover{background:var(--nav-hover);border-color:var(--line)}
.workspace-symbol{color:var(--accent)}
.workspace-current small,#workspace-switch>span:last-child{color:var(--nav-muted)}
.workspace-current strong{color:var(--ink)}
.tabs a.active{color:var(--ink);border-color:var(--ink)}
/* 첫 진입 안내 팝업 (2026-09-30 시안, js/welcome-guide.js): 사용자 콘솔에 처음 들어올 때 한 번. 상단 바와 같은 먹색 판(청록 빛)에 「가상의 직원」 설명과 여러 업무를 맡은 에이전트 그림 */
.welcome-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:32px;background:rgba(17,18,20,.56);backdrop-filter:blur(2px);animation:welcome-fade .2s ease-out}
body.welcome-open{overflow:hidden}
.welcome-guide{width:min(1080px,100%);max-height:calc(100dvh - 64px);overflow:auto;border-radius:16px;box-shadow:0 24px 64px rgba(0,0,0,.4)}
.welcome-close{position:absolute;top:16px;right:16px;z-index:1;display:inline-grid;place-items:center;width:36px;height:36px;min-height:0;padding:0;border:0;border-radius:8px;background:transparent;color:#aab0bd;box-shadow:none}
.welcome-close:hover{background:rgba(255,255,255,.08);color:#fff}
.welcome-close:focus-visible{outline:2px solid #d4d4d8;outline-offset:0}
.welcome-hide{position:absolute;right:40px;bottom:40px;z-index:1;display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#aab0bd;cursor:pointer;user-select:none}
.welcome-hide input{width:16px;height:16px;min-height:0;margin:0;padding:0;accent-color:#d4d4d8;box-shadow:none}
.welcome-hide:hover{color:#e8ebf0}
/* 팝업 안에서는 그림 칸을 넓히고 노드·가운데 원을 키운다 */
.welcome-guide .ob-hero{grid-template-columns:minmax(0,1fr) minmax(300px,46%);padding:40px}
.welcome-guide .ob-copy{gap:22px}
/* 채용하기 버튼은 설명과 간격을 더 두고, 오른쪽 아래 「다시 보지 않기」는 버튼의 아래 끝선에 맞춘다 */
.welcome-guide .ob-actions{margin-top:42px}
.welcome-guide .ob-steps{margin-top:22px;gap:24px}
.welcome-guide .ob-steps strong{margin-bottom:4px}
.welcome-guide .ob-node-icon{width:64px;height:64px;border-radius:16px}
.welcome-guide .ob-node-icon .icon{width:26px;height:26px}
.welcome-guide .ob-node-label{margin-top:10px;font-size:13px}
.welcome-guide .ob-core{width:120px;height:120px}
.welcome-guide .ob-core .icon{width:50px;height:50px}
.welcome-guide .ob-core-tag{margin-top:16px;font-size:13px}
@media(max-width:1100px){.welcome-guide .ob-hero{grid-template-columns:minmax(0,1fr) minmax(260px,44%)}.welcome-guide .ob-node-icon{width:52px;height:52px;border-radius:14px}.welcome-guide .ob-core{width:96px;height:96px}.welcome-guide .ob-core .icon{width:40px;height:40px}}
.welcome-reason{flex-basis:100%;color:#aab0bd;font-size:13px;line-height:20px}
.ob-actions button.primary:disabled{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.12);color:#8b93a1;box-shadow:none}
@keyframes welcome-fade{from{opacity:0}}
@media(prefers-reduced-motion:reduce){.welcome-backdrop{animation:none}}
.ob-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,min(560px,38%));align-items:center;gap:24px;padding:48px;border-radius:16px;color:#e8ebf0;
 background:radial-gradient(520px 320px at 78% 50%,rgba(255,255,255,.06),transparent 70%),radial-gradient(360px 240px at 0% 100%,rgba(255,255,255,.03),transparent 70%),var(--chrome-bg,#1f2023)}
.ob-hero:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(90deg,transparent 20%,#000 70%)}
.ob-copy{position:relative;display:grid;justify-items:start;gap:14px}
.ob-eyebrow{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);color:#e4e4e7;font-size:12px;font-weight:600}
.ob-copy h2{margin:0;max-width:16em;text-wrap:balance;font-size:32px;line-height:42px;font-weight:700;letter-spacing:-.02em;color:#fff;word-break:keep-all}
.ob-copy p{margin:0;max-width:34em;color:#aab0bd;font-size:15px;line-height:24px;word-break:keep-all}
.ob-copy .ob-lead{color:#d5d9e0}
.ob-lead span{display:block}
.ob-steps{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:14px;max-width:34em}
.ob-steps li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;align-items:start}
.ob-step-no{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);color:#e4e4e7;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.ob-steps li>span:last-child{font-size:14px;line-height:20px;color:#aab0bd;word-break:keep-all}
.ob-step-line{display:block}
.ob-steps strong{display:block;margin-bottom:2px;color:#fff;font-size:15px;font-weight:600}
.ob-actions{display:flex;flex-wrap:wrap;row-gap:10px;align-items:center;gap:12px;margin-top:10px}
.ob-actions button.primary{min-height:44px;padding:10px 20px;background:#fff;border-color:#fff;color:var(--chrome-bg,#1f2023);font-size:14px;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.ob-actions button.primary:hover{background:#e9f2ef;border-color:#e9f2ef}
.ob-actions :focus-visible{outline:2px solid #d4d4d8;outline-offset:2px}
.ob-art{position:relative;width:100%;aspect-ratio:480/320}
.ob-art>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ob-art>svg path{fill:none;stroke:rgba(255,255,255,.45);stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:1;animation:ob-draw .9s ease-in-out forwards;animation-delay:calc(.35s + var(--i)*.12s)}
.ob-node,.ob-core{position:absolute;transform:translate(-50%,-50%)}
.ob-node{display:grid;justify-items:center;opacity:0;animation:ob-pop .45s cubic-bezier(.34,1.56,.64,1) forwards;animation-delay:calc(var(--i)*.1s)}
.ob-node-icon{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--chrome-raised);border:1px solid rgba(255,255,255,.3);color:#d4d4d8;box-shadow:0 8px 20px rgba(0,0,0,.3)}
.ob-node-icon .icon{width:22px;height:22px}
.ob-node-label{position:absolute;top:100%;margin-top:8px;font-size:12px;color:#aab0bd;white-space:nowrap}
.ob-core{display:grid;place-items:center;width:96px;height:96px;border-radius:50%;background:#34353a;color:#fff;box-shadow:0 0 0 10px rgba(255,255,255,.08),0 14px 36px rgba(0,0,0,.4);animation:ob-pulse 2.4s ease-in-out 1s infinite}
.ob-core .icon{width:40px;height:40px}
.ob-core-tag{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:14px;padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);color:#e4e4e7;font-size:12px;font-weight:600;white-space:nowrap}
@keyframes ob-draw{to{stroke-dashoffset:0}}
@keyframes ob-pop{from{opacity:0;transform:translate(-50%,-50%) scale(.6)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes ob-pulse{50%{box-shadow:0 0 0 20px rgba(255,255,255,.05),0 14px 36px rgba(0,0,0,.4)}}
@media(prefers-reduced-motion:reduce){.ob-art>svg path,.ob-node,.ob-core{animation:none}.ob-art>svg path{stroke-dashoffset:0}.ob-node{opacity:1}}
/* 환영 팝업 그림: 채용 장면 (2026-10-01, js/welcome-guide.js). 에이전트 셋 → 커서가 가운데를 고름 → 채용 확정 도장 → 맡길 업무 넷 */
.hire-pos{position:absolute;top:40%;transform:translate(-50%,-50%)}
.hire-card{position:relative;display:grid;justify-items:center;gap:8px;width:124px;padding:18px 10px 16px;border-radius:16px;background:var(--chrome-raised,#2a2c31);border:1px solid rgba(255,255,255,.18);box-shadow:0 12px 28px rgba(0,0,0,.35);opacity:0;animation:hire-in .5s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i)*.14s)}
.hire-avatar{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.1);color:#e4e4e7}
.hire-avatar .icon{width:26px;height:26px}
.hire-card strong{font-size:13px;line-height:18px;font-weight:600;color:#fff}
.hire-skills{display:flex;flex-wrap:wrap;justify-content:center;gap:4px}
.hire-skills span{padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.1);color:#c6cbd3;font-size:11px;line-height:16px;white-space:nowrap}
.hire-card.passed{animation:hire-in .5s cubic-bezier(.2,.8,.2,1) forwards,hire-pass .5s ease 1.35s forwards;animation-delay:calc(var(--i)*.14s),1.35s}
.hire-card.picked{animation:hire-in .5s cubic-bezier(.2,.8,.2,1) forwards,hire-pick .55s cubic-bezier(.34,1.56,.64,1) 1.3s forwards,hire-glow 2.4s ease-in-out 2.4s infinite;animation-delay:calc(var(--i)*.14s),1.3s,2.4s}
.hire-stamp{position:absolute;top:-14px;right:-22px;display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:8px;background:#fff;color:#1f2023;font-size:12px;font-weight:700;white-space:nowrap;box-shadow:0 6px 16px rgba(0,0,0,.35);opacity:0;transform:rotate(-10deg) scale(2);animation:hire-stamp .35s cubic-bezier(.2,.9,.3,1.2) 1.9s forwards}
.hire-stamp .icon{width:14px;height:14px}
.hire-cursor{position:absolute;left:88%;top:96%;width:26px;height:26px;color:#fff;filter:drop-shadow(0 4px 8px rgba(0,0,0,.45));opacity:0;pointer-events:none;animation:hire-cursor 1.6s ease-in-out .5s forwards}
.hire-cursor svg{display:block;width:100%;height:100%;fill:currentColor;stroke:#1f2023;stroke-width:1.2;stroke-linejoin:round}
.hire-tasks{position:absolute;left:0;right:0;top:79%;display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.hire-tasks small{flex-basis:100%;text-align:center;font-size:11px;color:#8b93a1;opacity:0;animation:hire-task .4s ease 2.3s forwards}
.hire-tasks span{padding:5px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:#e4e4e7;font-size:12px;line-height:16px;white-space:nowrap;opacity:0;transform:translateY(8px);animation:hire-task .4s ease forwards;animation-delay:calc(2.45s + var(--i)*.12s)}
@keyframes hire-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes hire-pass{to{opacity:.32;transform:scale(.88)}}
@keyframes hire-pick{to{transform:scale(1.14);background:#34363c;border-color:rgba(255,255,255,.7);box-shadow:0 0 0 6px rgba(255,255,255,.1),0 18px 40px rgba(0,0,0,.45)}}
@keyframes hire-glow{50%{box-shadow:0 0 0 12px rgba(255,255,255,.06),0 18px 40px rgba(0,0,0,.45)}}
@keyframes hire-stamp{to{opacity:1;transform:rotate(-10deg) scale(1)}}
@keyframes hire-cursor{0%{opacity:0;left:88%;top:96%}15%{opacity:1}50%{left:57%;top:46%;transform:scale(1)}58%{transform:scale(.78)}66%{transform:scale(1)}85%{opacity:1}100%{opacity:0;left:57%;top:46%}}
@keyframes hire-task{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.hire-card,.hire-stamp,.hire-tasks small,.hire-tasks span{animation:none;opacity:1;transform:none}.hire-card.passed{opacity:.32;transform:scale(.88)}.hire-card.picked{transform:scale(1.14);background:#34363c;border-color:rgba(255,255,255,.7)}.hire-stamp{transform:rotate(-10deg)}.hire-cursor{display:none}}
@media(max-width:1100px){.ob-hero{grid-template-columns:minmax(0,1fr) minmax(220px,300px);padding:40px}}
/* Library 안내 그림: 찾아서 가져오기 (2026-10-01, js/library-guide.js). 검색어 입력 → 맞지 않는 타일 흐려짐 → 「주간 보고서」 추가 → 에이전트 카드의 맡은 일에 붙음 */
.lib-search{position:absolute;left:6%;right:6%;top:2%;display:flex;align-items:center;gap:8px;height:40px;padding:0 14px;border-radius:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);color:#8b93a1;opacity:0;animation:hire-in .45s ease forwards}
.lib-search .icon{width:16px;height:16px}
.lib-query{display:inline-block;overflow:hidden;white-space:nowrap;color:#fff;font-size:14px;font-weight:600;clip-path:inset(0 100% 0 0);animation:lib-type .75s steps(3,end) .7s forwards}
.lib-caret{width:1.5px;height:16px;background:#fff;animation:lib-blink .8s step-end infinite}
.lib-tile{position:absolute;width:27.33%;height:19%;display:flex;align-items:center;gap:8px;padding:0 10px;border-radius:12px;background:var(--chrome-raised,#2a2c31);border:1px solid rgba(255,255,255,.16);box-shadow:0 8px 20px rgba(0,0,0,.3);opacity:0;animation:hire-in .45s cubic-bezier(.2,.8,.2,1) forwards,lib-dim .4s ease 1.65s forwards;animation-delay:calc(.15s + var(--i)*.07s),1.65s}
.lib-tile.match{animation:hire-in .45s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(.15s + var(--i)*.07s)}
.lib-tile.pick{animation:hire-in .45s cubic-bezier(.2,.8,.2,1) forwards,lib-pick .4s cubic-bezier(.34,1.56,.64,1) 2.05s forwards;animation-delay:calc(.15s + var(--i)*.07s),2.05s}
.lib-tile-icon{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:9px;background:rgba(255,255,255,.1);color:#e4e4e7}
.lib-tile-icon .icon{width:16px;height:16px}
.lib-tile strong{min-width:0;font-size:12px;line-height:16px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lib-add{position:absolute;top:-11px;right:-8px;display:inline-flex;align-items:center;gap:3px;padding:3px 9px 3px 7px;border-radius:999px;background:#fff;color:#1f2023;font-size:11px;font-weight:700;box-shadow:0 6px 14px rgba(0,0,0,.35);opacity:0;transform:scale(.6);animation:lib-add .5s cubic-bezier(.2,.9,.3,1.2) 2.3s forwards}
.lib-add .icon{width:12px;height:12px}
.lib-fly{position:absolute;left:50%;top:32.5%;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#fff;color:#1f2023;font-size:12px;font-weight:700;white-space:nowrap;box-shadow:0 10px 24px rgba(0,0,0,.45);transform:translate(-50%,-50%);opacity:0;animation:lib-fly .8s cubic-bezier(.5,0,.3,1) 2.85s forwards}
.lib-fly .icon{width:14px;height:14px}
.lib-agent{position:absolute;left:12%;right:12%;top:76%;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:#34363c;border:1px solid rgba(255,255,255,.4);box-shadow:0 14px 32px rgba(0,0,0,.4);opacity:0;animation:hire-in .45s ease .55s forwards,lib-glow .6s ease 3.6s}
.lib-agent-avatar{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff}
.lib-agent-avatar .icon{width:22px;height:22px}
.lib-agent-name{display:grid;flex:none}
.lib-agent-name strong{font-size:14px;line-height:18px;color:#fff}
.lib-agent-name small{font-size:11px;line-height:14px;color:#8b93a1}
.lib-agent-work{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.lib-agent-work>span{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:#e4e4e7;font-size:12px;line-height:16px;white-space:nowrap}
.lib-agent-work .icon{width:12px;height:12px}
.lib-new{opacity:0;transform:scale(.7);animation:lib-add .45s cubic-bezier(.2,.9,.3,1.2) 3.55s forwards}
@keyframes lib-type{to{clip-path:inset(0 0 0 0)}}
@keyframes lib-blink{50%{opacity:0}}
@keyframes lib-dim{to{opacity:.25;transform:scale(.96)}}
@keyframes lib-pick{to{transform:scale(1.06);background:#34363c;border-color:rgba(255,255,255,.7);box-shadow:0 0 0 6px rgba(255,255,255,.1),0 14px 32px rgba(0,0,0,.45)}}
@keyframes lib-add{to{opacity:1;transform:none}}
@keyframes lib-fly{0%{opacity:0;top:32.5%}15%{opacity:1}85%{opacity:1;top:84%}100%{opacity:0;top:86%;transform:translate(-50%,-50%) scale(.8)}}
@keyframes lib-glow{50%{box-shadow:0 0 0 8px rgba(255,255,255,.12),0 14px 32px rgba(0,0,0,.4)}}
@media(prefers-reduced-motion:reduce){.lib-search,.lib-tile,.lib-add,.lib-agent,.lib-new{animation:none;opacity:1;transform:none}.lib-query{animation:none;clip-path:none}.lib-caret,.lib-fly{display:none}.lib-tile:not(.match){opacity:.25}.lib-tile.pick{background:#34363c;border-color:rgba(255,255,255,.7)}}
@media(max-width:800px){.ob-hero{grid-template-columns:1fr;padding:28px 20px}.ob-art{display:none}.ob-copy h2{font-size:24px;line-height:32px}}
/* 콘솔 세로 스크롤 막대 숨김 (2026-09-30, 사용자 요청): 페이지와 LNB의 막대만 숨기고 휠·터치·키보드 스크롤은 그대로 된다. 표·대화창 같은 안쪽 스크롤 영역은 그대로 둔다 */
html,.sidebar{scrollbar-width:none}
html::-webkit-scrollbar,.sidebar::-webkit-scrollbar{display:none}
/* 에이전트 만들기 창 (2026-10-01, js/agent-creation.js): 이름과 소개 → 업무 방식(읽기 전용) → 연결할 AI → 접힌 고급 설정(실행 서버) */
.agent-create section[role=dialog]{width:min(980px,calc(100vw - 32px))}
.agent-create .create-intro{margin:0 0 4px;color:var(--muted);word-break:keep-all}
.agent-create .create-section{padding:24px 0 4px}
.agent-create .create-intro+.create-section{border-top:0;padding-top:16px}
.agent-create .create-section>h3{display:flex;align-items:center;gap:10px;margin:0 0 16px;font-size:15px;line-height:22px}
.agent-create .step-no{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.agent-create .create-section>p{margin:-8px 0 16px;color:var(--muted);font-size:13px;line-height:20px;word-break:keep-all}
.agent-create .creation-api-key [data-model-fields]{border-top:0;padding-top:0}
.agent-create .create-advanced{margin:20px 0 8px;border:1px solid var(--line-soft);border-radius:10px;background:var(--bg)}
.agent-create .create-advanced>summary{display:flex;align-items:center;gap:12px;min-height:52px;padding:0 16px;cursor:pointer;list-style:none;font-size:14px;font-weight:600}
.agent-create .create-advanced>summary::-webkit-details-marker{display:none}
.agent-create .create-advanced>summary:after{content:"";flex:none;width:9px;height:9px;margin:-4px 2px 0 auto;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .15s}
.agent-create .create-advanced[open]>summary:after{margin-top:4px;transform:rotate(-135deg)}
.agent-create form{flex:1}
.agent-create :is(.create-advanced,.creation-api-key){scroll-margin-top:16px}
.agent-create .create-advanced-body{padding:4px 16px 16px;border-top:1px solid var(--line-soft);background:var(--surface);border-radius:0 0 10px 10px}
.agent-create .create-advanced-body>h3{margin:16px 0 4px;font-size:14px}
.agent-create .create-advanced-body>p{margin:0 0 16px;color:var(--muted);font-size:13px;word-break:keep-all}
.alloc-picks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.alloc-legend{display:flex;flex-wrap:wrap;gap:16px;margin:4px 0 12px;font-size:12px;color:var(--muted)}
.alloc-legend span:before{content:"";display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:3px;background:var(--oc-gray-2);vertical-align:-1px}
.alloc-legend .alloc-used:before{background:var(--oc-gray-6)}
.alloc-legend .alloc-pick:before{background:var(--accent)}
.alloc-scope{margin:16px 0 8px;font-size:13px}
.alloc-meters{display:grid;gap:14px}
.alloc-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px;font-size:13px}
.alloc-head b{font-variant-numeric:tabular-nums}
.alloc-head small{color:var(--muted)}
.alloc-head .alloc-over{color:var(--oc-red-7)}
.alloc-track{display:flex;height:10px;border-radius:5px;background:var(--oc-gray-2);overflow:hidden}
.alloc-track .alloc-used{background:var(--oc-gray-6)}
.alloc-track .alloc-pick{background:var(--accent)}
.alloc-track.over .alloc-pick{background:var(--oc-red-7)}
@media(max-width:600px){.alloc-picks{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.agent-create .create-advanced>summary:after{transition:none}}
/* 팝업 공통: 머리·바닥 부분이 창 틀의 둥근 모서리를 따르게 한다(흰 머리 부분이 위쪽 모서리 밖으로 삐져나오던 문제, 2026-09-30) */
.overlay section[role=dialog]>header{border-top-left-radius:inherit;border-top-right-radius:inherit}
.overlay section[role=dialog]>footer,.overlay section[role=dialog]>form,.overlay section[role=dialog]>form>footer{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}
/* 에이전트 만들기 창: 왼쪽에 입력대로 바뀌는 에이전트 프로필(2026-10-01 시안: 프로필 카드형), 오른쪽 단계는 한 열로 위에서 아래로 스크롤한다 */
.agent-create section[role=dialog]{width:min(1040px,calc(100vw - 32px))}
.hire-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:40px;align-items:start}
.hire-stage{position:sticky;top:0;display:grid;justify-items:center;padding:48px 8px 8px}
.hire-badge{position:relative;display:grid;justify-items:center;gap:12px;width:100%;padding:48px 14px 16px;border-radius:28px;background:#fff;color:var(--ink);border:1px solid var(--line-soft);box-shadow:0 18px 40px rgba(33,37,41,.10),0 2px 6px rgba(33,37,41,.05);transform:rotate(-1.5deg)}
@media(prefers-reduced-motion:reduce){.hire-badge{transform:none}}
/* 목걸이 줄은 카드와 함께 기울고, 구멍의 아래쪽 테두리(slot::after)가 줄 끝을 덮어 구멍을 통과하는 것처럼 보인다 */
.hire-strap{position:absolute;z-index:1;top:-46px;left:50%;width:16px;height:70px;margin-left:-8px;background:var(--chrome-bg)}
.hire-badge-slot{position:absolute;top:16px;left:50%;width:44px;height:12px;margin-left:-22px;border-radius:999px;background:var(--bg);box-shadow:inset 0 1px 3px rgba(33,37,41,.22)}
.hire-badge-slot::after{content:"";position:absolute;z-index:2;left:0;right:0;top:50%;bottom:-3px;border-radius:0 0 999px 999px;background:#fff;box-shadow:inset 0 3px 0 -1px var(--bg),0 -1px 2px rgba(33,37,41,.12)}
.hire-badge-head{margin:0 0 4px;font-size:14px;font-weight:700}
.hire-badge-photo{display:grid;place-items:center;width:104px;height:104px;border-radius:50%;background:var(--accent);color:#fff}
.hire-badge-photo .icon{width:44px;height:44px}
.hire-badge-name{font-size:21px;line-height:28px;font-weight:700;letter-spacing:-.02em;overflow-wrap:anywhere;text-align:center}
.hire-badge-name.is-empty{color:var(--nav-muted,#8b93a1);font-weight:600;font-size:18px}
.hire-badge-rows{width:100%;margin:4px 0 0;padding:4px 12px;list-style:none;border-radius:18px;background:var(--oc-gray-0);border:1px solid var(--line-soft)}
.hire-badge-rows li{display:flex;align-items:center;gap:12px;padding:10px 0;text-align:left}
.hire-badge-rows li>div{min-width:0}
.hire-badge-ico{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:10px;background:#fff;border:1px solid var(--line-soft);box-shadow:0 1px 2px rgba(33,37,41,.06);color:var(--ink)}
.hire-badge-ico .icon{width:18px;height:18px}
.hire-badge-rows small{display:block;font-size:10px;line-height:14px;font-weight:600;letter-spacing:.04em;color:var(--muted)}
.hire-badge-rows span:not(.hire-badge-ico){display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;line-height:19px;font-weight:500;overflow-wrap:anywhere;word-break:keep-all}
.hire-badge-rows .is-empty{color:var(--nav-muted,#8b93a1);font-weight:400}
.hire-badge-foot{margin:0;font-size:11px;color:var(--nav-muted,#8b93a1)}
.hire-form{min-width:0}
.hire-grid{display:block}
.hire-grid .create-section{padding-top:24px}
.hire-col:first-child>.create-section:first-child{border-top:0;padding-top:0}
.agent-create .hire-col>.create-advanced{margin-top:8px}
.agent-create .creation-api-key>p{margin-top:-8px}
.hire-stage-note{margin:20px 0 0;font-size:13px;line-height:20px;color:var(--muted);text-align:center;word-break:keep-all}
@media(max-width:1100px){.hire-layout{grid-template-columns:260px minmax(0,1fr);gap:28px}}
@media(max-width:900px){.hire-layout{grid-template-columns:1fr}.hire-stage{display:none}}
/* 드롭다운 공통(2026-10-01 사용자 요청): 열린 목록까지 커스텀. appearance:base-select 를 지원하는 Chrome 135+ 에서만 적용하고, 그 밖의 브라우저와 고대비 모드는 위의 닫힌 모양 + 브라우저 목록을 그대로 쓴다 */
@supports (appearance:base-select){@media not (forced-colors:active){
select:not([multiple]):not([size]),select[size="1"]{appearance:base-select;position:relative;background-image:none;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
select:not([multiple]):not([size])::picker-icon,select[size="1"]::picker-icon{content:"";position:absolute;right:14px;top:calc(50% - 8px);width:16px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23495057' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat center/16px;transition:rotate .15s}
select:open::picker-icon{rotate:180deg}
select:open{border-color:var(--accent)}
::picker(select){appearance:base-select;margin-top:4px;padding:4px;max-height:320px;overflow:auto;border:1px solid var(--line-soft);border-radius:10px;background:var(--surface);box-shadow:0 12px 32px rgba(33,37,41,.14),0 2px 6px rgba(33,37,41,.06)}
select option{display:flex;align-items:center;min-height:36px;padding:8px 10px;border-radius:6px;font-size:14px;line-height:20px;color:var(--ink);cursor:pointer}
select option::checkmark{display:none}
select option:hover,select option:focus-visible{background:var(--oc-gray-0);outline:none}
select option:checked{background:var(--accent-soft);color:var(--accent);font-weight:600}
select option:disabled{color:var(--oc-gray-5);background:transparent;cursor:not-allowed}
}}
@media(prefers-reduced-motion:reduce){select::picker-icon{transition:none}}
/* 에이전트 목록 명단(2026-10-01 사용자 요청): 가로형 사원증 카드를 목걸이 줄에 매달아 늘어놓는다(위쪽 걸이 선은 그리지 않는다). 목걸이 줄은 카드와 함께 기울고 구멍 아래 테두리가 줄 끝을 덮는다 */
.agent-roster-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 20px}
.agent-roster-summary .badge{margin:0}
.agent-collection .entity-card-grid{grid-template-columns:repeat(auto-fill,minmax(440px,1fr));column-gap:24px;row-gap:44px;padding-top:24px}
.agent-collection .entity-card.agent-card{padding:0;border:0;background:none;box-shadow:none;border-radius:0;outline:none;overflow:visible}
.agent-collection .agent-card h3 a::after{border-radius:20px}
.ab-card{position:relative;display:grid;gap:14px;height:100%;padding:34px 20px 16px;border:1px solid var(--line-soft);border-radius:20px;background:var(--surface);box-shadow:0 10px 28px rgba(33,37,41,.08),0 1px 3px rgba(33,37,41,.05);transform:rotate(-.6deg);transition:box-shadow .15s,transform .15s}
.agent-collection .agent-card:nth-child(even) .ab-card{transform:rotate(.5deg)}
.agent-collection .agent-card:nth-child(3n) .ab-card{transform:rotate(-.2deg)}
.agent-collection .agent-card:hover .ab-card{box-shadow:0 16px 36px rgba(33,37,41,.14),0 2px 6px rgba(33,37,41,.06)}
.ab-strap{position:absolute;z-index:1;top:-24px;left:50%;width:14px;height:44px;margin-left:-7px;background:var(--chrome-bg)}
.ab-slot{position:absolute;top:14px;left:50%;width:40px;height:10px;margin-left:-20px;border-radius:999px;background:var(--bg);box-shadow:inset 0 1px 3px rgba(33,37,41,.22)}
.ab-slot::after{content:"";position:absolute;z-index:2;left:0;right:0;top:50%;bottom:-3px;border-radius:0 0 999px 999px;background:var(--surface);box-shadow:inset 0 3px 0 -1px var(--bg),0 -1px 2px rgba(33,37,41,.12)}
.ab-top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:24px}
.ab-no{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--muted);font-variant-numeric:tabular-nums}
.ab-id{display:flex;align-items:center;gap:14px;min-width:0}
.ab-photo{display:grid;place-items:center;flex:none;width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff}
.ab-photo .icon{width:26px;height:26px}
.ab-name{min-width:0}
.ab-name h3{margin:0;font-size:18px;line-height:26px;font-weight:700;letter-spacing:-.01em}
.ab-name h3 a{color:var(--ink);text-decoration:none}
.ab-desc{margin:2px 0 0;font-size:13px;line-height:19px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:38px;word-break:keep-all}
.ab-facts{display:grid;grid-template-columns:1fr;gap:8px;margin:0;padding:12px 14px;border:1px solid var(--line-soft);border-radius:14px;background:var(--oc-gray-0)}
.ab-facts>div{display:flex;align-items:baseline;gap:12px;min-width:0}
.ab-facts dt{flex:none;width:92px;font-size:12px;line-height:19px;color:var(--muted)}
.ab-facts dd{flex:1;min-width:0;margin:0;font-size:13px;line-height:19px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ab-foot{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted)}
.ab-foot .ui-button{min-height:32px;padding:6px 12px;font-size:13px}
.ab-actions{display:flex;gap:8px;margin-left:auto}
.ab-foot>.ui-button.primary{margin-left:0}
.ab-foot .ui-button.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ab-foot .ui-button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.ab-model{display:block;margin-top:1px;font-size:12px;line-height:18px;color:var(--muted)}
.ab-facts dd .muted{font-weight:400;color:var(--muted)}
.ab-run.succeeded{color:var(--oc-green-8)}.ab-run.failed{color:var(--oc-red-7)}
.ab-foot .ui-button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:var(--button-radius);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-control);font-weight:600;text-decoration:none}
.ab-foot .ui-button:hover{background:var(--oc-gray-0);border-color:var(--oc-gray-4)}
@media(prefers-reduced-motion:reduce){.ab-card,.agent-collection .agent-card:nth-child(n) .ab-card{transform:none;transition:none}}
@media(max-width:600px){.agent-collection .entity-card-grid{grid-template-columns:1fr}}
/* 에이전트 목록 머리(2026-10-01 사용자 시안): 경로 · 제목 줄의 개수 배지 · 검정 현황 카드 */
.roster-hero{margin:4px 0 12px;padding:24px 28px 22px;border-radius:16px;background:var(--chrome-bg);color:#f4f4f5;box-shadow:0 12px 32px rgba(17,18,20,.18)}
.rh-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.rh-title{display:flex;align-items:center;gap:10px}
.rh-title strong{font-size:20px;line-height:28px;font-weight:700;letter-spacing:-.01em}
.rh-tag{padding:2px 10px;border:1px solid rgba(255,255,255,.28);border-radius:6px;font-size:12px;line-height:18px;color:#e4e4e7}
.rh-head p{margin:6px 0 0;font-size:14px;color:#a1a1aa}
.rh-head>div{flex:1;min-width:0}
.rh-head .rh-hint{display:flex;align-items:flex-start;gap:8px;max-width:none;margin-top:10px;padding:10px 14px;border-radius:10px;background:rgba(255,255,255,.06);color:#e4e4e7;line-height:21px;word-break:keep-all}
.rh-hint .icon{flex:none;width:18px;height:18px;margin-top:1px;color:#fff}
.rh-button{display:inline-flex;align-items:center;min-height:38px;padding:8px 16px;border:1px solid rgba(255,255,255,.4);border-radius:10px;color:#fff;font-size:13px;font-weight:600;text-decoration:none;white-space:nowrap}
.rh-button:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.6)}
.rh-button:focus-visible{outline:2px solid #fff;outline-offset:2px}
.rh-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:28px 0 0}
.rh-stats dt{font-size:12px;line-height:18px;color:#a1a1aa}
.rh-stats dd{margin:4px 0 0;font-size:20px;line-height:28px;font-weight:700;color:#fff;font-variant-numeric:tabular-nums}
.rh-stats dd small{display:block;margin-top:2px;font-size:12px;line-height:18px;font-weight:400;color:#a1a1aa}
.rh-total{font-size:14px;font-weight:500;color:#a1a1aa}
.rh-note{margin-left:10px;font-size:13px;font-weight:500;color:#a1a1aa;vertical-align:2px}
@media(max-width:800px){.rh-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.rh-head{flex-direction:column}}
/* 다음 단계 버튼으로 들어온 자리를 잠깐 강조한다(js/agents.js revealStep) */
.step-flash{animation:step-flash 2.4s ease-out}
@keyframes step-flash{0%,55%{outline:2px solid var(--accent);outline-offset:4px;background-color:var(--accent-soft)}100%{outline:2px solid transparent;outline-offset:4px}}
@media(prefers-reduced-motion:reduce){.step-flash{animation:none;outline:2px solid var(--accent);outline-offset:4px}}
/* 작업 공간 선택 창: 새 프로젝트 만들기 오른쪽의 프로젝트 설정(2026-10-01) */
#workspace-picker [data-project-footer]{display:flex;flex-wrap:wrap;gap:8px}
#workspace-picker [data-project-footer] a.ui-button{display:inline-flex;align-items:center;min-height:32px;padding:6px 12px;border:1px solid var(--line);border-radius:var(--button-radius);background:var(--surface);color:var(--ink);font-size:13px;font-weight:500;text-decoration:none;box-shadow:var(--shadow-control)}
#workspace-picker [data-project-footer] a.ui-button:hover{background:var(--oc-gray-0);border-color:var(--oc-gray-4)}
/* 공통 화면 머리(2026-10-01, 에이전트 목록 머리를 공통으로): 경로는 › 로 잇고 마지막 항목을 굵게, 제목 옆에 배지를 둘 수 있다(js/ui.js crumbs · projectCrumbs · heading) */
.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:16px;font-size:13px;line-height:20px;color:var(--muted)}
.breadcrumb a{color:var(--muted);text-decoration:none}
.breadcrumb a:hover{color:var(--ink);text-decoration:none}
.breadcrumb [aria-current=page],.breadcrumb strong{color:var(--ink);font-weight:600}
.crumb-sep{color:var(--oc-gray-5)}
.page-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.page-title-row .badge{margin:0}
/* Library 두 화면 탭 (2026-10-01): 아래의 종류 탭(업무·스킬·MCP)과 구분되게 알약 모양 선택 막대로 둔다 */
/* LNB 하단 약관 링크 (2026-10-01): 구분선 없이 맨 아래에 텍스트 링크 둘. 누르면 기존 약관 서랍(U-05-A01)이 열린다 */
.sidebar:has(.lnb-legal){display:flex;flex-direction:column;padding-bottom:16px}
.lnb-legal{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:auto;padding:24px 12px 0;border:0}
.lnb-legal .ui-button.lnb-legal-link{min-height:0;height:auto;padding:0;border:0;background:none;box-shadow:none;color:var(--nav-muted,var(--muted));font-size:12px;font-weight:400;line-height:18px}
.lnb-legal .ui-button.lnb-legal-link:hover{background:none;color:var(--ink);text-decoration:underline}
.lnb-legal{align-items:center;gap:4px 8px}
.lnb-legal-sep{color:var(--line,#dee2e6);font-size:11px;line-height:18px}
/* 인프라 목록의 자원 현황 (2026-10-01): 에이전트 현황 카드(roster-hero)와 같은 모양에 자원 칸마다 가는 사용량 막대 */
.rh-meter{display:block;height:4px;margin-top:10px;border-radius:2px;background:rgba(255,255,255,.14);overflow:hidden}
.rh-meter>span{display:block;height:100%;border-radius:2px;background:#fff}
.rh-meter.full>span{background:#ffa8a8}
/* 마켓플레이스 둘러보기: 업무를 넣을 에이전트 줄과 카드의 에이전트 기준 한 줄(2026-10-01) */
.library-got{color:var(--oc-green-8);font-weight:600}
.library-blocked{color:var(--oc-red-7);font-weight:600}
/* Library 머리 아래 (2026-10-01): ① 에이전트 상세와 같은 밑줄 탭 ② 검색 + 오른쪽 넣을 에이전트 ③ 분류 칩 */
.library-tabs{margin:4px 0 20px}
.library-agent{display:inline-flex;align-items:center;gap:10px;margin:0;font-size:13px;color:var(--muted)}
.library-agent select{width:auto;min-width:200px;min-height:40px;margin:0;color:var(--ink)}
.library-agent-empty{max-width:420px;text-align:right;word-break:keep-all}
.library-kinds{display:inline-flex;gap:8px}
.library-kinds a{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font-size:13px;text-decoration:none;white-space:nowrap}
.library-kinds a.active{border-color:var(--accent);color:var(--accent);font-weight:650}
.library-kinds a.active .tab-count{color:var(--accent)}
.market-collection .library-toolbar{display:grid;gap:12px;align-items:stretch}
.library-filter-row{display:flex;align-items:center;gap:12px}
.market-collection .library-filter-row input[type=search]{flex:0 1 360px;width:360px;min-width:200px;max-width:none;height:40px;margin:0}
.library-filter-row .library-agent select{min-height:40px}
@media(max-width:900px){.library-filter-row{flex-wrap:wrap}.market-collection .library-filter-row input[type=search]{flex-basis:100%;width:100%}}
/* History (2026-10-01, js/history.js): 머리 아래 두 줄(실패 알림은 있을 때만) — 검색·상태 칩·에이전트, 그 아래 날짜 묶음 목록 */
.history-alert{display:flex;align-items:center;gap:8px;margin:0 0 16px;padding:12px 16px;border:1px solid var(--oc-red-2);border-radius:12px;background:var(--oc-red-0);color:var(--oc-red-9);font-size:14px;text-decoration:none}
.history-alert .icon{flex:none;width:18px;height:18px}
.history-alert strong{margin-left:auto;font-size:13px;white-space:nowrap}
.history-alert:hover{background:var(--oc-red-1);text-decoration:none}
.history-toolbar{display:flex;align-items:center;gap:12px;margin:0 0 20px}
.history-toolbar input[type=search]{flex:0 0 240px;width:240px;height:36px;margin:0}
.history-toolbar .category-chips{display:flex;gap:8px;flex:1 1 auto;min-width:0;overflow-x:auto}
.history-toolbar .category-chips a{display:inline-flex;align-items:center;height:36px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font-size:13px;white-space:nowrap;text-decoration:none}
.history-toolbar .category-chips a.active{border-color:var(--accent);color:var(--accent);font-weight:650}
.history-toolbar .history-agent{margin-left:auto}
.history-day{margin:0 0 20px;padding:4px 24px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.history-day>h2{margin:16px 0 4px;font-size:13px;line-height:20px;font-weight:650;color:var(--muted)}
.history-list{list-style:none;margin:0;padding:0}
.history-row{display:grid;grid-template-columns:88px minmax(0,1fr) auto auto;align-items:center;gap:16px;min-height:64px;border-top:1px solid var(--line-soft)}
.history-day>h2+.history-list>.history-row:first-child{border-top:0}
.history-task{display:grid;gap:2px;min-width:0}
.history-task strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600}
.history-task small{color:var(--muted);font-size:12px}
.history-task .history-gone{justify-self:start;padding:0 6px;border-radius:4px;background:var(--oc-gray-1)}
.history-time{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.history-row .ui-button{min-height:34px;padding:6px 14px;font-size:13px;white-space:nowrap}
.history-row.is-failed .ui-button{border-color:var(--oc-red-3);color:var(--oc-red-8)}
.history-empty{padding:40px 24px;text-align:center}
.handed-home>header{position:relative}
.handed-more{position:absolute;top:2px;right:0;font-size:13px;font-weight:600;color:var(--ink);text-decoration:none}
.handed-more:hover{text-decoration:underline}
@media(max-width:900px){.history-toolbar{flex-wrap:wrap}.history-toolbar input[type=search]{flex-basis:100%;width:100%}.history-row{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}.history-state{grid-column:1/-1}.history-time{grid-column:1}}
.history-row a.ui-button{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--button-radius,8px);background:var(--surface);color:var(--ink);font-weight:600;text-decoration:none;box-shadow:var(--shadow-control,none)}
.history-row a.ui-button:hover{background:var(--oc-gray-0);border-color:var(--oc-gray-4)}
/* 에이전트 첫 화면 (2026-10-01, agents.js agentHome): 누구야 · 뭘 시킬 수 있어 · 시킨 거 어떻게 됐어 */
.agent-profile .entity-title{align-items:flex-start}
.agent-profile h1{margin:0}
.agent-role{margin:6px 0 0;font-size:15px;line-height:22px;color:var(--ink);word-break:keep-all}
.agent-plain-status{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:10px 0 0;font-size:14px;line-height:20px;color:var(--muted)}
.agent-status-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--oc-gray-5)}
.agent-plain-status.is-ok{color:var(--oc-green-8)}.agent-plain-status.is-ok .agent-status-dot{background:var(--oc-green-6)}
.agent-plain-status.is-need{color:var(--oc-orange-9)}.agent-plain-status.is-need .agent-status-dot{background:var(--oc-orange-6)}
.agent-plain-status.is-bad{color:var(--oc-red-8)}.agent-plain-status.is-bad .agent-status-dot{background:var(--oc-red-6)}
.agent-plain-status.is-wait .agent-status-dot{background:var(--oc-blue-5)}
.agent-plain-status .ui-button{min-height:32px;padding:4px 12px;font-size:13px}
.agent-home{display:grid;gap:28px;margin-top:8px}
.agent-tip{display:flex;align-items:center;gap:10px;margin:0;padding:12px 16px;border-radius:12px;background:var(--oc-gray-1);font-size:14px;color:var(--ink)}
.agent-tip .icon{flex:none;width:18px;height:18px}.agent-tip span{flex:1}
.agent-tip .icon-button{border-color:transparent;background:transparent}
.agent-home-section>h2,.agent-home-section .section-heading h2{margin:0 0 12px;font-size:17px;line-height:26px}
.agent-home-section .section-heading{display:flex;align-items:baseline;justify-content:space-between}
.agent-home-section .section-heading a{font-size:13px;font-weight:600;color:var(--ink);text-decoration:none}
.agent-tasks{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;list-style:none;margin:0;padding:0}
.agent-task{display:flex;flex-direction:column;gap:8px;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.agent-task h3{margin:0;font-size:16px;line-height:24px}.agent-task h3 a{color:var(--ink);text-decoration:none}
.agent-task p{margin:0;font-size:13px;line-height:20px;color:var(--muted);word-break:keep-all}
.agent-task small{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.agent-task small .icon{width:14px;height:14px}
.agent-task-actions{display:flex;gap:8px;margin-top:auto;padding-top:8px}
.agent-task-actions a.ui-button,.agent-recent a.ui-button,.agent-manage{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 14px;border:1px solid var(--line);border-radius:var(--button-radius,8px);background:var(--surface);color:var(--ink);font-size:13px;font-weight:600;text-decoration:none}
.agent-task-add{border-style:dashed;background:transparent;justify-content:center}
.agent-task-add a{display:grid;gap:6px;color:var(--ink);text-decoration:none}.agent-task-add strong{font-size:15px}.agent-task-add span{font-size:13px;color:var(--muted)}
.agent-ask{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.agent-ask label{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;white-space:nowrap}.agent-ask label .icon{width:18px;height:18px}
.agent-ask input{flex:1;min-width:0;height:40px;margin:0}
.agent-recent{list-style:none;margin:0;padding:4px 20px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.agent-recent li{display:grid;grid-template-columns:64px minmax(0,1fr) auto auto;align-items:center;gap:14px;min-height:56px;border-top:1px solid var(--line-soft)}
.agent-recent li:first-child{border-top:0}
.agent-recent-state{font-size:12px;font-weight:600;color:var(--oc-green-8)}
.agent-recent .is-failed .agent-recent-state,.agent-recent li.is-failed .agent-recent-state{color:var(--oc-red-8)}
.agent-recent li.is-running .agent-recent-state{color:var(--oc-blue-7)}
.agent-recent strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
@media(max-width:800px){.agent-ask{flex-wrap:wrap}.agent-ask input{flex-basis:100%}.agent-recent li{grid-template-columns:minmax(0,1fr) auto}}
/* 마켓플레이스 카드 정보(2026-10-01): 이름표는 왼쪽 고정 폭, 값은 왼쪽 정렬·두 줄까지. 이미 추가한 업무의 「업무 열기」도 버튼 모양 */
.market-collection .entity-card-meta>div{display:grid;grid-template-columns:84px minmax(0,1fr);gap:10px;align-items:baseline}
.market-collection .entity-card-meta dd{text-align:left;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:keep-all}
.market-collection .entity-card footer a.ui-button{display:inline-flex;align-items:center;min-height:40px;padding:8px 16px;border:1px solid var(--line);border-radius:var(--button-radius);background:var(--surface);color:var(--ink);font-size:13px;font-weight:600;text-decoration:none;box-shadow:var(--shadow-control)}
.market-collection .entity-card footer a.ui-button:hover{background:var(--oc-gray-0);border-color:var(--oc-gray-4)}
.agent-tip{max-width:none}
.agent-task-actions{align-items:center}
/* 에이전트 첫 화면 섹션 판 (2026-10-01 피드백): 섹션마다 테두리 판 + 머리 띠(제목 · 한 줄 설명), 판 안은 가볍게 */
.agent-home{gap:20px}
.agent-home-section{border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden}
.agent-home-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 24px;border-bottom:1px solid var(--line-soft);background:var(--oc-gray-0)}
.agent-home-head h2{margin:0;font-size:16px;line-height:24px}
.agent-home-head p{margin:2px 0 0;max-width:none;font-size:13px;line-height:20px;color:var(--muted)}
.agent-home-more{flex:none;font-size:13px;font-weight:600;color:var(--ink);text-decoration:none;white-space:nowrap}
.agent-home-body{display:grid;gap:16px;padding:20px 24px}
.agent-home-body .agent-task{border-color:var(--line-soft);box-shadow:none}
.agent-home-body .agent-ask{padding:12px 14px;border-color:var(--line-soft);background:var(--oc-gray-0)}
.agent-home-body .agent-ask input:disabled{background:var(--surface)}
.agent-home-body .agent-recent{padding:0;border:0;border-radius:0;background:transparent}
.agent-ways{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;list-style:none;margin:0;padding:0}
.agent-way>a,.agent-way>button{display:flex;align-items:center;gap:14px;width:100%;min-height:76px;padding:14px 18px;border:1px solid var(--line-soft);border-radius:12px;background:var(--surface);box-shadow:none;color:var(--ink);text-align:left;text-decoration:none;cursor:pointer}
.agent-way>a:hover,.agent-way>button:hover{border-color:var(--oc-gray-4);background:var(--oc-gray-0)}
.agent-way-icon{display:inline-grid;place-items:center;flex:none;width:40px;height:40px;border-radius:12px;background:var(--oc-gray-1)}
.agent-way-icon .icon{width:20px;height:20px}
.agent-way strong{display:block;font-size:15px;line-height:22px}
.agent-way small{display:block;font-size:13px;line-height:20px;color:var(--muted);font-weight:400}
.agent-empty-line{margin:0}
/* 에이전트 화면 공통 틀 (2026-10-01): 프로필 머리 + Work · Chat · Settings 탭 */
.agent-profile+.agent-tabs{margin-top:4px}
.agent-task{position:relative}
.agent-task h3{padding-right:36px}
.agent-task-delete{position:absolute;top:14px;right:14px;border-color:transparent;background:transparent}
.agent-task-delete:hover{background:var(--oc-gray-1)}
.recipe-view-switch{display:inline-flex;gap:4px;margin:4px 0 16px;padding:4px;border-radius:10px;background:var(--oc-gray-1)}
.recipe-view-switch a{padding:6px 16px;border-radius:7px;color:var(--muted);font-size:13px;font-weight:600;text-decoration:none}
.recipe-view-switch a.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(16,18,40,.12)}
/* Chat 탭: 판이 화면 아래까지 채우고 아래 여백은 다른 화면과 같은 main 여백(32px)만 둔다 */
.main:has(>.chat-shell.chat-embedded){display:flex;flex-direction:column;height:calc(100dvh - 64px);min-height:640px}
.chat-shell.chat-embedded{flex:1 1 auto;height:auto;min-height:360px;margin-top:4px}
.chat-embedded .chat-composer{padding:16px 24px 24px}
.chat-embedded .chat-header{padding:12px 20px}
.chat-embedded .chat-header p{margin:0;font-size:13px;color:var(--muted)}
.config-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.agent-advanced{margin:0;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.agent-advanced>summary{display:flex;align-items:baseline;gap:10px;padding:16px 24px;cursor:pointer;font-size:15px;font-weight:650;list-style:none}
.agent-advanced>summary::-webkit-details-marker{display:none}
.agent-advanced>summary::before{content:'▸';color:var(--muted)}
.agent-advanced[open]>summary::before{content:'▾'}
.agent-advanced>summary small{font-size:13px;font-weight:400;color:var(--muted)}
.agent-advanced>.agent-config-card{margin:0 16px 16px}
/* 마켓플레이스 카드 바닥: 추가(또는 업무 열기)는 왼쪽, 상세 보기는 오른쪽(2026-10-01) */
.market-collection .entity-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px}
.market-collection .entity-card footer>*{margin-left:0}
/* 에이전트 화면 여백 맞춤 (2026-10-01 검토): 판은 머리 16/24 · 본문 20/24 로 통일, 상태 줄은 한 줄로, 고급 설정 안은 겹 카드 없이 */
.agent-role,.agent-plain-status{max-width:none}
.agent-config{max-width:none}
.agent-config .config-card-body{padding:20px 24px}
.agent-config .config-card-body>.notice:first-child,.agent-config .config-card-body>:first-child{margin-top:0}
.agent-advanced>.agent-config-card{margin:0;border:0;border-top:1px solid var(--line-soft);border-radius:0;box-shadow:none}
.chat-embedded .chat-header{padding:16px 24px;background:var(--oc-gray-0);border-bottom:1px solid var(--line-soft)}
.recipe-view-switch{margin:0 0 16px}
.recipe-tail{padding:0 24px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.recipe-tail>:last-child{border-bottom:0}
/* 마켓플레이스 한 줄 목록(2026-10-01): 업무 | 필요한 연결 | 실행 | 버튼. 좁은 화면에서는 줄을 세로로 쌓고 열 이름을 보인다 */
.market-collection{--lib-cols:minmax(0,2.8fr) minmax(0,.8fr) minmax(104px,.8fr) 40px 64px 96px 300px}
.library-list-head{display:grid;grid-template-columns:var(--lib-cols);gap:20px;padding:10px 20px;margin-top:4px;border:1px solid var(--line-soft);border-bottom:0;border-radius:12px 12px 0 0;background:var(--oc-gray-0);font-size:12px;font-weight:600;color:var(--muted)}
.market-collection .entity-card-grid{display:block;border:1px solid var(--line-soft);border-radius:0 0 12px 12px;background:var(--surface);overflow:visible}
.market-collection .entity-card.library-item{display:block;min-height:0;height:auto;padding:0;margin:0;border:0;border-bottom:1px solid var(--line-soft);border-radius:0;box-shadow:none;background:none}
.market-collection .entity-card.library-item:last-child{border-bottom:0}
.market-collection .entity-card.library-item:hover{background:var(--oc-gray-0)}
.library-row{display:grid;grid-template-columns:var(--lib-cols);gap:20px;align-items:center;padding:16px 20px}
.library-main{min-width:0;display:grid;gap:4px}
.library-name{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}
.library-name h3{margin:0;font-size:15px;line-height:22px}
.library-name .entity-card-title{padding:0;border:0;background:none;box-shadow:none;min-height:0;font:inherit;font-weight:700;color:var(--ink);cursor:pointer;text-align:left}
.library-name .entity-card-title:hover{text-decoration:underline}
.library-kind{padding:1px 8px;border-radius:6px;background:var(--oc-gray-1);font-size:11px;line-height:18px;font-weight:600;color:var(--muted)}
.library-desc{margin:0;max-width:none;font-size:13px;line-height:19px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.library-owner{font-size:12px;color:var(--muted)}
.library-cell{min-width:0;font-size:13px;line-height:19px;color:var(--ink)}
.library-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.library-value{overflow-wrap:anywhere;word-break:keep-all}
.library-sub{display:block;font-size:12px}
.library-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:0;padding:0;border:0}
.library-actions>*{margin-left:0}
.library-actions .ui-button,.library-actions a.ui-button{min-height:36px;padding:6px 14px;font-size:13px;white-space:nowrap}
@media(max-width:1280px){.library-list-head{display:none}.market-collection .entity-card-grid{border-radius:12px}.library-row{grid-template-columns:1fr 1fr;align-items:start}.library-main,.library-actions{grid-column:1/-1}.library-actions{justify-content:flex-start}.library-label{position:static;width:auto;height:auto;clip:auto;display:block;font-size:11px;color:var(--muted)}}
.market-collection .entity-card .library-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:0;padding:0;border:0}
.market-collection .entity-card .library-actions>*{margin:0}
.library-actions .ui-button.primary{max-width:190px;overflow:hidden;text-overflow:ellipsis}
.library-name .entity-provided{padding:1px 8px;border:1px solid var(--line);border-radius:999px;font-size:11px;line-height:18px;font-weight:500;color:var(--muted)}
@media(max-width:1280px){.market-collection .entity-card .library-actions{justify-content:flex-start}.market-collection .entity-card .library-actions details{margin-left:auto}}
.page-heading.agent-profile .agent-role,.page-heading.agent-profile .agent-plain-status{max-width:none}
.page-heading.agent-profile .entity-title{flex:1;min-width:0}
.agent-task>.icon-button.agent-task-delete{border-color:transparent;background:transparent;box-shadow:none}
.agent-task>.icon-button.agent-task-delete:hover{background:var(--oc-gray-1)}
.library-row{gap:16px}.library-list-head{gap:16px}
.library-main h3{margin:0;font-size:15px;line-height:22px}
.library-main .entity-card-title{padding:0;border:0;background:none;box-shadow:none;min-height:0;font:inherit;font-weight:700;color:var(--ink);cursor:pointer;text-align:left}
.library-main .entity-card-title:hover{text-decoration:underline}
.library-kind{display:inline-block;white-space:nowrap}
@media(max-width:1280px){.library-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* 에이전트 소개 카드 (2026-10-01): 목록의 먹색 현황 카드와 구분되게 밝은 그라데이션 · 큰 아바타 · 숫자 셋 */
.agent-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;margin:4px 0 20px;padding:24px 28px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(120deg,var(--surface) 0%,var(--surface) 45%,var(--oc-blue-0) 100%);box-shadow:0 1px 2px rgba(16,18,40,.04)}
.agent-hero-avatar{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:var(--surface);border:1px solid var(--line);color:var(--ink);box-shadow:0 6px 16px rgba(16,18,40,.06)}
.agent-hero-avatar .icon{width:32px;height:32px}
.agent-hero-main h1{margin:0;font-size:26px;line-height:34px}
.agent-hero p{max-width:none}
.agent-hero .agent-role{margin:4px 0 0}
.agent-hero .agent-plain-status{margin:8px 0 0}
.agent-hero-facts{display:flex;flex-wrap:wrap;gap:0;margin:18px 0 0;padding-top:16px;border-top:1px solid var(--line-soft)}
.agent-hero-facts>div{min-width:150px;padding:0 24px;border-left:1px solid var(--line-soft)}
.agent-hero-facts>div:first-child{padding-left:0;border-left:0}
.agent-hero-facts dt{font-size:12px;line-height:18px;color:var(--muted)}
.agent-hero-facts dd{margin:2px 0 0;font-size:17px;line-height:24px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.agent-hero-facts dd small{margin-left:6px;font-size:12px;font-weight:600;color:var(--oc-red-7)}
.agent-hero+.agent-tabs{margin-top:0}
@media(max-width:800px){.agent-hero{grid-template-columns:1fr;padding:20px}.agent-hero-facts>div{padding:0 16px 0 0;border-left:0;min-width:0}}
.agent-hero{grid-template-columns:auto minmax(0,1fr) auto}
.agent-hero-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:210px}
.agent-hero-side{display:flex;flex-direction:column;gap:16px;min-width:210px}
.agent-messengers{display:flex;flex-direction:column;gap:8px}
.agent-messengers small{font-size:12px;color:var(--muted)}
.agent-messengers ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.messenger-badge{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:50%;background:var(--surface);cursor:default}
.messenger-badge svg{width:18px;height:18px}
.messenger-badge:focus-visible{outline:2px solid var(--focus,var(--ink));outline-offset:2px}
.agent-hero-actions small{font-size:12px;color:var(--muted)}
.agent-hero-actions .ui-button{display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;min-height:40px;padding:8px 14px;border:1px solid var(--line);border-radius:var(--button-radius,8px);background:var(--surface);color:var(--ink);font-size:13px;font-weight:600;text-decoration:none;box-shadow:none}
.agent-hero-actions .ui-button.primary{background:var(--ink);border-color:var(--ink);color:#fff}
.agent-hero-actions .ui-button .icon{width:16px;height:16px}
@media(max-width:1000px){.agent-hero{grid-template-columns:auto minmax(0,1fr)}.agent-hero-side{grid-column:1/-1;min-width:0}.agent-hero-actions{flex-direction:row;flex-wrap:wrap;align-items:center;min-width:0}.agent-messengers{flex-direction:row;align-items:center}}
/* 설치 도구 툴팁(2026-10-01): 개수에 마우스를 올리거나 포커스하면 도구를 한 줄에 하나씩 보인다. 툴팁이 잘리지 않게 목록의 넘침을 숨기지 않는다 */
.market-collection .entity-card.library-item{overflow:visible}
.market-collection .entity-card.library-item:last-child{border-radius:0 0 12px 12px}
.library-tip{position:relative;display:inline-block;border-bottom:1px dashed var(--oc-gray-5);cursor:help;outline:none}
.library-tip:focus-visible{border-radius:4px;box-shadow:0 0 0 2px var(--accent)}
/* 소개 카드 어두운 그라데이션 (2026-10-01): 목록의 단색 먹색 현황 카드와 구분되게 먹색 → 남청색 */
.agent-hero{border:0;background:linear-gradient(120deg,#1f2023 0%,#23262d 45%,#2c3e5c 100%);color:#f4f4f5;box-shadow:0 12px 32px rgba(17,18,20,.18)}
.agent-hero-avatar{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#fff;box-shadow:none}
.agent-hero-name{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.agent-hero-main h1{color:#fff}
.agent-hero .agent-role{color:#d4d4d8}
.agent-hero-state{padding:2px 10px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#e4e4e7;font-size:12px;line-height:18px;font-weight:600}
.agent-hero-state.is-running{background:rgba(99,230,190,.14);border-color:rgba(99,230,190,.35);color:#96f2d7}
.agent-hero-state.is-failed{background:rgba(255,135,135,.14);border-color:rgba(255,135,135,.35);color:#ffc9c9}
.agent-hero-facts{border-top-color:rgba(255,255,255,.12)}
.agent-hero-facts>div{border-left-color:rgba(255,255,255,.12)}
.agent-hero-facts dt{color:#a1a1aa}
.agent-hero-facts dd{color:#fff;font-size:16px}
.agent-hero-facts dd small{display:block;margin:2px 0 0;font-size:12px;font-weight:400;color:#a1a1aa}
.agent-hero-muted{color:#a1a1aa;font-weight:500}
.agent-hero-actions small{color:#a1a1aa}
.agent-messengers small{color:#a1a1aa}
.messenger-badge{border-color:rgba(255,255,255,.3);background:#fff}
.messenger-badge:focus-visible{outline-color:#fff}
.agent-hero-actions .ui-button{background:transparent;border-color:rgba(255,255,255,.3);color:#fff}
.agent-hero-actions .ui-button:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.5)}
.agent-hero-actions .ui-button.primary{background:#fff;border-color:#fff;color:#1f2023}
.agent-hero-actions .ui-button.primary:hover{background:#e9ecef}
.agent-hero-actions .ui-button:focus-visible{outline:2px solid #fff;outline-offset:2px}
/* 맡길 수 있는 일 리스트 (2026-10-01): 마켓플레이스 목록처럼 행 · 열 */
.agent-work-list{display:grid;border:1px solid var(--line-soft);border-radius:12px;overflow:hidden}
.agent-work-row{display:grid;grid-template-columns:minmax(0,1fr) 44px 64px 92px 92px 124px;align-items:center;gap:12px;min-height:72px;padding:12px 20px;border-top:1px solid var(--line-soft)}
.agent-work-row:first-child{border-top:0}
.agent-work-head{min-height:44px;padding:0 20px;background:var(--oc-gray-0);font-size:12px;font-weight:600;color:var(--muted)}
.agent-work-name{display:grid;gap:2px;min-width:0}
.agent-work-name a{color:var(--ink);font-size:15px;font-weight:650;text-decoration:none}
.agent-work-name small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--muted)}
.agent-work-row>span[role=cell]:not(.agent-work-name):not(.agent-work-actions){font-size:13px;color:var(--ink)}
.agent-work-tools{border-bottom:1px dashed var(--oc-gray-5);cursor:help}
.agent-work-status{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;min-width:0}
.agent-work-status strong{font-weight:650;color:var(--oc-green-8)}.agent-work-status.is-need strong{color:var(--oc-orange-8)}.agent-work-status.is-wait strong{color:var(--muted)}
.agent-work-status small{flex-basis:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--muted)}
.agent-work-status a{order:3;font-size:13px;font-weight:600;color:var(--oc-blue-7)}
.agent-work-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}
/* 업무 줄 끝 아이콘 버튼(2026-10-01): 36px 정사각형, 라이브러리 줄 끝과 같은 크기 */.agent-work-actions .icon-action{display:inline-grid;place-items:center;width:36px;height:36px;min-width:36px;min-height:36px;padding:0}.agent-work-actions .icon-action .icon{width:18px;height:18px}.agent-work-actions .icon-action[disabled]{opacity:.45;cursor:not-allowed}
.agent-work-actions a.ui-button{display:inline-flex;align-items:center;min-height:36px;padding:6px 14px;border:1px solid var(--line);border-radius:var(--button-radius,8px);background:var(--surface);color:var(--ink);font-size:13px;font-weight:600;text-decoration:none}@media(max-width:900px){.agent-work-head{display:none}.agent-work-row{grid-template-columns:1fr;gap:6px}.agent-work-actions{justify-content:flex-start}}
/* AI · 페르소나 · 업무 방식 · 채용한 날 네 칸을 한 줄에 둔다. 긴 글 두 칸이 남는 폭을 나눠 쓰고 두 줄에서 자른다(2026-10-01 페르소나 추가) */.agent-hero-facts{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr) auto}.agent-hero-facts>div{min-width:0}
@media(max-width:800px){.agent-hero-facts{grid-template-columns:1fr 1fr;row-gap:12px}}
.agent-hero-rule-cell dd{font-size:14px;line-height:21px;font-weight:500}
.agent-hero-rule{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:keep-all}
.market-collection .entity-card.library-item[hidden]{display:none}
.library-cell .badge{white-space:nowrap}
.agent-hero-facts .agent-hero-rule-cell dd{font-weight:400;color:#e4e4e7}
.agent-hero-main h2{margin:0;font-size:24px;line-height:32px;color:#fff}
/* 마켓플레이스 줄 끝 아이콘 버튼과 커스텀 툴팁(2026-10-01) */
.library-actions .icon-action{position:relative;display:inline-grid;place-items:center;width:36px;height:36px;min-width:36px;min-height:36px;padding:0;border:1px solid var(--line);border-radius:var(--button-radius);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-control);text-decoration:none}
.library-actions .icon-action .icon{width:18px;height:18px}
.library-actions .icon-action:hover{background:var(--oc-gray-0);border-color:var(--oc-gray-4)}
.library-actions .icon-action[disabled]{opacity:.45;cursor:not-allowed}
.library-actions span.icon-action{color:var(--oc-green-8);background:var(--oc-green-0);border-color:var(--oc-green-2)}
.library-actions .card-management summary{position:relative}
.market-collection{--lib-cols:minmax(0,2.8fr) minmax(0,.8fr) minmax(104px,.8fr) 40px 64px 96px 140px}
.market-collection .entity-card .library-actions .icon-action{padding:0;min-height:36px;width:36px;margin:0;justify-content:center}
.market-collection .entity-card .library-actions .icon-action{overflow:visible;max-width:none}
/* 고른 에이전트에 이미 추가한 줄은 배경을 연하게(2026-10-01) */
.market-collection .entity-card.library-item:has(.library-row.is-added){background:var(--oc-green-0)}
.library-row.is-added .library-kind{background:var(--surface)}
/* 업무 상세 드로어 · 공통 커스텀 툴팁 · 최근 기록 내려받기(2026-10-01 사용자 결정) */
.agent-work-open{justify-self:start;max-width:100%;padding:0;border:0;background:none;color:var(--ink);font:inherit;font-size:15px;font-weight:650;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.agent-work-open:hover{text-decoration:underline}
.agent-work-open:focus-visible{border-radius:4px;box-shadow:0 0 0 2px var(--accent)}
.agent-work-tools{outline:none}.agent-work-tools:focus-visible{border-radius:4px;box-shadow:0 0 0 2px var(--accent)}
.agent-recent-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}
.ui-tooltip{position:fixed;z-index:1100;max-width:320px;padding:6px 10px;border-radius:8px;background:var(--chrome-bg);color:#fff;font-size:12px;line-height:16px;font-weight:500;white-space:pre-line;word-break:keep-all;box-shadow:0 8px 20px rgba(17,18,20,.24);pointer-events:none}
.ui-tooltip[hidden]{display:none}
.recipe-sheet{display:grid;gap:16px}
.recipe-sheet-desc{margin:0;color:var(--ink);font-size:14px;line-height:22px}
.recipe-sheet .agent-work-status{padding:12px 14px;border-radius:10px;background:var(--oc-gray-0);font-size:14px}
.recipe-sheet-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin:0;padding:16px;border:1px solid var(--line-soft);border-radius:10px}
.recipe-sheet-facts dt{font-size:12px;color:var(--muted)}
.recipe-sheet-facts dd{margin:2px 0 0;font-size:14px;color:var(--ink);overflow-wrap:anywhere}
.recipe-sheet .recipe-head-io{margin:0}
.recipe-sheet-title{margin:8px 0 0;font-size:15px}
.overlay.drawer footer a.ui-button{display:inline-flex;align-items:center;min-height:36px;padding:6px 14px;border:1px solid var(--line);border-radius:var(--button-radius,8px);background:var(--surface);color:var(--ink);font-size:13px;font-weight:600;text-decoration:none;margin-right:auto}
@media(min-width:901px) and (max-width:1100px){.agent-work-row{grid-template-columns:minmax(0,1fr) 44px 64px 124px}.agent-work-row>:nth-child(4),.agent-work-row>:nth-child(5){display:none}}
/* 분류 드롭다운: 검색 바로 옆, 넣을 에이전트는 줄 오른쪽 끝(2026-10-01) */
.library-category{display:inline-flex;align-items:center;margin:0}
.library-category select{width:auto;min-width:150px;min-height:40px;margin:0;color:var(--ink)}
/* Chat 탭이 Work · Settings 와 같은 자리에 서도록(2026-10-01): 채팅 화면만 flex 라 겹치던 위 여백이 더해지고, 스크롤바가 없어 폭이 달라지던 것을 맞춘다 */
.agent-hero.agent-profile{margin-top:0}
.chat-shell.chat-embedded{margin-top:0}
.main:has(>.chat-shell.chat-embedded)>:not(.chat-shell){flex-shrink:0}
/* 설치한 도구 목록의 종류 · 상태 · 출처 · 버전은 한 줄로 */
#agent-cap-installed td:nth-child(n+2):nth-child(-n+6){white-space:nowrap}
html:has(.chat-shell.chat-embedded){overflow-y:scroll}
/* 마켓플레이스 상세 서랍(2026-10-01): 설명 · 요약 · 단계 · 입력 값 · 도구, 설정 표는 접힌 고급 정보 */
.asset-detail-desc{margin:0 0 16px;font-size:14px;line-height:22px;color:var(--ink)}
.asset-detail-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 24px;padding:14px 16px;border:1px solid var(--line-soft);border-radius:12px;background:var(--oc-gray-0)}
.asset-detail-facts div{min-width:0}.asset-detail-facts dt{margin:0 0 4px;font-size:12px;color:var(--muted)}.asset-detail-facts dd{margin:0;font-size:13px;font-weight:600;color:var(--ink)}
.asset-detail-section{margin:0 0 20px}.asset-detail-section h3{margin:0 0 8px;font-size:14px;font-weight:700}.asset-detail-section p{margin:0;font-size:13px;line-height:20px}
.asset-detail-steps{display:grid;gap:6px;margin:0;padding:0;list-style:none;counter-reset:step}
.asset-detail-steps li{display:flex;align-items:center;gap:10px;font-size:13px;counter-increment:step}
.asset-detail-steps li::before{content:counter(step);display:inline-grid;place-items:center;flex:none;width:22px;height:22px;border-radius:50%;background:var(--oc-gray-1);font-size:12px;font-weight:600;color:var(--ink)}
.asset-detail-list{display:grid;gap:4px;margin:0;padding-left:18px;font-size:13px;line-height:20px}
.asset-detail-advanced{margin:8px 0 16px;border-top:1px solid var(--line-soft);padding-top:12px}.asset-detail-advanced summary{cursor:pointer;font-size:13px;color:var(--muted)}
@media(max-width:600px){.asset-detail-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* 업무 만들기 창(2026-10-01 사용자 결정): 화면을 꽉 채우지 않는 가운데 큰 창, 시작 화면에서 방법 고르기, 흐름 칸은 ① 이름과 설명 → ② 물어볼 것 → ③ 단계 */
.overlay.rb-modal{padding:32px;align-items:center;justify-content:center}
.overlay.rb-modal>section[role=dialog]{width:min(1240px,100%);max-width:none;height:min(880px,calc(100dvh - 64px));max-height:none;border:1px solid var(--line);border-radius:16px;overflow:hidden}
/* 직접 만들기 시작 화면(방법 고르기)은 작은 창으로 열고, 방법을 고르면 편집기 크기로 자연스럽게 커진다(2026-10-01 사용자 결정). YAML 입력 화면은 그 중간 크기다 */
.overlay.rb-modal>section[role=dialog]{transition:width .32s cubic-bezier(.2,.8,.2,1),height .32s cubic-bezier(.2,.8,.2,1)}
.overlay.rb-modal.rb-choosing>section[role=dialog]{width:min(880px,100%);height:auto;max-height:calc(100dvh - 64px)}
.overlay.rb-modal.rb-choosing.rb-yaml-step>section[role=dialog]{width:min(840px,100%)}
/* 시작 화면과 YAML 화면은 상하좌우 32px 로 같게 두고, 창 높이는 내용에 맞춘다 */
.rb-modal.rb-choosing .rb-start{flex:none;align-content:start;padding:32px}
.rb-modal.rb-choosing .rb-start-choices{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
.rb-modal.rb-choosing .rb-start-card{min-height:0}
.rb-modal.rb-choosing .rb-yaml-box{width:100%}
@media(prefers-reduced-motion:reduce){.overlay.rb-modal>section[role=dialog]{transition:none}}
@media(max-width:800px){.overlay.rb-modal{padding:0}.overlay.rb-modal>section[role=dialog],.overlay.rb-modal.rb-choosing>section[role=dialog],.overlay.rb-modal.rb-choosing.rb-yaml-step>section[role=dialog]{width:100vw;height:100dvh;border:0;border-radius:0}}
.rb-modal.rb-choosing footer [type=submit],.rb-modal.rb-choosing [data-rb-status]{display:none}
.rb-start{flex:1;display:grid;align-content:center;justify-items:center;gap:8px;padding:40px 24px;text-align:center}
.rb-start h3{margin:0;font-size:22px;line-height:30px}
.rb-start>p{margin:0 0 20px;font-size:14px;color:var(--muted)}
.rb-start-choices{display:grid;grid-template-columns:repeat(3,minmax(0,260px));gap:16px}
.rb-start-card{display:grid;justify-items:start;align-content:start;gap:8px;min-height:190px;padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;box-shadow:var(--shadow-control)}
.rb-start-card:hover:not([disabled]){border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.rb-start-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.rb-start-card[disabled]{cursor:not-allowed;background:var(--oc-gray-0);color:var(--muted)}
.rb-start-card strong{display:flex;align-items:center;gap:8px;font-size:16px;line-height:24px}
.rb-start-card small{font-size:13px;line-height:20px;color:var(--muted);word-break:keep-all}
.rb-start-card em{font-style:normal;font-size:12px;line-height:18px;color:var(--oc-orange-8);word-break:keep-all}
.rb-start-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--oc-gray-1)}
.rb-start-icon .icon{width:22px;height:22px}
@media(max-width:900px){.rb-start-choices{grid-template-columns:1fr}}
/* 전문가 모드 · YAML 로 만들기(2026-10-01) */
.rb-start.rb-yaml{align-content:start}
.rb-yaml-box{display:grid;gap:12px;width:min(720px,100%);text-align:left}
.rb-yaml-file{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:13px}
.rb-yaml-file .ui-button{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:8px 14px;border:1px solid var(--line);border-radius:var(--button-radius,8px);background:var(--surface);color:var(--ink);font-size:13px;font-weight:600;cursor:pointer}
.rb-yaml-file .ui-button:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.rb-start-card>*{max-width:100%;white-space:normal}
.rb-yaml-file .rb-yaml-sample{margin-left:auto}
.rb-yaml-box textarea{width:100%;min-height:280px;margin:0;font-family:var(--mono,ui-monospace,SFMono-Regular,Menlo,monospace);font-size:13px;line-height:20px;resize:vertical}
.rb-yaml-box .field-error{margin:0;white-space:pre-line}
.rb-yaml-actions{display:flex;justify-content:flex-end;gap:8px}
.rb-flow-foot{display:contents}
.rb-sec-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin:20px 0 10px}
.rb-info-inline>.rb-sec-head,.rb-flow-dyn>.rb-sec-head:first-child{margin-top:0}
.rb-flow-dyn{margin-top:20px}.rb-info-inline+.rb-flow-dyn,.rb-scroll>.rb-flow-dyn:first-child{margin-top:0}
.rb-info-inline+.rb-flow-dyn{padding-top:20px}
.rb-sec-head h3{margin:0;font-size:14px;line-height:22px}
.rb-sec-head small{flex-basis:100%;font-size:12px;line-height:18px;color:var(--muted);word-break:keep-all}
.rb-sec-no{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--ink);color:#fff;font-size:11px;font-weight:700;align-self:center}
.rb-info-inline{display:grid;gap:0;padding-bottom:4px}
.rb-info-inline .field{margin-bottom:10px}
.rb-info-more{justify-self:start;font-size:12px}
.rb-info-more.active{font-weight:700}
.rb-guide ol{margin:0;padding-left:20px;display:grid;gap:6px;font-size:13px;line-height:20px}
.rb-step-advanced{margin-top:16px}
.rb-step-advanced>summary small{margin-left:6px;font-weight:400;color:var(--muted)}
.rb-step-advanced>.inspector-section,.rb-step-advanced>.rb-group{margin-top:12px}
.step-add-need{margin-left:4px;padding:1px 6px;border-radius:999px;background:var(--oc-orange-0);color:var(--oc-orange-8);font-style:normal;font-size:11px;font-weight:600}
.step-add-card.needs-add{background:var(--oc-gray-0)}
.rb-mention[hidden]{display:none}
.rb-info-more{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.rb-modal.rb-choosing form>footer{display:none}
/* 현황 카드 안 링크(History 「실패만 보기」) */
.roster-hero .rh-stats a{color:#fff;text-decoration:underline;text-underline-offset:3px}
/* 달력도 History 목록처럼 흰 카드 안에 둔다(2026-10-01 사용자 결정): 도구 줄과 달력을 한 카드에 묶는다 */
.schedule-calendar{padding:20px 24px 24px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.schedule-calendar .calendar-month,.schedule-calendar .calendar-week{border-color:var(--line-soft)}
/* History 필터 줄은 Library 필터 줄과 같은 모양 · 간격(2026-10-01 사용자 결정): 현황 카드 아래 20px, 목록 위 20px */
.history-toolbar.library-toolbar{display:grid;gap:12px;margin:20px 0}
.history-toolbar .library-filter-row{display:flex;align-items:center;gap:12px}
.history-toolbar .library-filter-row input[type=search]{flex:0 1 360px;width:360px;min-width:200px;max-width:none;height:40px;margin:0}
.history-toolbar .library-category select{min-height:40px}
@media(max-width:900px){.history-toolbar .library-filter-row{flex-wrap:wrap}.history-toolbar .library-filter-row input[type=search]{flex-basis:100%;width:100%}}
/* 역할별 대시보드(2026-10-01): 프로젝트 매니저의 맡은 프로젝트 전환 줄, 멤버의 에이전트 카드 */
.dash-projects{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.dash-projects a{display:grid;gap:2px;min-width:160px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);text-decoration:none}
.dash-projects a.active{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.dash-projects strong{font-size:14px}.dash-projects span{font-size:12px;color:var(--muted)}.dash-projects span.warn{color:var(--oc-orange-8);font-weight:600}
.member-agents{margin:0 0 20px;padding:20px 24px;border:1px solid var(--line-soft);border-radius:16px;background:var(--surface)}
.member-agents>header{margin:0 0 14px}.member-agents>header h2{margin:0 0 4px;font-size:16px}.member-agents>header p{margin:0;font-size:13px;color:var(--muted)}
.member-agent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.member-agent{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--line);border-radius:12px}
.member-agent>header{display:flex;align-items:center;gap:10px}.member-agent>header div{display:grid;gap:4px;min-width:0}.member-agent>header strong{font-size:14px}
.member-agent p{margin:0;font-size:13px;color:var(--muted)}
.member-agent ul{display:grid;gap:4px;margin:0;padding-left:18px;font-size:13px}
.member-agent footer{display:flex;gap:8px;margin-top:auto}
.member-agent footer .ui-button{display:inline-flex;align-items:center;min-height:34px;padding:6px 14px;border:1px solid var(--line);border-radius:var(--button-radius);background:var(--surface);color:var(--ink);font-size:13px;font-weight:600;text-decoration:none}
.member-agents-empty{margin:0;font-size:13px}
/* 내 계정 · 팀 설정 재구성(2026-10-01 사용자 결정): 에이전트 Settings 와 같은 판 · 줄, 내 계정 소개 카드, 활동 내역 필터 줄 */
.account-config,.team-config{max-width:none}
.config-danger .config-card-head h2{color:var(--oc-red-8)}
.account-avatar{font-size:24px;font-weight:700;color:#fff}
.config-rows.account-profile,.config-rows.team-info{display:block;gap:0;margin:0}
.config-rows.account-profile>div,.config-rows.team-info>div{display:grid;grid-template-columns:180px minmax(0,1fr) auto;gap:16px;align-items:center;min-height:0;padding:14px 0;border-top:0;border-bottom:1px solid var(--line-soft)}
.config-rows.account-profile>div:last-child,.config-rows.team-info>div:last-child{border-bottom:0}
.config-rows.account-profile dd,.config-rows.team-info dd{display:block;margin:0}
.config-rows .config-row dd.config-actions{display:flex}
.config-rows .config-row>dd>.actions{display:flex;gap:8px;justify-content:flex-end}
.team-config .resource-meters{margin:12px 0 4px}
.team-config .table-wrap{margin-top:12px}
.audit-filter-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0 4px}
.audit-filter-row .audit-filters{display:flex;align-items:center;gap:12px;margin:0}
.audit-date{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:13px;color:var(--muted)}
.audit-date input[type=date]{width:auto;min-height:40px;margin:0;color:var(--ink)}
@media(max-width:700px){.config-rows.account-profile>div,.config-rows.team-info>div{grid-template-columns:1fr;gap:6px}}
.account-config .config-row,.team-config .config-row{align-items:center}
/* 내 아바타 픽토그램(2026-10-01): 이름 첫 글자 대신 채운 사람 모양 */
.avatar-pictogram{overflow:hidden}
.avatar-pictogram .icon{width:64%;height:64%;fill:currentColor;stroke:none}
/* 서비스 추가 창 · 서비스 상세(2026-10-01 사용자 결정): 지금까지 만든 스타일 — 종류 카드, 번호 원 단계 표시, 회색 머리 판, 에이전트 상세와 같은 소개 카드 */
.svc-detail{display:grid;gap:24px}
.svc-section{display:grid;gap:24px}
.svc-detail .card,.infra-create-modal .creation-body>.card{margin:0;padding:0 24px 20px;overflow:hidden}
.svc-detail .card>.section-heading,.infra-create-modal .creation-body>.card>.section-heading,.svc-detail .list-section>.page-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 -24px 16px;padding:14px 24px;background:var(--oc-gray-0);border-bottom:1px solid var(--line-soft)}
.svc-detail .card>.section-heading h2,.infra-create-modal .creation-body>.card>.section-heading h2,.svc-detail .list-section>.page-heading h2{margin:0;font-size:15px;line-height:24px}
.svc-detail .list-section>.page-heading p{margin:2px 0 0;font-size:13px;line-height:20px;color:var(--muted)}
.svc-detail .grid{gap:24px}
.svc-hero-actions{align-self:center}
.infra-create-modal .creation-steps{display:flex;gap:24px;margin:0 0 20px;padding:0;border:0;list-style:none}
.infra-create-modal .creation-steps li{display:inline-flex;align-items:center;gap:8px;flex:none;margin:0;padding:0;border:0;color:var(--muted);font-size:13px;font-weight:500}
.infra-create-modal .creation-steps li.active{color:var(--ink);font-weight:700}
.creation-step-no{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--oc-gray-2);color:var(--ink);font-size:12px;font-weight:700}
.creation-steps li.active .creation-step-no{background:var(--ink);color:#fff}
.kind-choices{margin:0;padding:0;border:0;min-width:0}
.kind-choices legend{margin:0 0 12px;padding:0;font-size:15px;font-weight:700}
.kind-choice-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.kind-choice{position:relative;display:grid;align-content:start;justify-items:start;gap:8px;padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer}
.kind-choice input{position:absolute;opacity:0;pointer-events:none}
.kind-choice strong{font-size:15px;line-height:22px}
.kind-choice small{font-size:13px;line-height:20px;color:var(--muted);word-break:keep-all}
.kind-choice:hover{border-color:var(--oc-gray-5)}
.kind-choice:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.kind-choice:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:800px){.kind-choice-list{grid-template-columns:1fr}}
/* 권한 사유(2026-10-01): 공용 툴팁(js/guidance.js)으로 보인다. 막힌 버튼은 마우스 이벤트를 받지 않아 감싼 칸이 대신 받는다 */
.denied{position:relative;display:inline-flex}
.denied>[disabled]{pointer-events:none}
/* 팀 대시보드: 「프로젝트별 현황」 카드도 다른 블록처럼 아래 24px 간격(2026-10-01) */
.team-home-panel{margin-bottom:24px}
/* 채용 직후 마켓플레이스 안내 띠(2026-10-01) */
/* 목록 머리 줄 열 이름은 모두 가운데 정렬(2026-10-01 사용자 요청) */
.library-list-head span{text-align:center}
/* 태그를 누르면 그 태그로 거른다(2026-10-01) */
a.library-kind-link{text-decoration:none;cursor:pointer}
a.library-kind-link:hover,a.library-kind-link:focus-visible{background:var(--oc-gray-2);color:var(--ink)}
/* 업무를 추가할 에이전트 띠(2026-10-01): 검색 줄과 떨어진 목록 위 별도 띠 */
.library-target{display:flex;align-items:center;gap:10px;margin:0 0 12px}
.library-target-title{display:inline-flex;align-items:center;gap:6px;flex:none;margin:0;font-size:13px;line-height:20px;font-weight:600;color:var(--ink);white-space:nowrap}
.library-target-title .icon{width:18px;height:18px}
.library-target-select{width:auto;min-width:200px;min-height:32px;height:32px;margin:0;padding-top:0;padding-bottom:0;font-size:13px;line-height:30px;color:var(--ink)}
.library-target-note{display:flex;align-items:center;gap:6px;flex:1;min-width:0;max-width:none;margin:0 0 0 6px;padding:5px 10px;border-radius:8px;font-size:13px;line-height:19px;color:var(--muted);word-break:keep-all}
.library-target-note span .icon{width:14px;height:14px;vertical-align:-2px}
.library-target-empty{display:block;color:var(--muted);font-size:13px}
.market-collection>.library-target{margin:0 0 32px}
/* 에이전트 줄은 다시 상자로 감싼다(2026-10-01 사용자 결정). 높이를 아끼려고 한 줄 배치와 얇은 안쪽 여백은 그대로 둔다 */
.market-collection>.library-target:not(.library-target-empty){padding:10px 14px;border:1px solid var(--line-soft);border-radius:12px;background:var(--oc-gray-0)}
/* 필터는 목록에 붙인다(2026-10-01 사용자 결정) */
.market-collection>.library-toolbar{margin-bottom:12px}
@media(max-width:700px){.library-target{flex-wrap:wrap}.library-target-select{flex:1;min-width:0}.library-target-note{flex-basis:100%;margin-left:0}}
/* 마켓플레이스에서 불러오기 창 */
.library-import-search{width:100%;margin:0 0 12px}
.library-import-list{display:grid;gap:8px;max-height:360px;overflow:auto}
.library-import-list .authoring-choice[hidden]{display:none}
.library-target-note[data-hired]{background:var(--oc-green-0);color:var(--ink)}
.library-target-note [data-target-hint]{display:flex;align-items:center;gap:6px;min-width:0}
.library-target-note [data-target-hint][hidden]{display:none}
.library-target-note [data-target-hint]>.icon{flex:none;width:16px;height:16px}
.library-hired{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.library-hired>.icon{flex:none;width:16px;height:16px;color:var(--oc-green-8)}
.library-hired>span{flex:1;min-width:0}
.library-hired a{flex:none;color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:2px}
/* 맡길 일 입구(2026-10-01): 결과 아래 「원하는 업무가 없나요? 직접 만들기」 */
.task-make{display:flex;align-items:center;justify-content:center;gap:10px;margin:12px 0 0;font-size:13px;color:var(--muted)}
.task-make[hidden]{display:none}
/* 버튼 크기 두 가지(2026-10-01 사용자 결정): 기본 40px(화면 · 카드 · 창), 목록 줄 안의 버튼 36px */
.agent-plain-status .ui-button,.cap-actions .ui-button,#workspace-picker [data-project-footer] a.ui-button,.ab-foot .ui-button,.history-row .ui-button,.member-agent footer .ui-button{min-height:36px;padding:6px 14px;font-size:13px}
.market-collection .entity-card footer a.ui-button{min-height:var(--button-height);padding:8px var(--button-padding-x)}
/* 검은 가로 카드(목록의 현황 카드 · 에이전트 상세 소개 카드)와 그 아래 콘텐츠 사이는 넉넉하게 32px로 맞춘다(2026-10-01 사용자 요청). 아래 요소의 위 여백은 더하지 않는다. 좁은 화면은 24px */
main .roster-hero,main .agent-hero{margin-bottom:calc(var(--section-gap) + 8px)}
main .roster-hero+*,main .agent-hero+*{margin-top:0}
/* 실행 진행 알림은 왼쪽 메뉴 아래에 띄운다(2026-10-01 사용자 결정). 너비와 왼쪽 위치는 최근 실행 패널과 같고, 패널이 있으면 그 위에 쌓인다(--run-stack-space, js/run-stack.js) */
#run-toasts{position:fixed;left:12px;bottom:calc(16px + var(--run-stack-space,0px));z-index:300;display:grid;gap:8px;width:248px;pointer-events:none}
#run-toasts>*{pointer-events:auto}#run-toasts>.run-toast.running{pointer-events:none}
#run-toasts .run-toast{width:auto;padding:12px 14px}#run-toasts .run-toast-body strong{white-space:normal;overflow-wrap:anywhere;word-break:keep-all}/* 폭이 좁아 업무 이름이 잘리지 않게 줄을 바꾼다 */
@media(max-width:1279px){#run-toasts{left:8px;bottom:calc(8px + var(--run-stack-space,0px));width:320px}}
/* 업무가 있는 에이전트 카드는 다음 할 일 버튼이 없다(2026-10-01). 남은 웹챗 · 상세 보기는 오른쪽 자리를 지킨다 */
.ab-foot>.ab-actions:only-child{margin-left:auto}
/* 실행 창의 「언제 할까요?」(2026-10-01, js/recipe-values.js) */
.run-when{display:grid;gap:12px;margin:20px 0 0;padding:16px;border:1px solid var(--line-soft);border-radius:12px;background:var(--oc-gray-0)}
.run-when legend,.run-when h3{float:left;width:100%;margin:0;padding:0;font-size:14px;line-height:20px;font-weight:700;color:var(--ink)}
.run-when>p{margin:0}
.run-when-modes{display:flex;flex-wrap:wrap;gap:8px 20px}
.run-when-modes label,.run-when-days label{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:13px;font-weight:500;color:var(--ink);cursor:pointer}
.run-when-modes input,.run-when-days input{width:16px;height:16px;margin:0}
.run-when-fields{display:grid;gap:12px}
.run-when-fields .field{margin:0}
.run-when-days{display:flex;flex-wrap:wrap;gap:8px 14px}
.run-when-preview{margin:0;font-size:12px}
.run-when-modes label,.run-when-days label{padding:0;border:0;background:none;box-shadow:none;min-height:0}
/* 서비스 상세 드로어(2026-10-01): 목록 위 오른쪽에 주소로 연다. 다시 그릴 때는 효과 없이, 처음 열 때만 나타난다. 폭은 소개 카드와 탭이 들어가게 넓게 */
/* 일반 모달(.overlay)과 섞이지 않게 따로 그린다: 모달을 찾는 코드 · 시험이 드로어를 열린 모달로 오해하지 않는다. 모양은 .overlay.drawer 와 같다 */
.route-drawer{position:fixed;inset:0;z-index:90;display:flex;justify-content:flex-end;background:rgba(17,18,20,.56)}.route-drawer.is-opening{animation:fade 160ms ease-out}
.route-drawer>section[role=dialog]{display:flex;flex-direction:column;width:min(960px,100vw);height:100dvh;background:var(--surface);box-shadow:var(--shadow-float);outline:none}
.route-drawer>section>header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:var(--content-gap) var(--section-padding-x);border-bottom:1px solid var(--line-soft);background:var(--surface)}
.route-drawer>section>header h2{margin:0;font-size:18px;line-height:26px}
.route-drawer .dialog-body{flex:1;min-height:0;overflow:auto;padding:var(--section-padding-y) var(--section-padding-x)}
.route-drawer .agent-hero{margin-top:0}
/* 내가 만든 것의 생성일 · 갱신일 두 줄(2026-10-01) */
.library-dates{display:grid;gap:2px;white-space:nowrap}
