:root{--bg:#f4f6f8;--card:#fff;--ink:#1d2b36;--muted:#657686;--line:#dce4ea;--blue:#256a89;--blue-dark:#15516f;--green:#11705a;--red:#aa4050;--amber:#9a6a1e;--shadow:0 10px 35px rgba(24,49,64,.06)}
.prefix-lookup-menu{position:fixed;z-index:10000;max-height:16rem;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:.3rem;background:#fff;border:1px solid #b9ccd6;border-radius:10px;box-shadow:0 14px 38px rgba(24,49,64,.2)}.prefix-lookup-menu[hidden]{display:none}.prefix-lookup-option{display:block;width:100%;padding:.55rem .7rem;border:0;border-radius:7px;background:#fff;text-align:left;color:var(--ink);white-space:normal}.prefix-lookup-option:hover,.prefix-lookup-option:focus{background:#e8f3f7;outline:none}
.cascade-field{display:grid!important;grid-template-columns:1fr auto;gap:.35rem .55rem}.cascade-field select{grid-column:1/-1}.field-status{font-weight:400;color:var(--muted);min-height:1.35rem}.field-status.error{color:var(--red)}.retry-button{padding:.2rem .55rem;font-size:.82rem}
.form-grid .field-invalid input,.form-grid .field-invalid select{border-color:var(--red);box-shadow:0 0 0 3px rgba(170,64,80,.12)}.field-error{color:var(--red);font-weight:500;line-height:1.35}
.filters [aria-invalid="true"]{border-color:var(--red);box-shadow:0 0 0 3px rgba(170,64,80,.12)}.player-create-error{margin:.8rem 0}.player-create-error[hidden]{display:none}
.reward-summary{white-space:pre-line;line-height:1.55}
.inline-owner{display:flex;gap:.35rem}.inline-owner input{width:5.2rem;border:1px solid #cbd7de;border-radius:7px;padding:.3rem .4rem}.inline-owner button{padding:.3rem .5rem}.advanced-filters{padding:.8rem;background:#edf2f5;border-radius:12px}.metric-link{display:block;color:var(--ink);transition:transform .15s,box-shadow .15s}.metric-link:hover{transform:translateY(-2px);box-shadow:0 13px 38px rgba(24,49,64,.12);text-decoration:none}.metric-link small{display:block;color:var(--blue);margin-top:.65rem}.cart-dialog{width:min(1000px,94vw);height:min(780px,90vh);padding:0;border:1px solid var(--line);border-radius:16px;box-shadow:0 25px 80px rgba(10,30,45,.28)}.cart-dialog::backdrop{background:rgba(12,30,42,.55)}.dialog-head{height:56px;display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem;border-bottom:1px solid var(--line);background:#f7fafb}.cart-dialog-content{height:calc(100% - 56px);overflow:auto;background:var(--bg);padding:0 1rem 1rem}.dialog-status{display:flex;align-items:center;justify-content:center;gap:1rem;min-height:280px;color:var(--muted)}.dialog-status.error{color:var(--red)}.embedded-detail{padding:1rem;max-width:960px}.embedded-detail .page-head{margin-bottom:1rem}.embedded-detail .seat{min-height:95px}.page-head.has-back{display:grid;grid-template-columns:auto minmax(0,1fr) auto;justify-content:stretch}.back-button{width:48px;height:48px;padding:0;border-radius:12px;font-size:1.65rem;font-weight:700;color:var(--blue);align-self:center}.date-input{min-width:190px}.date-picker{position:relative;display:grid!important;grid-template-columns:minmax(0,1fr) 48px;min-width:200px;max-width:260px}.date-picker .date-input{width:100%;min-width:0;border-radius:9px 0 0 9px}.date-picker-button{display:flex!important;align-items:center;justify-content:center;border:1px solid #cbd7de;border-left:0;border-radius:0 9px 9px 0;background:#fff;font-size:1.15rem;padding:0;pointer-events:none}.date-picker-button:hover,.date-picker-button:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #256a8925}.date-picker-native{position:absolute;z-index:2;right:0;top:0;width:48px!important;height:100%;min-width:0!important;opacity:.001;cursor:pointer;pointer-events:auto;padding:0!important;border:0!important}.date-range-word{font-weight:700;color:var(--muted)}.filters .date-picker{flex:1}.prefix-combobox{background-color:#fff}
.permission-role-picker{display:flex;align-items:center;gap:.8rem;margin:1.2rem 0}.permission-role-picker label{font-weight:700}.permission-role-picker select{min-width:220px;border:1px solid #cbd7de;border-radius:10px;background:#fff;padding:.65rem .8rem}.permission-editor{display:grid;gap:1rem}.permission-master,.permission-option{display:flex;align-items:flex-start;gap:.8rem;cursor:pointer}.permission-master{padding:1rem;border:1px solid #bdd4de;border-radius:12px;background:#edf6f8}.permission-master input,.permission-option input{width:1.15rem;height:1.15rem;margin-top:.18rem;accent-color:var(--blue);flex:0 0 auto}.permission-master span,.permission-option span{display:grid;gap:.18rem}.permission-master small,.permission-option small{color:var(--muted);font-weight:400}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.permission-option{padding:1rem;border:1px solid var(--line);border-radius:12px;background:#fff}.permission-option:hover{border-color:#9fc5d3;background:#f8fcfd}@media(max-width:700px){.permission-grid{grid-template-columns:1fr}.permission-role-picker{align-items:stretch;flex-direction:column}.permission-role-picker select{width:100%}}
.list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.75rem 0}.page-size-form select{border:1px solid #cbd7de;border-radius:8px;background:#fff;padding:.35rem .55rem}.balanced-table th,.balanced-table td{text-align:center}.balanced-table .actions{justify-content:center}.balanced-table input,.balanced-table select{text-align:center}.nickname-input{max-width:12em}.self-nickname{color:var(--blue-dark);background:#e2f1f5;border-radius:.4rem;padding:.08rem .35rem}.undo-toast{display:flex;align-items:center;gap:.8rem}.wrap-cell{white-space:normal;overflow-wrap:anywhere}
.account-summary-cell{min-width:12rem}.account-fields{display:grid;gap:.55rem}.account-fields label{display:grid;grid-template-columns:4.2rem minmax(7rem,1fr);align-items:center;gap:.55rem}.account-fields label>span{color:var(--muted);font-size:.78rem;text-align:right}.account-fields input{width:100%;min-width:7rem}
@media(min-width:901px){.player-management-table{table-layout:fixed;min-width:0}.player-management-table th,.player-management-table td{padding:.55rem .38rem;white-space:normal}.player-management-table .player-id-col{width:13%}.player-management-table .player-nickname-col{width:11%}.player-management-table .player-alliance-col{width:13%}.player-management-table .player-account-col{width:18%}.player-management-table .player-role-col{width:12%}.player-management-table .player-enabled-col{width:8%}.player-management-table .player-password-col{width:8%}.player-management-table .player-actions-col{width:17%}.player-management-table input,.player-management-table select{width:100%;min-width:0;max-width:none}.player-management-table .account-summary-cell{min-width:0}.player-management-table .account-fields label{grid-template-columns:3.6rem minmax(0,1fr);gap:.35rem}.player-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem}.player-action-grid form{display:block}.player-action-grid button{width:100%;padding:.42rem .35rem;font-size:.82rem}.player-actions{white-space:normal}}
.pagination.numbered{gap:0;flex-wrap:wrap}.pagination.numbered a,.pagination.numbered span{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:0;margin-left:-1px;min-width:42px;min-height:40px;padding:.4rem .7rem;text-align:center;background:#fff}.pagination.numbered .active{background:#245397;color:#fff;border-color:#245397;pointer-events:none;position:relative;z-index:1}.pagination.numbered .pagination-total{color:#245397;background:transparent;border-color:transparent;white-space:nowrap}
.login-secondary{text-align:center;margin:1.2rem 0 0}.registration-card{width:min(680px,calc(100vw - 2rem))}.registration-wide{grid-column:1/-1}.registration-result{display:grid;gap:.25rem;text-align:center;padding:1.2rem;border-radius:12px;background:#edf6f8;margin:1rem 0}.registration-result span,.registration-result small{color:var(--muted)}.registration-result strong{font-size:2.2rem;letter-spacing:.15em;color:var(--blue-dark)}.pending-welcome{border-top:4px solid var(--blue)}
.passenger-dialog{width:min(460px,calc(100vw - 2rem));padding:0;border:1px solid var(--line);border-radius:16px;box-shadow:0 25px 80px rgba(10,30,45,.28)}.passenger-dialog::backdrop{background:rgba(12,30,42,.55)}.passenger-dialog-body{display:grid;gap:1rem;padding:1.2rem}.passenger-dialog-body label{display:grid;gap:.4rem;font-weight:700}.passenger-dialog-body input{width:100%;border:1px solid #cbd7de;border-radius:9px;background:#fff;padding:.65rem .7rem;color:var(--ink)}
.back-to-top{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));z-index:9000;width:46px;height:46px;border-radius:50%;padding:0;background:var(--blue);border-color:var(--blue);color:#fff;font-size:1.4rem;box-shadow:0 8px 24px rgba(24,59,80,.28)}.back-to-top:hover,.back-to-top:focus{background:var(--blue-dark);color:#fff}.back-to-top[hidden]{display:none}
.site-footer{margin-top:auto;padding:1.35rem max(1rem,calc((100vw - 1200px)/2));border-top:1px solid var(--line);background:#eef2f4;color:var(--muted);text-align:center}.site-footer[hidden]{display:none}.site-footer-brand{display:block;color:var(--ink);font-size:1rem;letter-spacing:.02em}.site-footer-filings{display:flex;justify-content:center;align-items:center;gap:.65rem 1.2rem;flex-wrap:wrap;margin-top:.55rem}.site-footer-filings a{color:var(--muted);font-size:.86rem;text-decoration:underline;text-underline-offset:.2em}.site-footer-filings a:hover,.site-footer-filings a:focus{color:var(--blue-dark)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Microsoft YaHei UI","Noto Sans CJK SC",system-ui,sans-serif;font-size:15px;line-height:1.5}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);padding:.58rem .9rem;cursor:pointer;text-decoration:none;white-space:nowrap}button:hover,.button:hover{border-color:var(--blue);text-decoration:none}.primary{background:var(--blue);border-color:var(--blue);color:#fff}.primary:hover{background:var(--blue-dark);color:#fff}.quiet{background:transparent;border:0;color:#e5eef2}.danger-link{border:0;background:transparent;color:var(--red);padding:.2rem .1rem}.full{width:100%}h1{font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.25;margin:.2rem 0 .6rem}h2{font-size:1.15rem;margin:1.6rem 0 .8rem}.muted{color:var(--muted)}.small{font-size:.85rem}.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:.72rem;font-weight:700;color:var(--blue)}.container{max-width:1200px;margin:0 auto;padding:2rem 1.4rem 4rem}.narrow{max-width:760px}.topbar{background:#183b50;color:#fff;padding:.75rem max(1.4rem,calc((100vw - 1200px)/2));display:flex;align-items:center;gap:2rem;flex-wrap:wrap}.brand{font-weight:800;font-size:1.2rem;letter-spacing:.01em;color:#fff}.brand span{font-size:.73rem;font-weight:400;margin-left:.45rem;color:#b8cfdb}.navlinks{display:flex;gap:.9rem;align-items:center;flex:1;flex-wrap:wrap}.navlinks a{color:#dbe8ee;font-size:.9rem}.logout{margin-left:auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.page-head p{margin:.3rem 0}.panel,.metric,.login-card{background:var(--card);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow)}.panel{padding:1.25rem 1.45rem;margin:1rem 0}.panel h2{margin-top:0}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem}.metric{padding:1.2rem 1.4rem;border-top:3px solid var(--blue)}.metric span{display:block;color:var(--muted);font-size:.88rem}.metric strong{display:block;font-size:2rem;margin-top:.4rem;line-height:1.1;font-variant-numeric:tabular-nums}.quicklinks{display:flex;flex-wrap:wrap;gap:.7rem}.quicklinks a{padding:.5rem .7rem;background:#edf5f8;border-radius:8px}.profile{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.profile span{display:block;color:var(--muted);font-size:.82rem}.profile strong{word-break:break-word}.filters{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:1rem 0}.filters input{min-width:220px;flex:1}.filters input,.filters select,.form-grid input,.form-grid select,.login-card input{border:1px solid #cbd7de;border-radius:9px;background:#fff;padding:.65rem .7rem;color:var(--ink);outline:none}.filters input:focus,.filters select:focus,.form-grid input:focus,.form-grid select:focus,.login-card input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #256a8925}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:var(--shadow)}table{border-collapse:collapse;width:100%;min-width:650px}th,td{text-align:left;padding:.72rem .82rem;border-bottom:1px solid #e8edf0;vertical-align:middle;white-space:nowrap}th{background:#e9f0f3;color:#345063;font-size:.84rem;font-weight:700}tbody tr:hover{background:#f7fafb}tbody tr:last-child td{border-bottom:0}.empty{text-align:center;color:var(--muted);padding:3rem}.actions{display:flex;align-items:center;gap:.6rem}.actions form{display:inline}.pagination{display:flex;gap:.8rem;align-items:center;justify-content:flex-end;padding:1rem 0;color:var(--muted)}.pagination a{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.35rem .65rem}.tabs{display:flex;gap:.4rem;flex-wrap:wrap}.tabs a{background:#e8f0f4;border-radius:8px;padding:.45rem .65rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.form-grid label{display:flex;flex-direction:column;gap:.3rem;font-weight:600}.form-grid label>span:last-child{display:block}.form-grid label input,.form-grid label select{width:100%;font-weight:400}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:1rem;align-items:center;padding-top:.5rem}.alert{border-radius:9px;padding:.75rem 1rem;margin:1rem 0}.alert.error{background:#fbeaec;color:#8a2b40}.alert.warning{background:#fff2dc;color:#815914}.alert.success{background:#e5f5ee;color:#145f49}.login-page{display:grid;place-items:center;min-height:100vh;background:radial-gradient(circle at 20% 15%,#d8eaf0,transparent 40%),linear-gradient(135deg,#e8eff3,#f7f9fa)}.login-card{width:min(410px,calc(100vw - 2rem));padding:2rem}.login-card form{display:grid;gap:1rem;margin-top:1.5rem}.login-card label{display:grid;gap:.35rem;font-weight:600}.problem{padding-top:15vh}.seat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem}.seat{border:1px solid #bfd7df;background:#f7fcfe;min-height:115px;border-radius:12px;padding:.7rem;display:flex;flex-direction:column;gap:.4rem}.seat.occupied{background:#e8f1ed;border-color:#b4d4c3}.seat small{color:var(--muted)}.seat strong{overflow-wrap:anywhere}.seat a{margin-top:auto;font-size:.85rem}@media(max-width:700px){.container{padding:1.2rem .8rem 3rem}.topbar{gap:.5rem;padding:.7rem .8rem}.navlinks{order:3;width:100%;overflow-x:auto;flex-wrap:nowrap}.navlinks a{white-space:nowrap}.form-grid{grid-template-columns:1fr}.seat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric strong{font-size:1.6rem}.page-head.has-back{grid-template-columns:auto minmax(0,1fr)}.page-head.has-back>:last-child:not(:nth-child(2)){grid-column:1/-1}.pagination{justify-content:flex-start;overflow-x:auto;padding-bottom:1.2rem}.pagination.numbered{flex-wrap:nowrap}.pagination.numbered a,.pagination.numbered span{flex:0 0 auto}.prefix-lookup-menu{max-width:calc(100vw - 16px)}}
.seat-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.carriage-note-card{width:100%;align-items:flex-start;text-align:left;white-space:normal;background:#eef5f8;border-style:dashed}.carriage-note-card span{margin-top:auto;color:var(--blue);font-size:.85rem}.carriage-note-dialog{width:min(620px,calc(100vw - 2rem))}.carriage-note-dialog [data-carriage-note-delete][hidden]{display:none!important}.note-reward-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.note-reward-grid input,.note-reward-grid select{width:100%;border:1px solid #cbd7de;border-radius:9px;background:#fff;padding:.65rem .7rem;color:var(--ink)}.item-total-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem}.item-total{padding:.9rem 1rem;border:1px solid var(--line);border-radius:12px;background:#f8fbfc}.item-total span{display:block;color:var(--muted)}.item-total strong{display:block;font-size:1.55rem;margin-top:.25rem}.item-total-panel .empty{padding:1.2rem}@media(max-width:700px){.seat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.note-reward-grid{grid-template-columns:1fr}.carriage-note-dialog .form-actions{flex-wrap:wrap}}
.date-picker-button{position:relative;z-index:3;cursor:pointer;pointer-events:none;touch-action:manipulation}.date-picker-native{z-index:4;pointer-events:auto;touch-action:manipulation}

/* --------------------------------------------------------------------------
   同盟数据档案台 · site-wide visual system
   -------------------------------------------------------------------------- */
:root{
  --bg:#f4f7f8;
  --card:#ffffff;
  --ink:#172936;
  --muted:#687a86;
  --line:#d6e0e5;
  --line-strong:#b9cbd3;
  --blue:#286987;
  --blue-dark:#123e56;
  --navy:#153a4d;
  --green:#2c7768;
  --red:#b64b52;
  --amber:#ad7928;
  --shadow:0 12px 34px rgba(18,58,77,.07);
  --shadow-hover:0 18px 38px rgba(18,58,77,.12);
  --radius:10px;
}

html{scroll-behavior:smooth}
body{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  background:
    linear-gradient(rgba(21,58,77,.018) 1px,transparent 1px),
    linear-gradient(90deg,rgba(21,58,77,.014) 1px,transparent 1px),
    var(--bg);
  background-size:32px 32px;
  color:var(--ink);
  font-family:"Microsoft YaHei UI","Noto Sans CJK SC","PingFang SC",system-ui,sans-serif;
  font-size:15px;
  line-height:1.6;
}
main{flex:1}
a{color:var(--blue-dark);text-underline-offset:.2em}
:focus-visible{outline:3px solid rgba(40,105,135,.28);outline-offset:2px}
h1,h2,h3{color:var(--ink)}
h1{font-family:"STSong","Songti SC","SimSun",serif;font-size:clamp(2rem,4vw,3.25rem);font-weight:700;letter-spacing:.025em;line-height:1.15}
h2{font-size:1.28rem;letter-spacing:.01em}

.container{width:min(100%,1500px);max-width:1500px;padding:2.2rem clamp(1rem,3vw,2.8rem) 5rem}
.container.narrow{width:min(100%,820px);max-width:820px}
.topbar{
  position:sticky;
  top:0;
  z-index:1000;
  min-height:70px;
  padding:.8rem max(1rem,calc((100vw - 1440px)/2));
  gap:2.1rem;
  flex-wrap:nowrap;
  background:var(--navy);
  border-bottom:1px solid rgba(255,255,255,.12);
  box-shadow:0 5px 18px rgba(9,36,50,.12);
}
.brand{
  position:relative;
  display:inline-flex;
  align-items:baseline;
  gap:.8rem;
  padding-left:1rem;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.55rem;
  font-weight:700;
  letter-spacing:.015em;
}
.brand::before{content:"";position:absolute;left:0;top:.18rem;bottom:.18rem;width:2px;background:#d2b450}
.brand::after{content:"";width:1px;height:1.8rem;margin-left:.6rem;background:rgba(255,255,255,.35)}
.brand span{order:3;margin:0;color:#b7ccd5;font-family:"Microsoft YaHei UI",sans-serif;font-size:.72rem;letter-spacing:.12em}
.navlinks{gap:1.55rem;flex-wrap:nowrap}
.navlinks a{position:relative;padding:.45rem 0;color:#e5eef2;font-size:.96rem;font-weight:600;letter-spacing:.03em}
.navlinks a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:#d2b450;transition:right .18s ease}
.navlinks a:hover{text-decoration:none;color:#fff}.navlinks a:hover::after{right:0}
.logout .quiet{padding:.45rem .6rem;color:#e6eef2}

.page-head{position:relative;min-height:105px;margin-bottom:1.7rem;padding:.25rem 0 1.25rem;border-bottom:1px solid var(--line-strong)}
.page-head::after{content:"";position:absolute;left:0;bottom:-1px;width:5.5rem;height:3px;background:var(--green)}
.page-head h1{margin:.15rem 0 .2rem}
.eyebrow{text-transform:none;letter-spacing:.08em;font-size:.78rem;color:var(--blue);font-weight:700}
.back-button{border-color:var(--line-strong);background:rgba(255,255,255,.88);box-shadow:none}

button,.button{min-height:42px;border-color:var(--line-strong);border-radius:7px;background:#fff;padding:.6rem 1rem;color:var(--ink);font-weight:600;box-shadow:none;transition:border-color .16s,background .16s,color .16s,transform .16s}
button:hover,.button:hover{border-color:var(--blue);background:#f4fafc;transform:translateY(-1px)}
.primary{background:var(--blue);border-color:var(--blue);color:#fff}.primary:hover{background:var(--blue-dark);border-color:var(--blue-dark)}
.danger-link{min-height:0;color:var(--red);font-weight:600}
.seat .seat-edit-button{margin-top:auto;min-height:0;align-self:flex-start;border:0;background:transparent;color:var(--blue);padding:.2rem 0;font-size:.85rem;font-weight:400}
.seat .seat-edit-button:hover{border:0;background:transparent;text-decoration:underline;transform:none}
.quiet:hover{background:rgba(255,255,255,.08);transform:none}

.panel,.metric,.login-card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.panel{padding:1.4rem 1.55rem;background:rgba(255,255,255,.96)}
.panel h2{padding-bottom:.7rem;border-bottom:1px solid #e7edf0}
.metric{
  position:relative;
  display:grid;
  grid-template-columns:2.3rem minmax(0,1fr);
  align-items:center;
  gap:.3rem .55rem;
  min-height:176px;
  padding:1.15rem 1.15rem 1rem;
  border-top:3px solid var(--blue);
  border-radius:7px;
  overflow:hidden;
}
.metric::after{content:"";position:absolute;left:1.15rem;right:1.15rem;bottom:2.9rem;border-top:1px dashed #dce5e9}
.metric-link:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover);border-color:#b9cbd3;text-decoration:none}
.metric .metric-label{align-self:center;color:var(--muted);font-size:.88rem;font-weight:600;line-height:1.3}
.metric strong{grid-column:1/-1;margin:.3rem 0 .35rem;font-family:Georgia,"Times New Roman",serif;font-size:2.25rem;line-height:1;font-variant-numeric:tabular-nums}
.metric small{grid-column:1/-1;position:relative;z-index:1;margin-top:.55rem;color:var(--blue);font-size:.82rem;font-weight:600}
.metric small b{font-size:1rem;font-weight:400}
.metric-icon{display:grid!important;place-items:center;width:2.1rem;height:2.1rem;color:var(--blue)}
.metric-icon svg{display:block;width:26px;height:26px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.metric-icon-cart{color:var(--green)}.metric-icon-map{color:var(--red)}.metric-icon-chest{color:var(--amber)}
.metric-icon-crown{color:#2d7198}.metric-icon-people{color:#377a94}.metric-icon-total{color:#778d99}
.metric-icon-cart svg,.metric-icon-map svg,.metric-icon-chest svg{width:26px;height:26px}

.tabs{gap:.45rem;margin-bottom:1.2rem;padding-bottom:.75rem;border-bottom:1px solid var(--line)}
.tabs a{border:1px solid #dbe5e9;border-radius:6px;background:#edf3f5;padding:.48rem .78rem;color:#315b70;font-weight:600}
.tabs a:hover{border-color:#abc4cf;background:#fff;text-decoration:none}
.filters,.advanced-filters{gap:.65rem;padding:1rem;border:1px solid var(--line);border-radius:8px;background:#eaf1f4;box-shadow:none}
.filters input,.filters select,.form-grid input,.form-grid select,.login-card input,.note-reward-grid input,.note-reward-grid select,.passenger-dialog-body input{
  min-height:44px;border-color:#bfcfd7;border-radius:6px;background:#fff
}
.filters input:focus,.filters select:focus,.form-grid input:focus,.form-grid select:focus,.login-card input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(40,105,135,.16)}
.form-grid{gap:1.15rem 1.3rem}.form-grid label{font-weight:700}.form-grid label>span:first-child{color:#294554}
.field-error{padding-left:.15rem}

.table-wrap{border-color:var(--line);border-radius:8px;box-shadow:var(--shadow);scrollbar-color:#9dafb8 #edf2f4}
table{background:#fff}
th,td{padding:.8rem .85rem;border-bottom-color:#e5ecef}
th{background:#e4edf1;color:#294c5e;font-size:.82rem;letter-spacing:.02em}
tbody tr:nth-child(even){background:#fbfcfd}tbody tr:hover{background:#f1f7f9}
.pagination.numbered{justify-content:center;margin-top:.5rem}
.pagination.numbered a,.pagination.numbered span{min-width:44px;min-height:42px;border-color:#cedae0;border-radius:0;background:#fff}
.pagination.numbered .active{background:var(--blue-dark);border-color:var(--blue-dark)}

.profile{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));padding:1.5rem 1.7rem}
.profile>div{padding-left:1rem;border-left:2px solid #ccdae0}.profile span{font-size:.8rem}.profile strong{font-size:1.05rem}
.item-total-grid{gap:0;border:1px solid var(--line);border-radius:7px;overflow:hidden}
.item-total{border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff}.item-total:last-child{border-bottom:0}

.cart-dialog,.passenger-dialog{border-radius:10px}.dialog-head{background:#eaf1f4}.seat{border-radius:7px}.seat.occupied{background:#edf4f0}.carriage-note-card{background:#eff5f7}
.alert{border:1px solid transparent;border-radius:6px}.alert.success{border-color:#b9ddcf}.alert.error{border-color:#ecc2c8}.alert.warning{border-color:#efd7a8}
.prefix-lookup-menu{border-radius:7px;box-shadow:0 18px 45px rgba(18,58,77,.2)}

.login-page{display:grid;min-height:100vh;background:linear-gradient(115deg,#e7eff2 0,#f8fafb 55%,#e4edf1 100%)}
.login-page::before{content:"";position:fixed;inset:0;background:url('/img/alliance-archive-cabinet.png') right -8vw bottom -9vh/55vw auto no-repeat;opacity:.12;pointer-events:none}
.login-card{position:relative;width:min(440px,calc(100vw - 2rem));padding:2.25rem;border-top:4px solid var(--navy);border-radius:9px;background:rgba(255,255,255,.96)}
.registration-card{width:min(700px,calc(100vw - 2rem))}
.login-card h1{font-size:2.45rem}
.login-card .check-line{display:flex;flex-direction:row;align-items:center;gap:.65rem;font-weight:600;cursor:pointer}
.login-card .check-line input[type="checkbox"]{flex:0 0 auto;width:1.1rem;height:1.1rem;min-height:0;margin:0;accent-color:var(--blue)}
.site-footer{border-top-color:#ccd9df;background:#e9eff2}

/* 首页：同盟数据档案台 */
.archive-dashboard{padding-top:1.8rem}
.archive-masthead{
  position:relative;
  display:grid;
  grid-template-columns:110px minmax(0,1fr) auto;
  align-items:center;
  gap:2.5rem;
  min-height:250px;
  margin-bottom:2rem;
  padding:0 1rem 1.5rem 0;
  border-bottom:1px solid #9db2bc;
  background:url('/img/alliance-archive-cabinet.png') right 2rem center/520px auto no-repeat;
  isolation:isolate;
}
.archive-masthead::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--bg) 0%,rgba(244,247,248,.98) 42%,rgba(244,247,248,.7) 72%,rgba(244,247,248,.35) 100%)}
.archive-title-rail{align-self:stretch;display:grid;place-items:center;width:82px;border:1px solid #7895a3;border-top:3px double #476a7c;border-bottom:3px double #476a7c;background:rgba(255,255,255,.72);box-shadow:inset 0 0 0 5px rgba(244,247,248,.92)}
.archive-title-rail span{writing-mode:vertical-rl;text-orientation:upright;font-family:"STSong","Songti SC","SimSun",serif;font-size:1.48rem;font-weight:700;letter-spacing:.12em;line-height:1.25}
.archive-identity{display:flex;align-items:center;gap:1.25rem;max-width:610px}
.archive-identity p{margin:0 0 .15rem;color:var(--muted);font-size:.82rem;font-weight:700;letter-spacing:.08em}
.archive-identity h1{margin:0;font-size:2.25rem}
.archive-motto{margin-top:.85rem;padding-top:.7rem;border-top:1px solid #a9bdc6;color:#607480;letter-spacing:.24em}
.alliance-mark{display:flex;align-items:flex-end;justify-content:center;gap:2px;width:72px;height:72px;padding:14px;border-radius:6px;background:#e6f0f2;color:var(--green)}
.alliance-mark span{position:relative;width:13px;height:27px;border-radius:8px 8px 4px 4px;background:currentColor}
.alliance-mark span:nth-child(2){height:36px}.alliance-mark span::before{content:"";position:absolute;left:2px;top:-11px;width:9px;height:9px;border:2px solid #e6f0f2;border-radius:50%;background:currentColor}
.archive-profile-link{align-self:start;margin-top:1rem;background:rgba(255,255,255,.82);backdrop-filter:blur(4px)}
.archive-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(300px,1fr);gap:1.4rem;align-items:stretch}
.archive-dashboard-main{display:grid;gap:1.5rem}
.archive-section{min-width:0}.archive-section-head{display:flex;align-items:baseline;gap:1rem;margin-bottom:.85rem;padding-left:1rem;border-left:6px solid var(--green)}
.archive-management .archive-section-head{border-left-color:var(--red)}
.archive-section-head h2{margin:0;font-family:"STSong","Songti SC","SimSun",serif;font-size:1.55rem}
.archive-section-head p{margin:0;color:var(--muted);font-size:.82rem}
.dashboard-metrics{grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem}
.dashboard-metrics .metric{min-width:0;min-height:178px}
.management-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.archive-item-summary{min-height:100%;border:1px solid #29677f;border-radius:7px;background:#fff;box-shadow:var(--shadow);overflow:hidden}
.archive-item-summary>header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.15rem;background:var(--navy);color:#fff}
.archive-item-summary>header>div{display:flex;align-items:center;gap:.75rem}.archive-item-summary h2{margin:0;color:#fff;font-family:"STSong","Songti SC","SimSun",serif;font-size:1.42rem}.archive-item-summary header p{margin:0;color:#c4d5dc;font-size:.76rem;text-align:right}
.summary-box-icon,.empty-box-icon{position:relative;display:block;width:25px;height:21px;border:2px solid currentColor}.summary-box-icon::before,.empty-box-icon::before{content:"";position:absolute;left:50%;top:-8px;width:16px;height:16px;border-left:2px solid currentColor;border-top:2px solid currentColor;transform:translateX(-50%) rotate(45deg)}
.item-summary-columns{display:grid;grid-template-columns:1fr 6rem;border-bottom:1px solid var(--line);background:#edf3f5;color:#315264;font-weight:700}.item-summary-columns span{padding:.8rem 1rem}.item-summary-columns span+span{border-left:1px solid var(--line);text-align:center}
.item-total-list .item-total{display:grid;grid-template-columns:1fr 6rem;padding:0}.item-total-list .item-total span,.item-total-list .item-total strong{margin:0;padding:.8rem 1rem}.item-total-list .item-total strong{border-left:1px solid var(--line);font-size:1rem;text-align:center}
.archive-empty{display:grid;place-items:center;align-content:center;min-height:420px;padding:2rem;color:#a4b4bc;text-align:center}.archive-empty .empty-box-icon{width:42px;height:34px;margin-bottom:1.2rem}.archive-empty strong{color:#607480;font-size:1rem}.archive-empty p{color:#8a9ba4;font-size:.82rem}

@media(max-width:1180px){
  .archive-dashboard-grid{grid-template-columns:1fr}
  .archive-item-summary{min-height:360px}.archive-empty{min-height:280px}
  .dashboard-metrics{grid-template-columns:repeat(5,minmax(150px,1fr));overflow-x:auto;padding-bottom:.5rem}
  .management-metrics{grid-template-columns:repeat(4,minmax(170px,1fr))}
  .archive-masthead{background-size:430px auto}
}

@media(max-width:900px){
  .topbar{gap:1rem;flex-wrap:wrap}.brand{font-size:1.3rem}.brand span{display:none}.brand::after{display:none}
  .navlinks{order:3;width:100%;overflow-x:auto;gap:1.25rem;padding:.2rem 0;scrollbar-width:thin}
  .container{padding:1.5rem 1rem 4rem}
  .archive-masthead{grid-template-columns:72px minmax(0,1fr);gap:1.2rem;min-height:220px;background-size:360px auto}
  .archive-title-rail{width:62px}.archive-title-rail span{font-size:1.1rem}
  .archive-profile-link{grid-column:2;justify-self:start;margin:0}
}

@media(max-width:700px){
  body{background-size:24px 24px}
  .topbar{padding:.7rem .8rem}.logout{margin-left:auto}.navlinks{margin:0 -.8rem;padding:.35rem .8rem}
  h1{font-size:2rem}.page-head{min-height:82px}.panel{padding:1rem}
  .archive-dashboard{padding-top:1rem}
  .archive-masthead{display:block;min-height:265px;padding:1rem 0 1.25rem;background-position:right -7rem bottom;background-size:330px auto}
  .archive-masthead::before{background:linear-gradient(90deg,var(--bg) 0%,rgba(244,247,248,.96) 64%,rgba(244,247,248,.5) 100%)}
  .archive-title-rail{display:block;width:max-content;height:auto;margin-bottom:1.2rem;padding:.4rem .7rem;border-width:1px;border-left:4px double #476a7c;box-shadow:none}
  .archive-title-rail span{writing-mode:horizontal-tb;font-size:1.2rem;letter-spacing:.08em}
  .archive-identity{align-items:flex-start;gap:.75rem}.alliance-mark{width:54px;height:54px;padding:11px}.alliance-mark span{width:10px;height:22px}.alliance-mark span:nth-child(2){height:28px}
  .archive-identity h1{font-size:1.65rem}.archive-motto{font-size:.78rem;letter-spacing:.09em}
  .archive-profile-link{margin-top:1rem}
  .archive-section-head{display:block}.archive-section-head p{margin-top:.15rem}
  .dashboard-metrics,.management-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
  .dashboard-metrics .metric{min-height:158px;padding:.9rem}.metric::after{left:.9rem;right:.9rem}.metric strong{font-size:1.9rem}
  .archive-item-summary>header{align-items:flex-start}.archive-item-summary header p{max-width:10rem}
  .archive-empty{min-height:240px}
  .form-grid{grid-template-columns:1fr}.filters{padding:.75rem}.filters>*{width:100%;max-width:none}.filters input{min-width:0}.date-picker{max-width:none}
  .table-wrap{border-radius:6px}.table-wrap::after{content:"左右滑动查看更多";position:sticky;left:0;display:block;width:max-content;padding:.4rem .7rem;color:var(--muted);font-size:.75rem}
  .profile{grid-template-columns:1fr 1fr}.profile>div{padding-left:.7rem}
  .login-page::before{background-size:115vw;opacity:.08}.login-card{padding:1.4rem}.login-card h1{font-size:2rem}
}

/* Attendance: two-level, full-table ledger. */
.attendance-page{--attendance-accent:#315d70}
.attendance-page .page-head{border-left-color:var(--attendance-accent)}
.attendance-toolbar form,.attendance-batch-form,.attendance-settings{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.attendance-toolbar label{display:flex;align-items:center;gap:.5rem;font-weight:700}
.attendance-toolbar select{min-width:14rem}
.attendance-create .inline-form{display:grid;grid-template-columns:minmax(14rem,1fr) minmax(18rem,2fr) auto;gap:.75rem}
.attendance-matrix-panel{padding:0;overflow:hidden}
.attendance-scroll{width:100%;overflow:auto;overscroll-behavior-inline:contain}
.attendance-scroll-top{height:16px;border-bottom:1px solid var(--line);background:#f4f7f8;overflow-x:auto;overflow-y:hidden}
.attendance-scroll-top>div{height:1px}
.attendance-scroll-main{overflow-x:auto;overflow-y:visible}
.attendance-summary-matrix-panel .attendance-scroll-top{height:24px}
.attendance-matrix{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}
.attendance-matrix th,.attendance-matrix td{min-width:8rem;padding:.8rem .75rem;text-align:center;border-bottom:1px solid var(--line);background:var(--card)}
.attendance-matrix th{position:sticky;top:0;z-index:3;background:var(--navy);color:#fff;white-space:nowrap}
.attendance-matrix th a{color:#fff;text-decoration:underline;text-underline-offset:.25rem}
.attendance-matrix .sticky-id{position:sticky;left:0;z-index:2;min-width:10.5rem;box-shadow:1px 0 0 var(--line)}
.attendance-matrix .sticky-name{position:sticky;left:10.5rem;z-index:2;min-width:9rem;box-shadow:1px 0 0 var(--line)}
.attendance-matrix th.sticky-id,.attendance-matrix th.sticky-name{z-index:5;background:var(--navy)}
.attendance-matrix .sticky-total{position:sticky;right:0;z-index:2;min-width:7rem;background:#edf4f5;font-weight:800;box-shadow:-1px 0 0 var(--line)}
.attendance-matrix th.sticky-total{z-index:5;background:var(--navy)}
.attendance-matrix .archived{opacity:.65}
.attendance-matrix td small{display:block;color:var(--muted);font-size:.75rem}
.attendance-edit-matrix th:not(.sticky-id):not(.sticky-name):not(.sticky-total){min-width:10rem}
.score-cell-form{display:flex;align-items:stretch;gap:.3rem}
.score-cell-form input{min-width:5.8rem;width:7rem;padding:.55rem .45rem;text-align:right}
.score-cell-form button{min-width:2.6rem;padding:.45rem;border-radius:.55rem}
.attendance-admin-list{display:grid;gap:.75rem}
.attendance-admin-list article{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.75rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fbfcfc}
.attendance-settings{flex:1}
.attendance-settings>input{flex:1;min-width:10rem}
.attendance-settings label{display:flex;align-items:center;gap:.35rem;white-space:nowrap}
.attendance-settings label input[type=number]{width:6rem}
.attendance-batch-form select,.attendance-batch-form input{min-width:9rem;flex:1}
.attendance-batch-form [data-attendance-selected]{display:none}
.attendance-home-board{margin-bottom:1rem}
.attendance-home-board-head{display:flex;justify-content:space-between;align-items:center;margin:.5rem 0}
.attendance-home-empty{color:var(--muted);padding:.75rem 0}
.attendance-home-cards .metric{min-height:10rem}
.attendance-cards .metric{min-height:9rem}
.attendance-summary-cards{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:1rem}
.attendance-summary-cards .metric{min-height:7.5rem}
.attendance-summary-cards .metric-label{grid-column:1/-1;white-space:nowrap}
.attendance-export-form{display:flex!important;align-items:center;gap:.65rem;flex-wrap:wrap}.attendance-export-form .state-check{margin:0;padding:.5rem .65rem;border:1px solid var(--line);border-radius:10px;background:#fff;white-space:nowrap}
.player-profile-toggle{display:block!important}.player-profile-toggle .state-check{cursor:pointer}.player-profile-toggle input[type="checkbox"]{accent-color:var(--green)}.read-only-state input[type="checkbox"]:checked{accent-color:var(--green);opacity:1}
.attendance-client-filter{display:flex;align-items:center;gap:.7rem;margin-left:auto}
.attendance-client-filter input{min-width:18rem}
.attendance-client-filter span{color:var(--muted);white-space:nowrap}

@media(max-width:700px){
  .attendance-create .inline-form{grid-template-columns:1fr}
  .attendance-toolbar form,.attendance-batch-form,.attendance-settings{align-items:stretch;flex-direction:column}
  .attendance-toolbar label,.attendance-toolbar select,.attendance-batch-form select,.attendance-batch-form input,.attendance-settings>input{width:100%;min-width:0}
  .attendance-admin-list article{align-items:stretch;flex-direction:column}
  .attendance-admin-list article>form:last-child,.attendance-admin-list article>form:last-child button{width:100%}
  .attendance-matrix .sticky-id,.attendance-matrix .sticky-name,.attendance-matrix .sticky-total{position:static;box-shadow:none}
  .attendance-matrix th,.attendance-matrix td{min-width:7.5rem;padding:.65rem .55rem}
  .attendance-matrix .sticky-id{min-width:9.5rem}
  .attendance-matrix .sticky-name{min-width:8rem}
  .score-cell-form input{width:6rem}
  .attendance-summary-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .attendance-client-filter{width:100%;align-items:stretch;flex-direction:column}
  .attendance-client-filter input{width:100%;min-width:0}
}

/* 2026-10-29 targeted responsive and interaction refinement */
.filter-panel{margin:0 0 1rem}
.filter-panel>summary{
  display:none;
  color:var(--navy);
  font-weight:800;
  cursor:pointer;
  list-style:none;
}
.filter-panel>summary::-webkit-details-marker{display:none}
.filter-panel>summary::after{content:"⌄";margin-left:auto;font-size:1.15rem;transition:transform .15s ease}
.filter-panel[open]>summary::after{transform:rotate(180deg)}
.record-filters,.stats-filters{
  display:grid!important;
  grid-template-columns:minmax(190px,.9fr) minmax(420px,1.45fr);
  align-items:center;
}
.record-filters>.filter-keyword{min-width:0;width:100%}
.filter-date-range{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  gap:.5rem;
  align-items:center;
  min-width:0;
}
.filter-date-range .date-picker{min-width:0;max-width:none;width:100%}
.filter-date-range .date-range-word{text-align:center}
.filter-people-grid,.filter-options-grid{
  grid-column:1/-1;
  display:grid;
  gap:.65rem;
  align-items:center;
}
.filter-people-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.stats-filters .filter-people-grid{grid-column:1;grid-template-columns:repeat(2,minmax(0,1fr))}
.stats-filters .filter-date-range{grid-column:2}
.filter-options-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.stats-filters .filter-options-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.filter-people-grid>*,:is(.filter-options-grid,.filter-date-range)>*{min-width:0;width:100%}
.filter-actions{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.85rem;
  padding-top:.1rem;
}
.filter-actions button{min-width:7rem}
.filter-actions a{font-weight:700}

/* 宽屏恢复紧凑横向筛选；移动端仍由后面的 max-width:700px 规则接管。 */
@media(min-width:1100px){
  .stats-filters{
    grid-template-columns:minmax(0,1.2fr) minmax(0,1.6fr) minmax(190px,.6fr) auto;
    gap:.85rem;
  }
  .stats-filters .filter-people-grid{
    grid-column:1;
    grid-template-columns:minmax(0,1.35fr) minmax(145px,.75fr);
    gap:.85rem;
  }
  .stats-filters .filter-people-grid>input{min-width:0}
  .stats-filters .filter-people-grid>.nickname-input{max-width:none}
  .stats-filters .filter-date-range{grid-column:2}
  .stats-filters .filter-options-grid{grid-column:3;grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats-filters .filter-actions{grid-column:4;padding:0;white-space:nowrap}
  .stats-filters .filter-actions button{min-width:5.5rem}
  .stats-filters:has(.filter-options-grid:empty){grid-template-columns:minmax(310px,1fr) minmax(420px,1.35fr) auto}
  .stats-filters:has(.filter-options-grid:empty) .filter-actions{grid-column:3}
  .stats-filters .filter-options-grid:empty{display:none}

  /* 业务列表宽屏保持原来的两行紧凑排布；移动端规则不受影响。 */
  :is(.archive-fortune,.archive-treasure,.archive-cart) .record-filters{
    grid-template-columns:repeat(12,minmax(0,1fr));
    gap:.65rem;
  }
  :is(.archive-fortune,.archive-treasure,.archive-cart) .record-filters>.filter-keyword{
    grid-column:1/4;
    grid-row:1;
  }
  :is(.archive-fortune,.archive-treasure,.archive-cart) .record-filters>.filter-date-range{
    grid-column:4/9;
    grid-row:1;
  }
  :is(.archive-fortune,.archive-treasure,.archive-cart) .record-filters>.filter-people-grid{
    display:contents;
  }
  :is(.archive-fortune,.archive-treasure,.archive-cart) .record-filters .nickname-input{
    max-width:none;
  }
  :is(.archive-fortune,.archive-treasure) .record-filters>.filter-keyword{grid-column:1/3}
  :is(.archive-fortune,.archive-treasure) .record-filters>.filter-date-range{grid-column:3/7}
  :is(.archive-fortune,.archive-treasure) .record-filters>.filter-people-grid>:nth-child(1){grid-column:7/10;grid-row:1}
  :is(.archive-fortune,.archive-treasure) .record-filters>.filter-people-grid>:nth-child(2){grid-column:10/13;grid-row:1}
  :is(.archive-fortune,.archive-treasure) .record-filters>.filter-people-grid>:nth-child(3){grid-column:1/5;grid-row:2}
  :is(.archive-fortune,.archive-treasure) .record-filters>.filter-options-grid{
    grid-column:5/11;
    grid-row:2;
  }
  .archive-treasure .record-filters>.filter-options-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,.8fr);
  }
  .archive-treasure .record-filters>.filter-options-grid>input{
    min-width:0;
  }
  :is(.archive-fortune,.archive-treasure) .record-filters>.filter-actions{
    grid-column:11/13;
    grid-row:2;
  }
  .archive-cart .record-filters>.filter-people-grid>:nth-child(1){grid-column:9/13;grid-row:1}
  .archive-cart .record-filters>.filter-people-grid>:nth-child(2){grid-column:1/4;grid-row:2}
  .archive-cart .record-filters>.filter-people-grid>:nth-child(3){grid-column:4/7;grid-row:2}
  .archive-cart .record-filters>.filter-people-grid>:nth-child(4){grid-column:7/9;grid-row:2}
  .archive-cart .record-filters>.filter-options-grid{
    grid-column:9/11;
    grid-row:2;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .archive-cart .record-filters>.filter-actions{
    grid-column:11/13;
    grid-row:2;
  }
  :is(.archive-fortune,.archive-treasure,.archive-cart) .record-filters>.filter-actions{
    align-self:stretch;
    justify-content:flex-end;
    gap:.55rem;
    padding:0;
    white-space:nowrap;
  }
  :is(.archive-fortune,.archive-treasure,.archive-cart) .record-filters>.filter-actions button{
    min-width:4.5rem;
  }
}

.record-edit-dialog{
  width:min(900px,94vw);
  height:min(850px,92dvh);
  padding:0;
  border:1px solid #b9cbd2;
  border-radius:14px;
  overflow:hidden;
  background:#f5f8f9;
  box-shadow:0 28px 90px rgba(10,31,44,.35);
}
.record-edit-dialog::backdrop{background:rgba(12,30,42,.58)}
.record-edit-frame{display:block;width:100%;height:calc(100% - 56px);border:0;background:#f5f8f9}
.deleted-record-detail-dialog{
  width:min(760px,92vw);
  max-height:min(780px,90dvh);
  padding:0;
  border:1px solid #b9cbd2;
  border-radius:14px;
  overflow:hidden;
  background:#f7f9fa;
  box-shadow:0 28px 90px rgba(10,31,44,.35);
}
.deleted-record-detail-dialog::backdrop{background:rgba(12,30,42,.58)}
.deleted-record-detail-body{max-height:calc(90dvh - 56px);overflow:auto;padding:1rem}
.deleted-record-meta,.deleted-record-fields{
  display:grid;
  grid-template-columns:minmax(7.5rem,30%) minmax(0,1fr);
  margin:0;
  border:1px solid #d5e0e4;
  border-radius:9px;
  overflow:hidden;
  background:#fff;
}
.deleted-record-fields{margin-top:1rem}
.deleted-record-meta dt,.deleted-record-fields dt,
.deleted-record-meta dd,.deleted-record-fields dd{margin:0;padding:.65rem .8rem;border-bottom:1px solid #e4eaed}
.deleted-record-meta dt,.deleted-record-fields dt{color:#59717d;font-weight:800;background:#edf3f5}
.deleted-record-meta dd,.deleted-record-fields dd{overflow-wrap:anywhere;white-space:pre-wrap}
.deleted-record-meta>:nth-last-child(-n+2),.deleted-record-fields>:nth-last-child(-n+2){border-bottom:0}
.deleted-record-detail-link{font-variant-numeric:tabular-nums;font-weight:700}
.deleted-record-summary{min-width:15rem;max-width:30rem;white-space:normal;line-height:1.45}
[data-fortune-period][data-suggested="true"]{border-color:#b58b2a;background:#fffaf0;box-shadow:0 0 0 2px rgba(181,139,42,.12)}
.embedded-record-editor{min-width:0;background:#f5f8f9}
.embedded-record-editor .topbar{display:none!important}
.embedded-record-editor main.container{
  width:100%;
  max-width:none;
  min-height:100%;
  margin:0;
  padding:1rem;
}
.embedded-record-editor main.container::before{display:none!important}
.embedded-record-editor .page-head{min-height:auto!important;margin:0 0 .75rem!important;padding:.6rem .8rem!important}
.embedded-record-editor .page-head h1{font-size:1.65rem!important}
.embedded-record-editor .page-head .metric-icon{width:1.6rem;height:1.6rem}
.embedded-record-editor .panel.form-grid{margin:0;padding:1rem}
.embedded-record-editor .form-actions{position:sticky;bottom:0;padding:.75rem 0 0;background:linear-gradient(180deg,transparent,#fff 28%)}

main.container:not(.archive-dashboard) input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
main.container:not(.archive-dashboard) select,
main.container:not(.archive-dashboard) button,
main.container:not(.archive-dashboard) .button{
  min-height:42px;
  border-radius:8px;
  box-shadow:none;
}
main.container:not(.archive-dashboard) table input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
main.container:not(.archive-dashboard) table select{
  min-height:38px;
  border:1px solid #b8cbd3;
  border-radius:7px;
  box-shadow:none!important;
}
main.container:not(.archive-dashboard) input:disabled,
main.container:not(.archive-dashboard) select:disabled,
main.container:not(.archive-dashboard) button:disabled{
  cursor:not-allowed;
  opacity:.65;
  background:#edf1f3;
}
main.container:not(.archive-dashboard) input[type="checkbox"]{
  width:1.05rem!important;
  height:1.05rem!important;
  min-width:1.05rem!important;
  min-height:1.05rem!important;
  margin:.15rem;
  accent-color:var(--green);
}
.field-invalid input,.field-invalid select{border-color:#a63b42!important;box-shadow:0 0 0 3px rgba(166,59,66,.12)!important}
.field-error,.field-status.error{color:#96333a;font-weight:700}
.player-action-grid{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}
.player-action-grid form{margin:0}
.player-action-grid .danger-link{color:#a4323a;border-color:#d7a6aa;background:#fff}

.date-picker-native::-webkit-calendar-picker-indicator{
  position:absolute;
  inset:0;
  width:auto;
  height:auto;
  margin:0;
  padding:0;
  cursor:pointer;
  opacity:0;
}

@media(max-width:700px){
  body{overflow-x:hidden}
  main.container:not(.archive-dashboard){padding-inline:.75rem}
  main.container:not(.archive-dashboard)>.page-head{gap:.65rem}
  main.container:not(.archive-dashboard)>.page-head h1{font-size:1.8rem}
  main.container:not(.archive-dashboard)>.page-head .eyebrow{font-size:.75rem}
  main.container:not(.archive-dashboard)>.page-head .button{width:100%;grid-column:1/-1}

  main.container:not(.archive-dashboard)>.tabs,
  main.container:not(.archive-dashboard) .tabs{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.45rem;
    overflow:visible;
  }
  main.container:not(.archive-dashboard)>.tabs a,
  main.container:not(.archive-dashboard) .tabs a{
    display:flex;
    min-width:0;
    min-height:44px;
    align-items:center;
    justify-content:center;
    padding:.55rem .5rem;
    text-align:center;
    white-space:normal;
  }

  .filter-panel{
    border:1px solid #c7d8de;
    border-left:4px solid var(--section-accent,var(--green));
    border-radius:9px;
    background:linear-gradient(90deg,var(--section-soft,#e9f2f3),#f7f9fa);
    overflow:visible;
  }
  .filter-panel>summary{display:flex;align-items:center;min-height:48px;padding:.7rem .85rem}
  .filter-panel:not([open])>summary{border-radius:8px}
  .filter-panel[open]>summary{border-bottom:1px solid #cad9de}
  main.container:not(.archive-dashboard) .filter-panel .filters,
  main.container:not(.archive-dashboard) .filter-panel .advanced-filters{
    margin:0;
    padding:.75rem;
    border:0;
    border-left:0;
    border-radius:0 0 8px 8px;
    background:transparent;
    box-shadow:none;
  }
  .record-filters,.stats-filters{display:grid!important;grid-template-columns:1fr!important;gap:.65rem}
  .record-filters>.filter-keyword,.filter-date-range,.filter-people-grid,.filter-options-grid,.filter-actions,
  .stats-filters .filter-people-grid,.stats-filters .filter-date-range{
    grid-column:1/-1!important;
  }
  .filter-date-range{grid-template-columns:minmax(0,1fr) 1.3rem minmax(0,1fr);gap:.3rem}
  .filter-date-range .date-picker{grid-template-columns:minmax(0,1fr) 44px}
  .filter-date-range .date-picker-button,.filter-date-range .date-picker-native{width:44px!important}
  .filter-date-range .date-input{font-size:.88rem;padding-inline:.6rem}
  .filter-people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .filter-people-grid>*:last-child:nth-child(odd){grid-column:1/-1}
  .filter-options-grid,.stats-filters .filter-options-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .filter-actions{justify-content:stretch}
  .filter-actions button{flex:1;min-width:0}
  .filter-actions a{display:flex;min-height:44px;align-items:center;padding:0 .5rem}

  main.container:not(.archive-dashboard) input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  main.container:not(.archive-dashboard) select,
  main.container:not(.archive-dashboard) button,
  main.container:not(.archive-dashboard) .button{min-height:44px}

  /* 手机端仅玩家管理使用卡片；其他数据表保持原来的横向条状表格。 */
  .responsive-data-table:not(.player-management-table){
    display:table;
    width:100%;
    min-width:650px;
    border-collapse:collapse;
    background:#fff;
  }
  .responsive-data-table:not(.player-management-table) colgroup{display:table-column-group}
  .responsive-data-table:not(.player-management-table) thead{display:table-header-group}
  .responsive-data-table:not(.player-management-table) tbody{display:table-row-group!important}
  .responsive-data-table:not(.player-management-table) tr{
    display:table-row!important;
    overflow:visible!important;
    border:0!important;
    border-radius:0!important;
    background:inherit!important;
    box-shadow:none!important;
  }
  main.container:not(.archive-dashboard) .responsive-data-table:not(.player-management-table) td{
    display:table-cell!important;
    width:auto!important;
    min-width:0!important;
    min-height:0;
    padding:.72rem .82rem;
    border:0;
    border-bottom:1px solid #e8edf0;
    text-align:center;
    white-space:nowrap;
  }
  .responsive-data-table:not(.player-management-table) td::before{display:none;content:none}
  main.container:not(.archive-dashboard) .table-wrap:has(>.responsive-data-table:not(.player-management-table)){
    overflow-x:auto;
    border:1px solid var(--line);
    border-top:3px solid var(--navy);
    border-radius:6px;
    background:#fff;
    box-shadow:0 10px 30px rgba(18,55,72,.075);
  }

  .player-management-table,
  .player-management-table tbody,
  .player-management-table tr,
  .player-management-table td{display:block;width:100%;min-width:0!important}
  .player-management-table colgroup,.player-management-table thead{display:none}
  main.container:not(.archive-dashboard) .player-management-table{min-width:0;background:transparent;border:0}
  main.container:not(.archive-dashboard) .player-management-table tbody{display:grid;gap:.75rem}
  main.container:not(.archive-dashboard) .player-management-table tbody tr{
    overflow:hidden;
    border:1px solid #cbd9de;
    border-top:3px solid var(--navy);
    border-radius:10px;
    background:#fff!important;
    box-shadow:0 8px 22px rgba(18,55,72,.07);
  }
  main.container:not(.archive-dashboard) .player-management-table tbody tr:hover td:first-child,
  main.container:not(.archive-dashboard) .player-management-table td:first-child{border-left:0}
  main.container:not(.archive-dashboard) .player-management-table td{
    display:grid;
    grid-template-columns:minmax(6.2rem,34%) minmax(0,1fr);
    gap:.65rem;
    align-items:center;
    min-height:44px;
    padding:.65rem .75rem;
    border:0;
    border-bottom:1px solid #e3eaed;
    text-align:left;
  }
  main.container:not(.archive-dashboard) .player-management-table td:last-child{border-bottom:0}
  .player-management-table td::before{
    content:attr(data-label);
    color:#607782;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.03em;
  }
  .player-management-table td.empty{display:block;padding:1.5rem;text-align:center}
  .player-management-table td.empty::before{display:none}
  .player-management-table td>*{min-width:0;max-width:100%}
  .player-management-table td input:not([type="checkbox"]),
  .player-management-table td select{width:100%}
  .player-management-table .actions,.player-management-table .player-actions{align-items:start}
  .player-management-table .actions>*{margin:0 .55rem .35rem 0}
  .player-management-table .player-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .player-management-table .player-action-grid form,.player-management-table .player-action-grid button{width:100%}
  .player-management-table .account-fields{display:grid;gap:.5rem}
  .player-management-table .account-fields label{display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:.4rem;align-items:center}
  main.container:not(.archive-dashboard) .player-table-wrap{
    overflow:visible;
    border:0;
    box-shadow:none;
    background:transparent;
  }

  .record-edit-dialog{width:calc(100vw - 1rem);height:calc(100dvh - 1rem);max-height:none;border-radius:10px}
  .record-edit-dialog .dialog-head{height:52px}
  .record-edit-frame{height:calc(100% - 52px)}
  .embedded-record-editor main.container{padding:.55rem}
  .embedded-record-editor .page-head{padding:.45rem .6rem!important}
  .embedded-record-editor .page-head h1{font-size:1.45rem!important}
  .embedded-record-editor .panel.form-grid{padding:.75rem;gap:.7rem}
  .deleted-record-detail-dialog{width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem);border-radius:10px}
  .deleted-record-detail-body{max-height:calc(100dvh - 62px);padding:.7rem}
  .deleted-record-meta,.deleted-record-fields{grid-template-columns:minmax(6.3rem,36%) minmax(0,1fr)}
}

@media(max-width:390px){
  .filter-date-range{grid-template-columns:minmax(0,1fr) 1rem minmax(0,1fr)}
  .filter-date-range .date-picker{grid-template-columns:minmax(0,1fr) 40px}
  .filter-date-range .date-picker-button,.filter-date-range .date-picker-native{width:40px!important}
  .filter-date-range .date-input{font-size:.8rem;padding-inline:.45rem}
  .player-management-table .player-action-grid{grid-template-columns:1fr}
  main.container:not(.archive-dashboard)>.tabs,
  main.container:not(.archive-dashboard) .tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* 页面领域配色：遗宝=金色宝箱，秘藏=朱红藏宝图，盟车=青绿马车 */
.archive-records{--section-accent:var(--green);--section-soft:#e9f3f1;--section-ink:#205f59}
.archive-fortune{--section-accent:#b98a24;--section-soft:#fbf4df;--section-ink:#785714}
.archive-treasure{--section-accent:#b84a4f;--section-soft:#faecec;--section-ink:#83383c}
.archive-cart,.archive-passenger{--section-accent:#287e75;--section-soft:#e5f2ef;--section-ink:#1d635c}
.archive-stats{--section-accent:#2f6f91;--section-soft:#e8f1f6;--section-ink:#234f69}
.archive-admin-page{--section-accent:#8f3c42;--section-soft:#f7ecec;--section-ink:#6e2f34}
.archive-profile-page{--section-accent:#326f83;--section-soft:#e8f1f4;--section-ink:#28596a}

body[class*="archive-"] main.container:not(.archive-dashboard)>.page-head{
  border-left-color:var(--section-accent,var(--green));
  background:
    linear-gradient(90deg,rgba(255,255,255,.98),color-mix(in srgb,var(--section-soft,#e9f2f3) 72%,white));
}
body[class*="archive-"] main.container:not(.archive-dashboard)>.page-head::after{background:var(--section-accent,var(--amber))}
body[class*="archive-"] main.container:not(.archive-dashboard)>.page-head .eyebrow{color:var(--section-ink,var(--green))}
body[class*="archive-"] main.container:not(.archive-dashboard) .panel{border-top-color:var(--section-accent,var(--green))}
body[class*="archive-"] main.container:not(.archive-dashboard) .panel::before{background:var(--section-accent,var(--amber))}
body[class*="archive-"] main.container:not(.archive-dashboard) .filters,
body[class*="archive-"] main.container:not(.archive-dashboard) .advanced-filters{
  border-left-color:var(--section-accent,var(--green));
  background:linear-gradient(100deg,var(--section-soft,#e9f2f3),#f8fafb 72%);
}
body[class*="archive-"] main.container:not(.archive-dashboard) input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus,
body[class*="archive-"] main.container:not(.archive-dashboard) select:focus{
  border-color:var(--section-accent,var(--green));
  box-shadow:0 0 0 3px color-mix(in srgb,var(--section-accent,var(--green)) 16%,transparent);
}
body[class*="archive-"] main.container:not(.archive-dashboard) .button.primary,
body[class*="archive-"] main.container:not(.archive-dashboard) button.primary{
  border-color:var(--section-ink,var(--navy));
  background:var(--section-ink,var(--navy));
}

/* 业务记录用一条识别带强化视觉差异，仍保留高密度表格的可读性 */
.archive-records main.container:not(.archive-dashboard) .table-wrap{border-top-color:var(--section-accent)}
.archive-records main.container:not(.archive-dashboard) .table-wrap th{
  border-bottom-color:color-mix(in srgb,var(--section-ink) 82%,black);
  background:linear-gradient(180deg,color-mix(in srgb,var(--section-ink) 88%,white),var(--section-ink));
}
.archive-records main.container:not(.archive-dashboard) .table-wrap tbody tr:hover{
  background:color-mix(in srgb,var(--section-soft) 78%,white);
}
.archive-records main.container:not(.archive-dashboard) .table-wrap tbody tr:hover td:first-child{border-left-color:var(--section-accent)}
.page-title-with-icon{display:flex;align-items:center;gap:.55em}
.page-title-with-icon .metric-icon{
  display:grid;
  place-items:center;
  flex:0 0 1.05em;
  width:1.05em;
  height:1.05em;
  margin:0;
  color:var(--section-accent,var(--navy));
}
.page-title-with-icon .metric-icon svg{width:100%;height:100%;stroke-width:1.65}
.page-title-with-icon .metric-icon-chest{color:#b98a24}
.page-title-with-icon .metric-icon-map{color:#b84a4f}
.page-title-with-icon .metric-icon-cart{color:#287e75}
.archive-stats .page-title-with-icon .metric-icon-total{color:#2f6f91}

/* 当前菜单项：底纹、粗下边线和 aria-current 三者同步 */
.topbar .navlinks a{position:relative}
.topbar .navlinks a.active,.topbar .navlinks a[aria-current="page"]{color:#fff;background:rgba(255,255,255,.09)}
.topbar .navlinks a.active::after,.topbar .navlinks a[aria-current="page"]::after{
  content:"";position:absolute;left:.45rem;right:.45rem;bottom:-.62rem;height:3px;background:var(--amber);
}
main.container:not(.archive-dashboard)>.tabs a.active,
main.container:not(.archive-dashboard)>.tabs a[aria-current="page"],
main.container:not(.archive-dashboard)>.page-head+.tabs a.active,
main.container:not(.archive-dashboard)>.page-head+.tabs a[aria-current="page"]{
  border-color:var(--section-accent,var(--navy));
  background:var(--section-soft,#e8f1f4);
  color:var(--section-ink,var(--navy));
  box-shadow:inset 0 -3px 0 var(--section-accent,var(--navy));
  font-weight:800;
}

/* 管理区采用“公文档案”式分区，目录复选框保持正常控件尺度 */
.archive-admin-page main.container:not(.archive-dashboard)>.tabs{border-left-color:var(--section-accent)}
.archive-admin-page main.container:not(.archive-dashboard)>.tabs a:hover{background:var(--section-ink);border-color:var(--section-ink)}
.archive-admin-page main.container:not(.archive-dashboard) .table-wrap{border-top-color:var(--section-accent)}
.archive-admin-page main.container:not(.archive-dashboard) .table-wrap th{
  background:linear-gradient(180deg,#294d60,#1b3c4e);
}
.archive-catalog-page input[type="checkbox"]{
  width:1rem!important;height:1rem!important;min-width:1rem!important;min-height:1rem!important;
  max-width:1rem!important;max-height:1rem!important;margin-inline:.2rem!important;
}
.archive-catalog-page .filters label{min-width:max-content;padding:.35rem .55rem;border:1px solid #d2dde2;border-radius:4px;background:#fff}

/* 统计与玩家档案页使用更平静的靛蓝信息层级 */
.archive-stats main.container:not(.archive-dashboard) .table-wrap{border-top-color:var(--section-accent)}
.archive-stats main.container:not(.archive-dashboard) .table-wrap th{background:linear-gradient(180deg,#2e6680,#214e65)}
.archive-stats main.container:not(.archive-dashboard)>.tabs,
.archive-stats main.container:not(.archive-dashboard)>.page-head+.tabs{border-left-color:var(--section-accent)}
.archive-profile-page .metric{background:linear-gradient(155deg,#fff 58%,var(--section-soft))}
.archive-profile-page main.container:not(.archive-dashboard) .profile{border-top:3px solid var(--section-accent)}

@media(max-width:700px){
  .page-title-with-icon .metric-icon{flex-basis:.9em;width:.9em;height:.9em}
  body[class*="archive-"] main.container:not(.archive-dashboard)>.page-head{background:linear-gradient(90deg,#fff,var(--section-soft,#e9f2f3))}
}

@media(max-width:420px){
  .dashboard-metrics,.management-metrics{grid-template-columns:1fr 1fr;gap:.55rem}
  .dashboard-metrics .metric{min-height:150px}.metric .metric-label{font-size:.8rem}
  .archive-item-summary>header{display:block}.archive-item-summary header p{margin-top:.35rem;text-align:left}
  .profile{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* 全站档案台组件语言：业务页、统计页与管理页 */
input[type="checkbox"],input[type="radio"]{
  display:inline-block!important;
  flex:0 0 1.05rem!important;
  width:1.05rem!important;
  height:1.05rem!important;
  min-width:1.05rem!important;
  min-height:1.05rem!important;
  max-width:1.05rem!important;
  max-height:1.05rem!important;
  margin:.1rem .45rem .1rem 0!important;
  padding:0!important;
  border:1px solid #9fb3bd!important;
  border-radius:3px!important;
  box-shadow:none!important;
  vertical-align:-.12rem;
  accent-color:var(--green);
}

main.container:not(.archive-dashboard){position:relative;isolation:isolate}
main.container:not(.archive-dashboard)::before{
  content:"";
  position:absolute;
  z-index:-1;
  top:1.1rem;
  right:1.2rem;
  width:285px;
  height:150px;
  background:url('/img/alliance-archive-cabinet.png') right top/contain no-repeat;
  opacity:.055;
  pointer-events:none;
}
main.container:not(.archive-dashboard)>.page-head{
  min-height:118px;
  padding:1.15rem 1.4rem 1.35rem 1.7rem;
  border:1px solid #cbd9df;
  border-left:6px solid var(--green);
  border-radius:7px;
  background:linear-gradient(90deg,rgba(255,255,255,.97),rgba(237,244,246,.9));
  box-shadow:0 8px 24px rgba(18,55,72,.06);
}
main.container:not(.archive-dashboard)>.page-head::after{left:1.7rem;bottom:-1px;width:7rem;background:var(--amber)}
main.container:not(.archive-dashboard)>.page-head h1{
  color:var(--navy);
  font-family:"STSong","Songti SC","SimSun",serif;
  font-size:clamp(2rem,4vw,3rem);
  letter-spacing:.025em;
}
main.container:not(.archive-dashboard)>.page-head .eyebrow{color:var(--green);font-size:.8rem;letter-spacing:.12em}

main.container:not(.archive-dashboard)>.tabs,
main.container:not(.archive-dashboard)>.page-head+.tabs{
  gap:.2rem;
  padding:.42rem;
  border:1px solid #cbd9df;
  border-left:4px solid var(--red);
  border-radius:6px;
  background:rgba(255,255,255,.92);
  box-shadow:0 5px 16px rgba(18,55,72,.045);
}
main.container:not(.archive-dashboard)>.tabs a,
main.container:not(.archive-dashboard)>.page-head+.tabs a{
  border-color:transparent;
  background:transparent;
  padding:.58rem .86rem;
}
main.container:not(.archive-dashboard)>.tabs a:hover,
main.container:not(.archive-dashboard)>.page-head+.tabs a:hover{
  border-color:var(--navy);
  background:var(--navy);
  color:#fff;
}

main.container:not(.archive-dashboard) .panel{
  position:relative;
  overflow:hidden;
  border-top:3px solid var(--green);
  border-radius:7px;
  background:rgba(255,255,255,.975);
}
main.container:not(.archive-dashboard) .panel::before{content:none}
main.container:not(.archive-dashboard) .panel h2{
  display:flex;
  align-items:center;
  gap:.65rem;
  margin-bottom:1rem;
  color:var(--navy);
  font-family:"STSong","Songti SC","SimSun",serif;
  font-size:1.35rem;
}
main.container:not(.archive-dashboard) .panel h2::before{
  content:"";
  width:.36rem;
  height:1.2rem;
  background:var(--red);
  box-shadow:.48rem 0 0 rgba(190,151,55,.4);
}

main.container:not(.archive-dashboard) .filters,
main.container:not(.archive-dashboard) .advanced-filters{
  border-color:#c7d8de;
  border-left:4px solid var(--section-accent,var(--green));
  background:linear-gradient(90deg,var(--section-soft,#e9f2f3),#f5f8f9);
}
main.container:not(.archive-dashboard) .filters label{display:inline-flex;align-items:center;gap:.2rem}

/* Operation audit and exact player-id filtering */
.button-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.58rem .9rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);white-space:nowrap}
.button-link:hover{text-decoration:none;border-color:var(--blue)}.button-link.danger{border-color:#b8565c;color:#8c3038;background:#fff7f7}
.operation-log-filters{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}
.operation-log-filters>*{width:100%;min-width:0!important}.operation-log-filters .audit-date-range{grid-column:span 2}
.operation-log-actions{display:flex;align-items:center;gap:.65rem;justify-content:flex-start}
.operation-log-filters button,.operation-log-filters .button-link{width:auto;justify-self:start}
.status-pill{display:inline-flex;padding:.16rem .52rem;border-radius:999px;font-weight:700;font-size:.82rem}.status-pill.success{background:#e3f2eb;color:#27684f}.status-pill.error{background:#f9e6e8;color:#8e343e}
.status-pill.warning{background:#fff1d8;color:#7a5717}.merit-page{--section-accent:#8a6a1d}.merit-page .panel{border-top:3px solid rgba(138,106,29,.65)}.merit-page textarea{width:100%;resize:vertical;border:1px solid #cbd7de;border-radius:9px;background:#fff;padding:.65rem .7rem;color:var(--ink);font:inherit}.merit-page .section-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.merit-page .section-heading h2{margin-bottom:.25rem}.merit-page .section-heading p{margin:.2rem 0;color:var(--muted)}.merit-commit{margin-top:1.2rem}.merit-player-filter select{min-width:220px}.inline-form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.inline-form select,.inline-form input{border:1px solid #cbd7de;border-radius:9px;padding:.55rem .65rem;background:#fff}
@media(max-width:700px){.merit-page .section-heading{display:block}.merit-player-filter select{min-width:0}.merit-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:0}.detail-grid>div{padding:.7rem;border-bottom:1px solid var(--line)}.detail-grid .wide{grid-column:1/-1}.detail-grid dt,.snapshot-list dt{font-size:.8rem;color:var(--muted)}.detail-grid dd,.snapshot-list dd{margin:.22rem 0 0;overflow-wrap:anywhere}
.audit-snapshot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.snapshot-list{display:grid;gap:.35rem;margin:0}.snapshot-list>div{display:grid;grid-template-columns:minmax(130px,.6fr) minmax(0,1fr);gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--line)}.rollback-expected{border-color:#bf8b35}.rollback-status{border-left:4px solid #b8565c}
.player-admin-filters{display:grid!important;grid-template-columns:1fr 1fr 1.8fr .8fr .8fr auto auto}.player-admin-filters>*{width:100%;min-width:0!important}
@media(max-width:900px){.operation-log-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.operation-log-filters .audit-date-range{grid-column:1/-1}.player-admin-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-snapshot-grid,.detail-grid{grid-template-columns:1fr}.detail-grid .wide{grid-column:auto}}
@media(max-width:600px){.operation-log-filters,.player-admin-filters{grid-template-columns:1fr}.operation-log-filters .audit-date-range{grid-column:1/-1}.operation-log-actions{width:100%}.operation-log-actions button,.operation-log-actions .button-link{flex:1;width:auto}.snapshot-list>div{grid-template-columns:1fr}.audit-summary{padding-inline:.9rem}}
main.container:not(.archive-dashboard) input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
main.container:not(.archive-dashboard) select{
  border-color:#b8cbd3;
  background:#fff;
}
main.container:not(.archive-dashboard) input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus,
main.container:not(.archive-dashboard) select:focus{
  border-color:var(--section-accent,var(--green));
  box-shadow:0 0 0 3px color-mix(in srgb,var(--section-accent,var(--green)) 18%,transparent);
}

/* Read-only batch player roster comparison */
.player-batch-entry{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.8rem 0;padding:.8rem 1rem;border:1px solid #c8d8df;border-left:4px solid var(--red);border-radius:10px;background:#fff}
.player-batch-entry>div{display:grid;gap:.18rem}.player-batch-entry span,.batch-upload-panel p,.section-heading p,.batch-file-meta{color:var(--muted)}
.batch-upload-form{display:flex;align-items:stretch;gap:.75rem}.file-drop{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex:1;min-height:50px;padding:.55rem .8rem;border:1px dashed #9db5c0;border-radius:9px;background:#f8fbfc}.file-drop>span{display:grid;gap:.12rem;min-width:12rem}.file-drop small{color:var(--muted);font-size:.78rem;font-weight:500;overflow-wrap:anywhere}.file-drop input{max-width:55%}.file-drop:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(55,112,142,.12)}
.batch-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:1rem 0}.batch-summary article{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.8rem 1rem;border:1px solid var(--line);border-top:3px solid #78909c;border-radius:9px;background:#fff}.batch-summary strong{font-size:1.55rem}.batch-summary .success{border-top-color:var(--green)}.batch-summary .missing{border-top-color:var(--red)}.batch-summary .warning{border-top-color:#b78a2d}
.batch-file-meta{margin:.35rem 0 1rem}.batch-file-meta span{white-space:nowrap}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.section-heading h2,.section-heading p{margin-top:0}.batch-result-actions{display:flex;gap:.6rem;white-space:nowrap}.batch-copy-feedback{display:block;min-height:1.4rem;color:var(--green);font-weight:700}.batch-missing-panel{border-left:4px solid var(--red)}
.batch-detail{padding:0;overflow:hidden}.batch-detail>summary{cursor:pointer;padding:1rem;font-weight:800}.batch-detail>.table-wrap,.batch-detail>.ambiguous-list{margin:0;border-top:1px solid var(--line)}.ambiguous-list{display:grid;gap:.7rem;padding:1rem}.ambiguous-list article{padding:.75rem;border:1px solid var(--line);border-radius:8px}.ambiguous-list h3{margin:0}.ambiguous-list p{color:var(--muted)}
@media(max-width:900px){.batch-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.batch-upload-form,.section-heading{align-items:stretch;flex-direction:column}.file-drop input{max-width:60%}}
@media(max-width:600px){.player-batch-entry{align-items:stretch;flex-direction:column}.batch-summary{grid-template-columns:1fr 1fr}.batch-upload-form{display:grid}.file-drop{align-items:flex-start;flex-direction:column}.file-drop input{max-width:100%;width:100%}.batch-result-actions{display:grid;grid-template-columns:1fr 1fr}.batch-result-actions button{min-width:0}.batch-summary article{padding:.65rem}.batch-summary strong{font-size:1.3rem}}

main.container:not(.archive-dashboard) .table-wrap{
  border-top:3px solid var(--navy);
  border-radius:6px;
  box-shadow:0 10px 30px rgba(18,55,72,.075);
}

/* 2026-11-03 attendance directories, player state clarity and roster-result consistency */
.player-status-stack{display:grid;gap:.45rem;align-content:center;min-width:10.5rem}
.player-status-stack .state-check,.read-only-state{display:flex;align-items:center;gap:.45rem;color:var(--ink);font-weight:700;white-space:nowrap}
.player-status-stack .read-only-state input:disabled{opacity:1;filter:none;accent-color:var(--green)}
.player-status-stack .read-only-state input:not(:checked)+span{color:#8c3b42}
.profile-state-action{min-height:0;width:max-content;border:0;background:transparent;padding:.1rem 0;color:var(--blue);font-weight:700;text-decoration:underline;text-underline-offset:.2rem}
.profile-state-action:hover{border:0;background:transparent;color:var(--red);transform:none}

.attendance-filterbar{border-left:4px solid var(--attendance-accent);background:#f4f8fa}
.attendance-filterbar form{flex:1}
.attendance-player-filters{display:grid;grid-template-columns:minmax(20rem,1fr) auto;gap:.8rem;align-items:center}
.attendance-filter-toggles{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;flex-wrap:wrap}
.attendance-player-filters .attendance-client-filter{display:grid;grid-template-columns:minmax(15rem,1fr) auto;align-items:center;gap:.7rem;margin-left:0}
.attendance-player-filters .attendance-client-filter input{width:100%;min-width:0}
.attendance-filterbar .attendance-alliance-filter{display:grid;grid-template-columns:auto minmax(10rem,1fr);align-items:center;gap:.65rem;min-height:44px;padding:.35rem .45rem .35rem .75rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}
.attendance-filterbar .attendance-alliance-filter select{width:100%;min-width:0;border:0;background:#fff;box-shadow:none}
.attendance-filterbar .state-check{min-height:44px;padding:.55rem .75rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}
.attendance-filterbar .state-check input{width:1.05rem;height:1.05rem;accent-color:var(--green)}
.attendance-directory-panel{padding:0;overflow:hidden;border-top:3px solid var(--green)}
.attendance-directory-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;cursor:pointer;color:var(--navy);font-size:1.05rem;font-weight:800;list-style-position:inside}
.attendance-directory-panel>summary small{color:var(--muted);font-size:.82rem;font-weight:600}
.attendance-directory-panel[open]>summary{border-bottom:1px solid var(--line);background:#f5f9f8}
.attendance-directory-content{display:grid;gap:1.2rem;padding:1.2rem 1.25rem}
.attendance-directory-content section+section{padding-top:1.1rem;border-top:1px solid var(--line)}
.attendance-directory-content h2{margin-top:0;color:var(--navy)}
.attendance-directory-panel .inline-form{display:grid;grid-template-columns:minmax(12rem,1fr) minmax(12rem,1.5fr) minmax(10rem,1fr) auto;gap:.7rem}
.attendance-admin-list article{flex-wrap:wrap;border-left:3px solid var(--green)}
.attendance-admin-list article.is-archived{border-left-color:#a4792b;background:#fcfaf3}
.attendance-admin-list article.is-deleted{border-left-color:var(--red);background:#fbf4f4}
.directory-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.directory-actions form{margin:0}
.directory-actions .quiet{border:1px solid #9eb2bc;background:#fff;color:var(--navy);padding:.5rem .75rem}
.directory-state{border-radius:999px;padding:.25rem .55rem;background:#e4f0eb;color:#1f654f;font-size:.78rem;font-weight:800;white-space:nowrap}
.is-archived .directory-state{background:#f5ead0;color:#78591d}
.directory-count{color:var(--muted);font-size:.8rem;white-space:nowrap}
.deleted-record-summary{display:flex;align-items:center;gap:1rem;flex:1;flex-wrap:wrap;color:var(--ink)}
.deleted-record-summary span{color:var(--muted)}
.attendance-audit-panel>summary{color:var(--navy);font-weight:800;cursor:pointer;padding:.2rem 0}
.attendance-audit-panel .quiet{border:1px solid #9eb2bc;background:#fff;color:var(--navy);opacity:1}
.attendance-audit-panel .quiet:hover{border-color:var(--blue);background:#f4fafc;color:var(--blue-dark)}
.attendance-audit-panel .quiet:disabled{border-color:#c8d3d9;background:#edf1f3;color:#667985;opacity:1}
.attendance-batch-form{display:grid;grid-template-columns:minmax(12rem,1.2fr) minmax(10rem,.8fr) minmax(8rem,.65fr) minmax(13rem,1.2fr);align-items:end;gap:.75rem;padding-top:.15rem}
.attendance-merit-filter{display:grid;grid-template-columns:minmax(13rem,1fr) minmax(14rem,1fr) auto auto;align-items:end;gap:.75rem;padding:.85rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft)}
.attendance-merit-filter label{display:grid;gap:.35rem;color:var(--navy);font-weight:800}
.attendance-merit-filter label>span{font-size:.82rem}
.attendance-merit-filter input,.attendance-merit-filter select{width:100%;min-width:0;background:#fff;color:var(--ink)}
.attendance-merit-filter .date-picker,.merit-page .date-picker{width:100%;min-width:0;max-width:none}
.attendance-filter-count{align-self:center;min-width:4rem;color:var(--muted);font-size:.9rem;text-align:center;white-space:nowrap}
.attendance-batch-form label{display:grid;gap:.35rem;color:var(--navy);font-weight:800}
.attendance-batch-form label>span{font-size:.82rem}
.attendance-batch-form select,.attendance-batch-form input{width:100%;min-width:0;border:1px solid var(--line);background:#fff;color:var(--ink);box-shadow:none}
.attendance-batch-form button{min-height:48px}
.attendance-batch-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:flex-end;gap:.65rem;flex-wrap:wrap}
.attendance-batch-form [data-attendance-selected]{grid-column:1/-1}
.attendance-candidate-sources{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:1rem}
.attendance-candidate-source{min-width:0;padding:1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft)}
.attendance-directory-content .attendance-candidate-source+.attendance-candidate-source{padding-top:1rem;border-top:1px solid var(--line)}
.attendance-candidate-source h3{margin:0 0 .75rem;color:var(--navy)}
.attendance-candidate-source>p{margin:-.25rem 0 .85rem;color:var(--muted);font-size:.88rem}
.attendance-candidate-source .attendance-merit-filter{padding:0;border:0;background:transparent;grid-template-columns:1fr 1fr}
.attendance-candidate-source .attendance-merit-filter button,.attendance-candidate-source .attendance-filter-count{align-self:end;min-height:46px}
.attendance-compare-upload{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:.75rem}
.attendance-compare-upload fieldset{display:grid;gap:.55rem;min-width:0;margin:0;padding:.75rem;border:1px solid var(--line);border-radius:8px;background:#fff}
.attendance-compare-upload legend{padding:0 .25rem;color:var(--navy);font-size:.84rem;font-weight:800}
.attendance-compare-upload select,.attendance-compare-upload input{width:100%;min-width:0}
.attendance-compare-upload .file-picker{display:grid;gap:.35rem;color:var(--muted);font-size:.78rem}
.attendance-compare-preview{padding:1rem;border:1px solid #c9d9d2;border-radius:var(--radius-sm);background:#f6faf8}
.attendance-directory-content .attendance-compare-preview{padding-top:1rem;border-top:1px solid #c9d9d2}
.attendance-compare-preview .section-heading{align-items:flex-start}
.attendance-compare-counts,.attendance-compare-toolbar{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.attendance-compare-counts span{padding:.35rem .55rem;border-radius:999px;background:#e4f0eb;color:#1f654f;font-size:.78rem;font-weight:800}
.attendance-compare-toolbar{margin:.75rem 0}
.attendance-compare-toolbar strong{margin-left:auto;color:var(--navy)}
.attendance-compare-table td:first-child,.attendance-compare-table th:first-child{text-align:center}
.attendance-compare-table tr.compare-negative td{background:#fbf0f0}
.attendance-compare-table tr.compare-missing_baseline td,.attendance-compare-table tr.compare-missing_after td,.attendance-compare-table tr.compare-unmatched td,.attendance-compare-table tr.compare-ambiguous td{background:#fcf7eb}

.attendance-page .section-heading p,.merit-page .section-heading p{max-width:58rem;line-height:1.55}
.attendance-page label>span,.merit-page label>span{letter-spacing:0}
.merit-page .form-grid,.merit-page .filters{font-family:"Microsoft YaHei UI","Noto Sans CJK SC",system-ui,sans-serif}
.merit-page .form-grid label>span,.merit-page .merit-attendance-filter label>span{color:var(--navy);font-size:.84rem;font-weight:750}
.merit-attendance-filter{display:grid;grid-template-columns:minmax(13rem,1fr) minmax(13rem,1fr) minmax(15rem,1.2fr) minmax(13rem,1fr) auto;align-items:end;gap:.75rem}
.merit-attendance-filter label{display:grid;gap:.35rem;min-width:0}
.merit-attendance-filter input,.merit-attendance-filter select{width:100%;min-width:0}

.roster-action-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:.85rem}
.roster-action-list>article{padding:1rem;border:1px solid var(--line);border-left:3px solid var(--red);border-radius:10px;background:#fff;box-shadow:0 5px 16px rgba(24,59,80,.06)}
.roster-action-list>article>header{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding-bottom:.65rem;border-bottom:1px solid var(--line)}
.roster-action-list>article>header span{color:var(--muted);font-size:.82rem}
.roster-action-list details{margin-top:.65rem;border:1px solid var(--line);border-radius:8px;background:#f8fafb}
.roster-action-list details>summary{padding:.7rem .8rem;color:var(--navy);font-weight:750;cursor:pointer}
.roster-action-list details[open]>summary{border-bottom:1px solid var(--line)}
.roster-action-list details form,.roster-action-list details p{margin:.75rem}

@media(max-width:900px){
  .attendance-directory-panel .inline-form{grid-template-columns:1fr 1fr}
  .attendance-settings{align-items:stretch}
  .attendance-batch-form{grid-template-columns:1fr 1fr}
  .attendance-merit-filter{grid-template-columns:1fr 1fr}
  .attendance-player-filters{grid-template-columns:1fr}
  .attendance-filter-toggles{justify-content:flex-start}
  .merit-attendance-filter{grid-template-columns:1fr 1fr}
  .attendance-candidate-sources{grid-template-columns:1fr}
  .attendance-compare-upload{grid-template-columns:1fr 1fr}
  .attendance-compare-upload>.primary{grid-column:1/-1}
}
@media(max-width:700px){
  .attendance-filterbar{align-items:stretch}
  .attendance-filterbar form{display:grid;grid-template-columns:1fr}
  .attendance-directory-panel>summary{align-items:flex-start;flex-direction:column}
  .attendance-directory-panel .inline-form{grid-template-columns:1fr}
  .attendance-batch-form{grid-template-columns:1fr}
  .attendance-merit-filter{grid-template-columns:1fr}
  .attendance-player-filters .attendance-client-filter{grid-template-columns:1fr}
  .attendance-filter-toggles{display:grid;grid-template-columns:1fr}
  .attendance-batch-actions{display:grid;grid-template-columns:1fr;width:100%}
  .attendance-batch-actions button{width:100%}
  .merit-attendance-filter{grid-template-columns:1fr}
  .directory-actions{width:100%}
  .directory-actions form,.directory-actions button{width:100%}
  .player-status-stack{min-width:0}
  .roster-action-list{grid-template-columns:1fr}
  .attendance-compare-upload{grid-template-columns:1fr}
  .attendance-compare-upload>.primary{grid-column:auto}
  .attendance-compare-toolbar{display:grid;grid-template-columns:1fr}
  .attendance-compare-toolbar strong{margin-left:0}
}
main.container:not(.archive-dashboard) .table-wrap th{
  border-bottom-color:#315d70;
  background:linear-gradient(180deg,#214e62,#173f52);
  color:#f6fafb;
  letter-spacing:.055em;
}
main.container:not(.archive-dashboard) .table-wrap tbody tr:nth-child(even){background:#f4f8f9}
main.container:not(.archive-dashboard) .table-wrap tbody tr:hover{background:#e9f3f4}
main.container:not(.archive-dashboard) .table-wrap td:first-child{border-left:3px solid transparent}
main.container:not(.archive-dashboard) .table-wrap tbody tr:hover td:first-child{border-left-color:var(--amber)}

.metric:has(.metric-icon-cart){border-top-color:var(--green)}
.metric:has(.metric-icon-map){border-top-color:var(--red)}
.metric:has(.metric-icon-chest){border-top-color:var(--amber)}
.metric:has(.metric-icon-crown){border-top-color:#2d7198}
.metric:has(.metric-icon-people){border-top-color:#377a94}
.metric:has(.metric-icon-total){border-top-color:#778d99}

main.container:not(.archive-dashboard) .pagination.numbered .active{
  background:var(--navy);
  border-color:var(--navy);
  color:#fff;
}

@media(max-width:700px){
  main.container:not(.archive-dashboard)::before{width:190px;height:110px;right:0;opacity:.045}
  main.container:not(.archive-dashboard)>.page-head{min-height:98px;padding:.9rem 1rem 1rem 1.15rem}
  main.container:not(.archive-dashboard)>.page-head h1{font-size:2rem}
  main.container:not(.archive-dashboard)>.tabs{overflow-x:auto;flex-wrap:nowrap}
  main.container:not(.archive-dashboard)>.tabs a{flex:0 0 auto;white-space:nowrap}
}
