:root{--bg:#f5f6f8;--panel:#fff;--ink:#17202a;--muted:#6b7280;--line:#e5e7eb;--primary:#e2e5e9;--primary-dark:#cbd0d6;--sidebar:#181a20;--sidebar-soft:#252832;--danger:#c24141;--success:#177245;--radius:14px;--shadow:0 12px 36px rgba(20,25,40,.08)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}body{font-size:15px}button,input,select,textarea{font:inherit}button,a{transition:.16s ease}a{color:inherit;text-decoration:none}.muted,.hint{color:var(--muted)}.hint{font-size:12px;font-weight:400}.brand{display:flex;align-items:center;gap:10px;font-weight:750}.brand-mark{display:grid;place-items:center;width:52px;height:52px;border-radius:15px;color:#fff;background:linear-gradient(145deg,#7777ed,#4545b5);box-shadow:0 8px 22px rgba(91,91,214,.3);font-weight:800}.brand-mark.small{width:34px;height:34px;border-radius:10px;font-size:14px;box-shadow:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:9px;padding:10px 15px;background:#fff;color:var(--ink);cursor:pointer;font-weight:650}.button:hover{transform:translateY(-1px)}.button.primary{color:#fff;background:var(--primary)}.button.primary:hover{background:var(--primary-dark)}.button.ghost{border-color:var(--line);background:transparent}.button.small{padding:7px 11px;font-size:13px}.button.wide{width:100%}.icon-button{border:0;background:transparent;color:inherit;font-size:20px;cursor:pointer;padding:7px;border-radius:8px}.icon-button:hover{background:rgba(127,127,127,.12)}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0,#e9e9ff 0,transparent 48%),var(--bg)}.auth-card{width:min(420px,100%);padding:42px;background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.auth-card .brand-mark{margin:auto}.auth-card h1{text-align:center;margin:24px 0 8px}.auth-card>p{text-align:center;margin:0 0 28px}.stack{display:grid;gap:18px}label{display:grid;gap:7px;font-size:13px;font-weight:650}input,select,textarea{width:100%;border:1px solid #d8dbe2;border-radius:9px;background:#fff;padding:11px 12px;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(91,91,214,.12)}textarea{resize:vertical}.flash,.toast{position:fixed;z-index:100;top:18px;left:50%;transform:translateX(-50%);padding:12px 18px;border-radius:10px;color:#fff;box-shadow:var(--shadow);background:#303642}.flash.success{background:var(--success)}.flash.error,.toast.error{background:var(--danger)}.app-shell{height:100vh;display:grid;grid-template-columns:290px 1fr;overflow:hidden}.sidebar{background:var(--sidebar);color:#f4f4f6;padding:18px 14px;display:flex;flex-direction:column;min-width:0}.sidebar-top{display:flex;align-items:center;justify-content:space-between;padding:0 8px 18px}.sidebar .button{margin-bottom:16px}.conversation-list{overflow:auto;flex:1;margin:0 -4px;padding:4px}.conversation{display:flex;align-items:center;border-radius:9px;margin:2px 0;color:#c7c9d1}.conversation:hover,.conversation.active{background:var(--sidebar-soft);color:#fff}.conversation-open{min-width:0;flex:1;text-align:left;border:0;background:transparent;color:inherit;padding:10px;cursor:pointer}.conversation-open strong,.conversation-open small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation-open strong{font-size:13px;font-weight:620}.conversation-open small{font-size:11px;margin-top:4px;color:#898d99}.conversation-delete{opacity:0;border:0;background:transparent;color:#aaa;font-size:19px;cursor:pointer;padding:7px}.conversation:hover .conversation-delete{opacity:1}.sidebar-empty,.skeleton{padding:20px 10px;text-align:center;color:#777b87;font-size:13px}.account{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;border-top:1px solid #30333b;padding:16px 5px 0;margin-top:10px}.avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#343846;color:#ddd;font-weight:700}.account strong,.account small{display:block;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account strong{font-size:13px}.account small{font-size:11px;color:#8e929f;margin-top:3px}.chat-main{display:grid;grid-template-rows:65px minmax(0,1fr) auto;min-width:0;background:#fff}.chat-header{border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 24px;gap:14px}.chat-header>div{flex:1}.chat-header strong,.chat-header small{display:block}.chat-header small{font-size:11px;color:var(--muted);margin-top:3px}.messages{overflow:auto;padding:36px max(24px,calc((100% - 860px)/2));scroll-behavior:smooth}.empty-state{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted)}.empty-state h2{color:var(--ink);font-size:26px;margin:17px 0 6px}.empty-state p{margin:0;max-width:430px}.empty-icon{width:62px;height:62px;border-radius:19px;display:grid;place-items:center;background:#ededff;color:var(--primary);font-size:30px}.message{display:grid;grid-template-columns:38px 1fr;gap:15px;margin:0 0 28px}.message-avatar{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-size:11px;font-weight:800;background:#eceef2}.message.assistant .message-avatar{background:var(--primary);color:#fff}.message-content{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;padding-top:6px}.message.user .message-content{font-weight:520}.message.pending .message-content{display:flex;gap:5px;align-items:center}.message.pending i{width:7px;height:7px;background:#9da0a8;border-radius:50%;animation:pulse 1.2s infinite}.message.pending i:nth-child(2){animation-delay:.15s}.message.pending i:nth-child(3){animation-delay:.3s}@keyframes pulse{0%,70%,100%{opacity:.3;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}.composer-wrap{padding:12px max(24px,calc((100% - 860px)/2)) 20px;background:linear-gradient(transparent,#fff 15%)}.composer{border:1px solid #d8dbe2;border-radius:15px;padding:9px 11px;box-shadow:0 8px 28px rgba(20,25,40,.08)}.composer select{border:0;padding:3px 4px;width:auto;max-width:100%;font-size:12px;color:var(--muted);box-shadow:none}.prompt-row{display:flex;align-items:flex-end;gap:10px}.prompt-row textarea{border:0;box-shadow:none!important;resize:none;padding:10px 4px 5px;max-height:180px;line-height:1.45}.send-button{width:38px;height:38px;flex:0 0 38px;border:0;border-radius:10px;background:var(--primary);color:#fff;cursor:pointer;font-size:16px}.send-button:disabled{opacity:.4}.composer>small{display:block;text-align:center;color:#9a9da5;font-size:10px;margin-top:8px}.notice{padding:10px 12px;margin-bottom:9px;border-radius:9px}.notice.warning{background:#fff4d6;color:#6b5210}.topbar{height:66px;display:flex;align-items:center;padding:0 32px;background:#fff;border-bottom:1px solid var(--line);gap:40px}.topbar nav{height:100%;display:flex;gap:25px;flex:1}.topbar nav a{height:100%;display:flex;align-items:center;color:var(--muted);font-size:14px;border-bottom:2px solid transparent}.topbar nav a:hover,.topbar nav a.active{color:var(--ink);border-color:var(--primary)}.top-user{display:flex;align-items:center;gap:9px;font-size:13px}.top-user form{margin:0}.content{width:min(1180px,calc(100% - 40px));margin:38px auto 80px}.content.narrow{width:min(760px,calc(100% - 40px))}.page-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-title h1{margin:0;font-size:28px}.page-title p{margin:6px 0 0;color:var(--muted)}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:22px;box-shadow:0 3px 15px rgba(20,25,40,.03)}.panel h2{margin:0 0 20px;font-size:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .full{grid-column:1/-1}.check{display:flex;align-items:center;gap:9px}.check input{width:auto}.actions{display:flex;gap:9px}.table-wrap{padding:0;overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--line);vertical-align:middle}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;background:#fafbfc}tr:last-child td{border-bottom:0}td small{display:block;color:var(--muted);margin-top:4px}.badge{display:inline-flex;padding:4px 8px;border-radius:99px;font-size:11px;font-weight:650}.badge.active{background:#e6f6ee;color:var(--success)}.badge.blocked{background:#fbeaea;color:var(--danger)}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.provider-card{display:grid;grid-template-columns:52px 1fr auto;gap:15px;align-items:start;background:#fff;border:1px solid var(--line);padding:20px;border-radius:var(--radius)}.provider-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:#ededff;color:var(--primary);font-weight:800}.provider-card h3{margin:2px 0 7px}.provider-card p{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.provider-card code,td code{font-size:12px;background:#f0f1f4;padding:3px 6px;border-radius:5px}.empty-panel{grid-column:1/-1;padding:50px;text-align:center;color:var(--muted);background:#fff;border:1px dashed var(--line);border-radius:var(--radius)}.mobile-only{display:none}
@media(max-width:800px){.app-shell{display:block}.sidebar{position:fixed;inset:0 auto 0 0;width:min(320px,88vw);z-index:20;transform:translateX(-102%);transition:.2s;box-shadow:15px 0 40px rgba(0,0,0,.25)}.sidebar.open{transform:none}.chat-main{height:100vh}.mobile-only{display:block}.chat-header{padding:0 12px}.chat-header .button{padding:8px;font-size:0}.chat-header .button:after{content:'⚙';font-size:18px}.messages,.composer-wrap{padding-left:16px;padding-right:16px}.topbar{padding:0 15px;gap:10px}.topbar>.brand span:last-child{display:none}.topbar nav{gap:13px;overflow:auto}.topbar nav a{font-size:12px;white-space:nowrap}.top-user>a{display:none}.content{width:calc(100% - 24px);margin-top:24px}.form-grid,.cards{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.page-title h1{font-size:23px}.provider-card{grid-template-columns:45px 1fr}.provider-card>.button{grid-column:2}.panel{padding:17px}th,td{padding:12px;white-space:nowrap}}
.message-body{min-width:0}.assistant-name{display:block;color:var(--primary);font-size:11px;font-weight:700;margin:0 0 2px}.message-attachments{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.message-file{display:inline-flex;align-items:center;max-width:280px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:#f7f8fa;color:#505562;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-file:hover{border-color:var(--primary);color:var(--primary)}.searched-label{display:block;margin-top:9px;color:var(--muted)}.attachment-preview{display:flex;flex-wrap:wrap;gap:6px;padding:3px 4px}.attachment-preview:empty{display:none}.file-chip{display:inline-flex;align-items:center;max-width:240px;padding:5px 8px;border-radius:7px;background:#f0f1f5;color:#555b68;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-chip button{border:0;background:transparent;color:#8a8e98;cursor:pointer;margin-left:5px}.attach-button{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:10px;background:#f0f1f5;color:#555b68;font-size:22px;cursor:pointer}.attach-button:hover{background:#e7e7fb;color:var(--primary)}.attach-button input{display:none}.web-search-toggle{display:flex;align-items:center;gap:7px;width:max-content;margin:7px 4px 0;color:var(--muted);font-size:12px;font-weight:500}.web-search-toggle input{width:auto}.web-search-toggle[hidden]{display:none}

/* Flat theme system */
:root{--bg:#f4f5f7;--panel:#fff;--surface:#f8f9fb;--surface-hover:#eef0f4;--ink:#17191d;--muted:#737982;--line:#e2e5e9;--primary:#e2e5e9;--primary-dark:#cbd0d6;--sidebar:#fff;--sidebar-soft:#f0f1f5;--danger:#c53f4a;--success:#16805a;--radius:12px;--shadow:none;color-scheme:light}
:root[data-theme="dark"]{--bg:#111317;--panel:#181b20;--surface:#20242a;--surface-hover:#292e35;--ink:#eef0f3;--muted:#9299a3;--line:#2c3139;--primary:#e2e5e9;--primary-dark:#cbd0d6;--sidebar:#15181c;--sidebar-soft:#252a31;--danger:#ee6a73;--success:#42bc89;color-scheme:dark}
html{background:var(--bg)}body,.auth-shell{background:var(--bg);color:var(--ink)}body,input,select,textarea,.panel,.provider-card,.chat-main,.topbar,.auth-card,.composer,.button{transition:background-color .18s ease,border-color .18s ease,color .18s ease}.icon{width:18px;height:18px;display:inline-block;vertical-align:-3px;flex:0 0 auto}.button,.icon-button,.theme-toggle{box-shadow:none}.button:hover{transform:none}.button.ghost{background:var(--panel);border-color:var(--line)}.button.ghost:hover,.icon-button:hover,.theme-toggle:hover{background:var(--surface-hover)}.brand-mark{background:var(--primary);box-shadow:none;border-radius:10px}.auth-shell{background:var(--bg)}.auth-card{background:var(--panel);border-color:var(--line);box-shadow:none;border-radius:16px}.auth-theme{position:fixed;right:22px;top:22px;z-index:5}.theme-toggle{display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--muted);cursor:pointer}.sidebar{background:var(--sidebar);color:var(--ink);border-right:1px solid var(--line)}.sidebar .brand{color:var(--ink)}.conversation{color:var(--muted)}.conversation:hover,.conversation.active{background:var(--sidebar-soft);color:var(--ink)}.conversation-open small,.account small{color:var(--muted)}.account{border-color:var(--line)}.avatar{background:var(--surface-hover);color:var(--ink)}.chat-main,.chat-header{background:var(--panel)}.chat-header,.topbar{border-color:var(--line)}.topbar{background:var(--panel);color:var(--ink)}.topbar .brand,.topbar .top-user,.topbar .icon-button{color:var(--ink)}.messages{scrollbar-width:thin;scrollbar-color:var(--line) transparent}.messages::-webkit-scrollbar,.conversation-list::-webkit-scrollbar{width:7px}.messages::-webkit-scrollbar-thumb,.conversation-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:10px}.composer-wrap{background:linear-gradient(transparent,var(--panel) 18%)}.composer{background:var(--panel);border-color:var(--line);box-shadow:none}.composer select,.prompt-row textarea,input,select,textarea{background:var(--panel);color:var(--ink);border-color:var(--line)}.attach-button,.file-chip,.message-file{background:var(--surface);color:var(--muted);border-color:var(--line)}.message-avatar{background:var(--surface-hover);color:var(--ink)}.message.assistant .message-avatar{background:var(--primary);color:#fff}.empty-icon,.provider-icon{background:var(--surface-hover);color:var(--primary)}.empty-panel{background:var(--panel);border-color:var(--line)}.notice.warning{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.message-content{padding-top:4px}.response-stats{display:block;margin-top:10px;color:var(--muted);font-size:11px;font-weight:400}.message-content p{margin:0 0 11px}.message-content p:last-child{margin-bottom:0}.message-content h2,.message-content h3,.message-content h4,.message-content h5{margin:20px 0 9px;line-height:1.25}.message-content h2{font-size:21px}.message-content h3{font-size:18px}.message-content h4,.message-content h5{font-size:16px}.message-content ul,.message-content ol{margin:8px 0 13px;padding-left:24px}.message-content li{margin:4px 0}.message-content a{color:var(--primary);text-decoration:underline;text-underline-offset:2px}.message-content blockquote{margin:12px 0;padding:8px 14px;border-left:3px solid var(--primary);background:var(--surface);color:var(--muted);border-radius:0 7px 7px 0}.message-content code{padding:2px 5px;border-radius:5px;background:var(--surface-hover);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.message-content pre{max-width:100%;overflow:auto;margin:14px 0;padding:15px;background:#111318;color:#e7e9ed;border-radius:9px;line-height:1.5;scrollbar-width:thin}.message-content pre code{padding:0;background:transparent;color:inherit}.panel,.provider-card,.storage-file,.stat-card,.upload-zone{background:var(--panel);border-color:var(--line);box-shadow:none}.topbar nav{min-width:0;overflow-x:auto;scrollbar-width:none}.topbar nav::-webkit-scrollbar{display:none}.topbar nav a{gap:6px;white-space:nowrap}.page-title h1{display:flex;align-items:center;gap:10px}.page-title h1>.icon{width:25px;height:25px;color:var(--primary)}table{color:var(--ink)}th{background:var(--surface);color:var(--muted)}td,th{border-color:var(--line)}.provider-card code,td code{background:var(--surface-hover);color:var(--ink)}
.upload-zone{display:grid;grid-template-columns:54px 1fr auto;align-items:center;gap:18px;padding:22px;border:1px dashed var(--line);border-radius:var(--radius);margin-bottom:22px}.upload-zone h2{margin:0 0 5px;font-size:17px}.upload-zone p{margin:0;color:var(--muted);font-size:13px}.upload-icon,.storage-file-icon,.stat-icon{display:grid;place-items:center;background:var(--surface);color:var(--primary);border-radius:10px}.upload-icon{width:54px;height:54px}.upload-icon .icon{width:25px;height:25px}.file-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;width:100%}.storage-file{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:13px;border:1px solid var(--line);border-radius:10px}.storage-file-icon{width:44px;height:44px}.storage-file-info{min-width:0}.storage-file-info strong,.storage-file-info small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.storage-file-info small{color:var(--muted);font-size:11px;margin-top:5px}.file-actions{display:flex;align-items:center}.file-actions form{margin:0}.icon-button.danger{color:var(--danger)}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}.stat-card{display:grid;grid-template-columns:48px 1fr;gap:13px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:var(--radius)}.stat-icon{width:48px;height:48px}.stat-icon .icon{width:23px;height:23px}.stat-card small,.stat-card strong,.stat-card span{display:block}.stat-card small,.stat-card span{color:var(--muted)}.stat-card small{font-size:11px}.stat-card strong{font-size:24px;margin:2px 0}.stat-card span{font-size:10px}.panel-heading{display:flex;align-items:center;justify-content:space-between}.panel-heading h2{margin:0}.panel-heading p{margin:5px 0 0;color:var(--muted);font-size:12px}.panel-heading>.icon{width:24px;height:24px;color:var(--primary)}.bar-chart{height:240px;display:flex;align-items:flex-end;gap:18px;padding:25px 8px 0}.bar-column{height:100%;flex:1;display:grid;grid-template-rows:20px 1fr 18px;gap:5px;text-align:center;min-width:25px}.bar-value,.bar-column small{font-size:10px;color:var(--muted)}.bar-track{height:100%;display:flex;align-items:flex-end;justify-content:center;background:var(--surface);border-radius:6px;overflow:hidden}.bar-fill{width:100%;background:var(--primary);border-radius:6px 6px 0 0}.chart-empty{margin:auto;color:var(--muted)}
@media(max-width:1000px){.stat-grid{grid-template-columns:repeat(2,1fr)}.topbar{padding:0 16px;gap:15px}.topbar nav{gap:15px}}
.chat-header .chat-logout-form{margin:0}.chat-header .chat-logout-form .button{height:38px;white-space:nowrap}.chat-header .chat-logout-form .icon{width:18px;height:18px}
@media(max-width:700px){.file-grid{grid-template-columns:1fr}.upload-zone{grid-template-columns:44px 1fr}.upload-zone form{grid-column:1/-1}.upload-zone .button{width:100%}.stat-grid{grid-template-columns:1fr 1fr}.stat-card{grid-template-columns:40px 1fr;padding:13px}.stat-icon{width:40px;height:40px}.stat-card strong{font-size:20px}.bar-chart{gap:7px}.response-stats{font-size:10px}.message-content pre{padding:12px}.topbar nav a .icon{display:none}.chat-header .button:after{content:none}.chat-header .button .icon{display:block}.chat-header .button{width:38px;height:38px;padding:9px}}

/* Chat viewport: only the message list scrolls; header always remains visible. */
.app-shell{height:100vh;height:100dvh;min-height:0;overflow:hidden}
.chat-main{height:100%;min-height:0;overflow:hidden;grid-template-rows:65px minmax(0,1fr) auto}
.chat-header{position:relative;z-index:3;min-height:65px;background:var(--panel)}
.messages{min-height:0;height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.message-body,.message-content{min-width:0;max-width:100%}
.message-content pre{max-width:100%;overflow-x:auto}
.model-reasoning{margin:8px 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--muted);font-size:12px;line-height:1.55}.model-reasoning summary{cursor:pointer;font-weight:650;user-select:none}.model-reasoning-text{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere;font-weight:400}
.svg-gallery{display:grid;gap:12px;margin-top:14px}.svg-preview{margin:0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.svg-preview-image{display:block;width:100%;max-width:100%;max-height:640px;object-fit:contain;margin:0 auto;border-radius:7px;background:#fff}.svg-preview figcaption{display:flex;justify-content:flex-end;margin-top:10px}.svg-download{color:var(--accent)}
@media(max-width:800px){.chat-main{height:100vh;height:100dvh;min-height:0}.chat-header{position:relative;top:0}}
.public-url{margin-top:18px;padding:12px;border-radius:9px;background:var(--surface);font-size:12px;overflow-wrap:anywhere}.public-url a{color:var(--primary);text-decoration:underline}.form-card-actions{display:flex;align-items:center;gap:7px}.form-card-actions form{margin:0}.public-form-shell{min-height:100vh;display:grid;place-items:center;padding:70px 20px 30px}.public-form-card{width:min(680px,100%)}.public-form-card>p{white-space:normal}.public-form-card .brand-mark{margin:auto}.form-error{background:var(--surface);color:var(--danger);border:1px solid var(--line)}.success-mark{display:grid;place-items:center;width:64px;height:64px;margin:25px auto 0;border-radius:50%;background:var(--surface);color:var(--success);font-size:32px;font-weight:800}
.inline-retry{margin-top:7px}.inline-retry .button{padding:5px 8px}
.marker-guide p{line-height:1.55}.marker-list{display:flex;flex-wrap:wrap;gap:7px}.marker-list code{padding:6px 8px;border-radius:7px;background:var(--surface);color:var(--primary);font-size:11px}.assessment-cell{min-width:320px;max-width:480px;white-space:normal}.assessment-cell p{margin:7px 0;line-height:1.45}.assessment-cell small{white-space:normal;line-height:1.4}
.marker-guide{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.marker-guide summary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font-size:15px;font-weight:750;cursor:pointer;list-style:none}.marker-guide summary::-webkit-details-marker{display:none}.marker-guide summary:after{content:'＋';color:var(--muted);font-size:20px;font-weight:400}.marker-guide[open] summary:after{content:'−'}.marker-guide[open] summary{border-radius:10px 10px 0 0}.marker-guide-body{padding:16px 2px 2px}.marker-reference{display:grid;margin-top:18px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.marker-reference-row{display:grid;grid-template-columns:210px minmax(0,1fr);gap:18px;align-items:start;padding:13px 15px;background:var(--panel);border-bottom:1px solid var(--line)}.marker-reference-row:last-child{border-bottom:0}.marker-reference-row:nth-child(even){background:var(--surface)}.marker-reference-row code{width:max-content;max-width:100%;padding:5px 8px;border-radius:6px;background:var(--surface-hover);color:var(--accent);font-size:12px;font-weight:700;overflow-wrap:anywhere}.marker-reference-row strong{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.04em}.marker-reference-row p{margin:4px 0 0;font-size:12px;line-height:1.5}
@media(max-width:650px){.marker-reference-row{grid-template-columns:1fr;gap:7px}}
@media(max-width:700px){.form-card-actions{grid-column:2;flex-wrap:wrap}.public-form-card{padding:24px}.public-form-shell{padding-left:12px;padding-right:12px}}

/* REU branding, neutral primary and modal operations */
:root,:root[data-theme="dark"]{--primary:#e2e5e9;--primary-dark:#cbd0d6;--accent:#243b7a}
.button.primary,.send-button{color:#17202a;background:var(--primary);border-color:#d4d8dd}.button.primary:hover,.send-button:hover{background:var(--primary-dark)}
.message.assistant .message-avatar{background:var(--primary);color:#17202a}.assistant-name,.message-content a,.public-url a,.provider-icon,.empty-icon,.page-title h1>.icon{color:var(--accent)}
.brand-mark{color:#17202a}.badge{border:0;cursor:pointer}.badge:hover{filter:brightness(.96)}.badge.processing{background:#e8eef8;color:#294d83}
.submission-toolbar{display:flex;align-items:end;justify-content:space-between;gap:14px;padding:18px;border-bottom:1px solid var(--line);background:var(--panel)}.submission-search{display:flex;align-items:end;gap:9px;min-width:0;flex:1}.submission-search label{width:min(520px,100%)}.submission-export{white-space:nowrap}.submission-empty{text-align:center;color:var(--muted);padding:34px}
@media(max-width:760px){.submission-toolbar,.submission-search{align-items:stretch;flex-direction:column}.submission-search label{width:100%}.submission-export{width:100%}}
.brand-logo{width:72px;height:34px;object-fit:contain;object-position:left center;background:#fff;border-radius:5px;padding:2px}.sidebar .brand-logo{width:58px;height:30px}.auth-logo{display:block;width:min(320px,100%);height:auto;margin:0 auto 20px}.auth-card>.auth-logo+ h1{margin-top:8px}
.public-logo{display:block;width:min(440px,100%);height:auto;margin:0 auto 12px}.public-system-name{text-align:center;margin:0 0 24px;font-size:17px}.public-light-page{background:#f4f5f7;color:#17191d;color-scheme:light}.public-light-page .auth-card{background:#fff;color:#17191d;border-color:#e2e5e9}.public-light-page input,.public-light-page select,.public-light-page textarea{background:#fff;color:#17191d;border-color:#d8dbe2}
.public-form-meta{display:grid;gap:6px;margin:18px 0 22px;padding:15px 16px;border:1px solid #e2e5e9;border-radius:10px;background:#f7f8fa;line-height:1.5}.public-form-meta strong{font-size:15px}.public-form-meta span{color:#626873;font-size:13px}
.topic-selection-link{margin:0 0 20px!important;padding:12px 14px;border-radius:9px;background:#eef2f6;color:#3d4652;text-align:left!important}.topic-selection-link a{color:#274f88;text-decoration:underline;font-weight:700}.public-next-link{text-align:center;margin-top:24px}.topic-new{display:block;margin-top:5px;color:#c62828}.letter-modal-card{width:min(720px,100%)}.letter-meta{display:grid;gap:5px;padding:13px 15px;border-radius:10px;background:var(--surface)}.letter-meta span{color:var(--muted);font-size:13px}.letter-section{margin-top:20px}.letter-section h3{margin:0 0 8px;font-size:14px}.letter-section p,.letter-signature{white-space:pre-wrap;line-height:1.6}.letter-signature{margin-top:24px;font-weight:650}
.storage-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.storage-breadcrumbs{display:flex;align-items:center;gap:8px;min-height:44px;margin:0 0 14px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow-x:auto;white-space:nowrap}.storage-breadcrumbs a{color:var(--accent);font-weight:650}.storage-breadcrumbs span{color:var(--muted)}.storage-folder .storage-file-icon{color:var(--accent)}.storage-folder .storage-file-info a:hover{color:var(--accent)}
@media(max-width:700px){.storage-stats{grid-template-columns:1fr}.page-title>.actions{width:100%;flex-wrap:wrap}.page-title>.actions .button{flex:1}.content>.page-title{align-items:flex-start;flex-direction:column;gap:14px}}
.sidebar-actions{display:grid;grid-template-columns:1fr auto;gap:7px;margin-bottom:16px}.sidebar-actions .button{margin:0}.sidebar-actions .button:last-child{width:42px;padding:9px}
.conversation-folder{margin:3px 0}.conversation-folder-header{display:flex;align-items:center;gap:3px;color:var(--muted)}.conversation-folder-header button{border:0;background:transparent;color:inherit;cursor:pointer}.conversation-folder-toggle{display:flex;align-items:center;gap:8px;min-width:0;flex:1;padding:10px 7px;text-align:left;border-radius:8px!important}.conversation-folder-toggle:not(.conversation-folder-static){color:var(--ink)}.conversation-folder-toggle:not(.conversation-folder-static):hover{background:var(--surface-hover);color:var(--accent)}.conversation-folder-toggle:not(.conversation-folder-static):focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.conversation-folder-toggle:not(.conversation-folder-static) .conversation-folder-name{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.conversation-folder-icon{display:grid;place-items:center;width:18px;height:18px;flex:0 0 18px;color:currentColor}.conversation-folder-icon>.icon{width:18px;height:18px}.conversation-folder-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.conversation-folder-count{margin-left:auto;min-width:19px;padding:2px 5px;border-radius:10px;background:var(--surface-hover);font-size:9px;text-align:center}.conversation-folder-arrow{font-size:18px;line-height:1;transition:transform .16s ease}.conversation-folder.expanded .conversation-folder-arrow{transform:rotate(90deg)}.conversation-folder-action{padding:5px 7px;border-radius:7px!important;font-size:17px}.conversation-folder-action:hover{background:var(--surface-hover);color:var(--ink)}.conversation-folder-header .conversation-folder-clear{padding:6px 4px;font-size:9px;color:#b98585;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.conversation-folder-header .conversation-folder-clear:hover{color:#ff8d8d}.conversation-folder-content{padding:1px 0 5px 8px}.conversation-folder-empty{padding:8px 10px;color:#777b87;font-size:11px}.chat-folder-select{width:150px;padding:7px 9px;font-size:11px}.search-sources{display:grid;gap:10px;margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.search-sources>strong{font-size:11px}.search-source-item{display:grid;gap:4px;padding-top:9px;border-top:1px solid var(--line)}.search-source-item:first-of-type{padding-top:0;border-top:0}.search-source-item a{font-size:11px;font-weight:700;color:var(--accent);text-decoration:underline;white-space:normal;overflow-wrap:anywhere}.search-source-item p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}.search-source-item small{color:var(--muted);font-size:10px}.message-download{display:inline-flex;margin-top:9px;color:var(--accent);font-size:11px;font-weight:650}.internet-search-toggle{font-weight:750;color:var(--ink)}
.internet-search-row{display:flex;align-items:center;flex:0 0 auto;flex-wrap:nowrap;height:38px;gap:5px;margin:0 6px 0 0;padding:0 4px 0 8px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted);transition:.16s ease}.internet-search-row:hover{border-color:#b9c0ca;background:var(--surface-hover)}.internet-search-row.active{border-color:var(--accent);box-shadow:0 0 0 2px rgba(68,78,92,.1)}.internet-search-row[hidden]{display:none}.internet-search-button{width:30px;height:30px;flex-basis:30px;border:0;border-radius:8px;background:transparent;font-size:0}.internet-search-button .icon{width:19px;height:19px}.internet-search-button:hover{background:rgba(127,127,127,.12);color:var(--accent)}.internet-search-button.active{background:var(--accent);color:#fff}.internet-search-button.active:hover{background:var(--primary-dark);color:#fff}.search-limit-control{display:flex;align-items:center;gap:5px;color:inherit;font-size:11px;transition:opacity .16s}.search-limit-control.disabled{opacity:.55}.search-limit-control button{display:grid;place-items:center;width:24px;height:24px;padding:0;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink);cursor:pointer;font-weight:800}.search-limit-control button:hover{background:var(--surface-hover)}.search-limit-control input{width:44px;height:24px;padding:2px 4px;border-color:var(--line);background:var(--panel);text-align:center;font-size:11px}.search-limit-control input::-webkit-inner-spin-button{display:none}@media(max-width:650px){.internet-search-row{gap:4px;margin-right:4px;padding-left:4px}.search-limit-control>span{display:none}.search-limit-control input{width:38px}}
.attachment-upload-button{height:38px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted);transition:.16s ease}.attachment-upload-button:hover{border-color:#b9c0ca;background:var(--surface-hover);color:var(--accent)}
.modal-backdrop{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:20px;background:rgba(10,14,24,.58);backdrop-filter:blur(3px);opacity:0;transition:opacity .16s}.modal-backdrop.open{opacity:1}.modal-backdrop[hidden]{display:none}.modal-card{position:relative;width:min(560px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:26px;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 25px 80px rgba(0,0,0,.25);transform:translateY(8px);transition:transform .16s}.modal-backdrop.open .modal-card{transform:none}.modal-card.compact{width:min(430px,100%)}.modal-card h2{margin:0 30px 15px 0}.modal-card>p{line-height:1.5}.modal-close{position:absolute;right:14px;top:12px;border:0;background:transparent;color:var(--muted);font-size:25px;cursor:pointer}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.settings-list{display:grid;margin-top:18px}.settings-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.settings-list-row strong,.settings-list-row small{display:block}.settings-list-row small{margin-top:4px;color:var(--muted);font-size:10px;overflow-wrap:anywhere}
@media(max-width:800px){.brand-logo{width:52px}.chat-folder-select{max-width:105px}.search-sources a{max-width:250px}.settings-list-row{grid-template-columns:minmax(0,1fr) auto auto}.settings-list-row>div{grid-column:1/-1}.settings-list-row form{grid-column:auto}}

/* Card collections match the standard panel/content width. */
.cards{position:static;width:100%;margin-bottom:22px;grid-template-columns:1fr;transform:none}
.cards>.provider-card{width:100%;grid-column:1/-1}
@media(max-width:800px){.cards{width:100%;grid-template-columns:1fr}}

/* Form grids and every field fill the available parent width. */
.form-grid{width:100%;max-width:100%;min-width:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.form-grid>*{width:100%;min-width:0;max-width:100%}
@media(max-width:800px){.form-grid{grid-template-columns:minmax(0,1fr)}}

/* Topic reservation fields always occupy the full card width. */
.topics-form-shell .public-form-card form.stack,.topics-form-shell .form-grid,.topics-form-shell .form-grid>label,.topics-form-shell form.stack>label,.topics-form-shell input,.topics-form-shell select{width:100%;max-width:100%;min-width:0}
.topics-form-shell .form-grid{grid-template-columns:minmax(0,1fr)}

/* Work upload fields always occupy the full card width. */
.submit-form-shell .public-form-card form.stack,.submit-form-shell .form-grid,.submit-form-shell .form-grid>label,.submit-form-shell form.stack>label,.submit-form-shell input,.submit-form-shell select,.submit-form-shell textarea{width:100%;max-width:100%;min-width:0}
.submit-form-shell .form-grid{grid-template-columns:minmax(0,1fr)}

/* The detailed student letter needs a wider reading area on desktop. */
.modal-card.letter-modal-card{width:min(1100px,calc(100vw - 40px));max-width:1100px}
@media(min-width:1030px){.modal-card.letter-modal-card{min-width:990px}}
@media(max-width:1029px){.modal-card.letter-modal-card{width:100%;min-width:0;max-width:100%}}

/* Submission documents are displayed as a readable vertical checklist. */
.submission-documents{display:flex;flex-direction:column;align-items:stretch;gap:7px;min-width:190px}
.submission-document{justify-content:flex-start;width:100%;white-space:nowrap;text-align:left}
.document-check{display:inline-grid;place-items:center;width:18px;height:18px;flex:0 0 18px;border-radius:50%;background:#e6f6ee;color:var(--success);font-size:11px;font-weight:800}
.submission-review-download{justify-content:center;margin-top:5px;border-color:#9ba7b4;background:#eef1f4;color:#26313d;font-weight:750}
.submission-review-download:hover{background:#dde3e8}.document-download-icon{font-size:16px;line-height:1}
.submission-number{text-align:center;font-weight:750;color:var(--muted)}.submission-date{white-space:nowrap;color:var(--muted)}.assessment-cell>strong{white-space:nowrap}.submission-status-actions{display:grid;gap:6px;margin-top:9px;min-width:155px}.submission-status-actions form{margin:0}.submission-status-actions .button{width:100%;white-space:normal;padding:6px 8px;font-size:11px}.topic-approve-button{border-color:#d5a947!important;background:#fff8e7!important;color:#71510b!important}
.submission-status-actions{display:flex;flex-wrap:wrap;align-items:stretch;min-width:260px}.submission-status-actions form{display:flex;flex:1 1 120px}.submission-status-actions .button{height:100%}
.forms-section-title{margin:30px 0 12px;font-size:18px}.page-title+.forms-section-title{margin-top:0}
.forms-list-search{display:flex;align-items:flex-end;gap:10px;width:100%;margin:30px 0 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.forms-list-search label{display:grid;flex:1;gap:7px;min-width:0;color:var(--muted);font-size:12px;font-weight:700}.forms-list-search input{width:100%;max-width:none}.forms-list-search+.forms-section-title{margin-top:18px}@media(max-width:700px){.forms-list-search{align-items:stretch;flex-direction:column}.forms-list-search .button{width:100%}}
.composer-assistant-row{display:flex;align-items:center;gap:8px;color:var(--muted)}.composer-assistant-row>.icon{width:19px;height:19px;flex:0 0 19px}.composer-assistant-row select{min-width:0}.composer-assistant-spacer{height:12px}.prompt-row textarea{min-height:76px}
.conversation-folder-static{cursor:default!important}.conversation-folder-static:hover{background:transparent;color:inherit}
.assessment-heading,.assessment-cell{width:1%;min-width:0!important;max-width:none!important;white-space:nowrap!important}.submission-topic-actions{margin-top:8px}.submission-topic-actions form,.submission-delete-form{margin:0}.submission-delete-button{margin-top:8px;border-color:rgba(192,57,43,.35)!important;color:var(--danger)!important}.submission-delete-button:hover{background:rgba(192,57,43,.08)!important}.submission-topic-actions .button{white-space:nowrap}

/* Form creation/editing stays in a wide modal; results use a dedicated table-only view. */
.form-editor-card,.assistant-editor-card{width:min(1000px,calc(100vw - 40px));max-width:1000px}.form-editor-card .marker-guide{margin-top:20px}.form-editor-backdrop{align-items:start;overflow-y:auto;padding-top:28px;padding-bottom:28px}.results-only{width:100%;margin-bottom:22px}.form-card-actions{flex-wrap:wrap;justify-content:flex-end}.form-delete-button{border-color:rgba(192,57,43,.35)!important;color:var(--danger)!important}.form-delete-button:hover{background:rgba(192,57,43,.08)!important}
@media(max-width:760px){.form-editor-card,.assistant-editor-card{width:100%;max-width:100%;padding:20px}.form-editor-backdrop{padding:10px}.form-card-actions{grid-column:1/-1;justify-content:flex-start}}
.assistant-settings-title{padding-top:4px;border-top:1px solid var(--line)}.assistant-settings-title h3{margin:14px 0 4px;font-size:15px}.field-help{display:inline-grid;place-items:center;width:17px;height:17px;margin-left:4px;border:1px solid var(--line);border-radius:50%;color:var(--muted);font-size:10px;font-weight:800;cursor:help;vertical-align:1px}.field-help:hover,.field-help:focus{border-color:var(--accent);color:var(--accent);outline:none}.assistant-advanced{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.assistant-advanced>summary{cursor:pointer;color:var(--ink);font-size:13px;font-weight:750}.advanced-grid{margin-top:16px}.advanced-grid .full{grid-column:1/-1}@media(max-width:700px){.advanced-grid{grid-template-columns:1fr}.advanced-grid .full{grid-column:auto}}

/* Public form URLs are separate, readable blocks with direct copy actions. */
.public-links{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.public-link-block{min-width:0;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-size:15px}.public-link-block>strong{display:block;margin-bottom:10px;font-size:15px}.public-link-row{display:flex;align-items:center;gap:10px;min-width:0}.public-link-row a{min-width:0;flex:1;color:#000;text-decoration:underline;overflow-wrap:anywhere;line-height:1.45}.public-link-copy{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;padding:0;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink);cursor:pointer}.public-link-copy .icon{width:19px;height:19px}.public-link-copy:hover{background:var(--surface-hover);border-color:#aeb5bf}.public-link-copy:disabled{width:auto;min-width:38px;padding:0 9px;opacity:.75;cursor:default}:root[data-theme="dark"] .public-link-row a{color:#fff}
.button.icon-action{width:38px;height:38px;min-width:38px;flex:0 0 38px;padding:0}.button.icon-action .icon{width:19px;height:19px}.button.small.icon-action{width:34px;height:34px;min-width:34px;flex-basis:34px;padding:0}.button.small.icon-action .icon{width:17px;height:17px}.form-card-actions .icon-action{margin:0}.submission-documents .icon-action{width:38px;min-width:38px;align-self:flex-start;justify-content:center}.submission-search .icon-action,.forms-list-search .icon-action{align-self:flex-end}
.submission-export.icon-caption-action{width:auto;min-width:0;flex-basis:auto;padding:0 14px}.submission-export.icon-caption-action .icon{flex:0 0 19px}.submission-export .icon-caption{white-space:nowrap}
.submission-export-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}

/* Results table uses the available viewport instead of overflowing because of fixed action widths. */
.results-only{position:relative;left:50%;width:min(1500px,calc(100vw - 32px));transform:translateX(-50%)}.results-only table{width:100%;min-width:0;table-layout:fixed}.results-only th,.results-only td{min-width:0;padding:11px 9px;overflow-wrap:anywhere}.results-only th:nth-child(1){width:4%}.results-only th:nth-child(2){width:16%}.results-only th:nth-child(3){width:22%}.results-only th:nth-child(4){width:15%}.results-only th:nth-child(5){width:12%}.results-only th:nth-child(6){width:19%}.results-only th:nth-child(7){width:12%}.results-only .submission-status-actions{min-width:0}.results-only .submission-documents{min-width:0;flex-flow:column nowrap;align-items:stretch}.results-only .submission-documents .icon-caption-action{width:100%;min-width:0;align-self:stretch;justify-content:flex-start;padding:7px 10px}.results-only .submission-documents .icon-caption-action .icon{flex:0 0 17px}.results-only .icon-caption{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.results-only .submission-documents .letter-button{margin-top:7px;border-color:var(--line);background:var(--surface)}.results-only .submission-date{white-space:normal}.results-only .badge{max-width:100%;white-space:normal}.results-only .assessment-heading,.results-only .assessment-cell{max-width:none!important;white-space:normal!important}.results-only .assessment-cell>strong{white-space:normal}
.results-only .submission-documents .icon-caption{overflow:visible;text-overflow:clip;white-space:normal}
@media(max-width:900px){.results-only table{min-width:900px}.results-only{overflow-x:auto}}
@media(max-width:760px){.public-links{grid-template-columns:1fr}.public-link-row{align-items:stretch;flex-direction:column}.public-link-row .button{width:100%}}

/* Student letter: email and the complete review are separate copyable blocks. */
.letter-contact-block,.letter-combined-block{margin-top:16px;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.letter-block-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:13px}.letter-block-heading h3{margin:0;font-size:15px}.letter-copy-button{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;padding:0;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink);cursor:pointer}.letter-copy-button:hover{background:var(--surface-hover)}.letter-copy-button .icon{width:18px;height:18px}.letter-copy-button:disabled{width:36px;padding:0}.letter-email{font-size:15px;font-weight:700;overflow-wrap:anywhere}.letter-message{display:grid;gap:16px;white-space:normal}.letter-message-part{display:grid;gap:6px}.letter-message-part>strong{font-size:13px;color:var(--muted)}.letter-message-part p,.letter-message .letter-signature,.letter-friendly-text{margin:0;white-space:pre-wrap;line-height:1.65}.letter-friendly-text{font-size:15px}.letter-message .letter-signature{padding-top:15px;border-top:1px solid var(--line)}
