[hidden] { display:none !important; }
#tip { transform:none; max-width:calc(100% - 20px); max-height:calc(100% - 24px); overflow-wrap:anywhere; }
#tip::after { left:var(--tip-arrow-left,50%); }
footer .btn { white-space:nowrap; padding:9px 5px; font-size:12px; }
.hd .u-left { flex:1; min-width:0; white-space:nowrap; gap:5px; }
.hd .u-left b { min-width:0; overflow:hidden; text-overflow:ellipsis; }
.hd .out,.hd .notif-wrap { flex-shrink:0; white-space:nowrap; }
.quiet-button { border:0; background:transparent; color:#8cc7dc; font:inherit; font-size:12px; padding:5px 7px; border-radius:6px; cursor:pointer; white-space:nowrap; }
.quiet-button:hover { background:#123044; color:#d1f3ff; }
button:disabled { opacity:.55; cursor:not-allowed; }
.experiment-summary { margin:14px 0 18px; padding:14px 15px; border:1px solid #24556b; border-left:3px solid #45bdcf; border-radius:12px; background:linear-gradient(120deg,#0d2636,#0b1928); }
.purpose-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:26px; color:#82c7da; font-size:12px; }
.experiment-summary strong { display:block; margin:7px 0 3px; color:#edfaff; font-size:16px; line-height:1.6; overflow-wrap:anywhere; }
.experiment-summary.unset { border-color:#263f56; background:#0b1725; }
.experiment-summary.unset strong { color:#879fb4; font-size:14px; font-weight:500; }
.experiment-summary .pending { display:flex; gap:8px; align-items:baseline; color:#d6b778; border-top:1px solid #263f51; margin-top:12px; padding-top:10px; font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.pending span { flex-shrink:0; font-size:10px; padding:1px 6px; background:#493921; border-radius:4px; }
.purpose-editor { margin-top:14px; border-top:1px solid #263f51; padding-top:14px; }
.purpose-editor label,.experiment-review label { display:block; font-size:12px; color:#93aec4; margin:10px 0 6px; }
.purpose-editor input,.purpose-editor select,.experiment-review input:not([type=checkbox]),.experiment-review select,.experiment-query select { width:100%; min-width:0; padding:10px; border-radius:8px; background:#071320; border:1px solid #24465f; color:var(--txt); font:inherit; font-size:12px; color-scheme:dark; }
.purpose-hint { font-size:12px; line-height:1.6; margin-top:9px; }
.purpose-hint:empty { display:none; }
.purpose-hint.error { color:#fda4af; }
.purpose-actions { display:flex; gap:8px; margin-top:14px; }
.purpose-actions button { flex:1; }
.btn.primary-action { background:#134252; border-color:#2f7b8b; color:#c5f4f7; }
.purpose-withdraw { margin-top:8px; }
#d_experiment_suggestions { display:flex; flex-wrap:wrap; gap:3px; margin-top:6px; align-items:center; }
#d_experiment_suggestions:empty { display:none; }
#d_experiment_suggestions>span { color:#7f9bb1; font-size:11px; margin-right:4px; }
.tip-experiment { margin-top:13px; padding:11px 13px; border:1px solid #25667b; border-radius:10px; background:linear-gradient(120deg,#103144,#0b1727); }
.tip-experiment small { display:block; color:#80cddd; margin-bottom:5px; font-size:11px; }
.tip-experiment b { font-size:15px; color:#effaff; display:block; overflow-wrap:anywhere; }
.tip-experiment em { color:#d6b778; font-size:11px; display:block; margin-top:5px; font-style:normal; }
#filterStatus { position:absolute; top:55px; left:16px; max-width:calc(100% - 32px); display:flex; gap:14px; align-items:center; padding:10px 14px; border:1px solid #22758f; border-radius:10px; background:rgba(5,20,37,.94); color:#bfeef8; font-size:12px; z-index:6; }
#filterStatus span { overflow-wrap:anywhere; }
#filterStatus button { flex-shrink:0; border:0; background:transparent; color:#80cddd; cursor:pointer; }
.filter-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; gap:8px; }
.filter-head h2 { font-size:14px; margin:0; font-weight:650; letter-spacing:.4px; }
.experiment-query { margin:20px 0 24px; padding:15px 13px 8px; border:1px solid #203d52; border-radius:12px; background:#0a1726; }
.experiment-query .search { margin:0 0 10px; width:100%; border-radius:8px; background:#071320; padding:10px; }
.query-meta { display:flex; align-items:center; justify-content:space-between; gap:8px; color:#8ba8bd; font-size:11px; min-height:36px; }
#experimentQueryResults { max-height:340px; overflow-y:auto; }
.filter-result { display:block; width:100%; text-align:left; margin:7px 0; padding:11px 12px; border:1px solid #233e52; border-radius:9px; background:#0b1c2b; color:#e0f3ff; cursor:pointer; }
.filter-result:hover,.filter-result.selected { border-color:#3b9db4; background:#102d3d; }
.filter-result>div { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:5px; }
.filter-result strong { font-size:13px; }
.filter-result small { display:block; color:#89a9c0; font-size:11px; line-height:1.7; overflow-wrap:anywhere; }
.filter-result .tag { color:#80cddd; }
.result-status { flex-shrink:0; font-size:10px; color:#75b59d; }
.result-status.soon { color:#d2ad70; }
.result-status.overdue { color:#ed9393; }
.notif-center-button { display:flex; justify-content:space-between; align-items:center; width:calc(100% - 24px); margin:10px 12px; padding:10px 12px; border:1px solid #28536b; border-radius:8px; background:#102939; color:#cbe9f2; font:inherit; font-size:12px; cursor:pointer; }
.notif-center-button:hover { background:#16384b; }
#requestCenter .reqmodalbox { max-width:640px; width:calc(100% - 32px); padding:20px; }
#requestCenter .reqmodal-hd { padding:0 0 14px; font-size:18px; }
.request-toolbar { display:flex; gap:10px; align-items:center; margin-bottom:12px; }
#requestCenter .reqmodal-tabs { margin:0 auto 0 0; gap:5px; }
#requestCenter .reqtab { flex:0 0 auto; white-space:nowrap; font:inherit; font-size:12px; background:transparent; color:#8ca6ba; padding:8px 14px; cursor:pointer; }
#requestCenter .reqtab.on { background:#123342; color:#bceaf4; border-color:#2c6b80; }
#requestCenter .reqcard { padding:15px 16px; border-radius:10px; background:#0c1928; overflow-wrap:anywhere; }
.rq-topline { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.rq-kind { color:#91bdcd; font-size:11px; letter-spacing:.5px; }
#requestCenter .rq-title { margin:0 0 9px; font-size:14px; line-height:1.6; }
#requestCenter .rq-diff { font-size:13px; line-height:1.8; }
.rq-arrow { color:#65879d; margin:0 9px; }
#requestCenter .rq-reason { color:#9fb6c9; font-style:normal; white-space:pre-wrap; }
#requestCenter .rq-meta { color:#7e9bb1; margin-top:9px; font-size:11px; }
#requestCenter .rq-actions { align-items:center; margin-top:12px; }
#requestCenter .rq-actions button { flex:0 0 auto; padding:7px 13px; font-weight:500; }
#requestCenter .rq-actions .rq-locate { margin-right:auto; padding-left:0; }
#requestCenter .rq-approve { background:#164854; color:#b9eced; border:1px solid #2b7882; }
#requestCenter .rq-reject { color:#dca3a6; background:#32232e; border-color:#68404a !important; }
#requestCenter .rq-delete { color:#a5bdcd; background:#172b3f; }
.rq-status-tag.st-pending { color:#e3c187; background:#3c3223; }
.rq-status-tag.st-cancelled { color:#a1b0bd; background:#24313e; }
.experiment-review { margin:14px 0 4px; padding:0 0 4px; border-top:1px solid #233c4e; }
.experiment-review .alias-choice { display:flex; gap:6px; align-items:flex-start; line-height:1.5; color:#a5bdcd; }
.experiment-review .alias-choice input { margin-top:3px; }
.experiment-review [data-review-comment] { margin-top:10px; }
#requestCenterError { color:#e2b3a8; font-size:12px; line-height:1.6; margin:0 0 10px; }
#requestCenterError:empty { display:none; }
.request-cleanup-box { padding:12px; margin-bottom:12px; background:#102535; border:1px solid #2c4a5d; border-radius:8px; font-size:12px; }
.request-cleanup-box label { display:flex; align-items:center; gap:7px; flex-wrap:wrap; color:#b3ccdc; }
.request-cleanup-box input { width:65px; padding:6px; border-radius:5px; background:#081521; color:#dceef8; border:1px solid #38586c; }
.request-cleanup-box>div { display:flex; justify-content:flex-end; gap:10px; margin-top:10px; }
.request-cleanup-box .btn { flex:0 0 auto; padding:6px 12px; }
[data-confirm-delete] .rq-delete { color:#f5b8b8 !important; background:#412735 !important; }
.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; }
#experimentManager .reqmodalbox { max-width:500px; padding:22px; }
#experimentManager .reqmodal-hd { font-size:18px; margin-bottom:20px; }
.catalog-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.catalog-tabs { display:flex; gap:5px; padding:3px; background:#07101e; border:1px solid #1e354a; border-radius:9px; }
.catalog-tabs button { padding:7px 14px; color:#8ba5ba; }
.catalog-tabs button.on { background:#153546; color:#c9f1f7; }
#experimentManagerSearch { width:100%; border-radius:8px; background:#071320; margin:0 0 14px; }
#experimentManagerList { min-height:120px; gap:8px; }
.catalog-option { padding:12px 14px; border:1px solid #233e52; border-radius:10px; background:#0c1c2b; }
.catalog-option-main { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:30px; }
.catalog-option strong { font-size:14px; font-weight:500; color:#dbeef7; overflow-wrap:anywhere; min-width:0; }
.catalog-delete { color:#dca6ad; }
.catalog-delete:hover { color:#ffd4d8; background:#3b2934; }
.catalog-confirm { margin-top:10px; border-top:1px solid #2a4051; padding-top:8px; }
.catalog-confirm p { color:#abbeca; font-size:12px; line-height:1.7; margin:2px 0 8px; }
.catalog-confirm>div { display:flex; justify-content:flex-end; gap:10px; }
#experimentManagerError { color:#e2b3a8; font-size:12px; line-height:1.6; margin-bottom:12px; }
#experimentManagerError:empty { display:none; }
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:2px solid #67e8f9; outline-offset:2px; }
.tank-release { margin:12px 0 18px; }
.release-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.release-row .btn { flex:1; min-width:120px; padding:9px 12px; font-size:12px; }
#d_release_pending { font-size:12px; color:#d6b778; }
.btn.danger-action { color:#e8b5bc; border:1px solid #65434f; background:#241b29; }
.btn.danger-action:hover { background:#3b2735; border-color:#98606c; }
#clearTankDialog .reqmodalbox { max-width:430px; padding:24px; }
#clearTankDialog .reqmodal-hd { font-size:18px; margin-bottom:18px; }
.clear-tank-target { color:#dcf1fc; font-size:15px; font-weight:600; padding:12px 14px; background:#102535; border:1px solid #244154; border-radius:9px; }
.clear-tank-description { color:#9eb8ca; line-height:1.9; font-size:13px; margin:16px 0 20px; }
.clear-tank-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:16px; }
.clear-tank-actions .btn { min-width:96px; padding:9px 14px; font-size:13px; }
[data-confirm-approve] .rq-approve { background:#402a32 !important; border-color:#8c5863 !important; color:#ffd0d7 !important; }
@media(max-width:1300px) { #side { width:270px; } #right { width:330px; } }
@media(max-width:600px) { #requestCenter .reqmodalbox { padding:14px; } #requestCenter .reqcard { padding:12px; } .request-toolbar { gap:4px; } #requestCenter .reqtab { padding:7px 10px; } }

/* v0.3.4: bounded lists, server pagination and searchable experiment choices. */
#requestCenter .reqmodalbox { max-width:760px; max-height:calc(100dvh - 40px); display:flex; flex-direction:column; overflow:hidden; }
#requestCenter .reqmodal-list { flex:1; min-height:100px; max-height:none; overflow-y:auto; padding-right:5px; overscroll-behavior:contain; }
.request-search-row { display:flex; gap:5px; margin-bottom:12px; }
#requestSearch { width:100%; min-width:0; padding:10px 13px; background:#071320; border:1px solid #24465f; border-radius:8px; color:#d9effb; font:inherit; font-size:13px; }
#requestSearch:focus,.experiment-picker-input:focus { outline:2px solid #3b8da4; outline-offset:1px; }
.request-kinds { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:14px; }
.request-kind { display:flex; align-items:center; gap:7px; padding:7px 10px; border-radius:7px; border:1px solid #203a50; background:transparent; color:#8da8bd; font:inherit; font-size:12px; cursor:pointer; }
.request-kind span { font-size:10px; color:#7398ae; }
.request-kind.on { color:#c1f3fa; border-color:#39768a; background:#123240; }
.request-kind.on span { color:#8ad0e1; }
.request-pagination { display:flex; align-items:center; flex-wrap:wrap; gap:9px; padding-top:14px; margin-top:8px; border-top:1px solid #203449; color:#8ca8bc; font-size:12px; }
.request-pagination select { font:inherit; color:#bad8e7; background:#091827; border:1px solid #26475c; border-radius:6px; padding:6px; color-scheme:dark; }
.page-buttons { display:flex; align-items:center; gap:4px; margin-left:auto; }
.page-buttons button { min-width:28px; height:30px; padding:0 6px; border:1px solid #203b50; border-radius:6px; color:#a9c7d9; background:#0c1c2b; cursor:pointer; }
.page-buttons button.on { color:#d1f7ff; background:#174257; border-color:#43869a; opacity:1; }
.page-buttons span { padding:0 3px; }
.experiment-picker { min-width:0; position:relative; }
.experiment-picker .experiment-picker-input { width:100%; margin:0; min-width:0; padding:11px 12px; border:1px solid #2b536b; border-radius:8px; background:#071320; color:#d9effb; font:inherit; font-size:12px; text-overflow:ellipsis; }
.experiment-picker-panel { margin-top:6px; border:1px solid #31576b; border-radius:9px; background:#0a1a28; overflow:hidden; box-shadow:0 8px 22px #02071144; }
.experiment-picker-panel [role=listbox] { max-height:230px; overflow-y:auto; overscroll-behavior:contain; }
.picker-option { padding:10px 12px; color:#b7d9e8; font-size:12px; line-height:1.6; cursor:pointer; white-space:normal; overflow-wrap:anywhere; border-bottom:1px solid #142b3b; }
.picker-option:hover,.picker-option.active { background:#173c4f; color:#e4faff; }
.picker-option.picker-special { color:#6ccadc; }
.picker-empty { padding:13px; color:#7895a9; font-size:12px; }
.picker-more { width:100%; padding:8px; background:#102a3b; border:0; border-top:1px solid #26475b; color:#8ad3e2; font:inherit; font-size:12px; cursor:pointer; }
.notif-pending-total { color:#9cb9cb; font-size:11px; font-weight:400; }
.notif-section-title { padding:8px 12px 5px; color:#7399af; font-size:10px; }
.notif-item.notif-task,.notif-item.notif-message { display:block; width:100%; border:0; border-bottom:1px solid #152b3b; background:transparent; color:#bdd6e4; text-align:left; font:inherit; font-size:12px; cursor:pointer; }
.notif-item.notif-task { border-left:2px solid #4dc7db; background:#0d2232; }
.notif-item.notif-task:hover,.notif-item.notif-message:hover { background:#163245; }
@media(max-width:600px) { #requestCenter .reqmodalbox { width:calc(100% - 16px); max-height:calc(100dvh - 16px); } .request-kinds { gap:4px; } .request-kind { padding:6px 7px; } .page-buttons { gap:2px; } .page-buttons button { min-width:24px; } .request-pagination { gap:6px; } }
