:root{--bg: #0b1626;--side: #112038;--panel: #162a45;--text: #e8eef7;--muted: #8fa3bc;--accent: #1a6fb5;--line: #243854;--user: #1e3a5f;--bot: #13233a;--ok: #3d9b6a;--warn: #c4a035;font-family:Segoe UI,Candara,Calibri,sans-serif}*{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:#3a5678 transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#2a4060;border-radius:8px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:#3d5f88;background-clip:padding-box}*::-webkit-scrollbar-corner{background:transparent}body{margin:0;color:var(--text);background:radial-gradient(ellipse at 0% 0%,#163355 0%,transparent 45%),var(--bg);min-height:100vh}.layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.side{background:linear-gradient(180deg,#0d1e33,#091524);border-right:1px solid rgba(255,255,255,.06);padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1.5rem}.logo{display:flex;align-items:center;gap:.7rem;padding-bottom:1.25rem;border-bottom:1px solid rgba(255,255,255,.06)}.logo-mark{width:2.25rem;height:2.25rem;flex-shrink:0;border-radius:10px;background:linear-gradient(140deg,#1e7fd4,#22c997);box-shadow:0 4px 14px #1a6fb566,inset 0 1px #fff3;display:grid;place-content:center}.logo-mark span{display:block;font-size:.72rem;font-weight:900;line-height:1;color:#fff;letter-spacing:0}.logo strong{display:block;font-size:1rem;font-weight:700;letter-spacing:-.01em}.logo span{color:var(--muted);font-size:.73rem;display:block;margin-top:.1rem}.side-foot{margin-top:.5rem;font-size:.72rem;color:#8fa3bc73;letter-spacing:.01em}.side-user{margin-top:auto;display:grid;gap:.5rem;padding:.85rem .75rem;border-radius:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.07)}.side-user-info{display:grid;gap:.1rem;min-width:0}.side-user-info strong{font-size:.88rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-user-info small{color:var(--muted);font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-logout{width:100%;font-size:.8rem;padding:.4rem .7rem}.auth-loading{min-height:100vh;display:grid;place-content:center;color:var(--muted)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;position:relative;background:#07111e}.login-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse 65% 55% at 18% 8%,rgba(26,111,181,.25),transparent 55%),radial-gradient(ellipse 50% 45% at 88% 82%,rgba(34,201,151,.12),transparent 50%);z-index:0}.login-shell{position:relative;z-index:1;width:100%;max-width:900px;display:grid;grid-template-columns:1.15fr 1fr;min-height:540px;border:1px solid rgba(255,255,255,.08);border-radius:20px;overflow:hidden;box-shadow:0 0 0 1px #1a6fb51a,0 40px 80px #0009;animation:login-rise .35s cubic-bezier(.22,1,.36,1) both}@keyframes login-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.login-showcase{display:flex;flex-direction:column;padding:2.75rem 2.5rem;background:radial-gradient(ellipse 90% 55% at 10% 5%,rgba(43,143,217,.28),transparent 60%),radial-gradient(ellipse 70% 50% at 100% 100%,rgba(34,201,151,.13),transparent 55%),linear-gradient(170deg,#0d1e33,#081525);border-right:1px solid rgba(255,255,255,.06)}.login-showcase-brand{display:flex;align-items:center;gap:1rem;margin-bottom:2.75rem}.login-mark{width:3rem;height:3rem;flex-shrink:0;border-radius:14px;background:linear-gradient(140deg,#1e7fd4,#22c997);box-shadow:0 6px 20px #1a6fb566,inset 0 1px #fff3;display:grid;place-content:center}.login-mark span{display:block;font-size:.82rem;font-weight:900;line-height:1;letter-spacing:.5px;color:#fff;font-family:Segoe UI,system-ui,sans-serif}.login-showcase-brand strong{display:block;font-size:1.15rem;font-weight:700;letter-spacing:-.01em;color:var(--text)}.login-showcase-brand span{display:block;margin-top:.15rem;color:var(--muted);font-size:.76rem;line-height:1.4}.login-highlights{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.5rem;flex:1}.login-highlights li{display:flex;gap:.9rem;align-items:flex-start}.login-highlight-dot{width:7px;height:7px;margin-top:.42rem;flex-shrink:0;border-radius:999px;background:linear-gradient(135deg,#1e7fd4,#22c997);box-shadow:0 0 0 4px #1a6fb526}.login-highlights strong{display:block;font-size:.9rem;font-weight:600;color:var(--text);margin-bottom:.25rem}.login-highlights p{margin:0;color:var(--muted);font-size:.79rem;line-height:1.55}.login-showcase-foot{margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.05);color:#8fa3bc73;font-size:.71rem;letter-spacing:.02em}.login-panel{display:flex;align-items:center;justify-content:center;padding:2.5rem 2.25rem;background:#0b1626}.login-card{width:100%;display:flex;flex-direction:column;gap:1.15rem}.login-card-head{margin-bottom:.25rem}.login-card-head h1{margin:0 0 .35rem;font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:var(--text)}.login-card-head p{margin:0;font-size:.82rem;color:var(--muted)}.login-field{display:flex;flex-direction:column;gap:.45rem;font-size:.78rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}.login-input-wrap{position:relative;display:flex;align-items:center;border:1px solid #1e3250;border-radius:10px;background:#0e1e32;transition:border-color .15s ease,box-shadow .15s ease}.login-input-wrap:focus-within{border-color:#1a6fb5;box-shadow:0 0 0 3px #1a6fb526}.login-input-icon{width:16px;height:16px;margin-left:.85rem;color:#4a6a8a;flex-shrink:0}.login-input-wrap input{flex:1;min-width:0;border:none;background:transparent;padding:.7rem .75rem;font-size:.9rem;color:var(--text)}.login-input-wrap input::placeholder{color:#3a5270}.login-input-wrap input:focus{outline:none}.login-input-wrap input:-webkit-autofill,.login-input-wrap input:-webkit-autofill:hover,.login-input-wrap input:-webkit-autofill:focus,.login-input-wrap input:-webkit-autofill:active{-webkit-text-fill-color:var(--text)!important;caret-color:var(--text);-webkit-box-shadow:0 0 0 1000px #0e1e32 inset!important;box-shadow:0 0 0 1000px #0e1e32 inset!important}.login-toggle-pass{flex-shrink:0;margin-right:.5rem;padding:.25rem .5rem;border:none;background:transparent;color:#4a6a8a;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;cursor:pointer;border-radius:5px;transition:color .12s,background .12s}.login-toggle-pass:hover{color:var(--text);background:#ffffff0d}.login-error{margin:0;padding:.6rem .8rem;border-radius:8px;background:#f071671a;border:1px solid rgba(240,113,103,.3);color:#f4a29b;font-size:.82rem;line-height:1.4}.login-submit{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.78rem 1rem;margin-top:.2rem;font-size:.92rem;font-weight:600;border-radius:10px;background:linear-gradient(135deg,#1a6fb5,#2590d8);box-shadow:0 8px 20px #1a6fb54d;transition:filter .15s,box-shadow .15s}.login-submit:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 10px 26px #1a6fb566}.login-submit:disabled{opacity:.65}.login-spinner{width:.9rem;height:.9rem;border-radius:999px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:login-spin .65s linear infinite}@keyframes login-spin{to{transform:rotate(360deg)}}@media(max-width:720px){.login-page{padding:2rem 1rem 1rem;align-items:flex-start}.login-shell{grid-template-columns:1fr;min-height:0}.login-showcase{border-right:none;border-bottom:1px solid rgba(255,255,255,.06);padding:1.75rem 1.5rem 1.5rem}.login-highlights{display:none}.login-showcase-brand{margin-bottom:0}.login-showcase-foot{display:none}.login-panel{padding:2rem 1.5rem}}.nav{display:grid;gap:.25rem}.nav a{color:var(--muted);text-decoration:none;padding:.5rem .75rem;border-radius:8px;border:1px solid transparent;display:flex;justify-content:space-between;align-items:center;font-size:.88rem;font-weight:500;transition:background .13s ease,color .13s ease,border-color .13s ease}.nav a:hover{color:var(--text);background:#ffffff0a;border-color:#ffffff0f}.nav a.active{color:var(--text);background:#1a6fb524;border-color:#1a6fb54d}.badge-count{background:var(--accent);color:#fff;font-size:.7rem;min-width:1.25rem;text-align:center;border-radius:999px;padding:.1rem .35rem}.main-wrap{min-width:0}h2{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .75rem}.plist{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:.35rem}.plist button{width:100%;text-align:left;background:transparent;border:1px solid transparent;color:var(--text);padding:.5rem .65rem;border-radius:6px;cursor:pointer;display:flex;justify-content:space-between;gap:.5rem}.plist button small{color:var(--muted)}.plist button:hover,.plist button.active{background:var(--bg);border-color:var(--line)}.init{display:grid;gap:.75rem}.init-field{display:grid;gap:.35rem;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.init input,.init select,.composer-row input,.composer-row textarea,.composer input,.project-select,.reject-reason input,.reject-reason textarea{width:100%;padding:.65rem .75rem;border-radius:9px;border:1px solid #1e3250;background:#0e1e32;color:var(--text);font-size:.88rem;transition:border-color .15s ease,box-shadow .15s ease}.init input:focus,.init select:focus,.composer-row input:focus,.composer-row textarea:focus,.project-select:focus,.reject-reason input:focus,.reject-reason textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #1a6fb526}.init input::placeholder,.composer-row input::placeholder,.composer-row textarea::placeholder,.reject-reason input::placeholder,.reject-reason textarea::placeholder{color:#3a5270}.init select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238fa3bc' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .65rem center;padding-right:2.2rem;cursor:pointer}button{background:linear-gradient(135deg,#1a6fb5,#2590d8);color:#fff;border:none;border-radius:9px;padding:.6rem 1rem;font-size:.88rem;font-weight:600;cursor:pointer;transition:filter .15s,box-shadow .15s;box-shadow:0 4px 12px #1a6fb533}button:hover:not(:disabled){filter:brightness(1.07);box-shadow:0 6px 16px #1a6fb54d}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:transparent;border:1px solid #1e3250;color:var(--muted);box-shadow:none}button.secondary:hover:not(:disabled){filter:none;border-color:var(--accent);color:var(--text);background:#1a6fb514;box-shadow:none}button.danger{background:transparent;border:1px solid #7f1d1d;color:#f87171;box-shadow:none}button.danger:hover:not(:disabled){filter:none;background:#ef44441f;border-color:#ef4444;color:#fca5a5}.chat,.page{display:flex;flex-direction:column;min-height:100vh;max-height:100vh}.chat-split{display:grid;grid-template-columns:minmax(320px,1fr) minmax(360px,1.1fr);min-height:100vh;max-height:100vh}.chat-split .pane{display:flex;flex-direction:column;min-height:100vh;max-height:100vh;min-width:0}.chat-split .preview{border-left:1px solid var(--line);background:#0a1220}.preview-head{flex-wrap:wrap}.screens-bar{display:inline-flex;align-items:center;gap:.55rem;margin-right:.35rem;min-width:0;max-width:min(420px,48vw)}.screens-meta{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0;padding:.2rem .15rem .2rem .55rem;border-radius:999px;background:#ffffff08;border:1px solid var(--line)}.screens-meta-label{font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.screens-meta-count{min-width:1.35rem;height:1.35rem;display:inline-grid;place-items:center;font-size:.72rem;font-weight:700;color:#fff;background:var(--accent);border-radius:999px;padding:0 .35rem}.screens-tabs{display:flex;align-items:center;gap:.25rem;min-width:0;overflow-x:auto;padding:.2rem;border-radius:10px;background:#0a1422;border:1px solid var(--line);scrollbar-width:thin}.screens-tab{display:inline-flex;align-items:center;gap:.4rem;flex-shrink:0;margin:0;padding:.35rem .65rem .35rem .4rem;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);font:inherit;font-size:.8rem;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.screens-tab:hover:not(:disabled){color:var(--text);background:#ffffff0a}.screens-tab.active{color:var(--text);background:var(--panel);border-color:#1a6fb573;box-shadow:0 0 0 1px #1a6fb51f}.screens-tab:disabled{opacity:.45;cursor:not-allowed}.screens-tab-index{width:1.2rem;height:1.2rem;display:inline-grid;place-items:center;font-size:.68rem;font-weight:700;border-radius:5px;background:#ffffff0f;color:var(--muted)}.screens-tab.active .screens-tab-index{background:var(--accent);color:#fff}.screens-tab-label{max-width:9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-body{flex:1;min-height:0;display:flex;overflow:hidden}.files-rail{width:240px;flex-shrink:0;border-right:1px solid var(--line);background:#0d1828;display:flex;flex-direction:column;min-height:0}.preview-stage{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.preview-frame{flex:1;width:100%;border:0;background:#fff}.preview-empty{flex:1;display:grid;place-content:center;gap:.5rem;padding:2rem;text-align:center;color:var(--muted)}.files-panel{flex:1;min-height:0;overflow:auto;padding:.65rem .55rem .85rem;display:flex;flex-direction:column;gap:.45rem}.files-panel.compact{padding:.5rem .4rem .7rem}.files-empty{place-content:center;text-align:center;color:var(--muted);font-size:.85rem}.files-toolbar{display:flex;flex-direction:column;gap:.35rem}.files-title-row{display:flex;align-items:center;justify-content:space-between;gap:.35rem}.files-title{font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.files-actions button{padding:.25rem .45rem;font-size:.75rem;min-width:2rem}.files-hint{margin:0;font-size:.8rem;color:var(--muted)}.files-path{display:block;font-size:.7rem;color:var(--muted);background:var(--bot);border:1px solid var(--line);border-radius:6px;padding:.35rem .45rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.files-status{margin:0;font-size:.78rem}.files-error{margin:0;color:#d16b6b;font-size:.78rem}.ft-list{list-style:none;margin:0;padding:0}.ft-root{border:1px solid var(--line);border-radius:8px;background:var(--bot);padding:.2rem 0;flex:1}.ft-row{display:flex;align-items:center;gap:.25rem;width:100%;border:0;background:transparent;color:var(--text);font:inherit;font-size:.78rem;text-align:left;padding:.2rem .35rem;cursor:default}button.ft-row{cursor:pointer}button.ft-row:hover{background:#ffffff0a}.ft-chevron{width:.75rem;color:var(--muted);flex-shrink:0;font-size:.65rem}.ft-spacer{visibility:hidden}.ft-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ft-file .ft-name{color:var(--muted)}.btn-link,button.btn-link{display:inline-flex;align-items:center;justify-content:center;padding:.45rem .85rem;border-radius:6px;border:1px solid var(--accent);background:var(--accent);color:#fff;text-decoration:none;font:inherit;font-size:.9rem;cursor:pointer}button.btn-link:disabled,.btn-link.disabled,.btn-link[aria-disabled=true]{opacity:.45;pointer-events:none;cursor:not-allowed}@media(max-width:1100px){.files-rail{width:200px}}@media(max-width:900px){.chat-split{grid-template-columns:1fr}.chat-split .preview{border-left:none;border-top:1px solid var(--line);min-height:50vh}.preview-body{flex-direction:column}.files-rail{width:100%;max-height:180px;border-right:none;border-bottom:1px solid var(--line)}}.page{overflow:auto;padding-bottom:1.5rem}.chat-head{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.06);background:#0b162680}.chat-head h1{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.01em}.project-select{max-width:220px}.pill{font-size:.75rem;padding:.2rem .55rem;border-radius:999px;background:var(--panel);border:1px solid var(--line)}.muted{color:var(--muted);font-size:.85rem}.messages{flex:1;overflow:auto;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.75rem;scrollbar-gutter:stable}.bubble{max-width:720px;padding:.85rem 1rem;border-radius:10px;position:relative}.bubble.user{align-self:flex-end;background:var(--user)}.bubble.assistant{align-self:flex-start;background:var(--bot);border:1px solid var(--line)}.bubble.typing{padding:.75rem 1rem;min-width:3.2rem}.typing-dots{display:inline-flex;align-items:center;gap:.35rem;height:1rem}.typing-dots i{width:.42rem;height:.42rem;border-radius:50%;background:var(--muted);display:block;animation:typing-bounce 1.05s ease-in-out infinite}.typing-dots i:nth-child(2){animation-delay:.15s}.typing-dots i:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.45}30%{transform:translateY(-5px);opacity:1}}.bubble pre{margin:0;white-space:pre-wrap;font-family:inherit;font-size:.95rem;line-height:1.45}.mode{position:absolute;right:.65rem;bottom:.35rem;font-size:.65rem;color:var(--muted)}.bubble-actions{margin-top:.65rem;display:flex;gap:.5rem;align-items:center}button.save-recipe{font-size:.78rem;padding:.3rem .65rem}.recipe-saved{font-size:.78rem}.live-gen{align-self:flex-start;width:min(100%,520px);display:flex;flex-direction:column;gap:.5rem}.gen-activity{align-self:flex-start;width:min(100%,520px);background:#0e1a2e;border:1px solid #2a4060;border-radius:10px;overflow:hidden;animation:gen-fade-in .25s ease}.gen-activity.active{box-shadow:0 0 0 1px #1a6fb540}.gen-activity-head{display:flex;align-items:flex-start;gap:.65rem;padding:.7rem .85rem;border-bottom:1px solid var(--line);background:#12213a}.gen-thinking{min-width:1.6rem;height:1.4rem;display:inline-flex;align-items:center;justify-content:center;font-family:ui-monospace,Consolas,monospace;font-size:.95rem;color:var(--muted);border:1px solid #2a4060;border-radius:6px;background:#0b1626;padding:0 .35rem}.gen-activity-titles{display:flex;flex-direction:column;gap:.15rem;min-width:0}.gen-activity-titles strong{font-size:.85rem;font-weight:600}.gen-files{list-style:none;margin:0;padding:.35rem 0;max-height:220px;overflow:auto}.gen-file{padding:.45rem .85rem;border-bottom:1px solid transparent;animation:gen-file-in .28s ease}.gen-file:last-child{border-bottom:none}.gen-file.writing,.gen-file.created{background:linear-gradient(90deg,rgba(26,111,181,.12),transparent 70%)}.gen-file-row{display:flex;align-items:center;gap:.5rem}.gen-file-badge{width:1.1rem;height:1.1rem;display:inline-flex;align-items:center;justify-content:center;color:var(--ok);font-size:.75rem;flex-shrink:0}.gen-spinner{width:.7rem;height:.7rem;border:2px solid #2a4060;border-top-color:#5eb0ef;border-radius:50%;animation:gen-spin .7s linear infinite}.gen-file-path{flex:1;min-width:0;font-size:.8rem;color:#c9daf0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gen-file-action{font-size:.68rem;color:var(--muted);text-transform:lowercase}.gen-file-stats{display:inline-flex;gap:.35rem;font-family:ui-monospace,Consolas,monospace;font-size:.72rem;font-weight:600;flex-shrink:0}.gen-file-stats .add{color:#3d9b6a}.gen-file-stats .del{color:#c45c5c}.gen-diff-skeleton{margin:.4rem 0 0 1.6rem;display:grid;gap:.28rem}.gen-diff-skeleton span{display:block;height:.45rem;border-radius:3px;background:linear-gradient(90deg,#1a2f4d,#243f66,#1a2f4d 80%);background-size:200% 100%;animation:gen-shimmer 1.2s ease infinite}.gen-diff-skeleton span:nth-child(1){width:88%}.gen-diff-skeleton span:nth-child(2){width:72%;animation-delay:.12s}.gen-diff-skeleton span:nth-child(3){width:54%;animation-delay:.24s}.gen-diff-skeleton .add-line{background:linear-gradient(90deg,#1a3d2e,#2a5a42,#1a3d2e 80%);background-size:200% 100%}.gen-diff-skeleton .del-line{background:linear-gradient(90deg,#3d1a1a,#5a2a2a,#3d1a1a 80%);background-size:200% 100%}.msg-file-cards{list-style:none;margin:0 0 .65rem;padding:0;display:grid;gap:.35rem}.msg-file-card{display:flex;justify-content:space-between;gap:.75rem;align-items:center;padding:.45rem .65rem;border:1px solid #2a4060;border-radius:8px;background:#0e1a2e;font-size:.8rem;animation:gen-file-in .28s ease}.msg-file-main{min-width:0;display:flex;flex-direction:column;gap:.1rem}.msg-file-card>code,.msg-file-main>code{color:#c9daf0;font-size:.82rem}.msg-file-full{color:var(--muted);font-size:.68rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gen-stream{margin:0;padding:.55rem .85rem .75rem;border-top:1px solid var(--line);font-size:.75rem;color:var(--muted);white-space:pre-wrap;max-height:120px;overflow:auto;font-family:ui-monospace,Consolas,monospace}@keyframes gen-spin{to{transform:rotate(360deg)}}@keyframes gen-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes gen-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes gen-file-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:none}}.composer{display:flex;flex-direction:column;gap:.55rem;padding:1rem 1.5rem 1.25rem;border-top:1px solid var(--line)}.composer.composer-drag{outline:1px dashed var(--accent, #3b82f6);outline-offset:-4px;background:color-mix(in srgb,var(--panel) 88%,var(--accent, #3b82f6))}.composer-row{display:flex;gap:.5rem;align-items:flex-end}.composer-row textarea{flex:1;min-height:2.5rem;max-height:8rem;resize:vertical;font:inherit;line-height:1.35;padding:.6rem .75rem;border-radius:10px;border:1px solid #1e3250;background:#0e1e32;color:var(--text)}.composer-row textarea::placeholder{color:#3a5270}.composer-row textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #1a6fb526}.composer-attach{flex-shrink:0;width:2.3rem;height:2.3rem;padding:0;display:flex;align-items:center;justify-content:center;border-radius:9px;color:var(--muted);background:transparent;border:1px solid #1e3250;box-shadow:none}.composer-attach:hover:not(:disabled){filter:none;color:var(--text);background:#ffffff0d;border-color:var(--accent);box-shadow:none}.composer-footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.5rem}.chat-mode-tabs{display:inline-flex;align-items:center;gap:.15rem;padding:.2rem;border-radius:9px;background:#080f1c;border:1px solid #1e3250}.chat-mode-tab{padding:.3rem .75rem;border-radius:7px;border:none;background:transparent;color:var(--muted);font-size:.8rem;font-weight:600;cursor:pointer;box-shadow:none;transition:background .13s,color .13s}.chat-mode-tab:hover:not(.active){filter:none;color:var(--text);background:#ffffff0d;box-shadow:none}.chat-mode-tab.active{background:#1a6fb52e;color:var(--text);border:1px solid rgba(26,111,181,.35);box-shadow:none;filter:none}.composer-send{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.25rem;font-size:.88rem}.composer-spinner{width:.8rem;height:.8rem;border-radius:999px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;animation:login-spin .65s linear infinite;flex-shrink:0}.composer-attachments{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.composer-attach-hint{font-size:.78rem;color:var(--muted)}.composer-thumb{position:relative;width:64px;height:64px;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:var(--bot)}.composer-thumb img{width:100%;height:100%;object-fit:cover;display:block}.composer-thumb-remove{position:absolute;top:2px;right:2px;width:1.25rem;height:1.25rem;border:none;border-radius:999px;background:#000000a6;color:#fff;font-size:.85rem;line-height:1;cursor:pointer;padding:0}.bubble-images{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.45rem}.bubble-images a{display:block;border-radius:8px;overflow:hidden;border:1px solid var(--line);max-width:180px}.bubble-images img{display:block;max-width:180px;max-height:140px;object-fit:cover}.bubble-image-missing{font-size:.8rem;color:var(--muted);padding:.35rem .5rem;border:1px dashed var(--line);border-radius:6px}.page-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;padding:1.25rem 1.5rem}.panel-card{background:#0d1828b3;border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:1.35rem 1.25rem;margin:0 1.5rem 1.25rem;box-shadow:0 4px 20px #0003}.panel-card h2{margin:0 0 1rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.page-grid .panel-card{margin:0}.action-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.output{margin:0 1.5rem 1.25rem;padding:1rem 1.1rem;background:#080f1c;border:1px solid rgba(255,255,255,.06);border-radius:10px;white-space:pre-wrap;font-size:.82rem;overflow:auto;max-height:240px;color:var(--muted);line-height:1.5}.approval-list{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:.6rem}.approval-list li{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:.85rem 1rem;background:#08101c99;border-radius:10px;border:1px solid rgba(255,255,255,.06);transition:border-color .15s}.approval-list li:hover{border-color:#1a6fb540}.approval-list.compact li{align-items:center;padding:.6rem .85rem}.approval-list strong{display:block;font-size:.9rem}.approval-list small,.approval-list code{display:block;color:var(--muted);font-size:.75rem;margin-top:.2rem}.status{font-size:.75rem;font-weight:600;padding:.2rem .55rem;border-radius:999px;letter-spacing:.03em}.status.approved{color:#2ecc8f;background:#2ecc8f1a;border:1px solid rgba(46,204,143,.25)}.status.rejected{color:#f4a29b;background:#f071671a;border:1px solid rgba(240,113,103,.25)}.status.pending_ti{color:#e8c246;background:#c4a0351a;border:1px solid rgba(196,160,53,.25)}.reject-reason{display:grid;gap:.45rem;font-size:.8rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin-top:.5rem}@media(max-width:900px){.layout{grid-template-columns:1fr}.side{border-right:none;border-bottom:1px solid rgba(255,255,255,.06)}.page-grid{grid-template-columns:1fr}.approval-list li{flex-direction:column}}.snapshot-wrap{position:relative}.snapshot-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem}.snapshot-toggle.active{border-color:var(--accent);color:var(--text)}.snapshot-panel{position:absolute;top:calc(100% + .5rem);right:0;z-index:200;width:360px;max-height:380px;display:flex;flex-direction:column;background:#0c1b2e;border:1px solid rgba(255,255,255,.1);border-radius:14px;box-shadow:0 20px 50px #00000080;overflow:hidden;animation:login-rise .2s ease both}.snapshot-panel-head{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid rgba(255,255,255,.06);font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.snapshot-list{list-style:none;margin:0;padding:.4rem 0;overflow-y:auto;flex:1}.snapshot-item{display:flex;align-items:center;gap:.5rem;padding:.55rem 1rem;border-bottom:1px solid rgba(255,255,255,.04);transition:background .12s}.snapshot-item:hover{background:#ffffff08}.snapshot-item-info{flex:1;min-width:0;display:grid;gap:.1rem}.snapshot-hash{font-size:.7rem;font-family:monospace;color:var(--accent);background:#1a6fb51f;padding:.1rem .35rem;border-radius:4px;width:fit-content}.snapshot-subject{font-size:.8rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.snapshot-date{font-size:.7rem;color:var(--muted)}.snapshot-restore{flex-shrink:0;font-size:.75rem;padding:.25rem .6rem}.snapshot-error,.snapshot-empty{padding:.75rem 1rem;font-size:.82rem;color:var(--muted);margin:0}.snapshot-error{color:#f4a29b}.preview-error-banner{display:flex;align-items:flex-start;gap:.65rem;padding:.65rem 1rem;background:#f071671a;border-bottom:1px solid rgba(240,113,103,.25);animation:login-rise .2s ease both}.preview-error-icon{font-size:1rem;flex-shrink:0;color:#f4a29b;margin-top:.05rem}.preview-error-body{flex:1;min-width:0;display:grid;gap:.2rem}.preview-error-body strong{font-size:.82rem;color:#f4a29b}.preview-error-body code{font-size:.75rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.preview-error-actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.preview-error-actions button{font-size:.78rem;padding:.3rem .65rem}.preview-error-actions .secondary{padding:.3rem .5rem}.preview-size-bar{display:flex;align-items:center;gap:.25rem;padding:.4rem 1rem;border-bottom:1px solid rgba(255,255,255,.05);background:#080f1c99}.preview-size-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .65rem;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);font-size:.78rem;font-weight:500;cursor:pointer;box-shadow:none;transition:background .12s,color .12s,border-color .12s}.preview-size-btn:hover:not(.active){filter:none;color:var(--text);background:#ffffff0d;box-shadow:none}.preview-size-btn.active{color:var(--text);background:#1a6fb526;border-color:#1a6fb559;box-shadow:none;filter:none}.preview-viewport{flex:1;display:flex;flex-direction:column;align-items:center;overflow:hidden;background:#060d18;min-height:0;height:100%}.preview-viewport--desktop{align-items:stretch}.preview-viewport--mobile .preview-frame{width:390px;max-width:100%;box-shadow:0 8px 32px #00000080;border-radius:0 0 12px 12px}.preview-viewport--tablet .preview-frame{width:768px;max-width:100%;box-shadow:0 8px 32px #00000080}.preview-viewport--desktop .preview-frame{width:100%}.template-gallery{padding:.75rem 1rem 0;animation:login-rise .3s ease both}.template-gallery-label{margin:0 0 .5rem;font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem}.template-card{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.65rem .75rem;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:#0d182899;cursor:pointer;text-align:left;box-shadow:none;transition:border-color .15s,background .15s}.template-card:hover:not(:disabled){filter:none;border-color:#1a6fb566;background:#1a6fb514;box-shadow:none}.template-emoji{font-size:1.35rem;line-height:1}.template-name{font-size:.8rem;font-weight:600;color:var(--text);line-height:1.3}.template-type{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.code-editor-panel{display:flex;flex-direction:column;height:100%;background:#1e1e1e}.code-editor-head{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#252526;border-bottom:1px solid #333;flex-shrink:0;flex-wrap:wrap}.code-editor-filename{font-size:.85rem;font-weight:600;color:#ccc;white-space:nowrap}.code-editor-path{font-size:.7rem;color:#666;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-editor-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.code-editor-actions button{font-size:.78rem;padding:.3rem .7rem}.code-editor-saved{font-size:.75rem;color:#3d9b6a}.code-editor-error{font-size:.75rem;color:#f4a29b;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-editor-loading{flex:1;display:grid;place-content:center;color:#666;font-size:.85rem}.ft-file-editable{cursor:pointer}.ft-file-editable:hover{background:#1a6fb51a;border-radius:5px}.ft-edit-hint{margin-left:auto;font-size:.75rem;color:var(--muted);opacity:0;transition:opacity .15s}.ft-file-editable:hover .ft-edit-hint{opacity:1}.editor-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;background:#1e1e1e;animation:login-rise .15s ease both}.env-form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:.75rem}.env-input{padding:.55rem .7rem;border-radius:9px;border:1px solid #1e3250;background:#0e1e32;color:var(--text);font-size:.82rem;font-family:monospace;width:180px}.env-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #1a6fb526}.env-saved{font-size:.78rem;color:#3d9b6a}.env-error{font-size:.8rem;color:#f4a29b;margin:0 0 .5rem}.env-list{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.env-item{display:flex;align-items:center;gap:.6rem;padding:.45rem .65rem;border-radius:8px;background:#08101c99;border:1px solid rgba(255,255,255,.05)}.env-key{font-size:.78rem;color:var(--accent);white-space:nowrap;font-family:monospace}.env-val{flex:1;font-size:.78rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:monospace}.env-remove{flex-shrink:0;padding:.2rem .45rem;font-size:.72rem;line-height:1}.github-linked{display:flex;align-items:center;gap:.4rem;font-size:.82rem;margin:0 0 .75rem;color:var(--muted)}.github-dot{width:7px;height:7px;border-radius:999px;background:#3d9b6a;display:inline-block;flex-shrink:0}.github-url{color:var(--accent);text-decoration:none;font-family:monospace;font-size:.8rem}.github-url:hover{text-decoration:underline}.github-form{display:grid;gap:.75rem;margin-bottom:.75rem}.diff-review{margin:0 .75rem .5rem;border:1px solid #2a2a35;border-radius:8px;background:#111118;overflow:hidden;flex-shrink:0;animation:slideUp .18s ease}@keyframes slideUp{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.diff-review-header{display:flex;align-items:center;justify-content:space-between;padding:.45rem .75rem;border-bottom:1px solid #1e1e2c;gap:.5rem}.diff-review-label{display:flex;align-items:center;gap:.4rem;font-size:.75rem;font-weight:600;color:#7070a0}.diff-review-actions{display:flex;gap:.4rem}.diff-btn-sm{border:none;border-radius:5px;padding:.28rem .7rem;font-size:.75rem;font-weight:600;cursor:pointer;transition:opacity .12s}.diff-btn-sm:disabled{opacity:.4;cursor:not-allowed}.diff-btn-reject{background:#2a1a1a;color:#f87171;border:1px solid #3a2020}.diff-btn-reject:hover:not(:disabled){background:#3a2020}.diff-btn-apply{background:#1a3a1a;color:#4ade80;border:1px solid #1f4a1f}.diff-btn-apply:hover:not(:disabled){background:#1f4a1f}.diff-review-files{display:flex;flex-direction:column;max-height:320px;overflow-y:auto}.diff-file-row{border-bottom:1px solid #1a1a22}.diff-file-row:last-child{border-bottom:none}.diff-file-row.desel{opacity:.45}.diff-file-row.sel{opacity:1}.diff-file-check{display:none}.diff-file-name-btn{width:100%;display:flex;align-items:center;gap:.45rem;padding:.42rem .75rem;background:transparent;border:none;cursor:pointer;text-align:left;color:#b0b0c8;font-size:.78rem;transition:background .1s}.diff-file-name-btn:hover{background:#16161e}.diff-file-check{display:flex;align-items:center;flex-shrink:0}.diff-file-check input[type=checkbox]{accent-color:#7c3aed;width:12px;height:12px;cursor:pointer}.diff-file-nm{font-family:monospace;font-size:.78rem;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diff-file-tag{font-size:.62rem;font-weight:700;border-radius:3px;padding:1px 4px;flex-shrink:0}.tag-new{background:#0f2e0f;color:#4ade80}.tag-mod{background:#0f1e2e;color:#60a5fa}.diff-file-stat{font-size:.7rem;font-weight:700;font-family:monospace;flex-shrink:0}.diff-file-stat.add{color:#4ade80}.diff-file-stat.del{color:#f87171}.diff-chevron{flex-shrink:0;color:#40405a;transition:transform .15s}.diff-chevron.open{transform:rotate(180deg)}.diff-inline-preview{margin:0;border-top:1px solid #1a1a22;background:#0d0d14;max-height:180px;overflow:auto}.diff-mini-pre{margin:0;padding:.4rem 0;font-family:Consolas,Fira Code,monospace;font-size:.72rem;line-height:1.55;display:block}.diff-mini-line{display:block;padding:0 .75rem;white-space:pre}.diff-mini-line.add{background:#0d2e0d;color:#86efac}.diff-mini-line.del{background:#2e0d0d;color:#fca5a5;text-decoration:line-through;opacity:.7}.diff-mini-sign{display:inline-block;width:14px;opacity:.6;-webkit-user-select:none;user-select:none}.diff-no-change{padding:.5rem .75rem;font-size:.75rem;color:#404055;margin:0}.hub-page{min-height:100%;padding:2rem 2.25rem 3rem;background:radial-gradient(900px 420px at 12% -10%,rgba(45,212,191,.12),transparent 55%),radial-gradient(700px 380px at 90% 0%,rgba(56,120,220,.14),transparent 50%),linear-gradient(180deg,#0b0f18,#0e121c 45%,#0a0d14);color:#e8eaf2}.hub-hero{max-width:920px;margin:0 auto 2rem;text-align:center}.hub-mark{width:52px;height:52px;margin:0 auto 1.1rem;display:grid;place-items:center;gap:5px}.hub-mark span{display:block;width:34px;height:3px;border-radius:999px;background:linear-gradient(90deg,#2dd4bf,#3b82f6);transform-origin:left center}.hub-mark span:nth-child(1){transform:rotate(-28deg) translateY(8px);opacity:.95}.hub-mark span:nth-child(2){transform:rotate(-28deg);opacity:.75;width:28px}.hub-mark span:nth-child(3){transform:rotate(-28deg) translateY(-8px);opacity:.55;width:22px}.hub-hero h1{margin:0;font-size:clamp(1.55rem,3.2vw,2.15rem);font-weight:650;letter-spacing:-.02em;line-height:1.25}.hub-hero-q{color:#9aa3b8;font-weight:500}.hub-lead{margin:.85rem auto 0;max-width:560px;color:#8b93a7;font-size:.95rem;line-height:1.5}.hub-continue-last{margin-top:1.15rem;border:1px solid rgba(45,212,191,.35);background:#2dd4bf14;color:#d7fff6;border-radius:999px;padding:.55rem 1.1rem;font-size:.88rem;cursor:pointer}.hub-continue-last:hover{background:#2dd4bf24}.hub-error{max-width:1100px;margin:0 auto 1rem;padding:.7rem 1rem;border-radius:10px;background:#2a1518;color:#fecaca;border:1px solid #5b252c;font-size:.88rem}.hub-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:start}.hub-panel{background:#10141ee0;border:1px solid rgba(255,255,255,.06);border-radius:18px;padding:1.25rem 1.3rem 1.4rem;box-shadow:0 18px 50px #00000047;min-height:420px;display:flex;flex-direction:column;gap:1rem}.hub-panel-head h2{margin:0;font-size:1.15rem;font-weight:650}.hub-panel-head p{margin:.35rem 0 0;color:#8b93a7;font-size:.86rem}.hub-search input,.hub-form input{width:100%;border-radius:10px;border:1px solid #2a3142;background:#0c1018;color:#e8eaf2;padding:.65rem .8rem;font-size:.9rem}.hub-search input:focus,.hub-form input:focus{outline:none;border-color:#3b82f6}.hub-project-list{display:flex;flex-direction:column;gap:.45rem;overflow:auto;max-height:440px;padding-right:.15rem}.hub-empty{padding:1.5rem .5rem;text-align:center}.hub-project-card{text-align:left;border:1px solid #232a3a;background:#121722;border-radius:12px;padding:.75rem .9rem;cursor:pointer;display:grid;gap:.35rem;transition:border-color .15s,background .15s,transform .12s}.hub-project-card:hover{border-color:#3b82f6;background:#151c2a;transform:translateY(-1px)}.hub-project-card.is-last{border-color:#2dd4bf73}.hub-project-name{font-weight:600;font-size:.95rem}.hub-project-meta{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap;font-size:.78rem}.hub-pill{display:inline-flex;padding:.12rem .45rem;border-radius:999px;background:#1c2434;color:#9ec5ff;font-size:.72rem;text-transform:lowercase}.hub-pill-live,.hub-pill-update{background:color-mix(in srgb,var(--accent, #3b82f6) 18%,transparent);color:var(--accent, #3b82f6)}.hub-pill-update{background:color-mix(in srgb,#ca8a04 22%,transparent);color:#a16207}.hub-pill-pending{background:color-mix(in srgb,#9370db 22%,transparent);color:#9370db}.proj-publish-banner,.appr-update-banner{margin:0 0 1rem;padding:.85rem 1rem;border-radius:10px;border:1px solid color-mix(in srgb,var(--accent, #3b82f6) 28%,transparent);background:color-mix(in srgb,var(--accent, #3b82f6) 8%,transparent)}.proj-publish-banner.is-pending{border-color:#9370db73;background:#9370db1a}.proj-publish-banner strong,.appr-update-banner strong{display:block;margin-bottom:.25rem}.proj-publish-banner p,.appr-update-banner p{margin:0 0 .5rem;font-size:.92rem;color:var(--muted, #64748b)}.proj-publish-link{font-size:.88rem;word-break:break-all}.appr-card-url{display:block;font-size:.75rem;margin-top:.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-publish-banner{margin:.5rem 1rem 0;padding:.75rem .9rem;border-radius:10px;border:1px solid rgba(26,111,181,.45);background:#1a6fb524;font-size:.9rem}.chat-publish-banner.is-urgent{border-color:#ca8a048c;background:#ca8a0424}.chat-publish-banner.is-pending{border-color:#9370db80;background:#9370db1f}.chat-publish-banner.is-first{border-color:#2dd4bf59;background:#2dd4bf14}.chat-publish-banner strong{display:block;margin-bottom:.2rem;color:#e8eef7}.chat-publish-banner p{margin:0 0 .45rem;color:#b6c3d6}.chat-publish-feedback{color:#9ec5ff!important;font-size:.85rem}.chat-publish-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem}.chat-publish-cta{border:none;border-radius:8px;padding:.45rem .85rem;background:var(--accent, #1a6fb5);color:#fff!important;font-weight:600;font-size:.85rem;cursor:pointer}.chat-publish-cta:hover:not(:disabled){filter:brightness(1.08)}.chat-publish-cta:disabled{opacity:.6;cursor:not-allowed}.chat-publish-link{color:#9ec5ff!important;font-weight:600;font-size:.88rem;text-decoration:underline;text-underline-offset:2px}.chat-publish-link:hover{color:#c5dcff!important}.hub-form{display:grid;gap:.85rem}.hub-form label{display:grid;gap:.35rem;font-size:.8rem;color:#9aa3b8}.hub-form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.hub-type-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.hub-type-btn{text-align:left;border:1px solid #2a3142;background:#0c1018;border-radius:12px;padding:.65rem .7rem;cursor:pointer;color:#c5cada;display:grid;gap:.2rem}.hub-type-btn strong{font-size:.85rem;color:#eef1f8}.hub-type-btn span{font-size:.7rem;color:#7d869c;line-height:1.3}.hub-type-btn.active{border-color:#3b82f6;background:#3b82f61f}.hub-primary{border:none;border-radius:12px;padding:.8rem 1rem;font-weight:650;font-size:.92rem;cursor:pointer;color:#041016;background:linear-gradient(135deg,#2dd4bf,#3b82f6)}.hub-primary:disabled{opacity:.5;cursor:not-allowed}.hub-zip{margin-top:.35rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.06);display:grid;gap:.75rem}.hub-zip-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;font-size:.88rem}.hub-zip-form{display:grid;gap:.65rem}.hub-zip-drop{border:1px dashed #334155;background:#0c1018;border-radius:14px;padding:1.1rem 1rem;cursor:pointer;text-align:left;display:grid;gap:.3rem;color:#c5cada}.hub-zip-drop:hover{border-color:#2dd4bf;background:#2dd4bf0d}.hub-zip-drop strong{font-size:.9rem;color:#eef1f8}.hub-zip-drop span{font-size:.78rem;color:#7d869c}@media(max-width:960px){.hub-page{padding:1.25rem 1rem 2rem}.hub-grid{grid-template-columns:1fr}.hub-panel{min-height:0}.hub-form-row,.hub-type-row{grid-template-columns:1fr}}.hub-project-card.is-selected{border-color:#3b82f6;background:#3b82f624;box-shadow:inset 0 0 0 1px #3b82f640}.hub-hero a{color:#7dd3c0;text-decoration:none;border-bottom:1px solid rgba(45,212,191,.35)}.hub-hero a:hover{color:#a7f3e1}.proj-page .hub-panel{min-height:380px}.proj-actions{display:grid;gap:1.1rem}.proj-action-group{display:grid;gap:.45rem}.proj-action-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:#7d869c;font-weight:600}.proj-action-row{display:flex;flex-wrap:wrap;gap:.45rem}.proj-action-row button{border-radius:10px;font-size:.84rem}.proj-open-btn{flex:1 1 160px;padding:.7rem 1rem}.proj-output{margin:0;padding:.9rem 1rem;background:#080c14;border:1px solid rgba(255,255,255,.06);border-radius:12px;white-space:pre-wrap;font-size:.8rem;overflow:auto;max-height:200px;color:#9aa3b8;line-height:1.5;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace}.proj-extras{margin-top:1.25rem}.proj-extras .panel-card{margin:0;background:#10141ee0;border:1px solid rgba(255,255,255,.06);border-radius:18px;box-shadow:0 18px 50px #00000047;padding:1.25rem 1.3rem 1.4rem}.proj-extras .panel-card h2{margin:0 0 .85rem;font-size:1.05rem;font-weight:650;text-transform:none;letter-spacing:-.01em;color:#e8eaf2}.appr-page .hub-panel{min-height:380px}.appr-count{display:inline-flex;align-items:center;gap:.35rem;pointer-events:none;cursor:default}.appr-count:hover{background:#2dd4bf14}.appr-card-by{font-size:.75rem}.appr-meta{margin:0;display:grid;gap:.65rem;padding:.85rem 1rem;background:#0c1018;border:1px solid rgba(255,255,255,.06);border-radius:12px}.appr-meta div{display:grid;gap:.2rem}.appr-meta dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#7d869c;font-weight:600}.appr-meta dd{margin:0;font-size:.88rem;color:#e8eaf2}.appr-meta code{font-size:.78rem;color:#9aa3b8;word-break:break-all}.appr-approve{flex:1 1 180px;padding:.7rem 1rem}.appr-review-btn,.appr-link-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:10px;font-size:.84rem;padding:.7rem 1rem;box-sizing:border-box}.appr-review-btn{flex:1 1 180px;border:none;font-weight:650;color:#041016;background:linear-gradient(135deg,#2dd4bf,#3b82f6)}.appr-link-btn{border:1px solid #2a3142;background:#121722;color:#e8eaf2}.appr-link-btn:hover{border-color:#3b82f6}.appr-reason{display:grid;gap:.4rem;font-size:.8rem;color:#9aa3b8}.appr-reason input{width:100%;border-radius:10px;border:1px solid #2a3142;background:#0c1018;color:#e8eaf2;padding:.65rem .8rem;font-size:.9rem}.appr-reason input:focus{outline:none;border-color:#3b82f6}.appr-idle{display:grid;gap:1rem;align-content:start;padding:.5rem 0 0}.appr-idle-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;max-width:220px;text-align:center}.appr-history{max-width:1100px;margin:1.25rem auto 0;min-height:0!important}.appr-history-list{list-style:none;margin:0;padding:0;display:grid;gap:.45rem;max-height:320px;overflow:auto}.appr-history-list li{padding:.7rem .85rem;background:#121722;border:1px solid #232a3a;border-radius:12px;display:grid;gap:.3rem}.appr-history-main{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.appr-history-main strong{font-size:.9rem;font-weight:600}.appr-history-meta{display:flex;flex-wrap:wrap;gap:.35rem;font-size:.75rem}.appr-history-reason{color:#f4a29b}.appr-success{margin-top:.35rem;padding:1rem 1.05rem;border-radius:14px;border:1px solid rgba(45,212,191,.35);background:#2dd4bf14;display:grid;gap:.55rem}.appr-success strong{color:#b6f5e8;font-size:1rem}.appr-steps{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}.appr-steps li{display:flex;justify-content:space-between;gap:.75rem;align-items:baseline;padding:.45rem .55rem;border-radius:10px;background:#0c1018;border:1px solid #232a3a;font-size:.84rem}.appr-steps li.ok{border-color:#2dd4bf59}.appr-steps li.running{border-color:#3b82f673;background:#3b82f614}.appr-steps li.running span:after{content:" …";animation:appr-pulse 1.2s ease-in-out infinite}.appr-steps li.pending{opacity:.55}.appr-progress{margin-top:.75rem;padding:.85rem 1rem;border-radius:12px;border:1px solid rgba(59,130,246,.35);background:#3b82f614;display:grid;gap:.45rem}.appr-progress strong{color:#c5dcff}@keyframes appr-pulse{0%,to{opacity:.35}50%{opacity:1}}.appr-steps li.bad{border-color:#f0716759}.appr-steps small{color:#8b93a7;text-align:right;font-size:.75rem}.appr-public-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;margin-top:.15rem}.appr-success-hint{margin:0;font-size:.78rem}.appr-history-meta a{color:#7dd3c0;text-decoration:none}.appr-history-meta a:hover{text-decoration:underline}.pat-page .hub-panel{min-height:420px}.pat-stats{margin-top:1.1rem;display:flex;align-items:center;justify-content:center;gap:.85rem;flex-wrap:wrap}.pat-stat{pointer-events:none;cursor:default}.pat-stat:hover{background:#2dd4bf14}.pat-stat-muted{font-size:.88rem;color:#8b93a7}.pat-ok{max-width:1100px;margin:0 auto 1rem;padding:.7rem 1rem;border-radius:10px;background:#2dd4bf1a;color:#b6f5e8;border:1px solid rgba(45,212,191,.28);font-size:.88rem}.pat-filters{display:flex;gap:.4rem;flex-wrap:wrap}.pat-filter-btn{border:1px solid #2a3142;background:#0c1018;color:#9aa3b8;border-radius:999px;padding:.4rem .85rem;font-size:.8rem;cursor:pointer}.pat-filter-btn:hover{border-color:#3b82f6;color:#e8eaf2}.pat-filter-btn.active{border-color:#3b82f6;background:#3b82f624;color:#e8eaf2}.pat-new-btn{align-self:flex-start;font-size:.84rem}.pat-id{margin:0;font-size:.78rem}.pat-id code{color:#9aa3b8;word-break:break-all}.pat-textarea{width:100%;border-radius:10px;border:1px solid #2a3142;background:#0c1018;color:#e8eaf2;padding:.65rem .8rem;font-size:.88rem;font-family:inherit;line-height:1.45;resize:vertical;min-height:4rem}.pat-textarea:focus{outline:none;border-color:#3b82f6}.hub-form .pat-textarea{margin-top:0}.users-page .hub-panel{min-height:420px}.users-new-btn{align-self:stretch}.users-role-row{grid-template-columns:1fr}@media(min-width:720px){.users-role-row{grid-template-columns:repeat(3,1fr)}}.hub-project-card.is-inactive{opacity:.55}.users-email-locked{margin:0;font-size:.82rem}.users-email-locked code{color:#9aa3b8}
