:root{--parchment: #E9DFC4;--parchment-old: #D9C49A;--ink: #241E15;--ink-soft: #4a3f2d;--gold: #C9A227;--red: #A8402F;--green: #9BAF84;--amber: #C89B5A;--verdigris: #3E8A72;--pewter: #8A7B5C;--candle-shadow: #1E1812;--walnut: #262019;--text-light: #E4D9BC;--text-dim: #B0A688;--serif-cn: "Kaiti SC", "KaiTi", "STKaiti", "FZKai-Z03S", serif}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--serif-cn);color:var(--ink);background:radial-gradient(ellipse at 20% 0%,rgba(255,230,170,.1),transparent 60%),radial-gradient(ellipse at 80% 100%,rgba(0,0,0,.35),transparent 55%),repeating-linear-gradient(93deg,#3a2d1e 0,#3a2d1e 90px,#35291b 90px,#35291b 180px,#3d2f20 180px,#3d2f20 260px);min-height:100vh;-webkit-user-select:none;user-select:none}#app{max-width:1440px;margin:0 auto;padding:10px 12px 20px}.topbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:linear-gradient(180deg,var(--parchment),var(--parchment-old));border:2px solid var(--pewter);border-radius:6px;padding:8px 14px;box-shadow:0 3px 10px #00000080,inset 0 0 40px #785a2826;margin-bottom:10px}.topbar .title{font-size:20px;font-weight:700;letter-spacing:2px;color:var(--ink)}.topbar .title small{font-size:12px;color:var(--text-dim);letter-spacing:0}.stat-chip{background:#fffaeb80;border:1px solid var(--pewter);border-radius:4px;padding:2px 10px;font-size:14px}.stat-chip b{color:var(--verdigris)}.spacer{flex:1}button{font-family:var(--serif-cn);font-size:14px;color:var(--text-light);background:var(--ink);border:1px solid var(--gold);border-radius:4px;padding:5px 14px;cursor:pointer;transition:box-shadow .15s,transform .05s}button:hover{box-shadow:0 0 8px #c9a22799}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}button.ghost{background:transparent;color:var(--ink);border-color:var(--pewter)}button.danger{border-color:var(--red);color:#f0d9c8}button.small{font-size:12px;padding:2px 8px}button.advance{font-size:16px;padding:6px 22px;background:linear-gradient(180deg,#5a3d20,#3d2913);border-color:var(--gold)}.desk{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}@media (max-width: 1100px){.desk{grid-template-columns:repeat(2,1fr)}}.panel{background:linear-gradient(180deg,#fff8e659,#bea06e1f),repeating-linear-gradient(2deg,var(--parchment) 0 40px,#E5D9BC 40px 41px,var(--parchment) 41px 80px);border:2px solid var(--pewter);border-radius:6px;min-height:320px;max-height:460px;display:flex;flex-direction:column;box-shadow:inset 0 0 30px #785a282e,0 2px 6px #0006;overflow:hidden}.panel>h3{font-size:15px;text-align:center;letter-spacing:6px;padding:6px 0 5px;color:var(--ink);border-bottom:2px solid rgba(138,123,92,.55);background:linear-gradient(180deg,rgba(201,162,39,.18),transparent);flex:none}.panel .body{padding:8px;overflow-y:auto;flex:1}.panel .body::-webkit-scrollbar{width:6px}.panel .body::-webkit-scrollbar-thumb{background:var(--pewter);border-radius:3px}.empty-hint{color:var(--text-dim);font-size:12px;text-align:center;padding:18px 8px}.visit-card{background:var(--parchment-old);border:1px solid var(--pewter);border-radius:4px;padding:8px;margin-bottom:8px;box-shadow:1px 2px 4px #0000004d;transform:rotate(-.6deg)}.visit-card:nth-child(2n){transform:rotate(.7deg)}.visit-card .who{font-weight:700;font-size:14px}.visit-card .who small{color:var(--text-dim);font-weight:400}.visit-card .say{font-size:12.5px;margin:4px 0;color:var(--ink-soft);line-height:1.5}.visit-card .demand{font-size:12.5px;color:var(--verdigris);margin-bottom:6px}.visit-card .row{display:flex;gap:6px}.contract-card{position:relative;background:linear-gradient(180deg,#F2EAD3,var(--parchment));border:1px solid var(--pewter);border-radius:3px;padding:8px 10px;margin-bottom:9px;box-shadow:1px 2px 5px #00000059;font-size:12.5px}.contract-card.pinned{transform:rotate(-.8deg)}.contract-card .cid{font-size:11px;color:var(--text-dim);letter-spacing:1px}.contract-card .headline{font-size:14.5px;font-weight:700;margin:2px 0}.contract-card .meta{color:var(--ink-soft);line-height:1.65}.contract-card .meta b.price{color:var(--verdigris)}.contract-card .clauses{margin-top:4px;display:flex;flex-wrap:wrap;gap:4px}.clause-tag{font-size:11px;border:1px dashed var(--pewter);border-radius:3px;padding:1px 6px;color:var(--ink-soft);background:#fff5dc99}.contract-card .status-badge{position:absolute;top:6px;right:8px;font-size:11px;padding:1px 8px;border-radius:10px;border:1px solid}.st-posted{color:var(--gold);border-color:var(--gold)}.st-accepted,.st-executing{color:var(--verdigris);border-color:var(--verdigris)}.st-pending_delivery{color:var(--amber);border-color:var(--amber);animation:pulse 1.2s infinite}.st-settled{color:var(--green);border-color:var(--green)}.st-defaulted,.st-withdrawn{color:var(--red);border-color:var(--red)}@keyframes pulse{50%{box-shadow:0 0 8px #c89b5acc}}.wax-corner{position:absolute;right:8px;bottom:8px;width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#c56a4f,#8f2f1d 60%,#6e2113);box-shadow:0 2px 4px #00000080,inset 0 0 4px #0006;display:flex;align-items:center;justify-content:center;color:#f2d8b8;font-size:10px;font-weight:700;transform:rotate(-12deg)}.wax-corner.seal-anim{animation:sealPress .8s ease-out}@keyframes sealPress{0%{transform:scale(2.4) rotate(-40deg);opacity:0}45%{transform:scale(.85) rotate(-8deg);opacity:1}70%{transform:scale(1.12) rotate(-14deg)}to{transform:scale(1) rotate(-12deg)}}.contract-actions{display:flex;gap:6px;margin-top:6px}.adv-card{background:#fff8e68c;border:1px solid var(--pewter);border-radius:4px;padding:6px 8px;margin-bottom:7px;font-size:12.5px;cursor:pointer}.adv-card:hover{border-color:var(--gold)}.adv-card .name-line{display:flex;justify-content:space-between;align-items:baseline}.adv-card .name-line b{font-size:13.5px}.adv-badge{font-size:10.5px;padding:0 6px;border-radius:8px;border:1px solid}.adv-空闲{color:var(--green);border-color:var(--green)}.adv-执行中{color:var(--verdigris);border-color:var(--verdigris)}.adv-交货待结{color:var(--amber);border-color:var(--amber);animation:pulse 1.2s infinite}.trait-line{color:var(--ink-soft);margin-top:3px;line-height:1.6}.trait-tag{display:inline-block;font-size:11px;border:1px solid rgba(138,123,92,.6);background:#e9dfc4b3;border-radius:3px;padding:0 5px;margin:1px 2px 1px 0}.trait-tag.hidden-trait{border-style:dashed;color:var(--text-dim)}.adv-sub{color:var(--text-dim);font-size:11.5px;margin-top:2px}.ledger-line{display:flex;justify-content:space-between;gap:6px;font-size:12px;padding:3px 2px;border-bottom:1px dotted rgba(138,123,92,.4)}.ledger-line .amt-in{color:var(--verdigris);white-space:nowrap}.ledger-line .amt-out{color:var(--red);white-space:nowrap}.ledger-balance{font-size:15px;text-align:right;padding:6px 2px 2px;font-weight:700}.kpi-box{border:1px solid var(--pewter);border-radius:4px;padding:6px 8px;margin-top:8px;font-size:12px;line-height:1.8;background:#fff5dc80}.kpi-box .kpi-title{font-weight:700;letter-spacing:2px}.kpi-ok{color:var(--verdigris)}.kpi-bad{color:var(--red)}.node-row{font-size:12.5px;border-bottom:1px dashed rgba(138,123,92,.45);padding:5px 2px}.node-row .node-name{font-weight:700}.node-row .node-meta{color:var(--ink-soft);margin-top:1px}.intel-fresh{color:var(--verdigris);font-size:11px}.intel-stale{color:var(--amber);font-size:11px}.intel-expired{color:var(--red);font-size:11px}.refresh-row{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}.logbox{margin-top:10px;background:linear-gradient(180deg,var(--parchment-old),#CBB284);border:2px solid var(--pewter);border-radius:6px;padding:8px 12px;max-height:200px;overflow-y:auto;font-size:13px;line-height:1.8;box-shadow:inset 0 0 25px #64461e40}.log-entry .when{color:var(--text-dim);font-size:11px;margin-right:8px}.log-entry.important{color:var(--ink);font-weight:700}.log-entry.take-log{color:var(--verdigris)}.log-entry.bad{color:var(--red)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#140e08b8;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:repeating-linear-gradient(2deg,var(--parchment) 0 44px,#E5D9BC 44px 45px,var(--parchment) 45px 88px);border:3px double var(--pewter);border-radius:6px;width:min(880px,94vw);max-height:90vh;overflow-y:auto;padding:16px 20px;box-shadow:0 10px 40px #000000b3}.modal h2{text-align:center;letter-spacing:8px;font-size:20px;border-bottom:2px solid var(--gold);padding-bottom:8px;margin-bottom:12px}.modal .close-x{float:right;font-size:14px;margin-top:-6px;background:none;border:none;color:var(--ink);font-weight:700}.scribe-grid{display:grid;grid-template-columns:1.1fr 1fr 1.2fr;gap:12px}@media (max-width: 900px){.scribe-grid{grid-template-columns:1fr}}.scribe-col h4{font-size:13px;letter-spacing:3px;color:var(--ink-soft);border-bottom:1px solid rgba(138,123,92,.5);margin-bottom:6px;padding-bottom:3px}.field-row{margin-bottom:8px;font-size:13px}.field-row label{display:block;color:var(--ink-soft);margin-bottom:2px}.field-row select,.field-row input[type=number]{width:100%;font-family:var(--serif-cn);font-size:13.5px;background:#fffaebbf;border:1px solid var(--pewter);border-radius:3px;padding:4px 6px;color:var(--ink)}.clause-pick{display:flex;flex-direction:column;gap:4px}.clause-option{display:flex;gap:6px;align-items:flex-start;font-size:12.5px;padding:4px 6px;border:1px solid transparent;border-radius:4px;cursor:pointer}.clause-option:hover{border-color:var(--gold)}.clause-option.picked{background:#c9a2272e;border-color:var(--gold)}.clause-option.locked{opacity:.4;cursor:not-allowed}.clause-option input{margin-top:3px}.clause-option .cname{font-weight:700}.clause-option .cdesc{color:var(--ink-soft);font-size:11.5px}.willingness{font-size:12px;color:var(--ink-soft);margin-top:8px;line-height:1.7}.seal-row{display:flex;gap:10px;justify-content:center;margin-top:14px}button.seal-btn{font-size:16px;padding:8px 26px;letter-spacing:4px;background:radial-gradient(circle at 35% 30%,#c56a4f,#8f2f1d 60%,#6e2113);border:2px solid var(--gold);color:#f2d8b8}.appraise-grid{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.item-chip{width:74px;height:92px;border-radius:4px;border:1px solid var(--pewter);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:13px;cursor:pointer;background:var(--parchment-old);box-shadow:1px 2px 4px #00000059;transition:transform .2s}.item-chip:hover{transform:translateY(-3px)}.item-chip .q-mark{font-size:22px;margin-bottom:4px}.item-chip.q-正品{background:#d6e0c4;border-color:var(--green)}.item-chip.q-次品{background:#e6d2a8;border-color:var(--amber)}.item-chip.q-伪品{background:#ddb9a8;border-color:var(--red)}.item-chip .q-label{font-size:13px;font-weight:700}.settle-preview{border:1px dashed var(--pewter);border-radius:4px;padding:8px 10px;font-size:13px;line-height:1.9;background:#fff5dc99;margin-top:8px}.adv-detail-journey{font-size:13px;line-height:1.9;color:var(--ink-soft)}.adv-detail-journey li{margin-left:18px}.tutorial-bar{margin-top:10px;border:2px solid var(--gold);border-radius:6px;background:linear-gradient(90deg,#c9a22738,#e9dfc4e6);padding:8px 14px;font-size:14px;display:flex;align-items:center;gap:12px}.tutorial-bar .t-step{color:var(--gold);font-weight:700;white-space:nowrap}.week-report-text{font-size:15px;line-height:2;text-align:center;padding:10px}.week-report-text .pass{color:var(--verdigris);font-weight:700}footer.tip{text-align:center;color:#e4d9bc80;font-size:11px;margin-top:12px;letter-spacing:1px}
