@font-face{font-family:IRANYekanX;src:url(/fonts/IRANYekanXFaNum-Regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:IRANYekanX;src:url(/fonts/IRANYekanXFaNum-Medium.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:IRANYekanX;src:url(/fonts/IRANYekanXFaNum-Bold.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:IRANYekanX;src:url(/fonts/IRANYekanXFaNum-Light.woff2) format("woff2");font-weight:300;font-display:swap}@font-face{font-family:IRANYekanX;src:url(/fonts/IRANYekanXFaNum-DemiBold.woff2) format("woff2");font-weight:600;font-display:swap}@font-face{font-family:IRANYekanX;src:url(/fonts/IRANYekanXFaNum-ExtraBold.woff2) format("woff2");font-weight:800;font-display:swap}:root{--bg: #f6f6f4;--surface: #ffffff;--surface-2: #f0f0ee;--border: #e0ded9;--text: #1d1d1b;--text-2: #57554f;--text-3: #8b887f;--accent: #0f6b5c;--accent-weak: #e3f1ee;--on-accent: #ffffff;--amber: #b45309;--amber-weak: #fef3c7;--red: #b91c1c;--red-weak: #fee2e2;--green-weak: #ecfdf5;--blue: #1d4ed8;--blue-weak: #eff6ff;--code-bg: #14201d;--code-fg: #e8efed;--viewer-bg: #10131a;--viewer-fg: #e7ecea;--viewer-fg-dim: #cfd6d3;--viewer-hint: #98a09d;--highlight: #e0a800;--highlight-weak: rgba(255, 209, 102, .22);--scrim: rgba(0, 0, 0, .45);--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 3px rgba(0, 0, 0, .07);--shadow-pop: 0 8px 40px rgba(0, 0, 0, .3);--mono: ui-monospace, "SF Mono", Menlo, monospace;--fs-2xs: .68rem;--fs-xs: .72rem;--fs-sm: .76rem;--fs-md: .8rem;--fs-lg: .84rem}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}@supports (height: 100dvh){html,body,#root{height:100dvh}}body{font-family:IRANYekanX,Tahoma,sans-serif;background:var(--bg);color:var(--text);line-height:1.9;font-size:14.5px}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:inherit}.layout{display:flex;height:100%}.sidebar{width:270px;border-inline-end:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;overflow-y:auto}.sidebar.closed,.sidebar-scrim{display:none}.sidebar header{padding:.9rem 1rem;font-weight:700;border-block-end:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.new-chat{margin:.7rem 1rem;padding:.45rem .8rem;border:1px solid var(--accent);color:var(--accent);background:none;border-radius:var(--radius-sm)}.conv-item{padding:.45rem 1rem;cursor:pointer;display:flex;align-items:center;gap:.4rem;color:var(--text-2);border-inline-start:3px solid transparent}.conv-item:hover{background:var(--surface-2)}.conv-item.active{border-inline-start-color:var(--accent);color:var(--text);background:var(--accent-weak)}.conv-item .title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conv-item .del{visibility:hidden;border:none;background:none;color:var(--text-3)}.conv-item:hover .del{visibility:visible}.agent-chip{font-size:var(--fs-2xs);background:var(--surface-2);border-radius:6px;padding:0 .35rem;color:var(--text-3)}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;gap:.6rem;padding:.55rem 1rem;border-block-end:1px solid var(--border);background:var(--surface)}.topbar .burger{border:none;background:none;font-size:1.1rem}.topbar h1{font-size:1rem;margin:0;flex:1}.scroll{flex:1;overflow-y:auto;padding:1.2rem 0}.column{max-width:860px;margin:0 auto;padding:0 1.2rem}.column.wide{max-width:max(860px,70vw)}.msg{margin-block-end:1rem;display:flex}.msg.user{justify-content:flex-start}.msg.user .bubble{background:var(--accent-weak);border-radius:var(--radius);padding:.55rem .95rem;max-width:75%}.msg.assistant{display:block}.msg.assistant .bubble{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1.05rem;box-shadow:var(--shadow);animation:appear .25s ease}@keyframes appear{0%{opacity:0;transform:translateY(4px)}}.msg .md p{margin:.35rem 0}.msg .md code{direction:ltr;unicode-bidi:embed;font-family:var(--mono);background:var(--surface-2);padding:0 .3rem;border-radius:4px}.msg .md pre{direction:ltr;text-align:left;background:var(--code-bg);color:var(--code-fg);padding:.8rem;border-radius:var(--radius-sm);overflow-x:auto}sup.cite{color:var(--accent);font-weight:700;margin-inline-start:1px}.kind-error .bubble{border-color:var(--red);background:var(--red-weak)}.retry{margin-block-start:.4rem;border:1px solid var(--red);color:var(--red);background:none;border-radius:var(--radius-sm);padding:.2rem .7rem}.sources{margin-block-start:.6rem;border-block-start:1px dashed var(--border);padding-block-start:.45rem;font-size:var(--fs-md);color:var(--text-2)}.sources .src{display:flex;gap:.4rem}.meta-line{font-size:var(--fs-xs);color:var(--text-3);margin-block-start:.4rem;direction:ltr;text-align:end}.boundary-fallback{display:flex;flex-direction:column;align-items:center;gap:.6rem;border:1px dashed var(--red);border-radius:var(--radius);background:var(--red-weak);color:var(--text-2);padding:1rem 1.2rem;margin-block:1rem;text-align:center}.thinking-box{border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface);padding:.7rem 1rem;margin-block-end:1rem}.stage-row{display:flex;gap:.5rem;align-items:center;color:var(--text-2);font-size:var(--fs-lg)}.stage-row .dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}.stage-row.running .dot{animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.25}}.thinking-draft{max-height:30vh;overflow-y:auto;margin-block-start:.5rem;color:var(--text-2)}.caret{display:inline-block;width:7px;height:1em;background:var(--accent);animation:pulse 1s infinite;vertical-align:text-bottom}.composer{border-block-start:1px solid var(--border);background:var(--surface);padding:.7rem 1rem calc(.9rem + env(safe-area-inset-bottom,0px))}.composer .box{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:.45rem}.composer textarea{resize:none;border:1px solid var(--border);border-radius:var(--radius);padding:.6rem .9rem;min-height:44px;max-height:180px;background:var(--bg)}.composer .row{display:flex;align-items:center;gap:.6rem}.composer select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.3rem .5rem;background:var(--surface);color:var(--text-2)}.composer .spacer{flex:1}.send{border:none;border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);padding:.4rem 1.2rem;font-weight:600}.send:disabled{opacity:.45;cursor:default}.send.stop{background:var(--red)}.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.9rem 1.1rem;margin-block-end:1.2rem;box-shadow:var(--shadow)}.panel h2{font-size:.95rem;margin:0 0 .6rem}.panel h3{font-size:var(--fs-lg);margin:.9rem 0 .35rem;color:var(--text-2)}.panel .toolbar{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.btn{border:1px solid var(--accent);color:var(--accent);background:none;border-radius:var(--radius-sm);padding:.3rem .9rem}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn:disabled{opacity:.45;cursor:default}.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-lg)}.tbl th,.tbl td{border:1px solid var(--border);padding:.3rem .5rem;text-align:center}.tbl th{background:var(--surface-2)}.tbl td.start{text-align:start}.tbl td.num{direction:ltr;font-variant-numeric:tabular-nums}.badge{font-size:var(--fs-xs);border-radius:6px;padding:.05rem .45rem}.badge.geometry{background:var(--green-weak);color:var(--accent)}.badge.derived{background:var(--amber-weak);color:var(--amber)}.badge.presence{background:var(--blue-weak);color:var(--blue)}.badge.out-of-model-scope{background:var(--red-weak);color:var(--red)}.flag-note{color:var(--amber);font-size:var(--fs-sm)}.hint{color:var(--text-3);font-size:var(--fs-md)}.coef-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.5rem}.coef-grid label{font-size:var(--fs-sm);color:var(--text-2);display:flex;flex-direction:column}.coef-grid input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.25rem .5rem;direction:ltr}.searchrow{display:flex;gap:.4rem}.searchrow input{flex:1;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.3rem .6rem}.cand-list{list-style:none;margin:.3rem 0 0;padding:0;max-block-size:11rem;overflow-y:auto}.cand-list li{padding:.25rem .5rem;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cand-list li:hover{background:var(--surface-2)}.cand-list li.selected{background:var(--accent-weak)}.empty{color:var(--text-3);text-align:center;margin-block-start:4rem}.empty h2{color:var(--text-2)}.busy-strip{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:.6rem;background:var(--accent-weak);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.45rem .8rem;font-size:var(--fs-lg);margin-block-end:.8rem}.spin{inline-size:16px;block-size:16px;flex:none;border:2px solid var(--border);border-block-start-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.spin-sm{inline-size:11px;block-size:11px;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.accordion{display:flex;flex-direction:column;gap:.3rem}.acc{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.acc>summary{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;cursor:pointer;padding:.45rem .8rem;font-size:var(--fs-lg);list-style:none}.acc>summary:before{content:"◂";color:var(--text-3);font-size:var(--fs-xs)}.acc[open]>summary:before{content:"▾"}.acc-rec{border-block-start:1px dashed var(--border);padding:.4rem 1.6rem;font-size:var(--fs-md)}.acc-missing{opacity:.75}.chip{font-size:var(--fs-2xs);border-radius:6px;padding:0 .4rem;background:var(--surface-2);color:var(--text-2)}.chip-geometry{background:var(--green-weak)}.chip-derived{background:var(--accent-weak)}.chip-presence{background:var(--surface-2)}.chip-out-of-model-scope{background:var(--amber);color:var(--on-accent)}.coef-inline{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;border-block-start:1px dashed var(--border);padding:.45rem 1.6rem .6rem;font-size:var(--fs-sm)}.coef-inline label{display:flex;align-items:center;gap:.3rem;color:var(--text-2)}.coef-inline input{inline-size:5.2rem}.tbl-compact td{padding-block:.3rem;vertical-align:top}.btn-sm{padding:.15rem .5rem;font-size:var(--fs-sm)}.btn-icon{padding:.1rem .4rem;font-size:var(--fs-md);line-height:1.4;flex:none;min-inline-size:1.8rem}.tbl-map{table-layout:fixed}.tbl-map .col-group{inline-size:26%}.tbl-map .col-item{inline-size:34%}.tbl-map .col-coeff{inline-size:28%}.tbl-map .col-status{inline-size:12%}.tbl-map td,.tbl-map th{overflow-wrap:anywhere}.tbl-map .col-status select{inline-size:100%;min-inline-size:0;font-size:var(--fs-sm)}.item-cell{display:flex;flex-direction:column;gap:.3rem;text-align:start;min-inline-size:0}.item-selected{display:flex;gap:.4rem;align-items:baseline;font-size:var(--fs-lg);min-inline-size:0}.item-selected b{flex:none;font-family:var(--mono)}.item-selected .hint{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-inline-size:0}.item-actions{display:flex;gap:.3rem;align-items:center}.cand-select{flex:1;min-inline-size:0;inline-size:100%;font-size:var(--fs-sm);padding:.15rem .3rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-2)}.item-search{display:grid;grid-template-columns:1fr auto;gap:.3rem;align-items:start}.item-search input{min-inline-size:0;inline-size:100%;font-size:var(--fs-sm);padding:.15rem .4rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.item-search .span-2{grid-column:1 / -1}.drawer-scrim{position:fixed;inset:0;background:var(--scrim);z-index:20;animation:fade .15s ease-out}@keyframes fade{0%{opacity:0}}.drawer{position:fixed;inset-block:0;inset-inline-end:0;z-index:21;inline-size:min(46rem,94vw);overflow-y:auto;background:var(--bg);border-inline-start:1px solid var(--border);box-shadow:var(--shadow-pop);padding:.9rem 1.1rem;animation:slide .18s ease-out}@keyframes slide{0%{transform:translate(-6%);opacity:.4}}:dir(ltr) .drawer{animation:slide-ltr .18s ease-out}@keyframes slide-ltr{0%{transform:translate(6%);opacity:.4}}.drawer-head{display:flex;align-items:center;gap:.5rem;margin-block-end:.7rem}.drawer-head .spacer{flex:1}.drawer-toolbar{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;font-size:var(--fs-sm);margin-block-end:.4rem}.drawer-toolbar label{display:flex;align-items:center;gap:.3rem}.viewer3d{position:relative;overflow:hidden;background:var(--viewer-bg);border:1px solid var(--border);border-radius:var(--radius-sm)}.viewer3d canvas{inline-size:100%;block-size:26rem;display:block;cursor:pointer}.viewer3d-tools{position:absolute;z-index:2;inset-block-start:.45rem;inset-inline-start:.5rem;inset-inline-end:.5rem;display:flex;align-items:center;gap:.3rem;flex-wrap:wrap;padding:.28rem .4rem;font-size:var(--fs-xs);background:#10131ab8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border:1px solid rgba(255,255,255,.13);border-radius:var(--radius-sm)}.viewer3d-tools .btn{border-color:#ffffff47;color:var(--viewer-fg);padding:.08rem .45rem;font-size:var(--fs-xs)}.viewer3d-tools .btn:hover{background:#ffffff1f}.viewer3d-tools label{display:flex;align-items:center;gap:.2rem;color:var(--viewer-fg-dim)}.tool-sep{inline-size:1px;block-size:1rem;background:#fff3}.viewer3d-status{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:var(--fs-md);color:var(--viewer-fg);background:#10131ad9}.viewer3d-hint{position:absolute;z-index:2;inset-block-end:.4rem;inset-inline-start:.6rem;font-size:var(--fs-2xs);color:var(--viewer-hint);pointer-events:none}.legend{display:flex;flex-wrap:wrap;gap:.7rem;font-size:var(--fs-xs);color:var(--text-2);margin-block:.5rem}.legend i,.swatch{display:inline-block;inline-size:.7rem;block-size:.7rem;border-radius:2px;margin-inline-end:.25rem;vertical-align:middle}.detail{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.6rem .8rem;margin-block:.6rem}.detail h4{margin:0 0 .4rem;font-size:var(--fs-lg)}.detail dl{display:grid;grid-template-columns:auto 1fr;gap:.15rem .7rem;margin:0;font-size:var(--fs-md)}.detail dt{color:var(--text-3)}.detail dd{margin:0}.detail .mono{font-family:var(--mono);font-size:var(--fs-xs)}.row-on{background:var(--accent-weak)}.row-coeffs{display:flex;flex-direction:column;gap:.2rem;min-inline-size:0}.row-coeffs label{display:flex;align-items:center;gap:.3rem;font-size:var(--fs-2xs);color:var(--text-3)}.row-coeffs label span{flex:1}.row-coeffs input{inline-size:3.9rem;font-size:var(--fs-sm)}.tbl-wrap{overflow-x:auto;max-inline-size:100%}.tbl-wrap>.tbl{min-inline-size:max-content}.info-wrap{position:relative;flex:none;cursor:help;outline:none}.info-dot{color:var(--accent);font-size:var(--fs-md)}.info-wrap:hover .info-dot,.info-wrap:focus-visible .info-dot{color:var(--text)}.info-pop{position:absolute;z-index:12;inset-inline-start:0;inset-block-start:1.2rem;display:none;flex-direction:column;gap:.15rem;inline-size:22rem;max-inline-size:60vw;padding:.5rem .7rem;text-align:start;line-height:1.7;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 4px 16px #0000002e;font-size:var(--fs-sm)}.info-wrap:hover .info-pop,.info-wrap:focus-visible .info-pop{display:flex}.info-pop b{font-family:var(--mono)}.save-row{display:flex;align-items:center;gap:.6rem;margin-block-start:.5rem}.save-row .hint,.save-row .flag-note{margin:0}.composer-notice{font-size:var(--fs-sm);border-radius:var(--radius-sm);padding:.4rem .7rem;border:1px solid var(--border)}.composer-notice.warn{background:var(--amber-weak);color:var(--amber);border-color:var(--amber)}.composer-notice.info{background:var(--accent-weak);color:var(--text-2)}.cite-chip{display:inline-flex;align-items:center;gap:.15rem;font:inherit;font-size:var(--fs-xs);line-height:1.5;padding:0 .4rem;margin-inline:.12rem;vertical-align:.15em;cursor:pointer;color:var(--accent);background:var(--accent-weak);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:999px}.cite-chip:hover,.cite-chip:focus-visible{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.cite-ic{font-size:var(--fs-2xs);line-height:1}.src-open{cursor:pointer;border-radius:var(--radius-sm);padding:.1rem .3rem}.src-open:hover{background:var(--accent-weak)}.page-chip{font-size:var(--fs-2xs);background:var(--surface-2);color:var(--text-3);border-radius:6px;padding:0 .35rem;flex:none}.pdf-modal{position:fixed;z-index:21;inset-block:4vh;inset-inline:50%;transform:translate(50%);inline-size:min(58rem,94vw);display:flex;flex-direction:column;gap:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:.8rem 1rem;overflow-y:auto}:dir(rtl) .pdf-modal{transform:translate(50%)}.pdf-stage{position:relative;background:var(--surface-2);border-radius:var(--radius-sm);overflow:hidden}.pdf-stage img{inline-size:100%;block-size:auto;display:block}.pdf-highlight{position:absolute;pointer-events:none;background:var(--highlight-weak);border:2px solid var(--highlight);border-radius:3px}.msg.event{display:flex;gap:.5rem;align-items:flex-start;font-size:var(--fs-md);color:var(--text-2);background:var(--surface-2);border:1px dashed var(--border);border-radius:var(--radius-sm);padding:.35rem .7rem}.msg.event .event-dot{color:var(--accent);font-size:.6rem;line-height:1.9}.msg.event>div{flex:1;min-inline-size:0}.event-time{flex:none}.progress{block-size:8px;background:var(--surface-2);border-radius:999px;overflow:hidden;margin-block:.5rem .25rem}.progress-bar{block-size:100%;background:var(--accent);transition:width .4s ease}.login-wrap{display:grid;place-items:center;block-size:100%;padding:1.5rem}.login-card{inline-size:min(22rem,92vw);display:flex;flex-direction:column;gap:.7rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.4rem 1.5rem}.login-card h1{font-size:1.1rem;margin:0}.login-card label{display:flex;flex-direction:column;gap:.25rem;font-size:var(--fs-lg)}.login-card input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.45rem .6rem;background:var(--bg)}.login-card .btn{margin-block-start:.4rem}.user-chip{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--fs-sm);color:var(--text-2)}.empty-inline{margin-block-start:0;color:var(--text-3);font-size:var(--fs-lg);border:1px dashed var(--border);border-radius:var(--radius);padding:.7rem 1rem;text-align:start}@media(max-width:820px){.sidebar{position:fixed;inset-block:0;inset-inline-start:0;z-index:30;width:min(19rem,85vw);box-shadow:var(--shadow-pop)}.sidebar-scrim{display:block;position:fixed;inset:0;z-index:29;background:var(--scrim)}.column,.column.wide{max-width:100%}.column{padding:0 .8rem}.msg.user .bubble{max-width:92%}.topbar h1{font-size:.9rem}.composer textarea,.composer select,.searchrow input,.login-card input{font-size:16px}.viewer3d canvas{block-size:min(26rem,55dvh)}.pdf-modal{inset-block:1.5vh;inline-size:97vw;padding:.6rem .7rem}.drawer{inline-size:100vw;border-inline-start:none}.info-pop{max-inline-size:86vw}}@media(pointer:coarse){.btn,.new-chat,.send,.composer select{min-block-size:44px}.btn-sm,.btn-icon{min-block-size:38px;padding:.3rem .6rem}.conv-item{min-block-size:44px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
