:root{--brand: #2563eb;--brand-2: #3b82f6;--brand-soft: #eff6ff;--brand-grad: linear-gradient(135deg, #2563eb, #3b82f6);--bg: #f4f6fb;--surface: #ffffff;--text: #1f2937;--text-strong: #0f172a;--muted: #64748b;--border: #e8ecf3;--cn: #e11d48;--cn-soft: #ffe4ea;--us: #2563eb;--us-soft: #e0ecff;--green: #16a34a;--amber: #f59e0b;--danger: #ef4444;--danger-soft: #fff1f2;--radius: 12px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 10px 28px -14px rgba(16, 24, 40, .22)}*{box-sizing:border-box}body{margin:0;background-color:var(--bg);color:var(--text);font-family:-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;left:0;height:140px;background:linear-gradient(180deg,#e8efff,transparent);pointer-events:none;z-index:-1}h1,h2,h3{color:var(--text-strong);line-height:1.4}h1{margin:0 0 20px;font-size:22px;font-weight:700}h2{margin:0 0 14px;font-size:17px;font-weight:700}h3{margin:20px 0 8px;font-size:14px;font-weight:700;color:var(--muted)}h3:before{content:"";display:inline-block;width:4px;height:14px;margin-right:8px;border-radius:2px;background:var(--brand-grad);vertical-align:-2px}p{margin:0 0 12px}a{color:var(--brand);text-decoration:none}button,input,select,textarea{font:inherit}:focus-visible{outline:2px solid var(--brand-2);outline-offset:2px}[role=alert]{color:var(--danger)}.danger-text{color:var(--danger);font-size:13px}[aria-live]{color:var(--muted)}.state{margin:0;padding:56px 0;text-align:center;color:var(--muted)}.state[aria-live]:before{content:"";display:inline-block;width:14px;height:14px;margin-right:8px;vertical-align:-2px;border:2px solid var(--brand-soft);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}.report-area .state{text-align:left;padding:14px 0}@keyframes spin{to{transform:rotate(360deg)}}.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;height:56px;padding-inline:clamp(12px,2vw,24px);background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 1px 2px #1018280a}.brand{font-size:16px;font-weight:800;white-space:nowrap;text-decoration:none;background:var(--brand-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.site-nav{display:flex;align-items:center;gap:8px}.site-nav a{padding:6px 14px;border-radius:999px;color:var(--muted);font-weight:500;transition:background .15s ease,color .15s ease}.site-nav a:hover{background:var(--brand-soft);color:var(--brand)}.topbar-slot{display:flex;align-items:center;gap:14px;flex:1;min-width:0}.topbar-slot .switch{margin-bottom:0}.topbar-meta{display:inline-flex;align-items:center;gap:8px;min-width:0;color:var(--muted);font-size:13px}.topbar-meta:before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--brand)}.topbar-meta strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-strong);font-size:14px;font-weight:600}.topbar-meta time{flex:none}.page{max-width:960px;margin:0 auto;padding:24px 16px}.report-area{width:100%;padding:12px clamp(10px,2vw,24px) 24px}.report-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:6px 0 8px}.report-meta h2{display:flex;align-items:center;gap:8px;margin:0;font-size:17px;font-weight:700;color:var(--text-strong)}.report-meta h2:before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--brand)}.report-meta time{font-size:13px;color:var(--muted)}.report-frame{display:block;width:100%;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.switch{display:inline-flex;align-items:center;gap:2px;margin-bottom:10px;padding:3px;border:1px solid var(--border);border-radius:999px;background:var(--surface);box-shadow:0 1px 2px #1018280f}.switch button{padding:7px 20px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.switch button:hover{color:var(--brand)}.switch button.active{background:var(--brand-grad);color:#fff;box-shadow:0 4px 12px -4px #2563eb80}.history-layout{display:grid;grid-template-columns:minmax(102px,116px) minmax(0,1fr);gap:14px;align-items:start;width:100%;padding:14px clamp(10px,2vw,24px) 24px}.date-rail-col{min-width:0;align-self:stretch}.date-rail-col h1{margin:0 0 12px}.history-layout .report-area{width:100%;margin:0;padding:0}.date-rail{position:sticky;top:68px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.date-rail ul{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.date-rail button:not(.link-btn){display:block;width:100%;padding:7px 8px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:background .15s ease,color .15s ease}.date-rail button:not(.link-btn):not(.active):hover{background:var(--brand-soft);color:var(--brand)}.date-rail button.active{background:var(--brand-grad);color:#fff;font-weight:700;box-shadow:0 4px 10px -4px #2563eb80}.link-btn{display:block;width:100%;margin-top:6px;padding:6px;border:0;border-radius:8px;background:var(--brand-soft);color:var(--brand);font-size:12px;text-align:center;cursor:pointer;transition:background .15s ease,color .15s ease}.link-btn:hover{background:#dbeafe;color:#1d4ed8}.card{margin-bottom:20px;padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card ul{margin:0;padding:0;list-style:none}.card label{display:block;margin-bottom:12px;color:var(--muted);font-size:13px}.card input,.card select{display:block;width:100%;margin-top:6px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}.card input[type=file]{padding:6px 8px;background:var(--bg);cursor:pointer}.card input:focus,.card select:focus,.auth-card input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.flash{margin-bottom:12px;padding:8px 12px;border-left:3px solid var(--brand);border-radius:10px;background:var(--brand-soft);color:#1d4ed8;font-size:13px}.row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);font-size:14px}.row:hover{background:#fafbfe}.row:last-child{border-bottom:0}.row-main{flex:1;min-width:0;overflow-wrap:anywhere}.btn-primary{padding:8px 18px;border:0;border-radius:10px;background:var(--brand-grad);color:#fff;font-weight:600;cursor:pointer;box-shadow:0 4px 14px -6px #2563eb8c;transition:filter .15s ease,transform .15s ease}.btn-primary:hover{filter:brightness(1.05);transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:default;filter:none;transform:none;box-shadow:none}.btn-sm{padding:4px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--muted);font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.btn-sm:hover{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.btn-danger{border:0;border-radius:8px;background:var(--danger);color:#fff}.btn-danger:hover{border-color:var(--danger);background:#dc2626;color:#fff}form.card .btn-primary,.auth-card .btn-primary{width:100%}.auth-card{width:min(380px,calc(100% - 32px));margin:64px auto;padding:30px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.auth-card h1{margin:0 0 20px;font-size:18px;font-weight:700}.auth-card label{display:block;margin-bottom:12px;color:var(--muted);font-size:13px}.auth-card input{display:block;width:100%;margin-top:6px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}.admin-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px}.admin-head h1{margin:0}.admin-session{display:flex;align-items:center;gap:12px}.admin-session p{margin:0;color:var(--muted);font-size:14px}@media(max-width:780px){.history-layout{grid-template-columns:minmax(0,1fr);gap:12px;padding-top:16px}.date-rail{top:56px;display:flex;align-items:center;gap:6px}.date-rail ul{flex:1;min-width:0;flex-direction:row;gap:6px;overflow-x:auto;padding-bottom:2px}.date-rail button:not(.link-btn){width:auto;padding:6px 14px;border-radius:999px}.link-btn{flex:none;width:auto;margin-top:0;padding:6px 12px;border-radius:999px;white-space:nowrap}}.lang-menu{position:relative}.lang-trigger{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease}.lang-trigger:hover{background:var(--brand-soft);color:var(--brand)}.lang-caret{font-size:10px}.lang-panel{position:absolute;right:0;top:calc(100% + 8px);min-width:150px;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow)}.lang-item{display:block;width:100%;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.lang-item:hover{background:var(--brand-soft);color:var(--brand)}.lang-item.active{color:var(--brand);font-weight:700}
