:root{color-scheme:light dark;--fg:#1a1a1a;--bg:#f6f6f4;--card:#fff;--line:#d8d8d4;--muted:#6b6b66;--accent:#2f6feb;--err:#b42318;--ok:#1a7f37;--warn:#9a6700;--user:#e8f0fe;--tool:#f1f1ee;--add:#dafbe1;--del:#ffebe9}@media (prefers-color-scheme:dark){:root{--fg:#e6e6e3;--bg:#151515;--card:#1f1f1f;--line:#333;--muted:#9a9a94;--accent:#6ea0ff;--err:#ff7b72;--ok:#3fb950;--warn:#d29922;--user:#1d2a44;--tool:#262626;--add:#12351d;--del:#3d1b1b}}.iris-badge{font-size:12px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}.iris-badge.ok{color:var(--ok);border-color:var(--ok)}.iris-badge.warn{color:var(--warn);border-color:var(--warn)}.iris-badge.err{color:var(--err);border-color:var(--err)}.iris-chat{overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.iris-chat>*{flex-shrink:0}.iris-chat .empty{color:var(--muted);font-size:13px;white-space:pre-wrap}.iris-chat .msg{max-width:100%;padding:10px 12px;border-radius:8px;white-space:pre-wrap;word-wrap:break-word}.iris-chat .msg.user{background:var(--user);align-self:flex-end;max-width:85%}.iris-chat .msg.user.cancelled{opacity:.45;text-decoration:line-through}.iris-chat .msg.user.cancelled:after{content:" (removed from queue)";text-decoration:none;font-size:12px;color:var(--muted)}.iris-chat .msg.assistant{background:var(--card);border:1px solid var(--line)}.iris-chat .msg.assistant.streaming{border-style:dashed}.iris-chat .msg.assistant.thinking{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;border-style:dashed;padding:8px 12px}.iris-chat .thinking .dots{display:inline-flex;gap:4px}.iris-chat .thinking .dots i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:iris-pulse 1.2s ease-in-out infinite}.iris-chat .thinking .dots i:nth-child(2){animation-delay:.2s}.iris-chat .thinking .dots i:nth-child(3){animation-delay:.4s}@keyframes iris-pulse{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}.iris-chat .msg.error{color:var(--err);border:1px solid var(--err)}.iris-chat .meta{font-size:12px;color:var(--muted)}.iris-chat details.tool{background:var(--tool);border-radius:8px;padding:6px 10px;font-size:13px}.iris-chat details.tool summary{cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;display:flex;gap:8px;align-items:baseline}.iris-chat details.tool summary .name{font-weight:600}.iris-chat details.tool summary .hint{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1}.iris-chat details.tool pre{margin:8px 0 0;padding:8px;background:var(--card);border-radius:6px;overflow:auto;max-height:320px;font-size:12px}.iris-chat details.tool .result.error{color:var(--err)}.iris-queue{display:none;gap:8px;flex-wrap:wrap;align-items:center;padding:8px 16px;border-top:1px solid var(--line);background:var(--bg);font-size:13px}.iris-queue.has{display:flex}.iris-queue .label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.iris-queue .chip{display:inline-flex;align-items:center;gap:6px;max-width:420px;padding:4px 6px 4px 10px;border:1px dashed var(--line);border-radius:999px;background:var(--user)}.iris-queue .chip .text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.iris-queue .chip button{padding:0 6px;line-height:18px;font-size:14px;border:0;background:transparent;color:var(--muted);cursor:pointer}.iris-compose{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px;padding:12px 16px;border-top:1px solid var(--line);background:var(--card);align-items:end}.iris-compose textarea{padding:8px 10px;border:1px solid var(--line);resize:vertical;min-height:44px;max-height:200px}.iris-compose button,.iris-compose textarea{font:inherit;border-radius:6px;background:transparent;color:inherit}.iris-compose button{height:44px;padding:0 16px;border:1px solid var(--line);cursor:pointer}.iris-compose button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.iris-compose button:disabled{opacity:.45;cursor:default}.iris-diffpanel{display:grid;grid-template-rows:auto 1fr;min-height:0}.iris-diffpanel .panehead{display:flex;align-items:center;gap:10px;padding:0 16px;height:49px;border-bottom:1px solid var(--line);background:var(--card)}.iris-diffpanel .panehead h2{margin:0;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.iris-diffpanel .panehead .meta,.iris-diffpanel .panehead h2{font-size:12px;color:var(--muted)}.iris-diffpanel .spacer{flex:1 1}.iris-diffpanel .panehead button{font:inherit;padding:6px 10px;border-radius:6px;border:1px solid var(--line);background:transparent;color:inherit;cursor:pointer}.iris-diffpanel .panehead button:disabled{opacity:.45;cursor:default}.iris-diffpanel .scroll{overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.iris-diffpanel .scroll>*{flex-shrink:0}.iris-diffpanel .empty{color:var(--muted);font-size:13px}.iris-diffpanel .meta{font-size:12px;color:var(--muted)}.iris-diffpanel .msg.error{padding:10px 12px;border-radius:8px;white-space:pre-wrap;color:var(--err);border:1px solid var(--err)}.iris-diffpanel details.dfile{border:1px solid var(--line);border-radius:8px;background:var(--card);overflow:hidden}.iris-diffpanel details.dfile summary{cursor:pointer;padding:8px 12px;font:13px ui-monospace,SFMono-Regular,Menlo,monospace;display:flex;gap:10px;align-items:baseline;background:var(--tool);list-style:none}.iris-diffpanel details.dfile summary::-webkit-details-marker{display:none}.iris-diffpanel details.dfile summary:before{content:"▸";color:var(--muted);font-size:11px;width:10px;display:inline-block}.iris-diffpanel details.dfile[open] summary:before{content:"▾"}.iris-diffpanel details.dfile summary .path{font-weight:600;flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.iris-diffpanel details.dfile summary .counts{color:var(--muted);font-size:12px;white-space:nowrap}.iris-diffpanel details.dfile summary .counts .plus{color:var(--ok)}.iris-diffpanel details.dfile summary .counts .minus{color:var(--err)}.iris-diffpanel details.dfile summary .iris-badge{font-size:11px}.iris-diffpanel .dwrap{overflow-x:auto;border-top:1px solid var(--line)}.iris-diffpanel table.d{border-collapse:collapse;font:12px/20px ui-monospace,SFMono-Regular,Menlo,monospace;min-width:100%}.iris-diffpanel table.d td{padding:0;vertical-align:top}.iris-diffpanel table.d td.n{min-width:3.2em;padding:0 8px;text-align:right;white-space:nowrap}.iris-diffpanel table.d td.m,.iris-diffpanel table.d td.n{width:1%;color:var(--muted);-webkit-user-select:none;-moz-user-select:none;user-select:none}.iris-diffpanel table.d td.m{padding:0 4px 0 8px}.iris-diffpanel table.d td.c{white-space:pre;padding-right:16px}.iris-diffpanel table.d tr.add td{background:var(--add)}.iris-diffpanel table.d tr.del td{background:var(--del)}.iris-diffpanel table.d tr.add td.m{color:var(--ok)}.iris-diffpanel table.d tr.del td.m{color:var(--err)}.iris-diffpanel table.d tr.gap td{background:var(--user);color:var(--muted);font-size:11px;padding:0 12px;height:24px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.iris-diffpanel table.d tr.gap td.n{text-align:center;padding:0}.iris-diffpanel table.d tr.gap button{font:inherit;font-size:11px;padding:0 6px;height:20px;line-height:18px;border:1px solid transparent;background:transparent;color:var(--accent);border-radius:4px;cursor:pointer}.iris-diffpanel table.d tr.gap button:hover{border-color:var(--line);background:var(--card)}.iris-diffpanel table.d tr.gap .count{margin-left:8px}.iris-diffpanel .dnote{padding:8px 12px;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}.iris-env{display:grid;grid-gap:14px;gap:14px;font-size:14px}.iris-env .note,.iris-env h3{color:var(--muted);font-size:12px}.iris-env h3{margin:0;text-transform:uppercase;letter-spacing:.05em}.iris-env .grp{display:grid;grid-gap:6px;gap:6px}.iris-env .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.iris-env code{font:13px ui-monospace,SFMono-Regular,Menlo,monospace}.iris-env .mask{color:var(--muted);font:13px ui-monospace,Menlo,monospace}.iris-env input,.iris-env textarea{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:transparent;color:inherit}.iris-env input.name{font-family:ui-monospace,Menlo,monospace}.iris-env input.name,.iris-env input.val{flex:1 1;min-width:140px}.iris-env textarea{width:100%;min-height:90px;font:12px ui-monospace,Menlo,monospace}.iris-env button{font:inherit;font-size:13px;padding:4px 10px;border:1px solid var(--line);border-radius:6px;background:transparent;color:inherit;cursor:pointer}.iris-env button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.iris-env button:disabled{opacity:.5;cursor:default}.iris-env .err{color:var(--err);font-size:13px}.iris-env .meta2{color:var(--muted);font-size:12px}.iris-env .rowline{display:flex;gap:10px;align-items:center;padding:4px 0;border-bottom:1px dashed var(--line)}.iris-env .rowline:last-of-type{border-bottom:0}.iris-env .rowline .grow{flex:1 1}.iris-env .rowline.gone{opacity:.5}.iris-env .rowline.gone code{text-decoration:line-through}.iris-env .addbtn{justify-self:start}.iris-env .savebar{display:flex;gap:10px;align-items:center;border-top:1px solid var(--line);padding-top:12px;flex-wrap:wrap}.iris-env .status{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--muted)}.iris-env .status.ok{color:var(--ok,#1a7f37)}.iris-env .status.err{color:var(--err)}.iris-env .spin{width:12px;height:12px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:iris-env-spin .8s linear infinite;flex:none}@keyframes iris-env-spin{to{transform:rotate(1turn)}}*{box-sizing:border-box}body,html{height:100%}body{margin:0;font:15px/1.45 system-ui,sans-serif;color:var(--fg);background:var(--bg)}.page-login{min-height:100vh;display:grid;place-items:center}.page-login form{width:min(380px,92vw);background:var(--card);border:1px solid var(--line);border-radius:10px;padding:24px;display:grid;grid-gap:12px;gap:12px}.page-login h1{margin:0 0 4px;font-size:18px}.page-login p{margin:0;opacity:.75;font-size:13px}.page-login input{font:inherit;padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:transparent;color:inherit}.page-login button{font:inherit;padding:9px 12px;border:0;border-radius:6px;background:var(--accent);color:#fff;cursor:pointer}.page-login .err{color:var(--err);font-size:13px}.page-sessions header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--line);background:var(--card)}.page-sessions header h1{font-size:16px;margin:0}.page-sessions main{max-width:900px;margin:0 auto;padding:20px;display:grid;grid-gap:20px;gap:20px}.page-sessions section{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px}.page-sessions h2{font-size:14px;margin:0 0 12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.page-sessions form.create{display:grid;grid-gap:10px;gap:10px;grid-template-columns:1fr}.page-sessions form.create .row{display:grid;grid-gap:10px;gap:10px;grid-template-columns:2fr 1fr}.page-sessions button,.page-sessions input,.page-sessions textarea{font:inherit}.page-sessions input,.page-sessions textarea{padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:transparent;color:inherit;width:100%}.page-sessions textarea{min-height:64px;resize:vertical}.page-sessions button{padding:8px 12px;border:0;border-radius:6px;background:var(--accent);color:#fff;cursor:pointer}.page-sessions button.ghost{background:transparent;color:var(--fg);border:1px solid var(--line)}.page-sessions button:disabled{opacity:.5;cursor:default}.page-sessions table{width:100%;border-collapse:collapse;font-size:14px}.page-sessions td,.page-sessions th{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}.page-sessions th{color:var(--muted);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.page-sessions a{color:var(--accent);text-decoration:none}.page-sessions code{font:13px ui-monospace,SFMono-Regular,Menlo,monospace}.page-sessions .muted{color:var(--muted)}.page-sessions .err{color:var(--err);font-size:13px}.page-sessions .badge{font-size:12px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}.page-sessions .badge.ok{color:#1a7f37;border-color:#1a7f37}.page-sessions .badge.warn{color:#9a6700;border-color:#9a6700}.page-sessions .badge.err{color:var(--err);border-color:var(--err)}.page-sessions tr.dim td{opacity:.6}.page-sessions button.small{padding:4px 8px;font-size:13px}.page-sessions details.envd summary{cursor:pointer;font-size:13px;color:var(--muted)}.page-sessions .iris-env button{padding:4px 10px;border:1px solid var(--line);border-radius:6px;background:transparent;color:inherit}.page-sessions .iris-env button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.page-session{height:100vh;display:grid;grid-template-rows:auto 1fr}.page-session header{display:flex;align-items:center;gap:14px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--card);flex-wrap:wrap}.page-session header a{color:var(--accent);text-decoration:none}.page-session code{font:13px ui-monospace,SFMono-Regular,Menlo,monospace}.page-session .spacer{flex:1 1}.page-session .env-overlay button,.page-session header button{font:inherit;padding:6px 10px;border-radius:6px;border:1px solid var(--line);background:transparent;color:inherit;cursor:pointer}.page-session header button:disabled{opacity:.45;cursor:default}.page-session main{display:grid;grid-template-columns:minmax(240px,var(--split,50%)) 6px minmax(240px,1fr);min-height:0}.page-session .divider{cursor:col-resize;background:var(--line);width:6px;border-left:2px solid var(--bg);border-right:2px solid var(--bg)}.page-session .divider.dragging,.page-session .divider:hover{background:var(--accent);border-color:var(--accent)}@media (max-width:900px){.page-session main{grid-template-columns:1fr!important;grid-template-rows:1fr 1fr}.page-session .divider{display:none}}.page-session .pane{display:grid;grid-template-rows:auto 1fr auto auto;min-height:0}.page-session .panehead{display:flex;align-items:center;gap:10px;padding:0 16px;height:49px;border-bottom:1px solid var(--line);background:var(--card)}.page-session .panehead h2{margin:0;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.page-session .meta,.page-session .panehead h2{font-size:12px;color:var(--muted)}.page-session .env-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:flex-start;justify-content:center;padding:60px 16px 16px;z-index:10}.page-session .env-overlay .card{background:var(--card);border:1px solid var(--line);border-radius:10px;max-width:640px;width:100%;max-height:80vh;overflow:auto;padding:16px;display:grid;grid-gap:12px;gap:12px}.page-session .env-overlay .card>.head{display:flex;align-items:center;gap:10px}.page-session .env-overlay .card>.head h2{margin:0;font-size:14px}