@import "https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600&family=Noto+Serif+SC:wght@500;600;700&display=swap";:root{--ink:#0c1620;--ink-soft:#152433;--mist:#ecf2f7eb;--mist-dim:#d6e0eab8;--line:#ecf2f724;--panel:#0c162094;--panel-strong:#0a121cc7;--accent:#d4a35c;--accent-soft:#d4a35c2e;--ok:#7ec8a3;--warn:#e0b56a;--mute:#8fa3b5;--danger:#d47a7a;--radius:14px;--shadow:0 24px 60px #00000059;color:var(--mist);background:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh}button,input,select{font:inherit}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;position:relative;overflow-x:hidden}.app-bg{z-index:0;background:url(/bg-atlas.jpg) 50%/cover no-repeat;animation:28s ease-in-out infinite alternate bg-drift;position:fixed;inset:0;transform:scale(1.02)}.app-veil{z-index:1;pointer-events:none;background:radial-gradient(80% 60% at 50% 20%,#0c162040,#0000 55%),linear-gradient(#080e168c 0%,#080e16b8 45%,#080e16e0 100%);position:fixed;inset:0}.topbar,.main{z-index:2;position:relative}.topbar{border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:1.1rem 2.5rem;display:flex}.brand{align-items:center;gap:.7rem;display:inline-flex}.brand-mark{background:var(--accent);width:10px;height:10px;box-shadow:0 0 0 4px var(--accent-soft);border-radius:50%}.brand-text{letter-spacing:.08em;font-family:Noto Serif SC,serif;font-size:1.05rem;font-weight:600}.nav{gap:.4rem;display:flex}.nav-link{color:var(--mist-dim);border-bottom:2px solid #0000;padding:.45rem 1rem;transition:color .2s,border-color .2s}.nav-link:hover,.nav-link.active{color:var(--mist);border-color:var(--accent)}.main{max-width:1180px;margin:0 auto;padding:1.5rem 2.5rem 3.5rem}.query-page{flex-direction:column;justify-content:center;gap:2rem;min-height:calc(100vh - 120px);display:flex}:is(.query-page:has(.result-panel),.query-page:has(.empty-hint)){justify-content:flex-start;padding-top:1.5rem}.query-hero{text-align:center;animation:.7s both rise}.hero-brand{letter-spacing:.14em;text-shadow:0 8px 40px #00000073;margin:0;font-family:Noto Serif SC,serif;font-size:clamp(2.4rem,5vw,3.6rem);font-weight:700}.hero-sub{max-width:36rem;color:var(--mist-dim);letter-spacing:.04em;margin:1rem auto 0;font-size:1.02rem;line-height:1.7}.search-bar{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);max-width:640px;box-shadow:var(--shadow);border-radius:999px;gap:.75rem;margin:2.2rem auto 0;padding:.45rem;transition:border-color .25s,box-shadow .25s;display:flex}.search-bar:focus-within{box-shadow:0 24px 60px #0006, 0 0 0 4px var(--accent-soft);border-color:#d4a35c73}.search-input{min-width:0;color:var(--mist);background:0 0;border:0;outline:0;flex:1;padding:.85rem 1.2rem;font-size:1.05rem}.search-input::placeholder{color:var(--mute)}.search-btn,.primary-btn{color:#1a1208;letter-spacing:.12em;cursor:pointer;background:linear-gradient(135deg,#e0b56a,#c48a3a);border:0;border-radius:999px;padding:.85rem 1.6rem;font-weight:600;transition:transform .15s,filter .15s}.search-btn:hover,.primary-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}.result-meta{color:var(--mist-dim);letter-spacing:.06em;margin:1.1rem 0 0}.result-panel{background:var(--panel-strong);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow);animation:.55s both rise;overflow:hidden}.result-head,.result-row{grid-template-columns:1.2fr 1.2fr 1.2fr .7fr .9fr .7fr;align-items:center;gap:.75rem;padding:.95rem 1.25rem;display:grid}.result-head{color:var(--mute);letter-spacing:.08em;border-bottom:1px solid var(--line);background:#ffffff05;font-size:.86rem}.result-list{margin:0;padding:0;list-style:none}.result-row{border-bottom:1px solid #ffffff0d;animation:.4s both row-in}.result-row:last-child{border-bottom:0}.result-row:hover{background:#d4a35c0f}.grade,.status{text-align:center;letter-spacing:.04em;min-width:2.2rem;font-style:normal;display:inline-block}.grade{color:var(--accent);font-family:Noto Serif SC,serif;font-weight:700}.status{font-size:.92rem}.status-unlocked{color:var(--mute)}.status-reserved{color:var(--warn)}.status-bound{color:var(--ok)}.muted{color:var(--mute)}.empty-hint{text-align:center;color:var(--mist-dim);letter-spacing:.04em;padding:1.5rem}.manage-page{animation:.55s both rise}.manage-head{justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:1.4rem;display:flex}.manage-head h1{letter-spacing:.1em;margin:0;font-family:Noto Serif SC,serif;font-size:2rem}.manage-head p{color:var(--mist-dim);margin:.55rem 0 0}.manage-actions{flex-wrap:wrap;gap:.7rem;display:flex}.ghost-btn,.danger-btn,.chip{border:1px solid var(--line);color:var(--mist);cursor:pointer;background:#ffffff0a;border-radius:999px;padding:.65rem 1.15rem;transition:background .2s,border-color .2s}.ghost-btn:hover,.chip:hover{background:#ffffff14;border-color:#d4a35c59}.danger-btn{color:var(--danger);border-color:#d47a7a59;border-radius:8px;padding:.35rem .75rem}.danger-btn:hover{background:#d47a7a1f}.incomplete-banner{background:var(--accent-soft);color:var(--mist);border:1px solid #d4a35c47;border-radius:12px;margin-bottom:1rem;padding:.9rem 1.1rem;line-height:1.6}.incomplete-banner strong{color:var(--accent);margin-right:.25rem}.incomplete-banner span{color:var(--mist-dim);margin-left:.35rem}.create-form{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);grid-template-columns:repeat(6,minmax(0,1fr));align-items:end;gap:.75rem;margin-bottom:1.2rem;padding:1rem;display:grid}.create-form label{color:var(--mute);flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.create-form input,.create-form select,.filter-input,.cell-input,.cell-select{border:1px solid var(--line);width:100%;color:var(--mist);background:#00000040;border-radius:10px;outline:none;padding:.65rem .75rem}.create-form input:focus,.create-form select:focus,.filter-input:focus,.cell-input:focus,.cell-select:focus{border-color:#d4a35c80}.toolbar{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.filter-input{max-width:260px}.chips{flex-wrap:wrap;gap:.45rem;display:flex}.chip.active{background:var(--accent-soft);color:var(--accent);border-color:#d4a35c80}.table-wrap{background:var(--panel-strong);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow);overflow:auto}.region-table{border-collapse:collapse;width:100%;min-width:760px}.region-table th,.region-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #ffffff0f;padding:.85rem .9rem}.region-table th{color:var(--mute);letter-spacing:.06em;background:#ffffff05;font-size:.86rem;font-weight:500}.region-table tr:last-child td{border-bottom:0}.cell-input,.cell-select{min-width:100px}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes row-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes bg-drift{0%{transform:scale(1.02)translate(0,0)}to{transform:scale(1.06)translate(-1.2%,-.8%)}}@media (width<=860px){.topbar,.main{padding-left:1.1rem;padding-right:1.1rem}.query-page{justify-content:flex-start;padding-top:2.5rem}.search-bar{border-radius:18px;flex-direction:column}.search-btn{width:100%}.result-head{display:none}.result-row{grid-template-columns:1fr 1fr;gap:.45rem .75rem}.result-row span:first-child:before{content:"省 ";color:var(--mute)}.result-row span:nth-child(2):before{content:"市 ";color:var(--mute)}.result-row span:nth-child(3):before{content:"区 ";color:var(--mute)}.result-row span:nth-child(4):before{content:"等级 ";color:var(--mute)}.result-row span:nth-child(5):before{content:"状态 ";color:var(--mute)}.result-row span:nth-child(6):before{content:"匹配 ";color:var(--mute)}.manage-head{flex-direction:column;align-items:flex-start}.create-form{grid-template-columns:1fr 1fr}}@media (width<=520px){.create-form{grid-template-columns:1fr}.hero-brand{letter-spacing:.08em}}
