html{scroll-padding-top:72px}.roles-page{padding-bottom:clamp(48px,8vw,96px)}.roles-page .small{font-size:.9rem}.roles-page .lead{font-size:1.05rem;max-width:65ch}.input-sm{padding:8px 10px;border-radius:10px;width:auto}.btn-copy.is-copied{border-color:var(--ok);color:var(--ok-text)}.roles-page .text-link{font-weight:600;color:var(--brand-primary-text);text-underline-offset:3px}.roles-page .text-link:hover{color:var(--fg)}.link-button{border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--brand-primary-text);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.link-button:hover{color:var(--fg)}@media (max-width: 600px){.link-button{display:inline-block;line-height:20px;padding:10px 2px;margin:-10px 0}}.roles-hero{padding:clamp(24px,4vw,40px) 0 8px}.roles-hero h1{max-width:900px;margin-bottom:8px;font-size:clamp(1.6rem,1.2rem + 1.4vw,2rem);line-height:1.2}.roles-hero .lead{margin-bottom:0}.roles-own{margin:16px 0 4px;min-height:132px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-elev)}.roles-own-title{margin:0 0 4px;font-size:1.05rem;line-height:1.3}.roles-own-note{margin:0;max-width:70ch}.roles-own-links{margin:10px 0 0}.roles-own-links a{display:inline-block;font-weight:600;min-height:44px;line-height:44px;margin:-12px 0}.roles-toolbar{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-start;margin:10px 0 0}.file-btn{position:relative}.file-btn:focus-within{outline:3px solid var(--focus);outline-offset:2px}.import-paste{flex:1 1 320px;max-width:720px}.import-paste summary{list-style:none;cursor:pointer;color:var(--muted);font-size:14px;font-weight:500;min-height:44px;display:flex;align-items:center;gap:6px;width:max-content;max-width:100%}.import-paste summary:hover{color:var(--fg)}.import-paste summary::-webkit-details-marker{display:none}.import-paste summary:before{content:"▸";font-size:15px;line-height:1;transition:transform .15s}.import-paste[open] summary:before{transform:rotate(90deg)}.house-rules summary{list-style:none;gap:6px}.house-rules summary::-webkit-details-marker{display:none}.house-rules summary:before{content:"▸";font-size:15px;line-height:1;transition:transform .15s}.house-rules[open] summary:before{transform:rotate(90deg)}.import-paste[open] summary{color:var(--fg)}.import-row{display:flex;flex-wrap:wrap;gap:10px}.import-label{font-weight:600;font-size:14px;margin-top:4px}.import-paste-body p{margin:0}.import-paste summary:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:4px}.import-paste-body{display:grid;gap:8px;margin-top:10px}.import-paste textarea{font-family:var(--font-mono);font-size:13px;min-height:96px}.roles-toast{position:fixed;left:50%;bottom:max(16px,env(safe-area-inset-bottom));z-index:60;display:flex;align-items:center;gap:4px;width:max-content;max-width:min(600px,calc(100vw - 2 * var(--gutter)));padding:6px 6px 6px 16px;border-radius:14px;background:var(--fg);color:var(--bg);box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translate(-50%,8px);transition:opacity .15s,transform .15s}.roles-toast.is-visible{opacity:1;pointer-events:auto;transform:translate(-50%)}.roles-status{margin:0;font-size:.95rem;font-weight:500;line-height:1.45;overflow-wrap:anywhere}.roles-toast-close{flex:none;width:40px;height:40px;border:0;border-radius:10px;background:transparent;color:inherit;font-size:22px;line-height:1;cursor:pointer}.roles-toast-close:hover{background:color-mix(in srgb,var(--bg) 14%,transparent)}.roles-toast-close:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.roles-toast:not(.is-visible) .roles-toast-close{visibility:hidden}.roles-layout{display:grid;gap:24px;margin-top:16px;align-items:start;min-height:100svh}.role-count{min-height:1.5em}.roles-side{display:grid;gap:12px}@media (min-width: 900px){.roles-layout{grid-template-columns:minmax(300px,380px) minmax(0,1fr)}.roles-side{position:sticky;top:76px;max-height:calc(100svh - 92px);max-height:calc(100dvh - 92px);display:flex;flex-direction:column}.role-list{overflow:auto;flex:1;min-height:0;overscroll-behavior:contain}}@media (max-width: 899px){.role-list{max-height:min(45svh,520px);overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px;background:var(--bg)}.roles-detail{scroll-margin-top:76px}}.roles-filters{display:grid;gap:10px}.chip-row{display:flex;flex-wrap:wrap;gap:6px}#dept-chips{min-height:120px;max-height:120px;overflow-y:auto;align-content:flex-start;overscroll-behavior:contain}@media (max-width: 759px){.chip-row{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--gutter));padding:4px var(--gutter);scroll-padding-inline:var(--gutter);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--gutter),#000 calc(100% - 28px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 var(--gutter),#000 calc(100% - 28px),transparent 100%)}.chip-row::-webkit-scrollbar{display:none}#dept-chips{min-height:44px;max-height:none;overflow-y:hidden}.filter-chip{flex:none}}.tier-filter{display:flex;gap:10px;align-items:center;font-size:14px;font-weight:600}.tier-filter select{width:auto;flex:1;padding:8px 10px;min-height:40px;font-size:16px}.role-count{margin:0;font-size:13px}.role-listbox{display:grid;gap:14px;outline:none;padding-right:4px}.role-group-title{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--font-pixel);font-size:11px;line-height:1.6;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-secondary-text);padding:4px 2px 6px;background:var(--bg);z-index:1}@media (min-width: 960px){.role-group-title{position:sticky;top:0}}.role-group-count{color:var(--muted);font-family:var(--font-mono);font-size:11px}.role-group-body{display:grid;gap:6px}.role-row{padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--card);cursor:pointer;display:grid;gap:2px}.role-row:hover{border-color:color-mix(in srgb,var(--brand-primary) 55%,var(--line))}.role-row:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.role-row.is-selected{border-color:var(--brand-primary);background:color-mix(in srgb,var(--brand-primary) 12%,var(--card));box-shadow:inset 3px 0 0 var(--brand-primary)}.role-row-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.role-row-title{font-weight:600}.role-row-specialty{font-size:13px;color:var(--brand-secondary-text)}.role-row-summary{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-empty{padding:14px;border:1px dashed var(--line-strong);border-radius:var(--radius-sm);display:grid;gap:10px;justify-items:start}.role-empty p{margin:0}.roles-detail{min-width:0;outline:none}.detail-empty{padding:32px}.detail-head{padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:18px}.detail-badges{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.role-id{font-size:12px;color:var(--muted)}.detail-title{margin-bottom:6px}.detail-title,.detail-empty h2{font-size:clamp(1.4rem,2.4vw,1.65rem)}.detail-specialty{margin-bottom:4px;color:var(--brand-secondary-text);font-weight:500}.detail-summary{max-width:72ch}.detail-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px}.detail-actions>.btn,.platform-pick .btn{padding:9px 16px;font-size:14px;min-height:44px}.platform-pick{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:stretch;border:1px solid var(--line-strong);border-radius:26px;padding:3px;background:var(--bg-elev);max-width:100%}.platform-pick select{appearance:none;-webkit-appearance:none;border:0;background-color:transparent;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:right 15px center,right 10px center;background-size:5px 5px;background-repeat:no-repeat;padding:6px 30px 6px 10px;border-radius:999px;min-width:0;flex:1 1 180px;min-height:40px;font-size:16px;color:var(--fg)}.platform-pick select:focus-visible{outline:3px solid var(--focus);outline-offset:1px}@media (max-width: 559px){.detail-actions>.btn,.platform-pick{width:100%}.platform-pick{border-radius:16px}.detail-actions>.btn,.platform-pick .btn{justify-content:center;text-align:center;flex:1 1 100%}}.detail-filter-note{margin:0 0 10px;padding:6px 10px;border-radius:var(--radius-sm);border:1px dashed var(--line-strong);background:var(--bg-elev);width:max-content;max-width:100%}.instr-info{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;margin:8px 0 0}.instr-count{font-variant-numeric:tabular-nums}.instr-grokbot{margin:8px 0 0;max-width:72ch;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-elev)}.instr-limit{display:grid;gap:8px;margin-top:10px;padding:12px 14px;max-width:80ch;border:1px solid color-mix(in srgb,var(--warn) 55%,var(--line));border-radius:var(--radius-sm);background:color-mix(in srgb,var(--warn) 8%,var(--bg-elev));font-size:14px}.instr-limit p{margin:0}.instr-limit-actions{display:flex;flex-wrap:wrap;gap:8px}@media (pointer: coarse),(max-width: 759px){.instr-info .text-link{display:inline-block;padding:9px 0}}.detail-note{margin:10px 0 0;max-width:72ch}.detail-more{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;margin-top:10px}.detail-more .btn-sm{min-height:44px;color:var(--fg)}.detail-more .btn-danger{color:var(--bad-text)}@media (pointer: coarse),(max-width: 759px){.detail-more .btn-sm{min-height:44px}}.confirm-row{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}.confirm-text{font-size:14px;color:var(--bad-text);font-weight:600}.detail-grid{display:grid;gap:18px;align-items:start}@media (min-width: 760px){.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.detail-section{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;min-width:0}.detail-section+.detail-section{margin-top:18px}.detail-grid .detail-section+.detail-section{margin-top:0}.detail-h{font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:10px}.detail-list{margin:0;padding-left:20px;display:grid;gap:6px}.detail-list li{overflow-wrap:anywhere;max-width:75ch}.detail-sub{font-size:13px;font-weight:600;color:var(--muted);margin:0 0 8px}.detail-sub~.detail-sub{margin-top:14px}.ask-first{display:grid;gap:10px}.ask-first-shared{margin:0}.house-rules summary{cursor:pointer;font-size:14px;font-weight:600;min-height:40px;display:flex;align-items:center;width:max-content;max-width:100%}.house-rules summary:focus-visible,.import-paste summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}.house-rules ol{margin-top:8px;font-size:14px}.detail-list-count li::marker{color:var(--ok)}.detail-list-never li::marker{color:var(--bad)}.detail-list-approval li::marker{color:var(--warn)}.role-links{display:flex;flex-wrap:wrap;gap:8px}.role-link{display:inline-flex;gap:6px;align-items:center;min-height:36px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--bg-elev);text-decoration:none;font-size:14px;font-weight:500}.role-link:hover{border-color:var(--brand-primary)}.role-link:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.role-link-missing{color:var(--muted);border-style:dashed}@media (pointer: coarse),(max-width: 759px){.role-link{min-height:40px}.skill-head .btn-sm{min-height:44px;min-width:64px}}.skill-cards{display:grid;gap:14px}@media (min-width: 1100px){.skill-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.skill-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-elev);padding:14px 16px;display:grid;gap:10px;min-width:0}.skill-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.skill-name{margin:0 0 2px;font-size:1.05rem}.skill-id{font-size:12px;color:var(--muted)}.skill-part{display:grid;gap:4px}.skill-part p{margin:0}.skill-part-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.skill-steps{margin:0;padding-left:22px;display:grid;gap:5px}.skill-steps li{overflow-wrap:anywhere}.step-tag{display:inline-block;font-family:var(--font-mono);font-size:11px;font-weight:700;padding:0 6px;border-radius:4px;margin-right:6px;border:1px solid currentColor}.step-decide .step-tag{color:var(--brand-primary-text)}.step-approval .step-tag{color:var(--warn-text)}.step-decide,.step-approval{color:var(--fg)}.table-wrap{overflow-x:auto}.events-table th,.events-table td{font-size:14px}.events-table .num{text-align:right;white-space:nowrap}.events-table tfoot td{color:var(--muted);font-size:13px;border-bottom:0}.events-table .num-label{display:none}@media (max-width: 759px){.events-table,.events-table tbody,.events-table tfoot,.events-table tr,.events-table td{display:block}.events-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.events-table tr{padding:10px 0;border-bottom:1px solid var(--line)}.events-table td{padding:2px 0;border:0}.events-table td.num{text-align:left;color:var(--muted);font-size:13px}.events-table .num-label{display:inline}.events-table td.num-none{display:none}.events-table tfoot tr{border-bottom:0;display:flex;flex-wrap:wrap;gap:4px 8px}}.event-flag{display:inline-block;margin-left:8px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--warn-text);border:1px solid color-mix(in srgb,var(--warn) 50%,transparent);border-radius:4px;padding:0 5px}.chip-list{display:flex;flex-wrap:wrap;gap:6px}.chip-plain,.tag-chip{display:inline-flex;gap:6px;align-items:center;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:var(--bg-elev);font-size:13px}.tag-chip{color:var(--muted)}.chip-unknown{border-style:dashed;color:var(--muted)}.rooms{display:grid;gap:8px}.rooms-note{margin:0}.chip-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ok-text);font-weight:700}body:has(dialog.role-editor[open]){overflow:hidden}.role-editor{width:min(960px,calc(100vw - 2 * var(--gutter)));max-height:calc(100svh - 32px);margin:auto;padding:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--fg);box-shadow:var(--shadow);overflow:auto}.role-editor::backdrop{background:#0009;backdrop-filter:blur(2px)}.re-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 22px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px)}.re-title{margin:0;font-size:1.3rem}.re-close{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--bg-elev);font-size:20px;line-height:1;cursor:pointer}.re-close:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.re-form{padding:18px 22px 22px;display:grid;gap:20px}.re-clone{display:grid;gap:6px;padding:14px;border:1px dashed var(--line);border-radius:var(--radius-sm)}.re-clone label{font-weight:600;font-size:14px}.re-clone-row{display:flex;gap:10px;flex-wrap:wrap}.re-clone-row select{flex:1;min-width:220px}.re-section{border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px 16px;margin:0;min-width:0}.re-legend{font-weight:700;padding:0 6px}.re-grid{display:grid;gap:14px}@media (min-width: 720px){.re-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.re-grid-3{grid-template-columns:1.2fr 2fr .8fr}.re-field-wide{grid-column:1 / -1}}.re-field{display:grid;gap:6px;min-width:0;align-content:start}.re-field>label,.re-fieldset>legend{font-weight:600;font-size:14px}.re-fieldset{border:0;padding:0;margin:0}.re-req{color:var(--bad-text)}.re-help{margin:0;font-size:13px;color:var(--muted)}.re-error{margin:0;font-size:13px;color:var(--bad-text);font-weight:500}.re-field.has-error .input,.re-fieldset.has-error .room-grid{border-color:var(--bad)}.re-field textarea{resize:vertical}.re-lines{font-family:var(--font-mono);font-size:13px;line-height:1.5}.re-h3{font-size:1rem;margin:0 0 4px}.re-picker .input{margin:0}.picker{display:grid;gap:8px}.picker-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.picker-chips:empty{display:none}.pick-chip{display:inline-flex;gap:6px;align-items:center;padding:4px 6px 4px 10px;border-radius:999px;border:1px solid var(--line);background:var(--bg-elev);font-size:13px}.pick-chip code{color:var(--muted);font-size:11px}.pick-chip-missing{border-style:dashed;color:var(--warn-text)}.chip-remove{width:22px;height:22px;border-radius:50%;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:16px;line-height:1}.chip-remove:hover,.chip-remove:focus-visible{background:var(--bad);color:#fff;outline:none}@media (pointer: coarse),(max-width: 759px){.re-close{width:44px;height:44px}.chip-remove{min-width:40px;min-height:40px}}.picker-input{position:relative}.picker-results{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;margin:0;padding:4px;list-style:none;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow);max-height:260px;overflow:auto}.picker-option{display:flex;gap:8px;align-items:center;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:14px}.picker-option.is-active,.picker-option:hover{background:color-mix(in srgb,var(--brand-primary) 16%,var(--card))}.picker-title{flex:1}.picker-id{font-size:11px;color:var(--muted)}.picker-none{padding:8px 10px;font-size:13px}.room-grid{display:grid;gap:4px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px;max-height:260px;overflow:auto;background:var(--bg-elev)}.room-opt{display:flex;gap:8px;align-items:flex-start;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:400}.room-opt:hover{background:color-mix(in srgb,var(--brand-primary) 10%,var(--bg-elev))}.room-opt input{margin-top:3px;accent-color:var(--brand-primary);flex:none}.room-opt:focus-within{outline:2px solid var(--focus);outline-offset:-2px}.room-text{display:grid}.room-kits{font-size:11px;color:var(--muted)}.room-unknown{color:var(--warn-text)}.room-order{font-family:var(--font-mono);font-size:12px}.re-repeat{display:grid;gap:10px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px 16px}.re-repeat-list{display:grid;gap:12px}.re-item{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px 14px;background:var(--card);display:grid;gap:12px}.re-item-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.re-item-num{font-weight:700;font-size:14px}.re-item-tools{display:flex;gap:4px;flex-wrap:wrap}.re-repeat-actions{display:flex;gap:8px}.re-event-hint{color:var(--warn-text)}.re-issues,.re-warnings{border-radius:var(--radius-sm);padding:12px 14px;border:1px solid var(--line);background:var(--bg-elev);font-size:14px;outline:none}.re-issues{border-color:color-mix(in srgb,var(--bad) 60%,transparent)}.re-warnings{border-color:color-mix(in srgb,var(--warn) 60%,transparent)}.re-issues ul,.re-warnings ul{margin:6px 0 0;padding-left:20px;display:grid;gap:4px}.re-issues a{color:var(--fg)}.re-footer{position:sticky;bottom:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0 0;border-top:1px solid var(--line);background:var(--bg)}.re-status{margin:0;font-size:14px;color:var(--brand-primary-text);flex:1;min-width:200px}.re-footer-actions{display:flex;gap:10px}.re-footer-actions[hidden],.re-discard[hidden]{display:none}.re-discard{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center}.re-discard-text{font-weight:600;color:var(--bad-text)}@media (prefers-reduced-motion: reduce){.import-paste summary:before,.house-rules summary:before,.roles-toast{transition:none}}.role-empty .btn{min-height:40px}.role-empty-actions{display:flex;flex-wrap:wrap;gap:8px}@media (max-width: 959px){.role-empty{border:0;padding:6px}}.role-actions{display:grid;gap:12px}.role-actions-note{margin:0;max-width:75ch;font-size:14px;color:var(--muted)}.role-actions-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.role-actions-row{display:grid;gap:6px;padding-top:10px;border-top:1px solid var(--line)}.role-actions-row:first-child{border-top:0;padding-top:0}@media (min-width: 760px){.role-actions-row{grid-template-columns:160px minmax(0,1fr);align-items:start}}.role-actions-system{font-weight:600;font-size:14px;padding-top:4px}.act-chip{display:inline-flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;padding:4px 10px;border-radius:12px;border:1px solid var(--line);background:var(--bg-elev);font-size:13px;max-width:100%;overflow-wrap:anywhere}.act-gate{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.act-read .act-gate{color:var(--muted)}.act-auto .act-gate{color:var(--ok-text)}.act-ask{border-color:color-mix(in srgb,var(--warn) 55%,var(--line))}.act-ask .act-gate{color:var(--warn-text)}.copy-fallback{display:grid;gap:8px;margin-top:12px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--warn) 55%,var(--line));border-radius:var(--radius-sm);background:var(--bg-elev)}.copy-fallback p{margin:0;max-width:75ch}.copy-fallback-text{font-family:var(--font-mono);font-size:12px;line-height:1.5;min-height:140px;resize:vertical}#role-detail[aria-busy=true]{opacity:.6;transition:opacity .12s ease}
