/* Dragon paper / vermilion. CSS perspective is used for functional controls.
   Layers: background -1, content 0, navigation 20, service 30. */
:root{--ui-paper:#f8f4ec;--ui-surface:rgba(255,254,250,.79);--ui-soft:rgba(255,251,244,.6);--ui-ink:#312a26;--ui-muted:#76665c;--ui-line:rgba(154,115,77,.23);--ui-red:#c62932;--ui-red-dark:#931c26;--ui-shadow:0 14px 38px rgba(100,65,34,.09),0 3px 0 rgba(158,126,85,.13);--ui-radius:20px;--ui-ease:cubic-bezier(.2,.75,.2,1);color-scheme:light}
*{box-sizing:border-box}html{background:var(--ui-paper);scroll-behavior:smooth}body{margin:0;color:var(--ui-ink);background:transparent;font-family:"Microsoft YaHei UI","PingFang SC",system-ui,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.6;isolation:isolate;font-size:16px}body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(90deg,rgba(248,244,236,.08),rgba(248,244,236,.3)),url('/assets/zodiac-background.jpg');background-position:center top;background-size:auto,auto max(100lvh,1000px);background-repeat:no-repeat;transform:translateZ(0)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--ui-red);outline-offset:4px}::selection{background:#efc5bd;color:#542b28}button,a{touch-action:manipulation}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ui-top{width:min(1180px,calc(100% - 48px));height:82px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--ui-line)}.ui-brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:800;letter-spacing:.04em}.ui-seal{display:grid;place-items:center;width:40px;height:44px;border:1px solid #d86663;border-radius:8px;color:#fff8ed;background:linear-gradient(135deg,#df4b45,#a81e29);box-shadow:inset 0 0 0 3px #c23233,0 3px 0 #87232a;font-family:"STKaiti","KaiTi",serif;font-size:27px}.ui-top-links{display:flex;gap:24px;color:var(--ui-muted);font-size:14px}.ui-top-links a:hover{color:var(--ui-red)}.ui-top-links [aria-current=page]{color:var(--ui-red);font-weight:800}
.home-page{padding-bottom:108px}.home-page .shell{width:min(1180px,calc(100% - 48px));margin:auto}.home-page .ad-slot{width:min(1180px,calc(100% - 48px));height:64px;min-height:0;margin:22px auto 0;display:grid;place-items:center;border:1px dashed #d5c5ae;border-radius:12px;background:#fffaf3;color:#927e68;font-size:13px;letter-spacing:.18em;box-shadow:none}.home-page .section{margin:0;padding:0}.home-page .section::before,.home-page .section::after{display:none}.home-page .quick-nav{margin:24px 0 30px;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:10px;padding:0;border:0;background:none;box-shadow:none}.home-page .quick-nav a{min-width:0;min-height:92px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:10px 5px;color:var(--ui-ink);background:var(--ui-surface);border:1px solid rgba(255,255,255,.95);border-bottom-color:var(--ui-line);border-radius:14px;box-shadow:0 4px 0 #d9cdbc66,0 6px 16px #75533708;font-size:14px;font-weight:650;transform-style:preserve-3d;transition:transform .25s var(--ui-ease),box-shadow .25s}.quick-nav a::before,.quick-nav a::after{display:none!important}.ui-nav-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:linear-gradient(135deg,#fff7ec,#ead9c2);border:1px solid #e9d9c3;box-shadow:inset 1px 1px 0 #fff,2px 3px 0 #cfbfa666;color:#885c37;font-size:20px;font-weight:800;transform:translateZ(14px)}.quick-nav a:nth-child(3n+1) .ui-nav-icon{color:#b1262e;background:linear-gradient(135deg,#fff1ed,#f5d8d1);border-color:#edc7bf;box-shadow:inset 1px 1px 0 #fff,2px 3px 0 #d5b3ae66}
.ui-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 15px}.ui-section-head h1,.ui-section-head h2{margin:0;font-size:24px;letter-spacing:.03em}.ui-section-head a{font-size:14px;color:var(--ui-muted)}.ui-section-head a:hover{color:var(--ui-red)}.ui-section-head h1::before,.ui-section-head h2::before{content:"";display:inline-block;width:5px;height:19px;background:var(--ui-red);border-radius:2px;margin-right:12px;vertical-align:-1px}.home-page .draw-layout{display:grid;grid-template-columns:minmax(0,1fr) 276px;gap:22px;align-items:stretch}.home-page .panel{position:relative;min-width:0;border:1px solid rgba(255,255,255,.96);border-bottom-color:var(--ui-line);border-radius:var(--ui-radius);background:var(--ui-surface);box-shadow:var(--ui-shadow);overflow:hidden}.home-page .draw-frame-wrap{height:310px;position:relative;padding:10px 14px 0;border:0;background:transparent;overflow:hidden}.home-page .draw-frame{width:100%;height:100%;border:0;display:block;background:transparent;opacity:1}.home-page .live-mask,.home-page .frame-route{display:none}.home-page .draw-actions{padding:0 24px 20px;border:0;background:transparent}.home-page .draw-actions a{display:flex;align-items:center;justify-content:center;height:46px;color:var(--ui-red);background:#fcf5ee;border:1px solid #e6d3c6;border-radius:10px;font-size:14px;font-weight:700;box-shadow:0 3px 0 #d9c6b44d}.home-page .draw-aside{display:flex;flex-direction:column;padding:25px 24px;justify-content:center;background:linear-gradient(125deg,rgba(255,247,232,.94),rgba(245,233,211,.65))}.draw-aside h3{font-size:21px;margin:0 0 5px}.draw-aside p{font-size:14px;color:var(--ui-muted);margin:0 0 18px;line-height:1.8}.home-page .mini-balls{display:flex;gap:10px;perspective:600px;margin:4px 0 25px}.home-page .mini-ball{display:grid;place-items:center;width:52px;height:52px;flex:0 0 52px;border-radius:50%;font-size:14px;font-weight:800;color:#fff;position:relative;background:radial-gradient(circle at 32% 23%,#ffaaa0 0,#e94849 25%,#bc2530 61%,#771020 100%);box-shadow:inset -4px -7px 8px #580e2340,inset 1px 2px 4px #fff8,3px 7px 8px #77242b2e;text-shadow:0 1px 2px #49101888;transition:transform .3s var(--ui-ease)}.home-page .mini-ball:nth-child(2){background:radial-gradient(circle at 32% 23%,#b5e5fc,#439ccc 26%,#2267a2 61%,#173b68)}.home-page .mini-ball:nth-child(3){background:radial-gradient(circle at 32% 23%,#b7efc6,#4fb987 26%,#1a855b 61%,#125538)}.home-page .wave-notes{margin-top:auto;display:grid;gap:9px;font-size:13px;color:var(--ui-muted)}.wave-notes>div{display:flex;justify-content:space-between}.wave-notes strong{color:#6b5140;font-weight:600}.home-page #reference{margin-top:36px}.home-page .periods{display:flex;overflow-x:auto;gap:7px;padding:18px 20px;border:0;border-bottom:1px solid var(--ui-line);background:rgba(247,240,229,.65);scrollbar-width:thin;scrollbar-color:#cfbfa8 transparent;scroll-snap-type:x proximity}.home-page .periods button{min-height:42px;flex:0 0 auto;min-width:88px;padding:8px 15px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--ui-muted);font-size:15px;scroll-snap-align:nearest;transition:transform .2s,background .2s}.home-page .periods button.active{color:#fff8f0;background:linear-gradient(145deg,#db4445,#b91f2d);box-shadow:0 3px 0 #8f1e27;font-weight:800}.home-page .prediction{width:100%;border-collapse:collapse;font-size:16px;transform-origin:50% 0}.home-page .prediction td{padding:17px 24px;background:transparent;border:0;border-bottom:1px solid #ab845718;line-height:1.65;word-break:break-word}.home-page .prediction tr:nth-child(even){background:rgba(245,236,221,.3)}.home-page .prediction tr:last-child td{border-bottom:0}.home-page .prediction td:first-child{width:19%;color:var(--ui-muted);font-size:14px}.home-page .prediction td:nth-child(2){font-weight:750;color:#aa2930;letter-spacing:.08em;font-variant-numeric:tabular-nums}.home-page .prediction td:last-child{width:100px;font-size:13px;color:#786e62;text-align:right;white-space:nowrap}.home-page .prediction tr:hover{background:#f5dfcf66}.home-page .resources{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:28px 0 20px}.home-page .resource{position:relative;display:flex;align-items:center;gap:10px;padding:16px 20px;min-height:64px;color:var(--ui-ink);border-radius:13px;background:var(--ui-surface);border:1px solid #fff9;box-shadow:0 4px 0 #9a775822;overflow:visible;transform-style:preserve-3d;transition:transform .25s,box-shadow .25s}.home-page .resource strong{font-size:16px;transform:translateZ(10px)}.home-page .resource span{display:none}.home-page .resource::after{content:'↗';position:static;margin-left:auto;font-size:21px;color:#ad7e57;opacity:1;font-weight:400}.ui-foot{padding:12px 0 20px;text-align:center;color:var(--ui-muted);font-size:12px;letter-spacing:.08em}.dock{position:fixed;z-index:20;bottom:16px;left:50%;right:auto;transform:translateX(-50%);width:min(530px,calc(100% - 24px));height:66px;padding:6px 8px;display:grid;grid-template-columns:repeat(5,1fr);border:1px solid rgba(255,255,255,.96);border-radius:19px;background:rgba(255,251,243,.93);backdrop-filter:blur(16px);box-shadow:0 7px 28px #66432626,inset 0 -3px 0 #d8cbb780}.dock a{display:grid;place-items:center;align-content:center;gap:2px;border-radius:12px;color:#766356;font-size:12px;font-weight:650;transition:transform .22s,background .22s}.dock a::before{font-size:20px;line-height:1.3;content:'⌂';color:inherit}.dock a:nth-child(2)::before{content:'▧'}.dock a:nth-child(3)::before{content:'▨'}.dock a:nth-child(4)::before{content:'◷'}.dock a:nth-child(5)::before{content:'✉'}.dock a[aria-current=page]{color:var(--ui-red);background:#f4dfd5}.customer-service{position:fixed;z-index:30;width:64px;height:64px;right:22px;bottom:105px;border-radius:50%;background:#fff8eb;border:2px solid #fffcf5;box-shadow:0 6px 20px #735d4436;touch-action:none;cursor:grab;overflow:hidden}.customer-service img{width:100%;height:100%;object-fit:contain;pointer-events:none}.customer-service:active{cursor:grabbing}
.home-page .periods button{scroll-snap-align:start}
/* Shared secondary surfaces */
body::before{background-size:auto,cover}.home-page .draw-frame-wrap{height:auto;min-height:230px}.home-page .draw-frame{min-height:220px}.home-page .draw-aside p{max-width:25ch}.home-page .mini-balls{display:flex}.home-page .mini-ball{display:grid}.home-page .prediction{backface-visibility:hidden}.detail-page .frame-wrap{height:auto}.detail-page.records-compact iframe{min-height:440px}.login-page input:focus{border-color:var(--ui-red);box-shadow:0 0 0 3px #c629321c}.home-page .quick-nav a:active,.home-page .resource:active,.dock a:active{transform:translateY(2px);box-shadow:0 1px 0 #9a775822}
.detail-page{padding-bottom:104px}.detail-page .page{display:block;min-height:0}.detail-page .workspace{display:block;width:min(1100px,calc(100% - 48px));margin:26px auto}.detail-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:15px}.detail-heading h1{font-size:26px;margin:0}.detail-heading a{font-size:14px;color:var(--ui-muted)}.detail-page .frame-wrap{min-height:400px;border:1px solid #fffc;border-radius:20px;box-shadow:var(--ui-shadow);background:var(--ui-surface);overflow:hidden}.detail-page iframe{min-height:600px;width:100%;display:block;border:0;background:transparent}.detail-page .error{background:var(--ui-surface)}.message-page{padding-bottom:105px}.message-page .page{width:min(860px,calc(100% - 48px));padding:0;margin:30px auto}.message-page .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;background:transparent;box-shadow:none}.message-page h1{font-size:28px;margin:0}.message-page .back{color:var(--ui-red);font-size:14px;border:1px solid var(--ui-line);border-radius:10px;padding:8px 15px;background:#fffaee80}.message-page .card,.message-page .message{background:rgba(255,253,247,.72);border:1px solid #fff;border-bottom-color:var(--ui-line);border-radius:20px;box-shadow:var(--ui-shadow)}.message-page .card{padding:28px}.message-page .lead{font-size:16px;margin:0 0 24px;color:var(--ui-muted)}.message-page .field{margin:0 0 20px}.message-page label{font-size:14px;font-weight:750;color:var(--ui-ink);display:block;margin-bottom:8px}.message-page input,.message-page textarea{width:100%;background:#fffcf3a6;border:1px solid #d3bfa9;border-radius:12px;color:var(--ui-ink);box-shadow:inset 0 2px 4px #6b48280b;padding:14px 16px;font-size:16px}.message-page input::placeholder,.message-page textarea::placeholder{color:#867365}.message-page textarea{min-height:180px;resize:vertical}.message-page button[type=submit]{min-height:50px;width:100%;border:1px solid #db5d59;border-radius:12px;color:#fff8f3;background:linear-gradient(145deg,#d93e41,#b82130);box-shadow:0 4px 0 #92212a;font-weight:750;font-size:16px}.message-page .status{font-size:14px;min-height:20px;margin:15px 0 0}.message-page .messages{margin-top:28px;display:grid;gap:18px}.message-page .message{padding:23px}.message-page .message-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.message-page .message-head strong{font-size:16px}.message-page time{font-size:12px;color:var(--ui-muted)}.message-page .message-content{font-size:16px;overflow-wrap:anywhere}.message-page .reply{background:#eddccd80;color:#5b4235;border-radius:10px;border-left:3px solid var(--ui-red);padding:14px;font-size:14px;overflow-wrap:anywhere}.message-page .empty{padding:30px;background:var(--ui-soft);border-radius:16px;color:var(--ui-muted);text-align:center}.login-page{min-height:100dvh;display:grid;place-items:center;padding:30px 18px}.login-page .login{width:min(460px,100%);margin:0;padding:38px;border:1px solid #fff;border-radius:25px;background:var(--ui-surface);box-shadow:var(--ui-shadow)}.login-page .brand{display:flex;gap:12px;align-items:center;margin-bottom:25px;color:var(--ui-ink)}.login-page .mark,.admin-page .mark{background:var(--ui-red);border-radius:12px;color:#fff;padding:8px}.login-page h1{font-size:28px}.login-page p,.login-page .foot,.login-page .brand span{color:var(--ui-muted);font-size:14px}.login-page label{display:block;font-size:14px;font-weight:700;margin:18px 0 8px}.login-page input{width:100%;padding:14px;border:1px solid #cebaa2;border-radius:10px;background:#fffaf3bf;color:var(--ui-ink)}.login-page button{width:100%;border:0;border-radius:11px;background:linear-gradient(135deg,#dc4345,#ac1d2c);color:white;padding:14px;margin-top:24px;box-shadow:0 4px 0 #851c26;font-weight:750}.login-page .foot{margin-top:25px;text-align:center}.admin-page{--ink:var(--ui-ink);--muted:var(--ui-muted);--line:var(--ui-line);background:transparent}.admin-page .app{background:transparent}.admin-page aside{background:rgba(255,249,238,.95);border-right:1px solid var(--ui-line);color:var(--ui-ink)}.admin-page aside .brand,.admin-page aside strong{color:var(--ui-ink)}.admin-page aside span,.admin-page .aside-foot{color:var(--ui-muted)}.admin-page .nav a{color:var(--ui-muted);border-radius:10px}.admin-page .nav a:hover,.admin-page .nav a.active{background:#f1d9cb;color:var(--ui-red)}.admin-page .dot{background:var(--ui-red)}.admin-page .metric,.admin-page .panel{background:var(--ui-surface);border:1px solid #fff;border-radius:18px;box-shadow:var(--ui-shadow)}.admin-page .range button.active,.admin-page .reply-form button{color:white;background:var(--ui-red);border-color:var(--ui-red)}.admin-page .bar{background:var(--ui-red)}.admin-page .reply-form textarea{background:#fffaf1cc;color:var(--ui-ink);border-color:#cebaa2}.admin-page .reply-current{background:#f0decd;color:var(--ui-ink)}
@media(hover:hover) and (pointer:fine){.quick-nav a:hover,.resource:hover{transform:perspective(700px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(-5px);box-shadow:0 8px 0 #cfbba52b,0 18px 22px #79543814}.mini-ball:hover{transform:translateY(-9px) rotate(-9deg)}.dock a:hover{transform:translateY(-4px);background:#f1e4d6}.draw-actions a:hover{background:#f3dfcf}.periods button:not(.active):hover{background:#ead6bf66}}
@media(prefers-reduced-motion:no-preference){.ui-enter{animation:ui-appear .65s var(--ui-ease) both;animation-delay:var(--entry-delay,0ms)}.page-turn{animation:ui-page-turn .45s var(--ui-ease)}@keyframes ui-appear{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes ui-page-turn{from{opacity:.25;transform:perspective(1000px) rotateX(-8deg) translateY(8px)}to{opacity:1;transform:perspective(1000px) rotateX(0) translateY(0)}}}
@media(max-width:1000px){.home-page .quick-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.home-page .quick-nav a{flex-direction:row;min-height:65px;gap:13px}.home-page .draw-layout{grid-template-columns:minmax(0,1fr) 240px}.home-page .mini-ball{width:44px;height:44px;flex-basis:44px}.home-page .draw-frame-wrap{height:275px}.ui-top-links{gap:15px}}
@media(max-width:760px){body::before{background-size:auto,auto max(100lvh,850px)}.ui-top{width:calc(100% - 32px);height:68px}.ui-brand{font-size:17px;gap:9px}.ui-seal{width:33px;height:37px;font-size:23px}.ui-top-links{font-size:13px;gap:16px}.ui-top-links a:nth-child(2){display:none}.home-page .shell,.home-page .ad-slot{width:calc(100% - 28px)}.home-page .ad-slot{height:48px;margin-top:16px}.home-page .quick-nav{margin:20px 0 27px;gap:10px}.home-page .quick-nav a{min-height:69px;font-size:14px;flex-direction:column;gap:4px;padding:10px 3px}.ui-nav-icon{width:28px;height:28px;font-size:17px;border-radius:8px}.home-page .draw-layout{grid-template-columns:1fr;gap:16px}.home-page .draw-frame-wrap{height:264px;padding:8px 8px 0}.home-page .draw-actions{padding:0 15px 16px}.home-page .draw-aside{display:grid;grid-template-columns:1fr auto;align-items:center;gap:0 14px;padding:18px}.draw-aside h3{font-size:16px;margin:0}.draw-aside p{margin:4px 0 0;font-size:12px}.home-page .mini-balls{grid-column:2;grid-row:1/3;margin:0;gap:7px}.home-page .mini-ball{width:36px;height:36px;flex-basis:36px;font-size:12px}.home-page .wave-notes{display:none}.ui-section-head h1,.ui-section-head h2{font-size:20px}.ui-section-head a{font-size:13px}.home-page #reference{margin-top:28px}.home-page .periods{padding:14px 12px;gap:4px}.home-page .periods button{min-width:76px;font-size:14px;padding-inline:12px}.home-page .prediction td{padding:15px 14px;font-size:15px}.home-page .prediction td:first-child{width:18%;font-size:13px}.home-page .prediction td:last-child{width:71px;font-size:12px;padding-left:3px}.home-page .prediction td:nth-child(2){letter-spacing:.025em}.home-page .resources{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:22px}.home-page .resource{padding:14px 17px;min-height:56px}.home-page .resource strong{font-size:15px}.customer-service{width:56px;height:56px;right:14px;bottom:102px}.detail-page .workspace{width:calc(100% - 24px);margin:20px auto}.detail-heading h1{font-size:22px}.detail-page .frame-wrap{border-radius:16px}.message-page .page{width:calc(100% - 28px);margin:22px auto}.message-page h1{font-size:23px}.message-page .card{padding:20px}.message-page .message{padding:20px}.login-page .login{padding:28px}.admin-page .app{display:block}.admin-page aside{position:static;width:auto;height:auto}.admin-page aside .nav{display:flex;flex-wrap:wrap}.admin-page main{margin:0;padding:18px}.admin-page .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:360px){.ui-top-links{gap:10px}.ui-brand{font-size:16px}.home-page .prediction td{padding:12px 9px}.home-page .quick-nav a{font-size:13px}.home-page .draw-frame-wrap{height:252px}.draw-aside p{max-width:140px}.home-page .mini-ball{width:32px;height:32px;flex-basis:32px}.ui-top-links a:nth-child(3){display:none}}
.admin-page .metrics{border:0;gap:16px}.admin-page .metric,.admin-page .metric+.metric{padding:22px;border:1px solid #fff}.admin-page .nav a:first-child{background:#efd8ca;color:var(--ui-red)}.admin-page .device div{background:#f2e6d4}.admin-page .fill{background:var(--ui-red)}.admin-page .range{background:#eee1cf}.admin-page .reply-form textarea{min-width:0}.admin-page .admin-message{overflow-wrap:anywhere}@media(max-width:760px){.admin-page .shell{display:block}.admin-page .nav{display:flex;gap:2px;flex-wrap:wrap;margin:14px 0 0}.admin-page aside{display:block}.admin-page .reply-form{grid-template-columns:1fr}.admin-page .reply-form button{min-height:44px}.admin-page .top h1{font-size:28px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.quick-nav a:hover,.resource:hover,.mini-ball:hover,.dock a:hover{transform:none!important}}
@media(prefers-reduced-transparency:reduce){:root{--ui-surface:#fffcf6;--ui-soft:#f4ece0}.message-page .card,.message-page .message{background:var(--ui-surface)}.dock{background:#fffaf1;backdrop-filter:none}}
