*{box-sizing:border-box}html{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,system-ui,sans-serif}body{font-size:var(--fs-14);word-break:keep-all;overflow-wrap:break-word;margin:0;line-height:20px}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.shell-main{padding-left:var(--nav-w)}@media (min-width:821px){.shell-main:has([data-page-header]) [data-slot=top-title]{visibility:hidden}}a{color:var(--accent)}h1{font-size:var(--fs-18);letter-spacing:-.02em;margin:0 0 8px;line-height:28px}h2{font-size:var(--fs-15);letter-spacing:-.01em;margin:16px 0 8px;line-height:24px}.page{max-width:1080px;padding:var(--page-y) var(--page-x) 32px;margin:0 auto}label{margin-bottom:.25rem;font-size:.875rem;font-weight:600;display:block}.badge{background:var(--neutral-bg);height:20px;color:var(--ink2);font-size:var(--fs-12);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:0 6px;font-weight:700;line-height:20px;display:inline-flex}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.info{background:var(--info-bg);color:var(--info)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.danger{background:var(--danger-bg);color:var(--danger)}.field{margin-bottom:12px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));align-items:end;gap:0 1rem;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:var(--card-pad)}.notice{border-radius:var(--r-2);background:var(--brand-tint);margin-bottom:12px;padding:8px 12px}.notice.error,.error{color:var(--danger)}.notice.error{background:var(--danger-bg)}.login{place-items:center;min-height:100dvh;padding:1rem;display:grid}.login .card{width:100%;max-width:380px}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--fs-14)}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 12px}tr:last-child td{border-bottom:0}th{background:var(--surface2);color:var(--muted);font-size:var(--fs-13);font-weight:600}tbody tr:hover td{background:var(--surface2)}.inline-form{gap:.5rem;display:flex}.inline-form select{width:auto;min-height:36px}.inline-form button{min-height:36px;padding:.25rem .75rem}.secret{background:var(--bg);border-radius:var(--r-2);word-break:break-all;padding:.5rem .75rem;font-family:ui-monospace,monospace;display:block}.codes{columns:2;padding-left:1.25rem;font-family:ui-monospace,monospace}.chat{flex-direction:column;gap:.75rem;padding:0;display:flex}.chat-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:1rem;padding:.75rem 1.25rem;display:flex}.chat-list{height:min(60dvh,560px);margin:0;padding:0 1.25rem;list-style:none;overflow-y:auto}.chat-item{padding:.5rem 0}.chat-meta{color:var(--muted);font-size:.8125rem}.chat-meta strong{color:var(--text)}.chat-body{white-space:pre-wrap;overflow-wrap:anywhere}.chat-item.pending{opacity:.6}.chat-item.pending[data-status=failed]{opacity:1}.chat-item.pending[data-status=failed] .chat-meta{color:var(--danger)}.chat-retry{min-height:32px;margin-left:.25rem;padding:.125rem .5rem}.chat-form{gap:.5rem;padding:.75rem 1.25rem 1.25rem;display:flex}@media (max-width:820px){.shell-main{padding-left:0;padding-bottom:calc(var(--btabs-h) + env(safe-area-inset-bottom))}.shell-main[data-detail]{--btabs-h:0px}.shell-main:has([data-detail-screen]){--btabs-h:0px}body:has([data-detail-screen]) [data-testid=bottom-tabs]{display:none}.shell-main[data-detail] [data-screen-back]{display:none}html:has([data-hide-tabs]){scroll-padding-bottom:calc(5.5rem + env(safe-area-inset-bottom,0px))}input,select,textarea{font-size:16px}}.tabs-bar{top:var(--top-h);z-index:10;background:var(--surface);border-bottom:1px solid var(--line);scrollbar-width:none;position:sticky;overflow-x:auto}.tabs{max-width:1360px;padding:0 var(--page-x);white-space:nowrap;gap:4px;margin:0 auto;display:flex}.tabs a{height:var(--tab-h);color:var(--muted);font-size:var(--fs-14);border-bottom:2px solid #0000;flex:none;align-items:center;gap:8px;padding:0 12px;font-weight:600;text-decoration:none;display:inline-flex}.tabs a:hover{color:var(--text);background:var(--surface2)}.tabs a[aria-current=page]{color:var(--text);border-bottom-color:var(--accent)}.page.wide{max-width:1360px}.tag{background:var(--brand-tint);color:var(--accent);border-radius:999px;padding:0 .5rem;font-size:.75rem;font-weight:700;line-height:1.5rem;display:inline-block}.tree{border-left:1px solid var(--line);margin:0;padding-left:1.25rem;list-style:none}.tree.root{border-left:0;padding-left:0}.tree-row{min-height:var(--control-h);flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.tree-edit[open]{flex-basis:100%}.tree-edit summary{cursor:pointer;min-height:36px;color:var(--accent);align-items:center;font-weight:600;display:inline-flex}.tree-edit form{margin:.5rem 0}.check{align-items:center;gap:.5rem;font-weight:500;display:inline-flex}.check input{width:auto;min-height:0}.role-card{margin-bottom:12px}.role-card h3{margin:0 0 .5rem}.verdict{border-radius:var(--r-2);padding:.125rem .75rem;display:inline-block}.verdict.allow{background:var(--brand-tint);color:var(--accent)}.verdict.deny{background:var(--danger-bg);color:var(--danger)}.facts{grid-template-columns:max-content 1fr;gap:.25rem 1rem;margin:0;display:grid}.facts dt{color:var(--muted)}.facts dd{overflow-wrap:anywhere;margin:0}td.wrap{white-space:normal;overflow-wrap:anywhere;min-width:16rem}.pager{justify-content:space-between;margin-top:1rem;display:flex}.pager a{min-height:var(--control-h);align-items:center;padding:0 .5rem;display:inline-flex}fieldset{border:0;margin:0 0 1rem;padding:0}@media (max-width:820px){button.sm,.button.sm{min-height:44px}.inline-form{flex-wrap:wrap}.inline-form select,.inline-form button{min-height:44px}.facts{grid-template-columns:1fr}.tabs{padding:0 8px}.check{min-height:44px}summary{padding-block:10px}.tree-edit summary{min-height:44px;padding-block:0}}
