/* Full-width fixed header and a separate, collapsible navigation below it. */
:root{--header-height:68px;--sidebar-width:228px}
body{padding-top:var(--header-height)}
.app-header.topbar{position:fixed;inset:0 0 auto 0;height:var(--header-height);padding:0 24px 0 16px;z-index:30;background:#ffffff;display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #e1d6f3}
.topbar .header-left{display:flex;align-items:center;gap:18px;min-width:0}.sidebar-toggle{background:transparent;border:0;display:grid;place-items:center;flex:none;width:38px;height:38px;padding:8px;color:#55406e;border-radius:6px}
.sidebar-toggle:hover{background:#f4effc}.sidebar-toggle svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.app-header .brand{margin:0;gap:10px;font-size:20px;flex:none;white-space:nowrap}.app-header .brand-symbol{width:40px;height:40px}.app-header .brand small{font-size:8px;letter-spacing:2px}.header-breadcrumb{display:flex;align-items:center;gap:16px;padding-left:22px;border-left:1px solid #e1d6f3;height:30px;font-size:12px;white-space:nowrap}
.app-header .topbar-right{display:flex;align-items:center;gap:18px}.app-header .service-status{white-space:nowrap}.app-header .preview-badge{white-space:nowrap}
.sidebar{position:fixed;top:var(--header-height);bottom:0;left:0;width:var(--sidebar-width);padding:12px 22px 24px;z-index:20;transform:translateX(0);transition:transform .18s ease;overflow-x:hidden;overflow-y:auto}
.sidebar nav{display:block;margin:0;padding:0;overflow:visible}.sidebar .nav-label{display:block}.sidebar .tab{display:flex;width:100%;padding:10px 14px;font-size:13px;margin:2px 0;white-space:nowrap;gap:13px}.sidebar .tab>span{font-size:18px}.sidebar .tab em{display:block}.sidebar .sidebar-bottom{display:flex}.sidebar-collapsed .sidebar{transform:translateX(-100%);visibility:hidden}
.site-content{margin-left:var(--sidebar-width);transition:margin-left .18s ease}.sidebar-collapsed .site-content{margin-left:0}main{min-height:calc(100vh - var(--header-height))}
.sidebar-backdrop{position:fixed;inset:var(--header-height) 0 0;background:#00000055;border:0;border-radius:0;z-index:15;padding:0}
.account-area{position:relative;border-left:1px solid #e1d6f3;padding-left:18px}.login-button{border:1px solid #222222;background:#ffffff;border-radius:6px;padding:8px 16px;font-size:12px;color:#222222;white-space:nowrap}.login-button:hover{background:#151515;color:#ffffff}
.account-chip{display:flex;align-items:center;gap:10px;padding:3px 0 3px 6px;background:transparent;border:0;color:#222222;text-align:right;font-weight:400}.account-copy{display:flex;flex-direction:column;line-height:1.45;max-width:150px}.account-copy strong{font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-copy small{font-size:10px;color:#7d669b;letter-spacing:.3px}.user-avatar{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:50%;background:#202020;color:#ffffff;font-size:15px;font-weight:500;overflow:hidden;border:1px solid #e1d6f3}.user-avatar img{height:100%;width:100%;object-fit:cover}.account-chevron{font-size:15px;color:#7d669b}
.account-menu{position:absolute;right:0;top:calc(100% + 14px);width:240px;padding:18px;background:#ffffff;border:1px solid #e1d6f3;border-radius:10px;box-shadow:0 12px 35px #00000012;text-align:left}.account-menu-title{font-size:10px;color:#7d669b;margin:0 0 10px}.account-menu>strong{display:block;font-size:14px;overflow-wrap:anywhere}.account-menu>small{display:block;font-size:11px;color:#7d669b;margin:3px 0 15px}.account-menu>button{display:block;width:100%;background:#ffffff;border:0;border-top:1px solid #f4effc;border-radius:0;font-size:12px;text-align:left;font-weight:400;padding:12px 0}.account-menu>button:hover{color:#7d669b}.account-local-note{font-size:10px!important;color:#a08aba;margin:10px 0 0!important}.account-menu #accountError{font-size:11px;color:#55406e;margin:8px 0}
.auth-dialog{width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:32px;border:1px solid #e1d6f3;border-radius:14px;color:#222222;background:#ffffff;box-shadow:0 20px 90px #00000022}.auth-dialog::backdrop{background:#00000055;backdrop-filter:blur(3px)}.auth-close{position:absolute;right:12px;top:10px;border:0;background:transparent;color:#7d669b;font-size:24px;font-weight:300;padding:0;width:30px;height:30px}.auth-logo{display:block;margin:0 auto 15px;object-fit:contain}.auth-dialog h2{text-align:center;font-size:21px}.auth-dialog>p{text-align:center;font-size:12px;margin:8px 0 22px;color:#7d669b}.auth-tabs{display:flex;border-bottom:1px solid #e1d6f3;margin-bottom:20px}.auth-tabs button{flex:1;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:#7d669b;padding:10px;font-size:13px;font-weight:400}.auth-tabs button[aria-pressed=true]{border-bottom-color:#111111;color:#111111;font-weight:600}.auth-dialog form>label,.auth-dialog form>div>label{display:block;font-size:12px;margin:14px 0 6px;color:#55406e}.auth-dialog input{width:100%;padding:10px 12px;border:1px solid #e1d6f3;border-radius:6px;background:#fbf9ff;font-size:13px}.auth-dialog input::placeholder{font-size:11px;color:#a08aba}.auth-dialog .auth-submit{width:100%;margin:10px 0 0;padding:11px}.auth-dialog .auth-error{font-size:12px;color:#55406e;min-height:18px;line-height:1.5;margin:10px 0 0}.auth-dialog .auth-note{font-size:10px;color:#a08aba;margin:18px 0 0;line-height:1.7}
body.dialog-open{overflow:hidden}
.sidebar-backdrop{left:var(--sidebar-width)}
body.sidebar-overlay-open{overflow:hidden}
.site-content>main{display:flex;flex-direction:column;min-height:calc(100vh - var(--header-height));width:min(1200px,100%);padding-top:32px}
.workspace-grid{grid-template-columns:minmax(0,1fr)}
#portfolio{margin-bottom:32px}.upload-card{padding:28px}.drop-area{margin-bottom:24px}
.previews#portfolioPreview{min-height:235px}.empty-slot{min-height:235px}.portfolio-choice img{height:180px}
.site-footer{display:flex;flex-direction:row;justify-content:center;align-items:center;gap:0;text-align:center;width:100%;margin-top:auto;padding:22px 0 0;border-top:1px solid #e1d6f3;font-size:12px;color:#7d669b}
.site-footer a{color:#7d669b;text-decoration:none}.site-footer a:hover{text-decoration:underline;color:#111111}
@media(max-width:1100px){.app-header .service-status{display:none}.header-breadcrumb{padding-left:16px}.app-header .topbar-right{gap:12px}.account-area{padding-left:12px}}
@media(max-width:800px){.header-breadcrumb{display:none}.app-header .preview-badge{display:none}}
@media(max-width:680px){:root{--header-height:60px}.app-header.topbar{height:var(--header-height);padding:0 12px 0 8px;gap:8px}.topbar .header-left{gap:8px}.app-header .brand{font-size:16px;gap:7px}.app-header .brand-symbol{width:34px;height:34px}.app-header .brand small{font-size:6px;letter-spacing:1.5px}.sidebar{width:228px;padding:8px 18px 22px;background:#ffffff;border-right:1px solid #e1d6f3;box-shadow:8px 0 25px #00000008}.site-content{margin-left:0!important}.sidebar .brand{display:none}.sidebar nav{display:block;overflow:visible;margin:0;padding:0}.sidebar .tab{width:100%;font-size:13px;padding:10px 14px;gap:13px}.sidebar .nav-label{font-size:10px;padding:18px 14px 8px}.sidebar .sidebar-bottom{margin-top:auto;padding:22px 12px 0}.account-area{border:0;padding-left:0}.login-button{padding:7px 10px;font-size:11px}.account-copy{max-width:92px}.account-copy strong{font-size:11px}.account-copy small{font-size:8px}.user-avatar{height:31px;width:31px;font-size:13px}.account-chip{gap:7px}.account-chevron{display:none}.account-menu{right:0;top:calc(100% + 13px)}.auth-dialog{padding:27px 24px}}
@media(max-width:680px){.site-content>main{padding:20px 16px}.upload-card{padding:20px}.previews#portfolioPreview,.empty-slot{min-height:155px}.portfolio-choice img{height:110px}.site-footer{font-size:11px}}
/* Original beta violet is a restrained secondary accent; the brand stays monochrome. */
:root{--highlight:#7b5cff;--highlight-soft:#f2eeff;--highlight-border:#d9ceff}
.sidebar .tab.active{box-shadow:inset 3px 0 var(--highlight)}
.sidebar .tab.active em{background:#342957;color:#e2d9ff}
.step,.count{background:var(--highlight-soft);color:#7050dc}
.empty-slot .slot-icon{color:var(--highlight)}
.empty-slot:hover{background:#faf8ff;border-color:#aa93f3}
.drop-area.dragging{background:var(--highlight-soft);outline-color:var(--highlight)}
.file-button:hover{background:var(--highlight-soft);border-color:var(--highlight-border)}
.auth-tabs button[aria-pressed=true]{border-bottom-color:var(--highlight)}
.login-button:hover{background:#f7f4ff;border-color:#a38ae8;color:#6445c1}
.spinner{border-color:#e6dfff;border-top-color:var(--highlight)}
.analysis-progress{background:#f7f4ff}
.result-actions button:hover{border-color:var(--highlight-border);color:#7050dc;background:#faf8ff}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:var(--highlight)}
/* Make the four-image group score the clear focal point. */
#portfolioResult{padding:32px}
#portfolioResult .result-lead{justify-content:center;text-align:center;padding:26px 0 34px}
#portfolioResult .result-score{min-width:0;font:600 clamp(88px,11vw,144px)/1.05 "Segoe UI",sans-serif;letter-spacing:-6px;color:#7b5cff;font-variant-numeric:tabular-nums}
#portfolioResult .result-score small{font:400 25px/1.3 "Segoe UI",sans-serif;letter-spacing:0;margin-left:10px;color:#a08aba}
#portfolioResult .result-score span{font:400 14px/1.5 "Microsoft YaHei",sans-serif;letter-spacing:2px;margin-top:20px;color:#7d669b}
#portfolioResult .result-comparison{max-width:660px;margin:0 auto 26px;gap:16px}
#portfolioResult .metric strong{font-size:25px;color:#7050dc;margin-top:5px}
#portfolioResult details{border-top:1px solid #e1d6f3;padding:20px 0;color:#7d669b}
#portfolioResult summary{cursor:pointer;font-size:13px;color:#7050dc}
@media(max-width:680px){#portfolioResult{padding:23px 18px}#portfolioResult .result-score{font-size:88px;letter-spacing:-4px}#portfolioResult .result-score small{font-size:19px;margin-left:5px}#portfolioResult .result-score span{font-size:12px;letter-spacing:1px}#portfolioResult .result-comparison{gap:10px}#portfolioResult .metric{padding:13px;font-size:11px}}
/* Research tables stay within the page, with explicit scrolling and a full view. */
.panel,.result-section,#webResearchResult,.research-table-group{min-width:0;max-width:100%}
.research-table-wrap{display:block;width:100%;max-width:100%;overflow-x:scroll!important;overflow-y:auto;scrollbar-gutter:stable;max-height:520px;touch-action:pan-x pan-y;overscroll-behavior:contain}
.research-table-wrap::-webkit-scrollbar{height:13px;width:13px}.research-table-wrap::-webkit-scrollbar-track{background:#f2eeff;border-radius:8px}.research-table-wrap::-webkit-scrollbar-thumb{background:#b39bdc;border:3px solid #f2eeff;border-radius:8px}
.research-table{width:100%;min-width:1050px!important}.research-table.processing-table{min-width:760px!important}
.research-table th:first-child,.research-table td:first-child{width:150px!important;max-width:150px!important}
.table-toolbar{display:flex;align-items:center;gap:10px;margin:12px 0 0;padding:10px 12px;background:#f7f3ff;border:1px solid #e1d6f3;border-radius:8px}
.table-toolbar button,.table-close{background:white;border:1px solid #d9ceff;color:#7050dc;padding:7px 12px;border-radius:6px;font-size:12px;font-weight:400;white-space:nowrap}
.table-toolbar button:disabled{opacity:.4}.table-toolbar input[type=range]{width:150px;min-width:50px;max-width:220px;flex:1;accent-color:#7b5cff;padding:0!important;border:0!important}
.table-position{font-size:10px;color:#9a82b9;white-space:nowrap}.table-expand{margin-left:auto}.table-view-open{overflow:hidden}
.table-dialog{width:calc(100vw - 40px);max-width:1600px;height:calc(100dvh - 40px);max-height:none;padding:0;border:1px solid #d9ceff;border-radius:14px;background:#fff;color:#222;overflow:hidden}
.table-dialog[open]{display:flex;flex-direction:column}.table-dialog::backdrop{background:#140d2466;backdrop-filter:blur(3px)}
.table-dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:18px 24px;border-bottom:1px solid #e1d6f3;background:#fbf9ff}.table-dialog-heading h2{font-size:17px}
.table-dialog-content{min-height:0;flex:1;padding:0 20px 20px;display:flex}.table-dialog-content>.research-table-group{display:flex;flex-direction:column;width:100%;min-height:0}.table-dialog .research-table-wrap{flex:1;max-height:none!important;min-height:0}.table-dialog .table-scroll-hint{font-size:11px;margin:12px 0 0}
.deep-technical-summary{padding:20px 0}.technical-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:18px 0}
.technical-metrics>div{padding:15px;border:1px solid #e1d6f3;border-radius:8px;background:#fbf9ff;min-width:0}.technical-metrics span{display:block;font-size:11px;color:#9a82b9}.technical-metrics strong{display:block;font-size:20px;font-weight:500;color:#7050dc;margin-top:5px;overflow-wrap:anywhere}.technical-model-reference{font-size:12px;color:#7d669b}
@media(max-width:680px){.table-toolbar{gap:6px;padding:8px}.table-toolbar button{font-size:10px;padding:6px 8px}.table-position{display:none}.table-toolbar input[type=range]{width:60px}.table-dialog{width:calc(100vw - 16px);height:calc(100dvh - 16px);border-radius:9px}.table-dialog-heading{padding:12px 14px}.table-dialog-heading h2{font-size:14px}.table-dialog-content{padding:0 10px 10px}.technical-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.technical-metrics>div{padding:12px}.technical-metrics strong{font-size:18px}}
.best-four-controls{display:flex;align-items:center;gap:12px;margin:20px 0}.best-four-controls .file-button{margin:0;background:#fbf9ff;border-color:#d9ceff;color:#7050dc}
.candidate-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;max-height:400px;overflow-y:auto;margin:18px 0;scrollbar-color:#b39bdc #f2eeff}
.candidate-card{border:1px solid #e1d6f3;background:#fbf9ff;border-radius:8px;overflow:hidden;min-width:0}.candidate-card img{width:100%;height:105px;object-fit:contain;background:white;display:block}.candidate-name{display:block;font-size:10px;color:#9a82b9;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:8px}.candidate-remove{display:block;background:transparent;border:0;border-top:1px solid #e1d6f3;border-radius:0;width:100%;padding:5px;font-size:10px;color:#7b5cff;font-weight:400}
.chosen-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:18px 0}.chosen-card{border:1px solid #d9ceff;border-radius:10px;overflow:hidden;background:#fbf9ff;min-width:0}.chosen-card img{width:100%;height:210px;display:block;object-fit:contain;background:white}.chosen-info{padding:14px;display:flex;flex-direction:column;gap:5px}.chosen-info strong{font-size:13px;color:#7050dc}.chosen-info span{font-size:11px;color:#9a82b9;overflow-wrap:anywhere}.chosen-info small{font-size:11px;color:#7d669b}.chosen-download{font-size:11px;color:#7b5cff;margin-top:6px}#bestFourStatus{font-size:12px;color:#7d669b}#bestFourResultTitle{margin-top:28px;color:#7050dc}
@media(max-width:950px){.candidate-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.chosen-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.candidate-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.candidate-card img{height:80px}.chosen-grid{gap:10px}.chosen-card img{height:145px}.chosen-info{padding:10px}.best-four-controls{gap:8px}.best-four-controls .file-button{font-size:11px}}
#collageFilesPreview{margin-bottom:26px}#collageRun{margin-top:0;margin-bottom:12px}
.collage-limit-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:20px 0}.collage-limit-row label{font-size:12px;color:#7d669b}.collage-limit-row select{width:auto;max-width:100%;font-size:12px;border-color:#d9ceff;color:#7050dc;background:#fbf9ff;padding:9px 12px}.collage-limit-row p{flex-basis:100%;margin:0;font-size:11px;color:#9a82b9}
.app-header .brand{align-items:center;gap:10px;line-height:1;font-size:20px;letter-spacing:1px}
.app-header .brand>span{display:block;line-height:1.15;transform:translateY(-1px)}
.brand-symbol,.auth-logo{-webkit-user-drag:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
@media(max-width:680px){.app-header .brand{font-size:17px;gap:8px}.app-header .brand>span{transform:none}}
#fileTools .file-tool-noise{display:flex;align-items:center;gap:9px;margin:24px 0 0;font-size:13px;color:#7d669b}
#fileTools .file-tool-noise input{width:16px;height:16px;margin:0;accent-color:#7b5cff}
.file-tool-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin:20px 0 24px}
#fileTools .file-tool-actions .primary{width:auto;min-width:112px;margin:0;padding:12px 22px}
#fileToolStatus{margin:16px 0}#fileToolPreview{margin-top:20px}
.url-source-field{margin-top:22px}.url-source-field label,.url-output-field label{display:block;font-size:12px;color:#7d669b;margin-bottom:10px}
.url-tool-controls{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin:24px 0}
.url-tool-controls label{font-size:13px;color:#7d669b}.url-tool-controls input{width:128px;padding:9px 12px;background:#fbf9ff;color:#7050dc}
#urlTools .url-tool-controls .primary{width:auto;margin:0;padding:12px 22px}
.url-output-field{margin-top:26px}.url-source-field textarea,.url-output-field textarea{display:block;margin:0!important}
@media(max-width:680px){.file-tool-actions{gap:14px}#fileTools .file-tool-actions .primary{min-width:100px;padding:11px 18px}.url-tool-controls{gap:14px}.url-tool-controls label{flex-basis:100%}.url-tool-controls input{width:105px}#urlTools .url-tool-controls .primary{padding:11px 14px;font-size:12px}}
#ritualSkip,#ritualBack{background:#f4effc;border:1px solid #e1d6f3;color:#7050dc}
.oracle-methods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:20px 0 8px}
#divination .oracle-method{display:flex;align-items:center;justify-content:center;gap:12px;min-height:88px;padding:18px;border:1px solid #cbbbe3;border-radius:14px;background:#fbf9ff;color:#55406e;cursor:pointer}
#divination .oracle-method[aria-pressed="true"]{background:#55406e;color:#fff;border-color:#55406e}
.oracle-method svg,.tarot-symbol svg{display:block;width:28px;height:28px}.tarot-symbol{display:flex;align-items:center;justify-content:center;height:36px;color:#55406e}
.oracle-selection-hint{margin:12px 0 20px;color:#7d669b}.oracle-grid .oracle-card{margin-top:18px}.oracle-card[hidden]{display:none!important}
@media(max-width:520px){.oracle-methods{gap:10px}#divination .oracle-method{flex-direction:column;gap:8px;padding:12px 5px;font-size:13px;min-height:96px}.tarot-spread{gap:12px}}
@media(prefers-reduced-motion:reduce){.sidebar,.site-content{transition:none}}
.membership-entry{font-size:12px;color:#55406e;background:#f4effc;border:1px solid #cbbbe3;border-radius:8px;padding:9px 14px;cursor:pointer}
.member-source-offer{background:#f4effc;border:1px solid #e1d6f3;border-radius:12px;padding:18px;margin:22px 0}.member-source-offer h3{font-size:17px;color:#55406e;margin:0 0 12px}.member-upload,.member-experience{border:1px solid #55406e;border-radius:9px;padding:12px 16px;cursor:pointer;font:inherit;font-size:13px}.member-upload{background:#55406e;color:white}.member-experience{background:white;color:#55406e;margin:0 0 12px}
.membership-dialog{width:min(540px,calc(100vw - 32px));max-height:85vh;overflow:auto;border:1px solid #cbbbe3;border-radius:20px;padding:30px;color:#252525;background:white}.membership-dialog::backdrop{background:#24182f80}.membership-dialog p{font-size:13px;line-height:1.8;color:#7d669b}.membership-dialog .member-status{font-weight:700;color:#55406e}.membership-close{float:right;border:0;background:transparent;color:#55406e;font-size:24px;cursor:pointer}.redeem-form{display:grid;gap:16px;margin-top:24px}.redeem-form textarea{width:100%;border:1px solid #cbbbe3;border-radius:10px;padding:12px;resize:vertical;font:inherit;font-size:13px}.redeem-form button,.member-buy{padding:12px 18px;background:#55406e;color:white;border:0;border-radius:10px;cursor:pointer}.member-buy:disabled{opacity:.55;cursor:default}.admin-entry{color:#55406e}.member-message{white-space:pre-wrap}
@media(max-width:680px){.membership-entry{font-size:11px;padding:8px}.topbar-right{gap:8px}.membership-dialog{padding:22px}}
