@font-face{font-family:AgathosSans;src:url("fonts/Agathos-NotoSansSC.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap}
:root{--paper:#0a090d;--surface:#141118;--soft:#1b151d;--wine:#ee6686;--wine2:#ff86a1;--accent:#dc4267;--rose:#2a1924;--ink:#eee9ed;--muted:#a497a1;--line:#372a34;--green:#80c9b2;--amber:#dfbd7c;--gold:#c8a47e;--shadow:0 16px 42px #0003}
html{scrollbar-color:#60414f #0a090d}
body{background:radial-gradient(circle at 95% 6%,#1c0c18 0,#0a090d 32%),#0a090d;color:var(--ink);font-family:AgathosSans,"Noto Sans SC","Microsoft YaHei",sans-serif;font-size:14px;line-height:1.65;min-height:100vh}
button,input,select{font-family:inherit}
a{color:#f07997}
::selection{background:#a33255;color:#fff}
.site-sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:linear-gradient(180deg,#0e0b10,#0a090d 65%);border-right:1px solid #3e2934;display:flex;flex-direction:column;z-index:20}
.site-sidebar .brand{height:91px;min-width:0;display:flex;align-items:center;gap:14px;padding:0 23px;border-bottom:1px solid #3e2934}
.brand-gem{width:35px;height:49px;flex:none;fill:#b6295330;stroke:#e14970;stroke-width:1.1;filter:drop-shadow(0 0 9px #de3a6866)}
.site-sidebar .brand strong{font-family:Georgia,"Times New Roman",serif;font-size:21px;line-height:1.1;letter-spacing:.14em;color:#f2e8ed;font-weight:400}
.site-sidebar .brand small{font:9px Georgia,serif;letter-spacing:.18em;color:#bf7187;margin-top:6px}
.site-sidebar nav{display:flex;flex-direction:column;gap:5px;padding:32px 14px}
.site-sidebar .nav{display:flex;align-items:center;gap:13px;min-height:45px;width:100%;border:0;border-left:2px solid transparent;border-radius:0;background:transparent;text-align:left;padding:0 12px;color:#bfb4bd;font-size:13px;font-weight:500;letter-spacing:.04em}
.site-sidebar .nav:hover{background:#2c1722;color:#fff2f5}
.site-sidebar .nav.active{background:linear-gradient(90deg,#69223a66,#2a152000);color:#fff1f5;border-left-color:#f05a80}
.nav-icon{font-family:Georgia,serif;width:24px;display:inline-grid;place-items:center;color:#eb6685;font-size:19px;font-weight:400}
.sidebar-tail{margin:auto 18px 25px;border-top:1px solid #39242f;padding-top:23px;display:flex;flex-direction:column;align-items:center;text-align:center;color:#9a697a}
.sidebar-tail>span{font:10px/1.7 Georgia,serif;letter-spacing:.22em}
.sidebar-tail svg{width:20px;height:35px;margin:12px 0 22px;fill:none;stroke:#d9496c;stroke-width:1}
.sidebar-tail small{font:10px Georgia,serif;letter-spacing:.13em;color:#765665}
.topbar{position:sticky;top:0;margin-left:230px;height:70px;background:#0c0a10ef;border-bottom:1px solid #362530;backdrop-filter:blur(16px);z-index:15}
.top-inner{max-width:none;min-height:69px;padding:0 31px;gap:24px}
.global-search{position:relative;display:flex;flex-direction:row;align-items:center;gap:10px;width:min(520px,58vw);height:38px;padding:0 14px;border-radius:22px;border:1px solid #3d323d;background:#201e25;color:#d4a5b3;font-family:Georgia,serif;font-size:25px;line-height:1}
.global-search input{flex:1;width:100%;height:34px;border:0;background:transparent;color:#e9e0e7;outline:none;box-shadow:none;padding:4px 0;font-size:12px;font-weight:400}
.global-search input:focus{box-shadow:none;border:0}
.global-search:focus-within{border-color:#ad4a67;box-shadow:0 0 0 2px #a3325533}
.global-search input::placeholder{color:#8f8590}
.topbar-label{margin-left:auto;white-space:nowrap;color:#a76279;letter-spacing:.18em;font:10px Georgia,serif}
.data-status{margin-left:0;color:#8d7d87;font-size:11px}
main{max-width:1610px;margin:0 0 0 230px;padding:27px clamp(22px,3vw,48px) 75px}
.workspace-intro{position:relative;display:flex;align-items:center;gap:35px;min-height:156px;padding:29px 145px 29px 34px;margin-bottom:20px;border:1px solid #563040;border-radius:4px;background:radial-gradient(circle at 89% 40%,#45152899,#180d18 35%,#130f16 75%);box-shadow:inset 0 1px 0 #ffffff0a;overflow:hidden;color:#eae1e7}
.workspace-intro:before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(118deg,#8c22461f 0 1px,transparent 1px 66%),linear-gradient(30deg,transparent 0 80%,#5c1b3440 80% 80.1%,transparent 80.1%);pointer-events:none}
.workspace-intro:after{content:"";position:absolute;right:58px;top:28px;width:1px;height:97px;background:linear-gradient(#0000,#a13455,#0000);transform:none;z-index:0}
.workspace-intro>div:not(.hero-gem){z-index:1}
.workspace-intro>div:first-child{min-width:290px;flex:1}
.workspace-intro .eyebrow{color:#bd7189;font:10px Georgia,serif;letter-spacing:.27em}
.workspace-intro h1{font-size:30px;color:#f1e8ee;font-weight:550;letter-spacing:.035em;margin-bottom:7px}
.workspace-intro p{color:#bdb0bb;font-size:13px;max-width:550px}
.hero-gem{position:absolute;right:21px;top:22px;width:71px;height:119px;display:flex;flex-direction:column;align-items:center;gap:6px;z-index:1;color:#ad6680;text-align:center}
.hero-gem span{font:8px/1.4 Georgia,serif;letter-spacing:.15em}
.hero-gem svg{width:29px;height:42px;fill:#b6234b38;stroke:#e04a72;stroke-width:1.2;filter:drop-shadow(0 0 10px #df30537a)}
.workflow{display:flex;gap:8px;flex:none;max-width:none;background:none;padding:0;border-radius:0}
.workflow button{min-width:104px;min-height:65px;display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #593748;border-radius:3px;background:#24151fcf;box-shadow:none;color:#f0e5eb}
.workflow button:hover{background:#3d1c2a;transform:translateY(-2px);border-color:#b34462}
.workflow b{width:22px;height:22px;border:1px solid #b64364;border-radius:50%;background:#491c31;color:#f299ad;font:12px Georgia,serif}
.workflow span{font-size:12px;font-weight:500}
.workflow small{color:#a997a3;font-size:10px}
.control-panel,.panel,.metric{background:linear-gradient(148deg,#17131a,#120f16);border:1px solid var(--line);border-radius:5px;box-shadow:var(--shadow)}
.control-panel{border-left:2px solid #b63259;padding:17px 21px;margin-bottom:18px}
.control-heading{border-color:var(--line)}
.control-heading h2,.panel-title h2{color:#f0e8ee;font-weight:600}
.control-heading p,.panel-title span{color:var(--muted)}
.eyebrow,.control-heading .eyebrow{color:#d55073;letter-spacing:.2em}
.compact-scenario span{color:#eee2e9;font-weight:550}
label{color:#bfb2bd;font-weight:500;font-size:12px}
input,select{border-color:#493541;border-radius:4px;background:#221a23;color:#f0e8ee;font-size:13px}
input::placeholder{color:#817783}
input:hover,select:hover{border-color:#8d4b64}
input:focus,select:focus{border-color:#dc5a7e;box-shadow:0 0 0 2px #b3375c44}
select option{background:#201821;color:#eee6eb}
.scenario{border-color:var(--line)}
.scenario summary{color:#ef7695}
.scenario summary span{color:#9a8d98}
.slider input{accent-color:#df4b70}
.slider output{color:#ee91a8}
.weight-set>span{color:#a898a5}
.summary-grid{gap:12px}
.metric{border-top:1px solid #432c39;background:linear-gradient(140deg,#1d1520,#130f16);min-height:103px;padding:15px 18px}
.metric:before{left:0;right:auto;top:0;width:38px;height:2px;background:#e44e74!important}
.metric span,.metric small{color:#ad9eaa;font-size:11px}
.metric strong{color:#f0e7ed;font-weight:600;font-size:24px}
.metric:first-child strong{font-size:17px}
.panel{padding:19px 21px}
.panel-title{border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:15px}
.panel-title h2{font-size:16px}
.section-heading h1,.matrix-head h1{color:#f1e7ed;font-size:27px;font-weight:600;letter-spacing:.02em}
.section-heading p,.matrix-head p{color:#a99ba6;font-size:13px}
.route-panel{background:linear-gradient(145deg,#17131a,#171219)}
.course-svg{border:1px solid #3d2e38;border-radius:3px;background:#201923}
.route-key,.help,.description{color:#bcb0ba;font-size:13px}
.key-corner{background:#b24666}.key-slope{background:#c4a06e}.key-terminal{background:#5d3e53}.key-skill{background:#c85178}
.skill-icon{border-color:#594050;background:#1d1720;border-radius:4px}
.skill-icon.fallback{background:#3e1f31;color:#eb7695}
.detail-header h3{color:#f3e9ee}
.skill-id,.detail-note,.character-note{color:#a99ba6}
.detail-metrics>div{background:#241a25;border:1px solid #3e2e3b;border-radius:3px}
.detail-metrics strong{color:#f47898}
.pill{background:#30232f;color:#d9c6d0;border-radius:3px}
.pill.warning{background:#403021;color:#e4bd7c}.pill.good{background:#17352e;color:#86cfad}
.table-wrap{border-color:#382d37;border-radius:3px;background:#110e14}
thead th{background:#231923;color:#e5d7e0;border-bottom:1px solid #543343;font-weight:550}
td{color:#d4c9d2;border-color:#302731}
tbody tr:nth-child(even){background:#18131b}
tbody tr:hover{background:#2f1a29}
tbody tr.selected{background:#442035}
.row-skill strong,.character-name strong{color:#eee4eb}
.row-skill small,.character-name small,.composition small{color:#958996}
.number.strong,.part>b,.character-detail-head>strong{color:#f27b99}
.tag.warn{color:#e4b983}.tag.good{color:#88cdb2}
.secondary,.primary{border:1px solid #9f3b5b;border-radius:4px;background:#271720;color:#ee829d;font-weight:550}
.secondary:hover{background:#442038}.primary{background:#9f3156;border-color:#9f3156;color:#fff0f3}.primary:hover{background:#bd3e65}
.text-button{color:#ee7795;text-decoration:none}
.text-button:hover{text-decoration:underline}
.style-chip{border-radius:3px}.style-1{background:#25384c;color:#a2ceec}.style-2{background:#213b32;color:#a3dcbc}.style-3{background:#473821;color:#e8c78a}.style-4{background:#492a25;color:#eba58d}
.part-list{background:#140f16;border-color:#3b2a35}
.part{border-color:#352936}
.group-line,.bar-track{background:#312530}
.group-line span,.bar-fill{background:linear-gradient(90deg,#963351,#e05f7c)}
.edit-original{background:#231a23;border-color:#483442;color:#c6b9c2}
.edit-original b{color:#ed8ca5}
.edit-original span{border-color:#483442}
.id-name{color:#87c6b2}.id-name.error{color:#ff8da5}
.patch-tools{border-color:#45303e}
.source-panel{background:#171219}
.source-panel ul{color:#b9aeb7}
.source-panel code{background:#2e222d;color:#f0adc0}
.algorithm-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:16px;margin-bottom:16px}
.algorithm-grid .panel{margin:0}
.algorithm-controls{display:flex;gap:12px;justify-content:flex-end;margin-bottom:10px}
.algorithm-controls label{width:150px}
.algorithm-controls input{height:35px}
.algorithm-svg{background:#100d14;border:1px solid #382733;border-radius:3px;padding:8px}
.algorithm-svg svg{width:100%;height:auto;display:block}
.algorithm-legend{display:flex;gap:18px;margin-top:9px;color:#b4a7b2;font-size:11px}
.algorithm-legend span{display:flex;align-items:center;gap:7px}.algorithm-legend i{width:17px;height:2px;background:#8a8292}.algorithm-legend .legend-skill{background:#e44a72}
.fact-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid #322631;color:#afa1ac;font-size:12px}
.fact-row strong{color:#e7dde5;font-weight:600;font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}
.fact-row.prominent strong{color:#f37a98;font-size:22px}
.algorithm-facts .help{margin:14px 0 0;font-size:11px;line-height:1.7}
.formula-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.formula-grid>div{min-width:0;border:1px solid #3e2d39;background:#1c151f;padding:15px;border-radius:3px}
.formula-grid small{display:block;color:#ed7393;font:11px Georgia,serif;letter-spacing:.14em;margin-bottom:12px}
.formula-grid code{display:block;min-height:48px;color:#efe4ec;font:13px/1.6 Consolas,AgathosSans,monospace;overflow-wrap:anywhere}
.formula-grid p{font-size:11px;color:#a597a3;margin:13px 0 0}
.calibration-disclosure{margin-top:18px;border:1px solid #44303c;border-radius:4px;background:#141018}
.calibration-disclosure>summary{padding:15px 20px;cursor:pointer;color:#edc5d1;font-weight:600;list-style:none}
.calibration-disclosure>summary::-webkit-details-marker{display:none}
.calibration-disclosure>summary:before{content:"+";color:#f47596;font-size:18px;margin-right:10px}
.calibration-disclosure[open]>summary:before{content:"−"}
.calibration-disclosure>summary span{font-weight:400;font-size:11px;color:#8e7f8a;margin-left:12px}
.calibration-body{padding:0 15px 15px}
.account-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(290px,.7fr);gap:16px;align-items:start}
.account-layout .panel{margin:0}
.account-panel{max-width:660px;width:100%}
.account-modes{display:flex;gap:7px;margin:6px 0 25px;padding:4px;border:1px solid #3e2c39;background:#100d14;border-radius:4px}
.account-mode{flex:1;border:0;background:transparent;color:#ad9daa;min-height:40px;border-radius:3px;font-size:13px}
.account-mode.active{background:#522238;color:#ffe8ef;box-shadow:inset 0 0 0 1px #9a3858}
#account-form{display:grid;gap:17px}
#account-form label{font-size:13px}
#account-form input{height:45px}
#account-submit{margin-top:8px;min-height:44px}
#account-reset{margin-top:15px}
#account-recovery{display:grid;gap:14px;margin-top:18px;padding-top:18px;border-top:1px solid #3e2c39}
#account-recovery[hidden]{display:none}
#account-recovery input{height:44px}
.account-identity{display:grid;gap:9px;padding:20px 0 25px}
.account-identity span{font-size:11px;color:#aa9aa7}
.account-identity strong{font-size:20px;color:#f5e6ed;font-weight:600;overflow-wrap:anywhere}
.account-identity small{color:#8e808c;overflow-wrap:anywhere}
.account-benefit{display:flex;gap:13px;padding:15px 0;border-bottom:1px solid #362935}
.account-benefit:last-child{border-bottom:0}
.account-benefit b{font:15px Georgia,serif;color:#ee7695;font-weight:400}
.account-benefit strong{font-size:13px;color:#efdee7;font-weight:550}
.account-benefit p{font-size:11px;color:#a799a5;margin:5px 0 0}
body[data-tab="account"] .workspace-intro,body[data-tab="account"] .control-panel{display:none}
button:disabled{opacity:.48;cursor:not-allowed}
@media(max-width:1380px){.workspace-intro{display:block;padding-right:115px}.workspace-intro .workflow{margin-top:19px}.formula-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar-label{display:none}}
@media(max-width:1100px){.algorithm-grid,.account-layout{grid-template-columns:1fr}.workspace-intro h1{font-size:26px}.data-status{display:none}}
@media(max-width:820px){.site-sidebar{position:relative;inset:auto;width:100%;height:auto;display:block;border-right:0;border-bottom:1px solid #382833}.site-sidebar .brand{height:67px;padding:0 17px;border-bottom:0}.brand-gem{width:27px;height:39px}.site-sidebar .brand strong{font-size:18px}.site-sidebar nav{display:flex;flex-direction:row;gap:0;padding:0 9px;overflow:auto;scrollbar-width:none;border-top:1px solid #30212c}.site-sidebar .nav{min-height:43px;width:auto;flex:1;min-width:100px;justify-content:center;gap:5px;padding:0 8px;border-left:0;border-bottom:2px solid transparent;white-space:nowrap;font-size:11px}.site-sidebar .nav.active{border-bottom-color:#f05a80}.nav-icon{font-size:15px;width:17px}.sidebar-tail{display:none}.topbar{margin-left:0;top:0;height:56px}.top-inner{min-height:55px;padding:0 14px}.global-search{width:100%}main{margin-left:0;padding:17px 14px 56px}.workspace-intro{padding:22px 86px 22px 20px;min-height:0}.workspace-intro .workflow{flex-wrap:wrap}.hero-gem{right:10px;top:18px}.workspace-intro:after{right:65px}}
@media(max-width:560px){body{font-size:13px}.site-sidebar .brand{height:62px}.site-sidebar .brand strong{font-size:17px}.site-sidebar .brand small{font-size:8px}.site-sidebar .nav{min-width:92px;font-size:10px}.nav-icon{width:15px}.topbar{height:50px}.top-inner{min-height:49px}.global-search{height:34px}.global-search input{height:30px;font-size:11px}.workspace-intro{padding:21px 68px 21px 16px}.workspace-intro h1{font-size:21px}.workspace-intro p{font-size:11px}.workspace-intro .workflow{margin-top:14px;gap:5px}.workflow button{min-width:0;flex:1;padding:6px 4px;min-height:53px}.workflow span{font-size:10px}.workflow small{font-size:9px}.hero-gem{width:48px;right:8px}.hero-gem svg{width:25px}.hero-gem span{font-size:7px}.workspace-intro:after{right:55px}.panel,.control-panel{padding:15px}.metric strong{font-size:19px}.section-heading h1,.matrix-head h1{font-size:23px}.formula-grid{grid-template-columns:1fr}.algorithm-controls{justify-content:flex-start}.algorithm-controls label{flex:1}.algorithm-legend{flex-wrap:wrap}.fact-row{font-size:11px}.fact-row strong{font-size:13px}.calibration-disclosure>summary span{display:block;margin-left:29px}.calibration-body{padding:0 8px 8px}.character-table tbody tr,.library-panel tbody tr{border-color:#362631}.library-panel td:nth-child(3){color:#f27b99}}
