@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700;800&display=swap');
:root{--bg:#fff9fc;--card:#fff;--ink:#392e3b;--muted:#9a8c9c;--pink:#ef8fb2;--deep:#bf5f89;--line:#f1e5ed;--lav:#f3efff;--mint:#eaf8f3;--yellow:#fff6d9;--shadow:0 14px 40px rgba(172,105,142,.08)}*{box-sizing:border-box}body{margin:0;background:linear-gradient(135deg,#fff9fc 0%,#fff 50%,#fdf6ff 100%);color:var(--ink);font-family:'Noto Sans SC',system-ui,sans-serif}.app-shell{display:flex;min-height:100vh}.sidebar{width:238px;padding:28px 18px 22px;background:rgba(255,255,255,.72);border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;padding:0 10px 35px}.brand-cat{display:grid;place-items:center;width:40px;height:40px;border-radius:14px;background:linear-gradient(135deg,#ffd3e4,#e4d8ff);font-size:22px;color:#fff}.brand h1{font-size:19px;margin:0;letter-spacing:1px}.brand span{font-size:11px;color:var(--muted)}nav{display:grid;gap:8px}.nav-item{border:0;background:transparent;text-align:left;padding:13px 15px;border-radius:14px;color:#8e7d8e;font-size:14px;cursor:pointer;transition:.2s}.nav-item span{margin-left:8px}.nav-item:hover,.nav-item.active{background:#fff0f6;color:var(--deep);font-weight:700;box-shadow:0 5px 18px rgba(239,143,178,.12)}.sidebar-bottom{margin-top:auto}.soft-btn{display:block;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#7d6f7e;text-align:center;font-size:13px;cursor:pointer;margin-top:8px}.import-label input{display:none}.sidebar-bottom p{font-size:11px;line-height:1.8;color:#b4a6b5;text-align:center;margin:16px 0 0}.main{width:min(1260px,100%);padding:30px 46px 60px}.topbar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px}.eyebrow{color:var(--pink);font-size:10px;letter-spacing:2px;font-weight:800;margin-bottom:8px}.topbar h2{font-size:28px;margin:0;letter-spacing:-1px}.primary-btn{background:var(--deep);color:#fff;border:0;padding:12px 18px;border-radius:13px;box-shadow:0 8px 18px rgba(191,95,137,.2);font-weight:700;cursor:pointer}.section-title{display:flex;justify-content:space-between;align-items:center;margin:28px 0 14px}.section-title h3{margin:0;font-size:17px}.section-title a{color:var(--deep);font-size:13px;cursor:pointer}.grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(4,1fr)}.stat,.card{background:var(--card);border:1px solid var(--line);border-radius:19px;padding:20px;box-shadow:var(--shadow)}.stat-label{color:var(--muted);font-size:12px}.stat-value{font-size:27px;font-weight:800;margin:8px 0 3px}.stat-hint{font-size:11px;color:#b4a6b5}.pink{color:var(--deep)}.dashboard-grid{grid-template-columns:1.35fr 1fr}.account-grid{grid-template-columns:repeat(2,1fr)}.account-card{position:relative;overflow:hidden}.account-card:after{content:'✦';position:absolute;right:-8px;top:-22px;font-size:100px;color:#fff0f6;z-index:0}.account-content{position:relative;z-index:1}.account-head{display:flex;justify-content:space-between;align-items:center}.account-name{font-size:17px;font-weight:800}.tag{font-size:11px;padding:5px 9px;border-radius:20px;background:#fff0f6;color:var(--deep)}.tag.green{background:var(--mint);color:#3e9b7e}.tag.yellow{background:var(--yellow);color:#b08c26}.meta{color:var(--muted);font-size:12px;margin:7px 0 17px}.resources{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.resource{background:#fff8fb;padding:10px;border-radius:11px}.resource b{display:block;font-size:16px}.resource span{font-size:10px;color:var(--muted)}.progress{height:7px;background:#f5eaf0;border-radius:9px;overflow:hidden;margin:13px 0 7px}.progress i{display:block;height:100%;background:linear-gradient(90deg,#f5b1ca,#c98fe7);border-radius:9px}.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.small{font-size:12px;color:var(--muted)}.task-list{display:grid;gap:9px}.task{display:flex;align-items:center;gap:11px;padding:12px 13px;background:#fffafd;border:1px solid #f6eaf0;border-radius:12px;font-size:13px}.task.done{color:#a79ba7;text-decoration:line-through;background:#fbfafb}.task input{accent-color:var(--pink);width:16px;height:16px}.pill{font-size:10px;padding:4px 7px;border-radius:9px;margin-left:auto;background:#f2efff;color:#8470bd}.deadline{color:#d36c91;font-size:12px}.empty{padding:36px;text-align:center;color:var(--muted);border:1px dashed #ead9e5;border-radius:16px}.form-card{max-width:760px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.field{display:grid;gap:6px}.field label{font-size:12px;color:var(--muted)}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;color:var(--ink);background:#fff}.field textarea{min-height:80px;resize:vertical}.full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.ghost{background:#fff;color:#8d7d8d;border:1px solid var(--line);padding:11px 16px;border-radius:11px;cursor:pointer}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);padding:14px 8px}.table th{font-size:11px;color:var(--muted);font-weight:500}.log{border-left:3px solid #f6bfd4;padding:2px 0 14px 16px;margin:0 0 5px 8px}.log time{font-size:11px;color:var(--muted)}.log p{margin:5px 0;font-size:13px}.toast{position:fixed;right:25px;bottom:25px;background:#3e3340;color:white;padding:12px 17px;border-radius:12px;opacity:0;transform:translateY(10px);transition:.25s;pointer-events:none;font-size:13px}.toast.show{opacity:1;transform:translateY(0)}@media(max-width:900px){.sidebar{width:80px;padding:20px 10px}.brand{padding:0 0 25px;justify-content:center}.brand h1,.brand span,.nav-item span,.sidebar-bottom{display:none}.nav-item{text-align:center;padding:14px 8px}.main{padding:25px 18px}.stats,.dashboard-grid,.account-grid{grid-template-columns:1fr 1fr}}@media(max-width:580px){.stats,.dashboard-grid,.account-grid,.form-grid{grid-template-columns:1fr}.topbar h2{font-size:22px}.primary-btn{padding:10px 12px;font-size:12px}.resources{grid-template-columns:repeat(2,1fr)}}
.danger{color:#c45d79;border-color:#f1c9d7}
.resources{grid-template-columns:repeat(3,1fr)} @media(max-width:580px){.resources{grid-template-columns:repeat(2,1fr)}}
.pavilion-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}.pavilion-card{padding:0;overflow:hidden}.poster{height:230px;background:linear-gradient(135deg,#f7e8f0,#eee8fb);display:grid;place-items:center;color:#b7a5b6;font-size:13px}.poster img{width:100%;height:100%;object-fit:cover}.poster-error:after{content:"海报地址无法加载，请编辑记录后更换";color:#b7a5b6;font-size:12px}.pavilion-info{padding:16px}.pavilion-info h3{margin:0;font-size:15px}.pavilion-info p{margin-bottom:0}@media(max-width:900px){.pavilion-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:580px){.pavilion-grid{grid-template-columns:1fr}}
.drop-list{display:grid;gap:14px}.drop-card{padding:14px}.drop-head{display:flex;gap:14px;align-items:center}.drop-head img{width:86px;height:86px;border-radius:12px;object-fit:cover}.drop-head h3{margin:0 0 6px}.drop-form{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:12px}.drop-form select{border:1px solid var(--line);border-radius:9px;padding:8px;background:#fff;color:var(--ink)}.drop-form input{accent-color:var(--pink)}.freebie-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:16px}.freebie-card{padding:0;overflow:hidden}.freebie-card .poster{height:220px}@media(max-width:900px){.freebie-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:580px){.freebie-grid{grid-template-columns:1fr}}
.drop-head{position:relative}.drop-head>div{flex:1}.suit-grid{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:4px;margin:8px 0;font-size:12px;color:#806f82}.edit-pavilion{align-self:flex-start;white-space:nowrap}@media(max-width:580px){.suit-grid{grid-template-columns:1fr}.edit-pavilion{font-size:11px;padding:8px}}
.chart-card{overflow:hidden}.chart-scroll{overflow-x:auto;margin-top:14px;padding-bottom:8px}.chart-scroll svg{display:block;min-width:1100px}.chart-scroll polyline{vector-effect:non-scaling-stroke}
.matrix-card{padding:0;overflow:hidden}.matrix-scroll{overflow:auto;max-height:72vh}.drop-matrix{border-collapse:separate;border-spacing:0;min-width:1200px;width:max-content}.drop-matrix th,.drop-matrix td{border-right:1px solid #eadde7;border-bottom:1px solid #eadde7;text-align:center;background:#fff}.drop-matrix thead th{position:sticky;top:0;z-index:2;width:76px;min-width:76px;padding:8px 4px;font-size:11px;color:#6d596b;vertical-align:top}.drop-matrix .account-col{position:sticky;left:0;z-index:3;width:150px;min-width:150px;text-align:left;padding:10px 12px;background:#fff8fc}.drop-matrix thead .account-col{z-index:4}.drop-matrix th span{display:block;white-space:normal;line-height:1.25}.matrix-poster{height:70px;margin-bottom:5px;border-radius:8px;overflow:hidden;background:#f4eaf2}.matrix-poster img{width:100%;height:100%;object-fit:cover}.drop-matrix tbody td{height:52px}.drop-matrix .account-col small{display:block;color:#987f94;font-weight:400;margin-top:3px}.matrix-check{position:relative;display:flex;align-items:center;justify-content:center;height:52px;cursor:pointer}.matrix-check input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.matrix-check span{display:flex;align-items:center;justify-content:center;width:25px;height:25px;border:1px solid #d8c2d4;border-radius:7px;color:transparent;background:#fff;pointer-events:none}.matrix-check input:checked+span{background:#c45d91;border-color:#c45d91;color:#fff}.matrix-check:hover span{border-color:#c45d91}

.code-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}.code-card{min-width:0}.code-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.code-card h3{margin:0 0 5px;font-size:16px}.code-image{display:block;width:100%;max-height:220px;object-fit:cover;border-radius:12px;margin:14px 0}.code-value{width:100%;min-height:88px;margin-top:14px;padding:10px;border:1px solid var(--line);border-radius:10px;resize:vertical;background:#fffafd;color:var(--ink);font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.code-actions{display:flex;justify-content:flex-end;margin-top:10px}.code-note{margin:12px 0 0}.copy-code{padding:9px 13px;font-size:12px}@media(max-width:900px){.code-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:580px){.code-grid{grid-template-columns:1fr}}
.account-toolbar{margin-top:4px}.layout-switch{display:flex;gap:8px}.layout-switch .ghost{padding:8px 12px;font-size:12px}.layout-switch .active-layout{background:#fff0f6;color:var(--deep);border-color:#efc0d3}.list-card{padding:0;overflow:hidden;margin-top:16px}.account-table-wrap{overflow:auto}.account-table{width:100%;min-width:860px;border-collapse:collapse;font-size:13px}.account-table th,.account-table td{padding:14px 12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.account-table th{font-size:11px;color:var(--muted);font-weight:600;background:#fffafd}.account-table td small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.account-table tr:last-child td{border-bottom:0}.account-table .ghost{padding:7px 10px;font-size:12px}
.code-table-card{padding:0;overflow:hidden;margin-top:16px}.code-table-wrap{overflow:auto}.code-table{width:100%;min-width:760px;border-collapse:collapse;font-size:13px}.code-table th,.code-table td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.code-table th{font-size:11px;color:var(--muted);background:#fffafd}.code-table tr:last-child td{border-bottom:0}.code-table code{font:13px ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--deep);letter-spacing:.3px}.code-table .primary-btn,.code-table .ghost{padding:7px 10px;font-size:12px}
.face-image-preview{display:block;width:64px;height:64px;object-fit:cover;border-radius:8px;margin-bottom:6px;border:1px solid var(--line)}.upload-btn{display:inline-block;padding:7px 10px;border:1px solid var(--line);border-radius:9px;color:var(--deep);background:#fff;cursor:pointer;font-size:12px}.upload-btn input{display:none}
.auth-gate{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:rgba(255,249,252,.94);backdrop-filter:blur(8px)}.auth-gate.hidden{display:none}.auth-card{width:min(380px,calc(100% - 36px));padding:32px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 20px 60px rgba(172,105,142,.16);text-align:center}.auth-card .brand-cat{margin:0 auto 14px}.auth-card h2{margin:0 0 8px}.auth-card p{color:var(--muted);font-size:13px;margin:0 0 22px}.auth-card input{display:block;width:100%;padding:12px;box-sizing:border-box;margin:10px 0;border:1px solid var(--line);border-radius:10px;font:inherit}.auth-actions{display:flex;gap:10px;justify-content:center;margin-top:18px}.auth-actions>*{flex:1}.auth-msg{min-height:20px;margin-top:12px;color:#c45d79;font-size:12px}
