/* The shared layer intentionally follows each application's base stylesheet. */
html[data-palette]{color:var(--ink);background:var(--outer)}
html[data-palette] body{background:var(--outer);color:var(--ink)}
html[data-palette] .mobile-shell{background:radial-gradient(ellipse at 100% 0,color-mix(in srgb,var(--bright) 12%,transparent),transparent 55%),var(--canvas)}
html[data-palette] :is(.brand-mark,.btn.primary,.appearance-done){color:#fff;background:linear-gradient(125deg,var(--accent),var(--bright));border-color:var(--accent);box-shadow:0 5px 18px color-mix(in srgb,var(--accent) 14%,transparent)}
html[data-palette] :is(.hero,.today-hero,.login-brand,.rank-hero){background:radial-gradient(ellipse at 90% 0,color-mix(in srgb,var(--bright) 75%,transparent),transparent 65%),linear-gradient(130deg,var(--deep),var(--accent));color:#fff;box-shadow:0 12px 32px color-mix(in srgb,var(--accent) 12%,transparent)}
html[data-palette] :is(.hero h2,.hero-copy p,.hero-copy .eyebrow,.hero-value,.hero-foot,.hero small,.hero-top,.hero .progress-row,.today-hero h2,.today-hero p,.rank-hero h3,.rank-hero p,.rank-team .avg,.login-brand .eyebrow){color:inherit}
html[data-palette] .hero .orb{background:var(--bright);opacity:.17}
html[data-palette] :is(.today-hero .eyebrow,.today-hero .today-hero-metrics span,.today-hero .progress-label){color:rgba(255,255,255,.94)}
html[data-palette] .today-hero .today-hero-metrics strong{color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.28)}
html[data-palette] .today-hero .progress{background:rgba(255,255,255,.35)}
html[data-palette] .today-hero .progress span{background:#fff}
html[data-palette] .sidebar{background:var(--deep);border-right:0;color:#fff}
html[data-palette] .nav-item.active{background:color-mix(in srgb,var(--bright) 26%,transparent);color:#fff}
html[data-palette] :is(.nav-item,.brand-name,.workspace-pill){color:inherit}
html[data-palette] .sidebar :is(.brand-sub,.nav-section,.side-foot){color:#ffffffad}
html[data-palette] .sidebar .workspace-pill{color:#fff;background:color-mix(in srgb,var(--bright) 18%,transparent);border-color:#ffffff38}
html[data-palette] .sidebar .nav-item:hover{background:color-mix(in srgb,var(--bright) 20%,transparent)}
html[data-palette] :is(.avatar-txt,.id-avatar){color:var(--accent);background:var(--soft)}
html[data-palette] .stats{background:var(--paper);border-color:var(--line);box-shadow:0 6px 24px color-mix(in srgb,var(--accent) 4%,transparent)}
html[data-palette] .stats strong{color:var(--accent)}
html[data-palette] .stats>div+div{border-color:var(--line)}
html[data-palette] .content{background:var(--canvas);min-height:calc(100vh - 76px)}
html[data-palette] :is(.topbar,.bottom,.card,.panel,.stat-card,.class-card,.work-card,.table-panel,.profile-card,.sheet,.modal,.person-card,.config-panel,.config-menu){border-color:var(--line);background-color:var(--paper);box-shadow:0 6px 24px color-mix(in srgb,var(--accent) 4%,transparent)}
html[data-palette] :is(.role-chip,.tag:not(.red):not(.warn):not(.gray),.status:not(.red):not(.warning):not(.gray),.shortcut-icon,.task-icon,.todo-icon,.stat-icon,.class-badge,.avatar,.icon-btn,.date-tile,.agenda-date,.ledger-total,.notice,.class-title,.demo-roles button,.demo-buttons button){background:var(--soft);border-color:var(--line);color:var(--accent)}
html[data-palette] :is(.brand b,.bottom button.active,.tabs button.active,.tab.active,.rank-value,.text-link,.amount,.ledger-pts:not(.neg),.hero-edit,.menu-row .ico,.read-dot,.big-zero,.round-pill,.prof-complete small,.section-head button){color:var(--accent)}
html[data-palette] .hero-edit{color:#fff}
html[data-palette] :is(.bottom button.active:before,.progress i,.progress span,.prof-bar i,.chart-bar,.read-dot,.dot,.bottom button.active:after){background:var(--accent)}
html[data-palette] :is(.tabs button.active,.tab.active){border-color:var(--accent)}
html[data-palette] :is(.record p,.message-content,.task-row p,.member p,.page-head p,.greeting p,.subtle.muted,.detail-row small,.field label){color:var(--muted)}
html[data-palette] :is(input,select,textarea){accent-color:var(--accent);border-color:var(--line);color:var(--ink)}
html[data-palette] :is(input,textarea):focus{border-color:var(--bright);box-shadow:0 0 0 3px var(--soft)}
html[data-palette] :is(button,a,input,select,textarea):focus-visible{outline:3px solid var(--bright);outline-offset:3px}
html[data-palette] .login{background:radial-gradient(ellipse at 100% 0,var(--soft),transparent 65%),var(--canvas)}
html[data-palette] :is(.login-hero p,.login-foot,.login-links small,.brand small,.brand-sub){color:var(--muted)}
html[data-palette] .login-ornament{border-color:var(--line)}
html[data-palette] .toast{background:var(--deep);color:#fff}
.appearance-trigger{display:inline-flex;align-items:center;gap:6px;min-height:36px;font:inherit;font-size:12px;white-space:nowrap;cursor:pointer;border:1px solid var(--line);background:var(--paper);color:var(--accent);padding:6px 12px;border-radius:20px}
.appearance-trigger svg{width:17px;height:17px}
.appearance-login{display:flex;justify-content:flex-end;margin-bottom:18px}
#appearance-panel{position:fixed;inset:0;z-index:1000;display:grid;grid-template-columns:minmax(0,1fr);place-items:center;padding:20px;color:var(--ink);font:14px/1.6 "Microsoft YaHei","PingFang SC",sans-serif}
.appearance-shade{position:absolute;inset:0;background:#17112170;backdrop-filter:blur(5px)}
.appearance-dialog{position:relative;background:var(--canvas);width:100%;max-width:560px;min-width:0;max-height:calc(100dvh - 40px);overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:0 24px 100px #0003}
.appearance-dialog header{display:flex;align-items:center;justify-content:space-between;gap:16px}
.appearance-dialog h2{font-size:25px;margin:4px 0 0;line-height:1.4;font-weight:600;color:var(--ink)}
.appearance-dialog h3{font-size:13px;margin:25px 0 12px;color:var(--ink)}
.appearance-dialog p,.appearance-dialog small{color:var(--muted);font-size:11px;margin:8px 0 0}
.appearance-close{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:50%;width:38px;height:38px;font-size:27px;line-height:1;cursor:pointer;flex-shrink:0}
.appearance-palettes{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.appearance-palettes button{position:relative;text-align:left;padding:15px;border-radius:15px;border:1px solid var(--line);background:#fff;color:var(--ink);font:inherit;cursor:pointer;min-width:0}
.appearance-palettes b,.appearance-styles b{display:block;font-size:13px;font-weight:600}
.appearance-palettes small{display:block;font-size:10px;line-height:1.6;max-width:150px}
.appearance-swatch{display:flex;height:28px;margin-bottom:12px;gap:4px}
.appearance-swatch i{background:var(--choice);width:28px;border-radius:8px}
.appearance-swatch i:nth-child(2){opacity:.5;width:16px}.appearance-swatch i:nth-child(3){background:var(--choice-soft);width:16px}
.appearance-check{position:absolute;right:15px;top:20px;color:var(--accent);font-size:17px}
.appearance-palettes button[aria-pressed=true],.appearance-styles button[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.appearance-styles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.appearance-styles button{border:1px solid var(--line);background:#fff;padding:12px 10px;border-radius:13px;text-align:left;font:inherit;cursor:pointer;color:var(--ink);min-width:0}
.appearance-styles small{font-size:9px;display:block;line-height:1.6}
.appearance-preview{height:54px;background:var(--soft);display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:8px;border-radius:8px;margin-bottom:12px}
.appearance-preview i{height:12px;border-radius:3px;background:#fff}.appearance-preview i:first-child{grid-column:1/-1;background:var(--accent)}
.appearance-preview.glow{background:linear-gradient(120deg,var(--soft),var(--bright))}.appearance-preview.glow i:first-child{background:linear-gradient(100deg,var(--accent),var(--bright))}
.appearance-preview.minimal{border:1px solid var(--line);background:#fff}.appearance-preview.minimal i{border:1px solid var(--line)}
.appearance-preview.compact{gap:3px;padding:5px;align-content:start}.appearance-preview.compact i{height:8px}
.appearance-dialog footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:26px;border-top:1px solid var(--line);padding-top:20px}
.appearance-reset{color:var(--muted);background:none;border:0;font:inherit;font-size:12px;cursor:pointer;min-height:40px}
.appearance-done{border-radius:12px;padding:10px 25px;font:inherit;font-size:13px;cursor:pointer;min-height:40px}
html[data-appearance=minimal] :is(.hero,.today-hero,.login-brand,.rank-hero,.brand-mark,.btn.primary){background:var(--accent);box-shadow:none}
html[data-appearance=minimal] :is(.mobile-shell,.login,.class-title){background:var(--canvas);box-shadow:none}
html[data-appearance=minimal] :is(.card,.panel,.stat-card,.class-card,.work-card,.profile-card,.table-panel,.config-panel,.person-card){box-shadow:none;border:1px solid var(--line);border-radius:10px}
html[data-appearance=minimal] :is(.hero .orb,.hero:before,.hero:after,.hero-leaves,.login-ornament){display:none}
html[data-appearance=minimal] .sidebar{background:var(--paper);color:var(--ink);border-right:1px solid var(--line)}
html[data-appearance=minimal] .sidebar :is(.nav-section,.brand-sub,.side-foot){color:var(--muted)}
html[data-appearance=minimal] .sidebar .workspace-pill{color:var(--accent);background:var(--soft);border-color:var(--line)}
html[data-appearance=minimal] .sidebar .nav-item:hover{background:var(--soft)}
html[data-appearance=minimal] .nav-item.active{background:var(--soft);color:var(--accent)}
html[data-appearance=compact] :is(.card,.panel,.stat-card,.work-card,.profile-card){padding:16px;border-radius:12px;box-shadow:none}
html[data-appearance=compact] .content{padding-top:22px}
html[data-appearance=compact] :is(.task-row,.menu-row,.todo-item,.rank-row){padding-top:12px;padding-bottom:12px;min-height:44px}
html[data-appearance=compact] .hero{padding:22px;min-height:0;margin-bottom:14px}
html[data-appearance=compact] .hero h2{font-size:22px}
html[data-appearance=compact] .section-head{margin-top:20px;margin-bottom:10px}
html[data-appearance=compact] :is(.table-panel td,.table-panel th){padding-top:10px;padding-bottom:10px}
html[data-appearance=compact] .page-head{margin-bottom:16px}
@media(max-width:400px){#appearance-panel{padding:12px}.appearance-dialog{padding:20px;max-height:calc(100dvh - 24px)}.appearance-styles{gap:7px}.appearance-styles button{padding:10px 7px}.appearance-palettes{gap:9px}.appearance-palettes button{padding:12px}.appearance-check{right:10px}.appearance-dialog h2{font-size:23px}}
@media(max-width:740px){.topbar-right{min-width:0}.topbar .appearance-trigger,.topbar .topbar-mode{font-size:0;width:34px;height:34px;min-height:34px;padding:7px;justify-content:center;flex-shrink:0}.topbar .topbar-select{max-width:105px;min-width:0}.topbar .profile{padding:0;gap:0}.topbar .icon-button{padding:5px}.topbar .topbar-mode .icon{margin:0;width:18px;height:18px}}
@media print{#appearance-panel,.appearance-trigger{display:none!important}}

/* v160 新版公司 Logo */
.brand-mark img{width:100%;height:100%;object-fit:contain;display:block;border-radius:inherit}
.splash img{width:64px;height:64px;object-fit:contain;display:block;margin:0 auto 10px}

/* v166.11：后台产品拖动排序视觉 */
tr.drag-product{cursor:grab}
tr.drag-product:active{cursor:grabbing}
tr.drag-product.dragging{opacity:.4}
tr.drag-product.drop-target{box-shadow:inset 0 2px 0 0 var(--accent,#6d4df2)}
