@import url('/assets/scout-avatar.css?v=scout-2');
@font-face{font-family:Sora;src:url('/assets/asset-4e79171a1720.ttf') format('truetype');font-weight:600;font-display:swap}
:root{--ep-bg:#141513;--ep-panel:#20211e;--ep-raised:#292a25;--ep-line:#3b3c34;--ep-ink:#f1efe5;--ep-muted:#b1b3a7;--ep-gold:#d7bb6d;--ep-dark:#23241e;--ep-danger:#f3ada0}
.portal-page{margin:0;background:var(--ep-bg);color:var(--ep-ink);font-family:'Segoe UI',Arial,sans-serif;font-size:14px;line-height:1.65;color-scheme:dark}
.portal-page *,.echo-panel *,.echo-launcher *,.echo-dialog *{box-sizing:border-box}
.portal-page a{color:inherit;text-underline-offset:4px}.portal-page button,.portal-page input,.portal-page select,.portal-page textarea,.echo-panel button,.echo-panel input,.echo-panel textarea,.echo-dialog input,.echo-dialog textarea,.echo-dialog select,.echo-dialog button{font:inherit}
.portal-page button,.echo-panel button,.echo-launcher,.echo-dialog button{cursor:pointer}.portal-page button:disabled,.echo-panel button:disabled,.echo-dialog button:disabled{opacity:.5;cursor:wait}
:where(.portal-page,.echo-panel,.echo-dialog) :focus-visible,.echo-launcher:focus-visible{outline:2px solid var(--ep-gold);outline-offset:4px}
.portal-skip{position:absolute;top:-70px;left:12px;padding:10px;background:var(--ep-gold);color:#171812!important;z-index:100}.portal-skip:focus{top:12px}
.portal-header{max-width:1240px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:24px 40px;border-bottom:1px solid var(--ep-line)}.portal-header nav{display:flex;gap:28px;align-items:center}.portal-header nav a{font-size:12px;text-decoration:none;color:var(--ep-muted)}
.portal-main{max-width:1240px;margin:auto;padding:44px 40px 80px;min-height:70vh}.portal-hero{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-bottom:38px}.portal-hero h1{font-size:clamp(28px,4vw,44px);line-height:1.18;letter-spacing:-1.5px;margin:8px 0 12px;font-weight:600}.portal-hero p{max-width:600px;color:var(--ep-muted);margin:0}.portal-hero .echo-avatar{width:120px;flex-shrink:0}
.eyeline{font-size:12px;color:var(--ep-gold);font-weight:500;letter-spacing:.02em}.muted{color:var(--ep-muted)}.portal-page h2{font-size:21px;font-weight:500;letter-spacing:-.5px}.portal-page h3{font-size:16px;font-weight:500}.portal-page small{font-size:12px}
.tabs{display:flex;gap:28px;border-bottom:1px solid var(--ep-line);margin-bottom:28px;overflow:auto}.tabs button{border:0;border-bottom:2px solid transparent;background:none;color:var(--ep-muted);padding:12px 0;white-space:nowrap}.tabs button[aria-selected=true]{color:var(--ep-ink);border-color:var(--ep-gold)}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.section-heading h2{margin:0}.portal-btn,.portal-page #account-button{border:1px solid var(--ep-line);border-radius:8px;padding:11px 16px;background:var(--ep-panel);color:var(--ep-ink);text-decoration:none;display:inline-flex;justify-content:center;align-items:center;gap:8px;transition:background .2s,transform .2s}.portal-btn:hover{background:var(--ep-raised)}.portal-btn:active{transform:translateY(1px)}.portal-btn.primary{background:var(--ep-gold);color:#20221b;border-color:var(--ep-gold)}.portal-btn.text{border-color:transparent;background:transparent;padding-left:0;text-decoration:underline;text-underline-offset:4px}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.project-card{border:1px solid var(--ep-line);padding:26px;border-radius:12px;background:var(--ep-panel)}.project-card h3{font-size:23px;margin:12px 0 6px;letter-spacing:-.7px}.project-card p{color:var(--ep-muted);max-width:50ch}.project-card .actions{margin-top:24px}.project-card .project-type{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--ep-muted)}
.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px}.note-panel{background:var(--ep-panel);border-radius:12px;padding:24px;height:max-content}.note-panel h3{margin:0 0 10px}.note-panel p{color:var(--ep-muted);font-size:13px}.note-panel .echo-avatar{width:72px;float:right;margin-left:10px}
.request-list{border-top:1px solid var(--ep-line)}.request-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;border-bottom:1px solid var(--ep-line);width:100%;text-align:left;background:none;color:var(--ep-ink);border-left:0;border-right:0;border-top:0}.request-row:hover{background:#ffffff03}.request-row strong{display:block;font-weight:500;font-size:15px;margin-bottom:4px}.request-row small{color:var(--ep-muted)}.status{white-space:nowrap;font-size:11px;padding:5px 10px;border-radius:5px;border:1px solid #555744;color:#d9dcbf}.status.completed{background:#28382d;color:#b8d3b6;border-color:#3d5b43}.status.in-progress{background:#343020;color:#ead591}.status.in-review{background:#302e26;color:#d9ceac}
.empty{padding:44px 28px;border:1px dashed var(--ep-line);border-radius:12px;text-align:center}.empty h3{margin:0 0 8px}.empty p{max-width:48ch;margin:0 auto 20px;color:var(--ep-muted)}
.login-layout{max-width:950px;margin:24px auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.login-art .echo-avatar{width:210px;margin:0 0 20px}.login-art h1{font-size:38px;letter-spacing:-1px;line-height:1.2;margin:0 0 20px}.login-art p{color:var(--ep-muted);max-width:37ch}.login-box{border:1px solid var(--ep-line);border-radius:14px;padding:30px;background:var(--ep-panel)}.login-box h2{margin:0 0 8px}.login-box p{font-size:12px;color:var(--ep-muted)}.login-box .portal-btn{width:100%}.separator{display:flex;align-items:center;gap:16px;color:var(--ep-muted);font-size:12px;margin:24px 0}.separator:before,.separator:after{content:'';height:1px;flex:1;background:var(--ep-line)}
.portal-form{display:grid;gap:17px}.portal-form label{display:grid;gap:7px;font-size:12px}.portal-form input,.portal-form textarea,.portal-form select{width:100%;border:1px solid var(--ep-line);border-radius:7px;padding:12px;color:var(--ep-ink);background:#171815;min-width:0}.portal-form textarea{resize:vertical;min-height:100px}.portal-form .form-help{font-size:11px;color:var(--ep-muted);margin:0}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-error{color:var(--ep-danger);font-size:12px;min-height:1.2em}.form-success{color:#c6d5aa;font-size:12px}
.portal-footer{max-width:1160px;margin:auto;padding:24px 0 35px;border-top:1px solid var(--ep-line);display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--ep-muted)}.portal-footer div{display:flex;gap:20px}
#preview-banner,.preview-note{background:#39311b;color:#efdfb3;text-align:center;padding:9px 16px;font-size:11px}#preview-banner button{border:0;background:none;color:inherit;text-decoration:underline;margin-left:12px;font:inherit;cursor:pointer}.preview-accounts{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.preview-accounts button{font-size:11px;padding:8px 10px}
#portal-dialog,.echo-dialog{color:var(--ep-ink);background:var(--ep-panel);border:1px solid var(--ep-line);border-radius:14px;padding:28px;width:min(620px,calc(100% - 28px));max-height:calc(100dvh - 40px);overflow:auto;font-family:'Segoe UI',Arial,sans-serif;font-size:14px;line-height:1.65;color-scheme:dark}dialog::backdrop{background:#090b09bb;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:16px;margin-bottom:20px}.dialog-head h2{margin:0;font-size:24px;letter-spacing:-.6px}.close-button{background:transparent;border:1px solid var(--ep-line);color:var(--ep-ink);border-radius:6px;min-width:34px;height:34px;font-size:22px;line-height:1}.review-summary{border-left:2px solid var(--ep-gold);padding:4px 0 4px 20px;margin:20px 0;white-space:pre-wrap}.review-summary h3{margin:0}.review-summary p{color:var(--ep-muted)}
.detail-top{display:flex;justify-content:space-between;gap:20px;align-items:start}.detail-top h1{font-size:32px;line-height:1.25;letter-spacing:-1px}.detail-layout{display:grid;grid-template-columns:1fr 280px;gap:36px}.request-body{white-space:pre-wrap;font-size:15px;line-height:1.8;padding:24px 0;border-bottom:1px solid var(--ep-line)}.thread{margin:24px 0}.thread-message{margin:18px 0;padding:18px 20px;background:var(--ep-panel);border-radius:10px}.thread-message.owner{border-left:2px solid var(--ep-gold)}.thread-message header{font-size:12px;display:flex;justify-content:space-between;gap:12px;color:var(--ep-muted)}.thread-message header strong{color:var(--ep-ink)}.thread-message p{white-space:pre-wrap;margin:10px 0 0}.attachment-list{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.attachment-list a,.attachment-chip{padding:7px 10px;border:1px solid var(--ep-line);border-radius:5px;font-size:11px;overflow-wrap:anywhere}
.account-table{width:100%;border-collapse:collapse}.account-table td,.account-table th{text-align:left;padding:16px 12px;border-bottom:1px solid var(--ep-line)}.account-table th{font-weight:400;color:var(--ep-muted);font-size:12px}.account-table td small{display:block;color:var(--ep-muted)}.table-wrap{overflow:auto}.connection-list{display:grid;gap:10px}.connection-list div{padding:14px;background:var(--ep-panel);border-radius:8px}.connection-list small{display:block;color:var(--ep-muted)}
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:14px 20px;background:#e4d8af;color:#20231a;border-radius:8px;z-index:60;max-width:calc(100vw - 40px);box-shadow:0 8px 32px #0005}
.echo-launcher{position:fixed;right:24px;bottom:24px;z-index:40;display:flex;align-items:center;gap:10px;padding:5px 17px 5px 8px;background:#20211e;color:#f1efe5;border:1px solid #555344;border-radius:17px;box-shadow:0 10px 35px #0005;font-family:'Segoe UI',Arial,sans-serif;text-align:left}.echo-launcher .echo-avatar{width:52px;height:57px}.echo-launcher span small{display:block;font-size:10px;color:#c1c1b5}.echo-launcher strong{font-size:13px;font-weight:500}.echo-launcher:hover{border-color:var(--ep-gold)}
.echo-panel{position:fixed;z-index:41;right:24px;bottom:24px;width:390px;height:min(650px,calc(100dvh - 48px));background:var(--ep-panel);color:var(--ep-ink);border:1px solid var(--ep-line);box-shadow:0 20px 70px #0007;border-radius:16px;display:flex;flex-direction:column;overflow:hidden;font-family:'Segoe UI',Arial,sans-serif;font-size:13px;line-height:1.6;color-scheme:dark}.echo-panel[hidden],.echo-launcher[hidden],[hidden]{display:none!important}.echo-panel-header{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--ep-line)}.echo-panel-header .echo-avatar{width:54px;height:59px}.echo-panel-title{flex:1}.echo-panel-title strong{font-size:16px}.echo-panel-title small{display:block;font-size:10px;color:var(--ep-muted)}.echo-toolbar{display:flex;align-items:center;gap:12px;padding:8px 18px;border-bottom:1px solid var(--ep-line);font-size:10px}.echo-toolbar button,.echo-toolbar a{background:none;border:0;color:var(--ep-muted);padding:0;font:inherit;text-decoration:underline;text-underline-offset:3px}.echo-toolbar select{min-width:0;max-width:190px;color:var(--ep-ink);background:var(--ep-bg);border:1px solid var(--ep-line);border-radius:4px;padding:3px;font-size:10px}.echo-messages{flex:1;overflow:auto;padding:20px 18px;overscroll-behavior:contain}.echo-message{margin:0 0 14px;max-width:94%;padding:12px 14px;background:#2b2c27;border-radius:3px 12px 12px;white-space:pre-wrap;overflow-wrap:anywhere}.echo-message.user{margin-left:auto;background:#393623;border-radius:12px 3px 12px 12px}.echo-status{font-size:11px;color:var(--ep-muted);padding:0 18px;min-height:20px}.echo-actions{display:flex;gap:6px;flex-wrap:wrap;padding:8px 14px}.echo-actions button{padding:7px 9px;border:1px solid var(--ep-line);border-radius:6px;background:none;color:var(--ep-ink);font-size:10px}.echo-actions button:hover{border-color:var(--ep-gold)}.echo-composer{display:flex;gap:7px;margin:4px 14px 8px;padding:8px;background:#171815;border:1px solid #4a4b3f;border-radius:9px}.echo-composer textarea{resize:none;background:none;border:0;color:var(--ep-ink);width:100%;height:45px;max-height:100px;padding:4px;font-size:12px}.echo-composer button{align-self:center;width:34px;height:34px;border:0;border-radius:6px;background:var(--ep-gold);color:#22251b;font-size:20px}.echo-disclosure{font-size:9px;color:var(--ep-muted);padding:0 16px 12px;margin:0}.echo-disclosure a{color:inherit;text-decoration:underline}.echo-dialog h2{font-size:24px;line-height:1.3}.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0;max-height:210px;overflow:auto}.slot-grid button{border:1px solid var(--ep-line);background:var(--ep-bg);color:var(--ep-ink);padding:9px;border-radius:6px;font-size:12px}.slot-grid button[aria-pressed=true]{background:var(--ep-gold);color:var(--ep-dark)}
.avatar-lab{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.avatar-lab article{background:var(--ep-panel);padding:26px;border-radius:12px;text-align:center}.avatar-lab .echo-avatar{width:110px}.avatar-lab h3{margin-bottom:0}.avatar-lab p{font-size:12px;color:var(--ep-muted)}
@media(max-width:800px){.portal-header{padding:20px}.portal-main{padding:28px 20px 70px}.workspace-grid,.detail-layout{grid-template-columns:1fr}.note-panel{margin-top:14px}.portal-footer{margin:0 20px;flex-direction:column}.login-layout{gap:28px;grid-template-columns:1fr;max-width:430px}.login-art .echo-avatar{float:right;width:100px;margin:0 0 10px 12px}.login-art h1{font-size:30px}.project-grid{grid-template-columns:1fr}.avatar-lab{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.portal-header nav{gap:10px}.portal-header nav a{font-size:10px}.portal-header img{width:110px}.portal-hero .echo-avatar{width:78px}.portal-hero{gap:12px}.portal-hero h1{font-size:29px}.portal-hero p{font-size:12px}.tabs{gap:20px}.field-pair{grid-template-columns:1fr}.request-row{gap:10px}.request-row strong{font-size:13px}.status{font-size:9px;padding:4px 7px}.login-box{padding:22px}.echo-panel{right:10px;bottom:10px;width:calc(100% - 20px);height:calc(100dvh - 30px)}.echo-launcher{bottom:16px;right:16px}.echo-launcher span small{display:none}.echo-panel-header{padding:8px 14px}.echo-messages{padding:14px}.echo-dialog,#portal-dialog{padding:22px}.detail-top h1{font-size:26px}.section-heading{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.echo-avatar,.echo-face{animation:none!important;transition:none!important;transform:none!important}.echo-avatar[data-state=typing] .echo-face{background-position:100% 50%}}

/* Draw the plus geometrically so font baselines cannot shift it inside the badge. */
.echo-plus-badge::before,.echo-plus-badge::after{content:"";position:absolute;left:50%;top:50%;width:9px;height:2px;border-radius:1px;background:#202119;transform:translate(-50%,-50%)}
.echo-plus-badge::after{width:2px;height:9px}

.project-tickets{margin-top:40px}.project-tickets .section-heading{flex-wrap:wrap;gap:12px}

/* Checkbox labels need a compact control column, not text-field sizing. */
.portal-form label:has(> input[type="checkbox"]){grid-template-columns:18px minmax(0,1fr);align-items:start;column-gap:10px;line-height:1.5;cursor:pointer}
.portal-form input[type="checkbox"]{width:18px;height:18px;min-width:18px;margin:0;padding:0;accent-color:var(--ep-gold)}
.portal-form input[type="checkbox"]:focus-visible{outline:2px solid var(--ep-gold);outline-offset:3px}
.list-pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:18px 0 28px}.list-pagination span{font-size:12px;color:var(--ep-muted)}.list-pagination button:disabled{opacity:.45;cursor:default}
.echo-message.assistant{white-space:normal}.echo-message.assistant p{margin:0 0 .7em;white-space:pre-line}.echo-message.assistant>:last-child{margin-bottom:0}.echo-message.assistant h3{font-size:1em;line-height:1.4;margin:.8em 0 .4em}.echo-message.assistant>:first-child{margin-top:0}.echo-message.assistant ul,.echo-message.assistant ol{margin:.5em 0 .8em;padding-left:1.5em}.echo-message.assistant li{margin:.3em 0}.echo-message.assistant strong{font-weight:700}.echo-message.assistant code{font-family:Consolas,monospace;font-size:.95em;background:#0003;border-radius:3px;padding:.1em .25em}.echo-message.assistant pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:.6em 0}.echo-message.assistant pre code{display:block;padding:.6em}.echo-message.assistant blockquote{margin:.6em 0;padding-left:.8em;border-left:2px solid var(--ep-gold)}

.trash-row{flex-wrap:wrap}.trash-row>span{flex:1 1 220px;min-width:0;overflow-wrap:anywhere}.portal-btn.danger{color:#f0aaa0;border-color:#87564e}.portal-btn.danger:hover{background:#3d2723}
