:root{color:#10203f;background:#eef6ff;font-family:Aptos,PingFang SC,Microsoft YaHei,Noto Sans CJK SC,ui-sans-serif,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #10203f;--muted: #63748f;--line: #d8e6fb;--surface: rgba(255, 255, 255, .9);--surface-solid: #ffffff;--surface-strong: #edf6ff;--surface-tint: #f7fbff;--accent: #2563eb;--accent-strong: #1d4ed8;--accent-deep: #123a8f;--accent-soft: #dbeafe;--accent-faint: #eff6ff;--cyan: #0ea5e9;--danger: #dc2626;--danger-soft: #fee2e2;--success: #0f766e;--success-soft: #ccfbf1;--gold: #d97706;--gold-soft: #fef3c7;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 22px;--shadow-panel: 0 22px 60px rgba(37, 99, 235, .12);--shadow-hover: 0 30px 80px rgba(29, 78, 216, .18);--shadow-button: 0 12px 28px rgba(37, 99, 235, .25)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(135deg,rgba(219,234,254,.86),transparent 38%),linear-gradient(180deg,#f8fbff,#eef6ff 46%,#eaf3ff)}body:before{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;content:"";background-image:linear-gradient(rgba(37,99,235,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(37,99,235,.045) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.72),transparent 78%);mask-image:linear-gradient(180deg,rgba(0,0,0,.72),transparent 78%)}button,input,select{font:inherit}a{color:inherit}#app{position:relative;z-index:1}.shell{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;gap:30px;height:100vh;overflow-y:auto;padding:24px;color:#f8fbff;background:linear-gradient(180deg,rgba(96,165,250,.18),transparent 26%),linear-gradient(180deg,#0f4fd8,#123a8f 48%,#08245f);border-right:1px solid rgba(191,219,254,.24);box-shadow:22px 0 56px #2563eb2e}.sidebar:after{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;content:"";background:linear-gradient(120deg,rgba(255,255,255,.12),transparent 34%)}.sidebar>*{position:relative;z-index:1}.brand{display:flex;align-items:center;gap:13px}.brand strong{display:block;font-size:18px;line-height:1.2}.brand span,.muted{color:var(--muted);font-size:13px}.sidebar .brand span{color:#bfdbfe}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:17px;color:#f8fbff;background:linear-gradient(135deg,#60a5fa,#2563eb 58%,#1d4ed8);box-shadow:inset 0 -10px 22px #0c26623d,0 14px 34px #60a5fa59}.nav{display:grid;gap:10px}.nav a,.ghost-button,.primary-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:var(--radius-sm);cursor:pointer;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,color .18s ease,border-color .18s ease}.nav a{justify-content:flex-start;padding:12px 13px;color:#dbeafe}.nav a:hover{color:#fff;background:#ffffff1f;transform:translate(3px)}.nav a.router-link-active{color:#0f2f76;background:#ffffffeb;box-shadow:0 14px 34px #0f2f7638}.logout{margin-top:auto}.account-box{display:grid;gap:12px;margin-top:auto;padding-top:18px;border-top:1px solid rgba(219,234,254,.22)}.account-user{display:flex;align-items:center;gap:10px;min-width:0;color:#f8fbff}.account-user div{min-width:0}.account-user strong,.account-user span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-user span{margin-top:2px;color:#bfdbfe;font-size:12px}.account-box .logout{width:100%;margin-top:0}.main{min-width:0;min-height:100vh;padding:36px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;animation:pageIn .36s ease both}.eyebrow{margin:0 0 8px;color:var(--accent);font-weight:800;font-size:12px;letter-spacing:0;text-transform:uppercase}h1{margin:0;color:#0b1f48;font-size:clamp(30px,4vw,50px);line-height:1}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px;animation:panelIn .42s .04s ease both}.metrics>div,.upload-band,.table-wrap,.config-note,.empty-panel,.config-card,.create-user,.login-panel,.share-panel{border:1px solid rgba(147,197,253,.36);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.metrics>div{position:relative;min-height:110px;overflow:hidden;padding:20px}.metrics>div:after{position:absolute;right:-30px;bottom:-48px;width:116px;height:116px;content:"";background:linear-gradient(135deg,#60a5fa29,#2563eb00);transform:rotate(24deg)}.metrics span{display:block;margin-bottom:10px;color:var(--muted);font-size:13px}.metrics strong{color:#0b1f48;font-size:28px}select,input{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fffffff0;color:var(--ink);outline:none;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}select:focus,input:focus{border-color:#2563eb9e;background:#fff;box-shadow:0 0 0 4px #2563eb1f}.upload-band{display:grid;gap:14px;padding:18px;margin-bottom:20px;animation:panelIn .42s .08s ease both}.upload-options{display:grid;grid-template-columns:minmax(160px,1fr) minmax(140px,180px);align-items:center;gap:12px}.check-line{display:inline-flex;align-items:center;gap:9px;color:var(--muted);font-size:13px;font-weight:800}.check-line input{width:16px;min-height:16px;accent-color:var(--accent)}.upload-target{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;min-height:112px;border:1.5px dashed #60a5fa;border-radius:20px;background:linear-gradient(135deg,#dbeafef2,#eff6ffad),#eff6ff;color:var(--accent-strong);font-weight:800;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background-color .2s ease}.upload-target:hover{border-color:var(--accent);background:linear-gradient(135deg,#dbeafe,#f8fbff);box-shadow:0 18px 46px #2563eb29;transform:translateY(-2px)}.upload-target input{position:absolute;inline-size:1px;block-size:1px;opacity:0}.progress{height:9px;margin-top:12px;overflow:hidden;border-radius:999px;background:#dbeafe}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--cyan),var(--accent));background-size:180% 100%;animation:progressFlow 1.2s linear infinite}.table-wrap{overflow-x:auto;animation:panelIn .42s .12s ease both}table{width:100%;min-width:1080px;border-collapse:collapse}.files-table{table-layout:fixed}.files-table .col-size{width:120px}.files-table .col-time{width:230px}.files-table .col-share{width:330px}.files-table .col-actions{width:192px}th,td{padding:16px;border-bottom:1px solid rgba(216,230,251,.92);text-align:left;vertical-align:middle}th{color:#526987;font-size:12px;font-weight:800;text-transform:uppercase;background:#eff6ffad}td{transition:background-color .16s ease}tbody tr:hover td{background:#eff6ff9e}td strong,td code{display:block;overflow-wrap:anywhere}td strong{color:#132445}tr:last-child td{border-bottom:0}.actions-cell,.actions-head{width:192px;min-width:192px;text-align:right;white-space:nowrap}.action-group{display:inline-flex;justify-content:flex-end;gap:8px;min-width:max-content}.ghost-button{padding:10px 14px;color:var(--accent-strong);background:#eaf4ff;border:1px solid rgba(147,197,253,.42)}.sidebar .ghost-button{color:#f8fbff;background:#ffffff24;border:1px solid rgba(219,234,254,.16)}.primary-button{min-height:46px;padding:0 18px;color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8 68%,#1e40af);box-shadow:var(--shadow-button);font-weight:800}.primary-button:hover,.ghost-button:hover,.icon-button:hover{transform:translateY(-2px)}.primary-button:hover{box-shadow:0 16px 36px #2563eb52}.primary-button:disabled{cursor:not-allowed;opacity:.65;transform:none}.icon-button{width:36px;height:36px;color:var(--accent-strong);background:#eff6ff;border:1px solid rgba(147,197,253,.34)}.icon-button:hover{background:#dbeafe;box-shadow:0 10px 24px #2563eb29}.icon-button.danger{color:var(--danger);background:#fff7f7;border-color:#f871713d}.share-pill,.status-pill{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:7px 10px;border-radius:999px;background:#eaf4ff;color:var(--accent-strong);border:1px solid rgba(147,197,253,.34)}.share-pill span{color:var(--muted);font-size:12px}.status-pill.on{background:var(--success-soft);color:var(--success);border-color:#14b8a638}.status-pill.off{background:var(--danger-soft);color:var(--danger);border-color:#f8717133}.error-text{padding:12px 14px;border-radius:var(--radius-md);background:var(--danger-soft);color:var(--danger);border:1px solid rgba(248,113,113,.22)}.success-text{padding:12px 14px;border-radius:var(--radius-md);background:var(--success-soft);color:var(--success);border:1px solid rgba(20,184,166,.22)}.empty,.empty-panel{color:var(--muted);text-align:center}.empty-panel{padding:28px}.config-note{display:flex;align-items:center;gap:10px;padding:14px 16px;margin-bottom:20px;color:var(--muted);font-size:14px;animation:panelIn .42s .04s ease both}.config-note svg{flex:0 0 auto;color:var(--accent-strong)}.config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.config-grid.readonly{margin-top:16px}.config-form{display:grid;gap:16px;animation:panelIn .42s .08s ease both}.config-card{padding:20px}.config-card header{display:flex;align-items:center;gap:10px;margin-bottom:16px;color:var(--accent-strong)}.config-card h2{margin:0;color:var(--ink);font-size:18px}.config-card dl{display:grid;gap:12px;margin:0}.config-card dl>div{display:grid;grid-template-columns:minmax(96px,.35fr) minmax(0,1fr);gap:12px;padding-top:12px;border-top:1px solid var(--line)}.config-card dt{color:var(--muted);font-size:13px;font-weight:800}.config-card dd{min-width:0;margin:0}.config-card dd strong{display:block;overflow-wrap:anywhere;font-size:14px}.config-card dd code{display:inline-block;max-width:100%;margin-top:5px;padding:4px 7px;overflow-wrap:anywhere;border-radius:10px;background:var(--accent-faint);color:var(--accent-strong);font-size:12px}.config-card.editable{box-shadow:var(--shadow-panel)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:800}.form-grid .check-line{align-content:center;align-items:center}.config-check{min-height:82px}.config-check span{grid-column:1 / -1}.form-grid label>span{color:var(--muted);font-size:12px;font-weight:500;overflow-wrap:anywhere}.config-warning{margin:14px 0 0;padding:11px 13px;border-radius:var(--radius-md);background:var(--gold-soft);color:var(--gold);font-size:13px;border:1px solid rgba(245,158,11,.18)}.config-actions{display:flex;justify-content:flex-end}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:20px;background:#0f2f766b;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal-panel{display:grid;gap:16px;width:min(100%,460px);padding:24px;border:1px solid rgba(147,197,253,.42);border-radius:var(--radius-lg);background:#fffffff0;box-shadow:0 32px 90px #0f2f7647;animation:modalIn .22s ease both}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.modal-head h2{max-width:330px;margin:0;overflow-wrap:anywhere;color:var(--ink);font-size:18px;line-height:1.35}.field-stack{display:grid;gap:8px;color:var(--muted);font-size:13px;font-weight:800}.ttl-shortcuts{display:flex;flex-wrap:wrap;gap:8px}.shortcut-button{min-height:38px;padding:0 13px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;color:var(--accent-strong);cursor:pointer;transition:transform .16s ease,background-color .16s ease,border-color .16s ease}.shortcut-button:hover{transform:translateY(-1px)}.shortcut-button.active{border-color:#2563eb6b;background:#dbeafe;font-weight:800}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.modal-panel .error-text{margin:0}.login-page,.share-page,.public-upload-page{display:grid;place-items:center;min-height:100vh;padding:24px;background:linear-gradient(135deg,rgba(219,234,254,.92),transparent 40%),linear-gradient(180deg,#f8fbff,#eaf3ff)}.login-panel,.share-panel,.public-upload-panel{width:min(100%,520px);padding:30px;animation:modalIn .28s ease both}.public-upload-panel{width:min(100%,760px)}.share-panel{width:min(100%,960px);padding:48px 56px 46px}.login-title{display:flex;align-items:center;gap:14px;margin-bottom:26px}.login-title p,.share-panel p{margin:8px 0 0;color:var(--muted)}.form-stack,.create-user{display:grid;gap:14px}.form-stack label,.create-user label{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:800}.create-user{grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) minmax(140px,180px) auto;align-items:end;padding:20px;margin-bottom:20px;animation:panelIn .42s .04s ease both}.public-entry{width:100%;margin-top:14px}.extract-box{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin-top:14px;padding-top:14px;border-top:1px solid rgba(147,197,253,.32)}.extract-box label{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:800}.extract-box .ghost-button{min-height:44px}.public-upload-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:16px;margin-bottom:22px}.public-upload-head h1{font-size:clamp(30px,5vw,46px)}.public-upload-head p{margin:8px 0 0;color:var(--muted)}.public-login-link{align-self:center}.public-upload-form{display:grid;gap:14px}.public-extract{margin-top:18px;margin-bottom:2px}.public-drop{min-height:160px}.selected-file,.share-result{border:1px solid rgba(147,197,253,.36);border-radius:var(--radius-lg);background:#eff6ffb8}.selected-file{display:flex;justify-content:space-between;gap:12px;padding:13px 15px;color:var(--muted)}.selected-file strong{min-width:0;overflow-wrap:anywhere;color:var(--ink)}.public-submit{width:100%}.share-result{display:grid;justify-items:center;gap:12px;margin-top:18px;padding:24px;text-align:center;animation:panelIn .28s ease both}.share-result>span{color:var(--muted);font-size:13px;font-weight:800}.share-result>strong{color:var(--accent-deep);font-size:52px;line-height:1;letter-spacing:0}.share-result p{max-width:100%;margin:0;overflow-wrap:anywhere;color:var(--muted)}.result-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.edit-check{align-self:start}.inline-select{width:auto;min-width:132px;min-height:38px;padding:7px 34px 7px 10px;border-radius:999px;font-size:13px;font-weight:800}.share-panel{text-align:center}.share-panel .brand-mark{width:62px;height:62px;margin:0 auto 22px;border-radius:20px}.share-panel h1{max-width:840px;margin:10px auto 0;font-size:clamp(32px,4vw,46px);line-height:1.12;overflow-wrap:anywhere;word-break:break-word}.share-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:32px auto;max-width:720px}.share-meta div{padding:20px;border-radius:18px;background:var(--surface-strong);border:1px solid rgba(147,197,253,.32)}.share-meta dt{color:var(--muted);font-size:12px}.share-meta dd{margin:6px 0 0;color:var(--ink);font-size:20px;font-weight:800;overflow-wrap:anywhere}.share-panel .primary-button{min-height:54px;padding:0 24px;border-radius:18px;font-size:18px}.warning-icon{color:var(--danger)}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes panelIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes modalIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes progressFlow{0%{background-position:0% 50%}to{background-position:180% 50%}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width: 860px){.shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;height:auto;overflow:visible;gap:14px;padding:16px}.brand span{display:none}.nav{display:flex;justify-content:flex-end;min-width:0;margin-left:0}.nav a{padding:10px 12px}.nav a:hover{transform:translateY(-1px)}.account-box{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-top:0;padding-top:12px}.account-box .logout{width:auto;min-height:40px}.main{padding:20px}.metrics,.create-user,.upload-options,.config-grid,.form-grid,.share-meta{grid-template-columns:1fr}}@media (max-width: 560px){.sidebar{gap:10px;padding:12px}.brand strong{display:none}.brand-mark{width:40px;height:40px;border-radius:14px}.nav{gap:6px;justify-content:stretch}.nav a{flex:1;padding:10px 8px;font-size:13px}.account-box{padding-top:10px}.account-user{flex:1}.account-box .logout{padding:0 12px}.page-head{flex-direction:column}h1{font-size:clamp(30px,10vw,42px)}.login-title{align-items:flex-start;flex-direction:column}.share-panel{padding:30px 22px}.share-panel h1{font-size:clamp(28px,9vw,42px)}.public-upload-head{grid-template-columns:1fr}.public-login-link{width:100%}.extract-box{grid-template-columns:1fr}.config-card dl>div{grid-template-columns:1fr;gap:6px}}
