@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Noto+Serif+SC:wght@500;600;700;900&display=swap');

:root { --ink:#17201d; --ink-soft:#68736e; --paper:#f4f1e9; --paper-deep:#e7e3d8; --line:rgba(23,32,29,.14); --acid:#d9f06a; --coral:#f2765e; --blue:#8bb9f1; --shadow:0 24px 60px rgba(23,32,29,.12); --mono:'DM Mono','Cascadia Mono',Consolas,monospace; --serif:'Noto Serif SC','Songti SC','STSong',Georgia,serif; }
* { box-sizing:border-box; }
body { margin:0; min-width:320px; color:var(--ink); background:var(--paper); font-family:var(--serif); }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; }
.hidden { display:none !important; }
.grain { position:fixed; inset:0; pointer-events:none; opacity:.18; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E"); z-index:5; }
.site-shell { width:min(1160px,calc(100% - 48px)); margin:0 auto; padding-bottom:80px; }
.topbar { display:flex; justify-content:space-between; align-items:center; padding:26px 0 22px; border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:12px; color:inherit; text-decoration:none; }
.brand-mark { display:grid; place-items:center; width:42px; height:42px; border:1px solid var(--ink); background:var(--acid); font-size:24px; font-weight:900; box-shadow:4px 4px 0 var(--ink); }
.brand strong { display:block; font-size:22px; letter-spacing:.12em; }
.brand small,.env-tag,.eyebrow,.input-label-row span,.admin-card-heading span { font-family:var(--mono); letter-spacing:.12em; font-size:10px; }
.brand small { display:block; margin-top:2px; color:var(--ink-soft); }
.topbar-right { display:flex; align-items:center; gap:14px; }
.env-tag { padding:7px 9px; border:1px solid var(--ink); background:var(--blue); color:var(--ink); }
.user-badge { font-family:var(--mono); font-size:11px; color:var(--ink-soft); }
.text-button { border:0; background:transparent; color:var(--coral); font-size:13px; padding:6px 0; }
.library-nav { display:flex; gap:6px; margin-top:26px; border-bottom:1px solid var(--line); }
.view-nav { border:0; border-bottom:3px solid transparent; background:transparent; padding:11px 4px 12px; color:var(--ink-soft); font-family:var(--mono); font-size:11px; }
.view-nav.active { border-bottom-color:var(--coral); color:var(--ink); font-weight:700; }
.view-nav:hover { color:var(--ink); }
.auth-layout { min-height:680px; display:grid; grid-template-columns:1.25fr .75fr; align-items:center; gap:80px; padding:78px 0 110px; }
.eyebrow { margin:0 0 18px; color:var(--coral); font-weight:500; }
h1,h2,h3,p { margin-top:0; }
.auth-intro h1 { max-width:660px; margin-bottom:28px; font-size:clamp(44px,6vw,78px); line-height:1.07; letter-spacing:-.055em; font-weight:900; }
h1 em { color:var(--coral); font-style:normal; }
.intro-copy { max-width:510px; color:var(--ink-soft); font-size:17px; line-height:1.9; }
.intro-rule { width:190px; height:9px; margin:46px 0 20px; background:var(--ink); transform:skewX(-28deg); }
.microcopy { color:var(--ink-soft); font-family:var(--mono); font-size:10px; letter-spacing:.03em; }
.auth-card,.lookup-panel,.admin-card { border:1px solid var(--ink); background:rgba(255,255,255,.3); box-shadow:var(--shadow); }
.auth-card { position:relative; padding:28px; transform:rotate(1.5deg); }
.auth-card::before,.auth-card::after { position:absolute; z-index:2; top:-14px; width:88px; height:31px; border:1px solid rgba(23,32,29,.2); background:var(--acid); box-shadow:0 3px 6px rgba(23,32,29,.13); clip-path:polygon(4% 5%,97% 0,100% 91%,94% 100%,3% 94%,0 12%); pointer-events:none; content:''; }
.auth-card::before { left:-24px; transform:rotate(-13deg); }
.auth-card::after { right:-24px; transform:rotate(12deg); }
.auth-tabs { display:flex; gap:22px; border-bottom:1px solid var(--line); margin-bottom:24px; }
.auth-tab { position:relative; border:0; background:transparent; padding:0 0 13px; color:var(--ink-soft); font-size:15px; }
.auth-tab.active { color:var(--ink); font-weight:700; }
.auth-tab.active::after { position:absolute; right:0; bottom:-1px; left:0; height:3px; background:var(--coral); content:''; }
.auth-form { display:grid; gap:17px; }
label { display:grid; gap:8px; color:var(--ink-soft); font-size:12px; }
input,textarea,select { width:100%; border:1px solid var(--line); outline:0; background:rgba(255,255,255,.42); color:var(--ink); transition:border-color .2s,box-shadow .2s,background .2s; }
input,select { height:44px; padding:0 12px; }
input:focus,textarea:focus,select:focus { border-color:var(--ink); background:#fffdf7; box-shadow:4px 4px 0 var(--acid); }
.primary-button,.outline-button { border:1px solid var(--ink); padding:12px 17px; font-size:13px; font-weight:700; transition:transform .2s,box-shadow .2s,background .2s; }
.primary-button { background:var(--ink); color:var(--paper); }
.primary-button span { color:var(--acid); margin-left:8px; font-family:var(--mono); }
.outline-button { background:transparent; color:var(--ink); }
.primary-button:hover,.outline-button:hover:not(:disabled) { transform:translate(-2px,-2px); box-shadow:4px 4px 0 var(--coral); }
.outline-button:disabled { cursor:not-allowed; opacity:.38; }
.form-message { min-height:19px; margin:17px 0 0; color:var(--coral); font-family:var(--mono); font-size:11px; line-height:1.5; }
.library-hero { display:flex; justify-content:space-between; align-items:end; gap:32px; padding:78px 0 40px; }
.library-hero h1 { margin-bottom:13px; font-size:clamp(40px,6vw,72px); letter-spacing:-.06em; line-height:1; }
.library-hero p:not(.eyebrow) { margin:0; color:var(--ink-soft); font-size:15px; }
.hero-stamp { display:grid; place-items:center; width:112px; height:112px; border:1px solid var(--ink); border-radius:50%; background:var(--acid); transform:rotate(12deg); font-family:var(--mono); font-size:10px; line-height:1; box-shadow:8px 8px 0 var(--ink); }
.hero-stamp strong { font-family:var(--serif); font-size:48px; line-height:.75; }
.lookup-panel { padding:23px; box-shadow:10px 10px 0 var(--paper-deep); }
.admin-episode-control { display:flex; align-items:center; gap:12px; margin-left:auto; color:var(--ink-soft); font-family:var(--mono); font-size:11px; }
.admin-episode-control label { flex:0 0 auto; }
.admin-episode-control select { width:150px; height:36px; padding:0 9px; font-size:12px; }
.input-label-row,.lookup-actions,.results-toolbar,.admin-card-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.input-label-row { margin-bottom:10px; }
.input-label-row label { color:var(--ink); font-size:16px; font-weight:700; }
.input-label-row span { color:var(--ink-soft); }
textarea { min-height:158px; resize:vertical; padding:17px; line-height:1.8; }
.lookup-actions { margin-top:16px; }
.lookup-hint { color:var(--ink-soft); font-family:var(--mono); font-size:10px; }
.hourly-build-panel { margin-top:34px; padding:0 0 18px; border-top:1px solid var(--ink); border-bottom:1px solid var(--line); }
.hourly-build-panel .results-toolbar { display:grid; grid-template-columns:minmax(0,1fr) max-content; align-items:center; column-gap:40px; margin:23px 0 13px; }
.hourly-build-panel #hourlyBuildHour { display:none; }
.hourly-build-filter { display:grid; grid-template-columns:4em max-content; align-items:center; gap:10px; width:max-content; color:var(--ink-soft); font-family:var(--mono); font-size:11px; white-space:nowrap; }
.hourly-build-filter select { width:max-content; min-width:0; height:38px; padding:0 8px; font-size:11px; }
.hourly-build-list { display:grid; gap:0; max-height:300px; overflow-y:auto; scrollbar-color:var(--coral) var(--paper-deep); scrollbar-width:thin; }
.hourly-build-row { display:grid; grid-template-columns:34px minmax(0,1fr) auto auto; align-items:center; gap:12px; min-height:42px; padding:6px 10px; border-bottom:1px solid var(--line); }
.hourly-build-row:nth-child(2n) { background:rgba(255,255,255,.2); }
.hourly-build-row > span { color:var(--coral); font-family:var(--mono); }
.hourly-build-row strong { overflow-wrap:anywhere; }
.hourly-build-row b { font-family:var(--mono); font-size:11px; white-space:nowrap; }
.hourly-build-detail-button { border:0; padding:4px 0; background:transparent; color:var(--coral); font-family:var(--mono); font-size:10px; white-space:nowrap; }
.hourly-build-detail-button:hover { text-decoration:underline; }
.hourly-build-builder { display:flex; justify-content:space-between; gap:14px; padding:8px 10px; font-size:12px; }
.hourly-build-builder span { color:var(--ink-soft); font-family:var(--mono); font-size:10px; text-align:right; }
.hourly-build-modal-card { width:min(560px,100%); }
.hourly-build-modal-list { display:grid; gap:0; margin-top:18px; border-top:1px solid var(--line); border-left:2px solid var(--acid); }
.results-toolbar { margin:76px 0 23px; align-items:end; }
.results-toolbar .eyebrow { margin-bottom:9px; }
.results-toolbar h2 { margin:0; font-size:30px; letter-spacing:-.04em; }
.results-grid { display:grid; gap:13px; max-height:1080px; overflow-y:auto; overscroll-behavior:contain; padding-right:8px; scrollbar-color:var(--coral) var(--paper-deep); scrollbar-width:thin; }
.result-card { display:grid; grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr) auto; align-items:center; gap:20px; padding:20px 22px; border-top:1px solid var(--line); background:rgba(255,255,255,.2); animation:rise .35s both; }
.result-card:nth-child(2n) { background:rgba(217,240,106,.14); }
.result-title { margin:0; font-size:17px; font-weight:700; }
.result-index { margin-bottom:7px; color:var(--coral); font-family:var(--mono); font-size:10px; }
.link-box { min-width:0; padding:11px 13px; background:rgba(23,32,29,.06); color:var(--ink); font-family:var(--mono); font-size:11px; line-height:1.5; overflow-wrap:anywhere; }
.copy-button { border:0; background:transparent; color:var(--coral); font-family:var(--mono); font-size:11px; white-space:nowrap; }
.copy-button:hover { text-decoration:underline; }
.waiting-card { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:25px 22px; border-top:1px solid var(--line); background:rgba(139,185,241,.16); }
.waiting-card p { margin:0; color:var(--ink-soft); font-family:var(--mono); font-size:11px; overflow-wrap:anywhere; }
.waiting-card.not-found { background:rgba(242,118,94,.1); }
.empty-state { display:grid; place-items:center; min-height:200px; border:1px dashed var(--line); color:var(--ink-soft); }
.empty-state p { margin:13px 0 0; font-size:14px; }
.empty-mark { color:var(--coral); font-family:var(--mono); font-size:30px; }
.admin-panel { margin-top:92px; padding-top:32px; border-top:1px solid var(--ink); }
#auditPage { margin-top:32px; }
#auditPage > .results-toolbar { margin-top:0; }
.admin-note { color:var(--ink-soft); font-family:var(--mono); font-size:10px; }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:15px; }
.stat-card { padding:17px; border:1px solid var(--line); background:rgba(255,255,255,.3); }
.stat-card strong { display:block; margin-top:10px; font-size:30px; }
.stat-card span { color:var(--ink-soft); font-family:var(--mono); font-size:10px; }
.admin-columns { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.admin-card { padding:20px; box-shadow:none; }
.admin-card-heading { margin-bottom:20px; }
.admin-card-heading h3 { margin:0; font-size:19px; }
.admin-card-heading span { color:var(--coral); }
.compact-form { display:grid; grid-template-columns:1.5fr .7fr auto; align-items:end; gap:10px; padding-bottom:20px; border-bottom:1px solid var(--line); }
.compact-form .primary-button { height:44px; padding:0 13px; white-space:nowrap; }
.admin-list { display:grid; gap:8px; margin-top:15px; }
.build-binding-admin { margin-top:22px; padding:20px 0 0; border-top:1px solid var(--ink); }
.build-binding-form { display:grid; grid-template-columns:minmax(180px,.8fr) minmax(220px,1fr) auto; align-items:end; gap:12px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.build-binding-form label { display:grid; gap:7px; color:var(--ink-soft); font-family:var(--mono); font-size:11px; }
.build-binding-form input,.build-binding-form select { width:100%; height:42px; padding:0 10px; border:1px solid var(--ink); background:rgba(255,255,255,.35); color:var(--ink); font:inherit; }
.build-binding-list { display:grid; gap:0; max-height:360px; overflow-y:auto; }
.build-binding-row { display:flex; align-items:center; justify-content:space-between; gap:15px; min-height:58px; padding:10px 0; border-bottom:1px solid var(--line); }
.build-binding-row strong,.build-binding-row small { display:block; overflow-wrap:anywhere; }
.build-binding-row small { margin-top:4px; color:var(--ink-soft); font-family:var(--mono); font-size:11px; }
.build-page { margin-top:34px; padding-top:0; border-top:0; }
.build-page > .build-details-heading { margin:0; padding:25px 0 22px; border-bottom:1px solid var(--ink); align-items:center; }
.build-account-summary { display:grid; grid-template-columns:auto auto; align-items:center; gap:10px; padding-left:15px; border-left:3px solid var(--coral); }
.build-account-summary span { color:var(--ink-soft); font-family:var(--mono); font-size:10px; }
.build-binding-name { color:var(--ink); font-family:var(--mono); font-size:13px; overflow-wrap:anywhere; }
.build-details-head { display:flex; justify-content:space-between; padding:13px 10px 10px; color:var(--ink-soft); font-family:var(--mono); font-size:11px; }
.build-list-head,.build-run-row { grid-template-columns:minmax(260px,1fr) 190px 88px 90px 18px; }
.build-list-head { display:grid; align-items:center; gap:16px; min-height:34px; padding:0 12px; border-top:1px solid var(--line); border-bottom:1px solid var(--ink); color:var(--ink-soft); font-family:var(--mono); font-size:10px; }
.build-details-list { min-height:250px; max-height:620px; overflow-y:auto; border-bottom:1px solid var(--ink); scrollbar-color:var(--coral) var(--paper-deep); scrollbar-width:thin; }
.build-run-row { display:grid; align-items:center; gap:16px; width:100%; min-height:62px; padding:10px 12px; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--ink); text-align:left; cursor:pointer; }
.build-run-row:nth-child(2n) { background:rgba(255,255,255,.18); }
.build-run-row:hover { background:rgba(217,240,106,.24); }
.build-run-row:focus-visible { outline:2px solid var(--coral); outline-offset:-2px; }
.build-run-main { min-width:0; }
.build-run-main strong { display:block; font-size:14px; line-height:1.45; overflow-wrap:anywhere; }
.build-run-time,.build-run-count { color:var(--ink-soft); font-family:var(--mono); font-size:11px; white-space:nowrap; }
.build-run-row .audit-status { justify-self:start; }
.build-run-row .audit-row-arrow { color:var(--coral); font-family:var(--mono); font-size:18px; }
.build-details-pager { margin-top:18px; padding-bottom:4px; }
.build-ranking-page { margin-top:34px; padding-top:0; border-top:0; }
.build-ranking-page > .build-ranking-heading { display:grid; grid-template-columns:minmax(0,1fr) max-content; align-items:center; column-gap:40px; margin:0; padding:25px 0 18px; border-bottom:1px solid var(--ink); }
.hourly-build-panel .results-toolbar h2,.build-ranking-heading h2 { white-space:nowrap; }
.build-ranking-page > .microcopy { display:block; margin:12px 10px 9px; }
.build-ranking-list { min-height:250px; max-height:620px; overflow-y:auto; border-top:1px solid var(--line); border-bottom:1px solid var(--ink); scrollbar-color:var(--coral) var(--paper-deep); scrollbar-width:thin; }
.build-ranking-row { display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:52px; padding:8px 10px; border-bottom:1px solid var(--line); }
.build-ranking-row:nth-child(2n) { background:rgba(255,255,255,.18); }
.build-ranking-row > span { color:var(--coral); font-family:var(--mono); font-size:11px; }
.build-ranking-row strong { min-width:0; overflow-wrap:anywhere; font-size:15px; }
.build-ranking-row b { font-family:var(--mono); font-size:11px; white-space:nowrap; }
.build-empty { display:grid; place-items:center; min-height:220px; padding:24px; text-align:center; }
.build-empty p { margin:0; color:var(--ink-soft); font-size:13px; line-height:1.7; }
.build-run-modal-card { width:min(980px,100%); max-height:min(86vh,860px); overflow:hidden; }
.build-run-modal-card .activity-modal-head small { display:block; margin-top:6px; color:var(--ink-soft); font-family:var(--mono); font-size:10px; }
.build-drama-details { max-height:70vh; padding-right:3px; overflow-y:auto; scrollbar-gutter:stable; }
.build-drama-detail { border-bottom:1px solid var(--line); }
.build-drama-detail summary { padding:15px 4px; color:var(--ink); font-size:15px; cursor:pointer; }
.build-drama-detail summary span { margin-left:8px; color:var(--ink-soft); font-family:var(--mono); font-size:10px; }
#inviteList,#userList { overflow-y:auto; overscroll-behavior:contain; padding-right:8px; scrollbar-color:var(--coral) var(--paper-deep); scrollbar-width:thin; }
#inviteList { max-height:min(70vh,622px); }
#userList { max-height:min(70vh,792px); }
#inviteList .admin-row { min-height:55px; }
#userList .admin-row { min-height:72px; }
.admin-row { display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); font-size:12px; }
.admin-row small { color:var(--ink-soft); font-family:var(--mono); font-size:10px; }
.admin-row-actions { display:flex; align-items:start; gap:10px; }
.admin-row button { border:0; background:transparent; color:var(--coral); font-family:var(--mono); font-size:10px; white-space:nowrap; }
.pet-admin-preview { display:block; width:52px; height:52px; overflow:hidden; }
.pet-admin-preview img { display:block; max-width:none; image-rendering:auto; }
.drama-heading { margin-bottom:23px; }
.drama-search { padding:18px 0 22px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.drama-search > label { margin-bottom:9px; color:var(--ink); font-weight:700; }
.drama-search-controls { display:grid; grid-template-columns:minmax(180px,1fr) 190px 140px 150px 150px auto; align-items:end; gap:10px; }
.drama-filter { gap:5px; color:var(--ink-soft); font-family:var(--mono); font-size:11px; }
.drama-date-filter input { min-width:0; }
.drama-search .outline-button { height:44px; padding-block:0; }
.drama-list-head { display:flex; justify-content:space-between; padding:18px 0 9px; color:var(--ink-soft); font-family:var(--mono); font-size:12px; }
.drama-list { min-height:240px; border-top:1px solid var(--ink); }
.drama-row { display:grid; grid-template-columns:minmax(210px,.8fr) minmax(260px,1.2fr) 125px auto; align-items:center; gap:18px; min-height:86px; padding:15px 10px; border-bottom:1px solid var(--line); }
.drama-row:nth-child(2n) { background:rgba(255,255,255,.2); }
.drama-main { min-width:0; }
.drama-main strong { display:block; margin-bottom:7px; font-size:17px; overflow-wrap:anywhere; }
.drama-main small,.drama-updated { display:block; color:var(--ink-soft); font-family:var(--mono); font-size:11px; line-height:1.6; }
.drama-link-preview { min-width:0; max-height:50px; overflow:hidden; color:var(--ink-soft); font-family:var(--mono); font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
.drama-status { display:inline-block; padding:5px 7px; border:1px solid var(--line); background:rgba(242,118,94,.12); font-size:12px; white-space:nowrap; }
.drama-status.linked { background:rgba(217,240,106,.42); }
.drama-updated { margin-top:7px; }
.drama-row-actions { display:flex; gap:5px; }
.drama-row-actions button { border:0; background:transparent; color:var(--coral); font-family:var(--mono); font-size:12px; }
.drama-pager { display:flex; justify-content:center; align-items:center; gap:14px; padding-top:22px; }
.drama-pager span { min-width:92px; text-align:center; color:var(--ink-soft); font-family:var(--mono); font-size:10px; }
.drama-pager .outline-button { padding:8px 12px; }
.drama-modal-card { width:min(820px,100%); }
.drama-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; padding-top:20px; }
.drama-field-wide { grid-column:1 / -1; }
.compact-textarea { min-height:86px; resize:vertical; padding:11px 12px; line-height:1.5; }
.drama-form-actions { display:flex; justify-content:flex-end; gap:10px; padding-top:20px; }
.audit-search { padding:18px 0 22px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.pet-admin-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:15px; }
.pet-admin-grid .pet-greeting-card { grid-column:1 / -1; }
.pet-import-form { grid-template-columns:minmax(0,1fr) auto; }
.pet-settings-form { display:grid; gap:12px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.pet-toggle { display:flex; align-items:center; gap:9px; color:var(--ink); font-weight:700; }
.pet-toggle input { width:18px; height:18px; }
.pet-admin-list,.pet-user-list,.pet-greeting-list { display:grid; max-height:430px; overflow-y:auto; }
.pet-admin-row { display:grid; grid-template-columns:58px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:72px; border-bottom:1px solid var(--line); }
.pet-admin-preview { display:block; width:52px; height:52px; overflow:hidden; }
.pet-admin-preview img { display:block; max-width:none; image-rendering:auto; }
.pet-admin-row strong,.pet-user-row span { display:block; font-size:14px; }
.pet-admin-row small { display:block; margin-top:5px; color:var(--ink-soft); font-family:var(--mono); font-size:10px; }
.pet-admin-row button,.pet-greeting-row button { border:0; background:transparent; color:var(--coral); font-family:var(--mono); font-size:10px; }
.pet-user-row { display:grid; grid-template-columns:minmax(120px,1fr) minmax(160px,.8fr); align-items:center; gap:14px; padding:9px 0; border-bottom:1px solid var(--line); }
.pet-user-row select { height:38px; }
.pet-greeting-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; margin-bottom:12px; }
.pet-greeting-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:10px 0; border-bottom:1px solid var(--line); font-size:13px; }
.audit-search-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); align-items:end; gap:12px; }
.audit-search-grid .outline-button { height:44px; padding-block:0; }
.audit-list-head { display:flex; justify-content:space-between; padding:18px 0 9px; color:var(--ink-soft); font-family:var(--mono); font-size:11px; }
.audit-workbench { display:grid; grid-template-columns:minmax(210px,.8fr) minmax(280px,1fr) minmax(360px,1.45fr); min-height:590px; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); background:rgba(255,255,255,.12); }
.audit-pane { min-width:0; border-right:1px solid var(--line); }
.audit-pane:last-child { border-right:0; }
.audit-pane-head { display:flex; align-items:end; justify-content:space-between; gap:12px; min-height:72px; padding:14px 16px; border-bottom:1px solid var(--line); }
.audit-pane-head span,.audit-pane-head small { display:block; color:var(--ink-soft); font-family:var(--mono); font-size:10px; }
.audit-pane-head strong { display:block; margin-top:5px; font-size:16px; overflow-wrap:anywhere; }
.audit-account-head { align-items:center; }
.audit-account-head-actions { display:grid; justify-items:end; gap:7px; }
.audit-access-control { display:flex; align-items:center; justify-content:flex-end; gap:8px; white-space:nowrap; }
.audit-access-control > span { color:#38623d; font-family:var(--mono); font-size:10px; }
.audit-access-control.is-disabled > span { color:var(--coral); }
.audit-access-control .text-button { min-height:26px; padding:3px 7px; border:1px solid currentColor; font-size:10px; }
.audit-account-list,.audit-run-list,.audit-drama-list { min-height:420px; max-height:520px; overflow-y:auto; scrollbar-gutter:stable; }
.audit-run-list { max-height:470px; }
.audit-row { position:relative; display:grid; width:100%; min-width:0; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--ink); text-align:left; }
.audit-row:hover { background:rgba(217,240,106,.18); }
.audit-row.is-selected { background:rgba(139,185,241,.18); }
.audit-row.is-selected::before { position:absolute; inset:0 auto 0 0; width:3px; background:var(--coral); content:''; }
.audit-row-main { display:block; min-width:0; }
.audit-row-main strong { display:block; font-size:15px; line-height:1.35; overflow-wrap:anywhere; }
.audit-row-main small,.audit-row-main time,.audit-row-main code { display:block; margin-top:6px; color:var(--ink-soft); font-family:var(--mono); font-size:11px; line-height:1.45; overflow-wrap:anywhere; }
.audit-user-row { min-height:78px; padding:14px 15px; }
.audit-user-row .audit-row-main strong { font-size:17px; }
.audit-run-row { grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:10px; min-height:94px; padding:14px 15px; }
.audit-drama-row { grid-template-columns:minmax(0,1fr) auto 14px; align-items:center; gap:10px; min-height:76px; padding:13px 14px; }
.audit-row-arrow { color:var(--coral); font-family:var(--mono); font-size:21px; }
.audit-pane-pager { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:10px; min-height:48px; padding:7px 12px; border-top:1px solid var(--line); color:var(--ink-soft); font-family:var(--mono); font-size:10px; }
.audit-pane-pager .text-button:first-child { justify-self:start; }
.audit-pane-pager .text-button:last-child { justify-self:end; }
.audit-pane-pager .text-button:disabled { cursor:not-allowed; opacity:.32; }
.audit-more-button { width:100%; min-height:44px; border:0; border-bottom:1px solid var(--line); background:rgba(23,32,29,.04); color:var(--coral); font-size:12px; }
.audit-pane-state { display:grid; place-items:center; min-height:180px; padding:24px; text-align:center; }
.audit-pane-state p { margin:0; color:var(--ink-soft); font-size:13px; line-height:1.7; }
.audit-pane-state.is-loading p::after { display:inline-block; width:1.3em; content:'...'; overflow:hidden; vertical-align:bottom; animation:audit-loading 1.1s steps(4,end) infinite; }
.audit-pane-state.is-error p { color:var(--coral); }
@keyframes audit-loading { 0%{width:0} 100%{width:1.3em} }
.audit-drama-modal-card { width:min(980px,100%); max-height:min(84vh,820px); overflow:hidden; }
.audit-modal-summary { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:11px 0 14px; border-bottom:1px solid var(--line); color:var(--ink-soft); font-family:var(--mono); font-size:11px; }
.audit-event-list { display:grid; gap:10px; max-height:65vh; padding:14px 2px 2px 0; overflow-y:auto; scrollbar-gutter:stable; }
.audit-event { padding:14px; border:1px solid var(--line); background:rgba(255,255,255,.35); }
.audit-event-head { display:flex; justify-content:space-between; gap:15px; padding-bottom:12px; border-bottom:1px solid var(--line); font-family:var(--mono); font-size:11px; }
.audit-event-head strong,.audit-event-head span { display:block; }
.audit-event-head span,.audit-event-time span { margin-top:5px; color:var(--ink-soft); font-size:10px; }
.audit-event-time { display:flex; align-items:end; flex-direction:column; text-align:right; }
.audit-status { display:inline-block; padding:4px 6px; border:1px solid var(--line); font-size:10px; font-weight:500; }
.audit-status-success { background:rgba(217,240,106,.5); }
.audit-status-failed { background:rgba(242,118,94,.2); }
.audit-status-skipped,.audit-status-pending { background:rgba(139,185,241,.24); }
.audit-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding-top:13px; }
.audit-field span,.audit-source span,.audit-reason span { display:block; margin-bottom:5px; color:var(--ink-soft); font-family:var(--mono); font-size:10px; }
.audit-field strong { display:block; font-family:var(--mono); font-size:11px; font-weight:500; line-height:1.5; overflow-wrap:anywhere; }
.audit-source { margin-top:13px; padding:10px; background:rgba(23,32,29,.05); }
.audit-source code { display:block; color:var(--ink); font-family:var(--mono); font-size:11px; line-height:1.5; overflow-wrap:anywhere; }
.audit-reason { margin-top:13px; }
.audit-reason p { margin:0; font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.audit-template-details { margin-top:13px; border-top:1px solid var(--line); color:var(--ink-soft); font-family:var(--mono); font-size:10px; }
.audit-template-details summary { padding-top:11px; cursor:pointer; }
.audit-template-detail-list { display:grid; gap:7px; padding-top:9px; }
.audit-template-detail { display:grid; grid-template-columns:70px minmax(0,1fr) auto; gap:9px; align-items:baseline; padding:8px 9px; border:1px solid var(--line); background:rgba(23,32,29,.04); }
.audit-template-detail strong { color:var(--ink); font-size:11px; font-weight:500; overflow-wrap:anywhere; }
.audit-template-detail small { color:var(--ink-soft); overflow-wrap:anywhere; }
.audit-meta { margin-top:13px; color:var(--ink-soft); font-family:var(--mono); font-size:10px; }
.audit-meta summary { cursor:pointer; }
.audit-meta pre { max-height:160px; margin:9px 0 0; padding:10px; overflow:auto; background:rgba(23,32,29,.05); color:var(--ink); line-height:1.5; white-space:pre-wrap; overflow-wrap:anywhere; }
.consumption-search { padding:18px 0 22px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.consumption-search-grid { display:grid; grid-template-columns:180px minmax(180px,1fr) minmax(180px,1fr) auto; align-items:end; gap:12px; }
.consumption-search-grid label { display:grid; gap:7px; color:var(--ink-soft); font-family:var(--mono); font-size:11px; }
.consumption-search-grid input { width:100%; height:44px; }
.consumption-search-grid .outline-button { height:44px; padding-block:0; }
.consumption-stats { margin-top:18px; }
.consumption-list-head { display:flex; justify-content:space-between; padding:18px 0 9px; color:var(--ink-soft); font-family:var(--mono); font-size:11px; }
.consumption-list { border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); }
.consumption-row { border-bottom:1px solid var(--line); }
.consumption-row:last-child { border-bottom:0; }
.consumption-row summary { display:grid; grid-template-columns:180px minmax(0,1fr) 120px 90px; align-items:center; gap:16px; min-height:62px; padding:10px 12px; cursor:pointer; list-style:none; }
.consumption-row summary::-webkit-details-marker { display:none; }
.consumption-row summary::after { color:var(--coral); content:'+'; font-family:var(--mono); font-size:18px; justify-self:end; }
.consumption-row[open] summary::after { content:'-'; }
.consumption-row summary:hover { background:rgba(217,240,106,.18); }
.consumption-account,.consumption-row summary > span { color:var(--ink-soft); font-family:var(--mono); font-size:11px; overflow-wrap:anywhere; }
.consumption-row summary strong { min-width:0; font-size:15px; overflow-wrap:anywhere; }
.consumption-projects { display:grid; gap:0; padding:0 12px 12px 24px; border-left:3px solid var(--acid); }
.consumption-record { display:grid; grid-template-columns:minmax(150px,1fr) minmax(140px,auto) minmax(130px,auto); gap:10px; padding:12px 0; border-top:1px solid var(--line); font-family:var(--mono); font-size:10px; }
.consumption-record > span { color:var(--ink-soft); }
.consumption-record-details { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:6px 14px; color:var(--ink-soft); }
.consumption-project { display:grid; grid-template-columns:minmax(130px,1fr) minmax(100px,1fr) repeat(4,max-content) minmax(100px,auto); gap:12px; align-items:center; padding:11px 0; border-top:1px solid var(--line); font-family:var(--mono); font-size:10px; }
.consumption-project strong { font-family:inherit; font-size:11px; overflow-wrap:anywhere; }
.consumption-project span { color:var(--ink-soft); white-space:nowrap; }
.consumption-project code { color:var(--ink-soft); overflow-wrap:anywhere; }
.consumption-pager { padding-bottom:4px; }
.activity-modal { position:fixed; inset:0; z-index:20; display:grid; place-items:center; padding:22px; background:rgba(23,32,29,.36); }
.activity-modal-card { width:min(720px,100%); max-height:min(760px,calc(100vh - 44px)); overflow:auto; border:1px solid var(--ink); background:var(--paper); box-shadow:12px 12px 0 var(--ink); padding:25px; }
.activity-modal-head { display:flex; justify-content:space-between; align-items:start; gap:20px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.activity-modal-head .eyebrow { margin-bottom:7px; }
.activity-modal-head h3 { margin:0; font-size:26px; }
.modal-close { width:34px; height:34px; border:1px solid var(--ink); background:var(--acid); color:var(--ink); font-family:var(--mono); font-size:24px; line-height:1; }
.activity-summary { display:flex; flex-wrap:wrap; gap:9px 16px; padding:15px 0; border-bottom:1px solid var(--line); color:var(--ink-soft); font-family:var(--mono); font-size:10px; }
.presence { display:inline-flex; align-items:center; gap:6px; color:var(--ink); font-weight:700; }
.presence::before { width:7px; height:7px; border-radius:50%; background:var(--ink-soft); content:""; }
.presence.online::before { background:#48a868; box-shadow:0 0 0 3px rgba(72,168,104,.15); }
.activity-list { display:grid; gap:11px; padding-top:16px; }
.activity-entry { padding:14px; border:1px solid var(--line); background:rgba(255,255,255,.35); }
.activity-entry-head { display:flex; justify-content:space-between; gap:12px; font-family:var(--mono); font-size:10px; }
.activity-entry-head span { color:var(--ink-soft); text-align:right; }
.activity-titles { display:flex; flex-wrap:wrap; gap:7px; margin-top:11px; }
.activity-titles span { padding:5px 7px; background:rgba(139,185,241,.2); font-size:12px; }
.xiaomi-pet { position:fixed; z-index:1400; width:96px; height:96px; touch-action:none; user-select:none; cursor:grab; filter:drop-shadow(0 8px 8px rgb(18 16 12 / 24%)); will-change:left,top; }
.xiaomi-pet.dragging { cursor:grabbing; }
.xiaomi-pet-canvas { display:block; width:96px; height:96px; pointer-events:none; }
.xiaomi-pet-bubble { position:absolute; left:50%; bottom:calc(100% - 4px); width:max-content; max-width:min(260px,calc(100vw - 24px)); padding:9px 12px; border:1px solid rgb(34 31 25 / 20%); border-radius:6px; background:#fffdf7; box-shadow:0 8px 24px rgb(18 16 12 / 18%); color:#24211c; font-size:14px; font-weight:700; line-height:1.45; text-align:left; overflow-wrap:anywhere; opacity:0; pointer-events:none; transform:translate(-50%,6px) scale(.96); transform-origin:bottom center; transition:opacity .16s ease,transform .16s ease; }
.xiaomi-pet-bubble::after { position:absolute; left:50%; top:100%; width:9px; height:9px; border-right:1px solid rgb(34 31 25 / 20%); border-bottom:1px solid rgb(34 31 25 / 20%); background:#fffdf7; content:""; transform:translate(-50%,-5px) rotate(45deg); }
.xiaomi-pet-bubble.visible { opacity:1; transform:translate(-50%,0) scale(1); }
.toast { position:fixed; right:25px; bottom:25px; z-index:10; max-width:min(360px,calc(100% - 50px)); padding:12px 15px; border:1px solid var(--ink); background:var(--acid); box-shadow:5px 5px 0 var(--ink); font-family:var(--mono); font-size:11px; opacity:0; transform:translateY(12px); pointer-events:none; transition:opacity .2s,transform .2s; }
.toast.visible { opacity:1; transform:translateY(0); }
.password-modal-card,.reset-password-card { width:min(520px,100%); }
.password-form-fields { display:grid; gap:14px; padding-top:20px; }
.password-modal-card .form-message { margin-bottom:0; }
.temporary-password { margin:20px 0; padding:16px; border:1px dashed var(--ink); background:rgba(217,240,106,.35); color:var(--ink); font-family:var(--mono); font-size:18px; line-height:1.5; overflow-wrap:anywhere; user-select:all; }
.reset-password-description { margin:20px 0 0; color:var(--ink-soft); font-size:13px; line-height:1.7; }
@keyframes rise { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media (max-width:900px) { .audit-workbench{grid-template-columns:1fr;min-height:0}.audit-pane{border-right:0;border-bottom:1px solid var(--ink)}.audit-pane:last-child{border-bottom:0}.audit-account-list{min-height:0;max-height:240px}.audit-run-list{min-height:0;max-height:470px}.audit-drama-list{min-height:0;max-height:520px} }
@media (max-width:640px) { .xiaomi-pet,.xiaomi-pet-canvas{width:72px;height:72px}.xiaomi-pet-bubble{max-width:min(220px,calc(100vw - 20px));font-size:13px} }
@media (max-width:780px) { .site-shell{width:min(100% - 28px,620px)} .auth-layout{grid-template-columns:1fr;gap:38px;padding-top:54px}.auth-card{transform:none}.library-hero{padding-top:50px}.hero-stamp{width:82px;height:82px;flex:0 0 auto;box-shadow:5px 5px 0 var(--ink)}.hero-stamp strong{font-size:34px}.results-grid{max-height:900px}.result-card{grid-template-columns:1fr;gap:10px}.copy-button{justify-self:start;padding:0}.stats-grid,.admin-columns{grid-template-columns:1fr 1fr}.compact-form{grid-template-columns:1fr 1fr}.compact-form label:first-child{grid-column:1 / -1}.compact-form .primary-button{grid-column:1 / -1}.build-binding-form{grid-template-columns:1fr 1fr}.build-binding-form .primary-button{grid-column:1 / -1}.drama-search-controls{grid-template-columns:minmax(0,1fr) 1fr 1fr}.drama-search-controls>input{grid-column:1 / 3}.drama-search-controls>.outline-button{grid-column:3;grid-row:1}.drama-row{grid-template-columns:minmax(0,1fr) auto}.drama-link-preview{grid-column:1 / -1;grid-row:2}.drama-row-actions{grid-column:2;grid-row:1}.drama-row>div:nth-child(3){grid-column:1 / -1;grid-row:3;display:flex;align-items:center;gap:10px}.drama-updated{margin-top:0}.audit-search-grid{grid-template-columns:1fr 1fr}.audit-fields{grid-template-columns:1fr 1fr}.hourly-build-panel .results-toolbar{grid-template-columns:1fr;align-items:start}.hourly-build-filter{grid-template-columns:4em max-content}.hourly-build-row{grid-template-columns:28px minmax(0,1fr) auto auto;gap:8px;padding-inline:4px}.hourly-build-row b{font-size:10px}.hourly-build-detail-button{font-size:9px} }
@media (max-width:780px) { .consumption-search-grid{grid-template-columns:1fr 1fr}.consumption-search-grid label:nth-child(2),.consumption-search-grid label:nth-child(3){grid-column:span 1}.consumption-search-grid .outline-button{grid-column:1 / -1}.consumption-row summary{grid-template-columns:minmax(110px,.6fr) minmax(0,1fr) auto;gap:8px}.consumption-row summary > span:last-of-type{grid-column:3}.consumption-project{grid-template-columns:1fr 1fr}.consumption-project code{grid-column:1 / -1} }
@media (max-width:480px) { .topbar-right{gap:8px}.env-tag{display:none}.library-hero{align-items:start}.lookup-actions{align-items:start;flex-direction:column}.lookup-actions .primary-button{width:100%}.stats-grid,.admin-columns{grid-template-columns:1fr}.activity-modal{padding:12px}.activity-modal-card{padding:18px}.activity-entry-head{display:grid}.activity-entry-head span{text-align:left}.drama-heading{align-items:start}.build-binding-form{grid-template-columns:1fr}.build-run-row{grid-template-columns:minmax(0,1fr) auto;gap:9px}.build-run-row .audit-row-arrow{display:none}.drama-form-grid{grid-template-columns:1fr}.drama-field-wide{grid-column:auto}.drama-search-controls{grid-template-columns:1fr 1fr}.drama-search-controls>input{grid-column:1 / -1}.drama-search-controls>.outline-button{grid-column:1 / -1;grid-row:auto;width:100%}.drama-row{padding-inline:4px}.topbar-right{flex-wrap:wrap;justify-content:flex-end}.audit-search-grid{grid-template-columns:1fr}.audit-pane-head{min-height:62px;padding:11px 12px}.audit-row-main strong{font-size:14px}.audit-user-row .audit-row-main strong{font-size:16px}.audit-event-head{display:grid}.audit-event-time{align-items:start;text-align:left}.audit-fields{grid-template-columns:1fr} }
@media (max-width:480px) { .auth-card::before,.auth-card::after{width:74px}.auth-card::before{left:-8px}.auth-card::after{right:-8px} }
@media (max-width:780px) {
  .build-page > .build-details-heading { align-items:flex-start; }
  .build-account-summary { grid-template-columns:1fr; gap:4px; max-width:46%; }
  .build-list-head { display:none; }
  .build-details-list { border-top:1px solid var(--ink); }
  .build-run-row { grid-template-columns:minmax(0,1fr) auto 18px; grid-template-areas:"main status arrow" "time count arrow"; gap:5px 12px; min-height:72px; }
  .build-run-main { grid-area:main; }
  .build-run-time { grid-area:time; }
  .build-run-count { grid-area:count; }
  .build-run-row .audit-status { grid-area:status; }
  .build-run-row .audit-row-arrow { display:block; grid-area:arrow; align-self:center; }
  .build-ranking-page > .build-ranking-heading { align-items:flex-start; }
}
@media (max-width:480px) {
  .build-page { margin-top:22px; }
  .build-page > .build-details-heading { display:grid; gap:16px; padding:20px 0 18px; }
  .build-account-summary { grid-template-columns:auto minmax(0,1fr); max-width:none; padding-left:11px; }
  .build-details-head { padding-inline:4px; }
  .build-run-row { grid-template-columns:minmax(0,1fr) auto 14px; gap:5px 8px; padding-inline:4px; }
  .build-run-main strong { font-size:13px; }
  .build-run-time,.build-run-count { font-size:10px; }
  .build-ranking-page { margin-top:22px; }
  .build-ranking-page > .build-ranking-heading { display:grid; gap:16px; padding:20px 0 16px; }
  .build-ranking-row { grid-template-columns:26px minmax(0,1fr) auto; gap:8px; padding-inline:4px; }
  .build-ranking-row strong { font-size:14px; }
}
