:root{font-family:Inter,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#64394f;background:#fff6fa;font-synthesis:none;--accent:#bf467b;--muted:#927183;--line:#f1d9e5}*{box-sizing:border-box}body{margin:0}header{max-width:1180px;margin:auto;padding:28px 36px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{text-decoration:none;color:inherit;display:flex;align-items:center;gap:10px;font-size:22px;font-weight:650}.logo{background:#64394f;color:white;border-radius:10px;padding:4px 10px;font-size:26px}.subbrand{font-size:14px;color:var(--muted);border-left:1px solid #e9c6d7;padding-left:14px;margin-left:5px;font-weight:400}.badge{font-size:12px;background:#fce4ee;padding:8px 12px;border-radius:30px;color:#a04971}main{max-width:1180px;padding:0 36px;margin:auto}.intro{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:54px 0 40px}.eyebrow{font-size:11px;letter-spacing:2.4px;font-weight:700;color:var(--accent);margin:0 0 15px}h1{font-size:44px;line-height:1.3;letter-spacing:-1.5px;font-weight:600;margin:0 0 16px}p{line-height:1.7}.muted{color:var(--muted);font-size:14px;margin:8px 0}.clockbox{display:flex;flex-direction:column;align-items:flex-end;gap:12px;font-size:12px;color:var(--muted)}.clockbox strong{font-size:48px;color:#64394f;font-weight:400;font-variant-numeric:tabular-nums;letter-spacing:-2px}.sectionhead{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:12px 0 20px}h2{font-size:19px;font-weight:600;margin:0}.small{font-size:10px;font-weight:500;letter-spacing:1.6px;color:#a67b91;margin-left:12px}button{font:inherit;font-size:13px;cursor:pointer;border-radius:8px;padding:11px 17px;transition:background .15s,transform .15s}button:hover{transform:translateY(-1px)}button:focus-visible,a:focus-visible{outline:3px solid #ee94ba;outline-offset:3px}.primary{background:var(--accent);color:white;border:1px solid var(--accent)}.primary:hover{background:#a93768}.secondary{background:white;border:1px solid #efcddd;color:#9a4e72}.windows{display:grid;grid-template-columns:1fr 1fr;gap:22px}.window{border:1px solid var(--line);border-radius:16px;background:white;padding:27px 30px;position:relative;overflow:hidden}.window:first-child{background:#f9d5e6;color:#71334f;border-color:#f9d5e6}.window:first-child .muted,.window:first-child .small,.window:first-child .meta{color:#965d77}.windowtop{display:flex;justify-content:space-between;align-items:center}.windowtop h3{font-size:17px;font-weight:500;margin:0}.tag{font-size:11px;background:#fff0f6;color:#a56683;border-radius:30px;padding:5px 10px}.window:first-child .tag{background:#f3b8d1;color:#813651}.remaining{margin:24px 0 14px;display:flex;align-items:baseline;gap:9px}.remaining strong{font-size:55px;line-height:1.1;font-weight:450;font-variant-numeric:tabular-nums}.remaining span{font-size:13px;opacity:.65}.bar{background:#f8e2ec;height:5px;border-radius:5px;overflow:hidden}.bar div{background:#e88db5;height:100%;transition:width .3s}.window:first-child .bar{background:#f0bad2}.window:first-child .bar div{background:#ca588a}.meta{display:flex;justify-content:space-between;margin-top:27px;padding-top:18px;border-top:1px solid #f6e4ed;font-size:12px;color:#976e83}.window:first-child .meta{border-color:#eab5cd}.timer{font-size:22px;margin-top:7px;font-variant-numeric:tabular-nums;color:#a54371}.window:first-child .timer{color:#983a67}.resetdate{font-size:12px;margin-top:8px;opacity:.7}.syncnote{font-size:12px;color:#9b7489;margin:15px 0 0}.cards-section{margin-top:42px}.empty{border:1px dashed #eebed4;border-radius:14px;padding:35px;text-align:center;color:#9d7187;background:#fff0f6}.empty strong{display:block;color:#aa557e;font-weight:500;margin:8px 0}.empty p{font-size:13px;margin:5px}.cardrow{display:flex;align-items:center;gap:18px;padding:20px 24px;background:white;border:1px solid var(--line);border-radius:12px;margin-bottom:10px}.cardicon{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;background:#ffe8f1;color:#c36893;border-radius:10px;font-size:20px}.cardinfo{flex:1;min-width:0}.cardinfo strong{font-size:15px;font-weight:600;overflow-wrap:anywhere}.cardinfo p{font-size:12px;color:#957086;margin:4px 0 0;overflow-wrap:anywhere}.cardtime{text-align:right;min-width:160px}.cardtime strong{font-size:16px;font-weight:500;font-variant-numeric:tabular-nums}.cardtime small{display:block;font-size:11px;color:#a1798f;margin-top:5px}.cardrow.expired{opacity:.65}.cardrow.soon .cardtime{color:#b94e76}.rowactions{display:flex;gap:4px}.icon{padding:8px;background:transparent;color:#a77991;border:0;font-size:18px}.textbutton{background:transparent;border:0;color:#af638a;padding:8px;font-size:12px}.storage{margin-top:38px;padding:24px 28px;background:#fce7f0;display:flex;justify-content:space-between;align-items:center;gap:15px;border-radius:12px}.storage strong{font-size:14px;font-weight:500}.storage p{font-size:12px;color:#956e82;margin:6px 0 0}.actions{display:flex;gap:8px;flex-shrink:0}footer{display:flex;justify-content:space-between;gap:15px;padding:28px 0;font-size:10px;letter-spacing:1px;color:#a17c90}dialog{border:1px solid #efcddd;border-radius:17px;padding:30px;width:min(640px,calc(100% - 30px));color:#64394f;background:#fffafd}dialog::backdrop{background:#62304455;backdrop-filter:blur(4px)}.modalhead{display:flex;align-items:center;justify-content:space-between}.modalhead .eyebrow{margin-bottom:8px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:22px}fieldset{border:1px solid var(--line);border-radius:10px;padding:15px}legend{font-size:14px;font-weight:600}label{display:block;font-size:13px;color:#9a5f7e;margin-top:16px}input{display:block;width:100%;padding:11px;border:1px solid #efcddd;border-radius:7px;font:inherit;color:#793e5c;background:white;margin-top:7px;min-width:0}input:focus{outline:2px solid #e68bb2;outline-offset:1px}.hint{color:#9d768b;font-size:12px}.modalactions{display:flex;justify-content:flex-end;gap:9px;margin-top:25px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#64394f;color:#fff4f9;font-size:13px;padding:12px 22px;border-radius:9px;display:none;max-width:90%;z-index:10}@media(max-width:750px){header{padding:20px}.subbrand{display:none}main{padding:0 20px}.intro{padding:35px 0;align-items:flex-start;flex-direction:column;gap:20px}h1{font-size:34px}.clockbox{align-items:flex-start;gap:5px}.clockbox strong{font-size:34px}.windows{grid-template-columns:1fr}.window{padding:24px}.small{display:none}.storage{flex-direction:column;align-items:flex-start;padding:22px}.cardrow{flex-wrap:wrap;padding:18px;gap:12px}.cardtime{text-align:left;padding-left:54px;flex:1}.rowactions{margin-left:auto}.formgrid{grid-template-columns:1fr}footer{flex-direction:column;line-height:1.8}.badge{font-size:10px}.sectionhead{align-items:center}button{padding:10px 12px}.sectionhead .muted{font-size:12px}.remaining strong{font-size:48px}}

/* 樱花粉主题 */
body{background:radial-gradient(ellipse at 8% 15%,#ffe4f180,transparent 48%),radial-gradient(ellipse at 95% 52%,#f8deef75,transparent 45%),#fff6fa}::selection{background:#f6b9d3;color:#67334c}.logo{background:linear-gradient(145deg,#d96c9d,#b84b7b);box-shadow:0 5px 14px #c1588920;border-radius:14px}.badge{border:1px solid #f4d3e2}.window{border-radius:22px;box-shadow:0 8px 30px #bb699b0a}.window:first-child{background:linear-gradient(125deg,#fbd8e8,#f9e0ef);border-color:#f0c6da}.window:nth-child(2){background:linear-gradient(140deg,#fff,#fff7fb)}.window:first-child .remaining span{opacity:.85}.primary{border-radius:13px;box-shadow:0 4px 12px #be467b20}.secondary{border-radius:13px;background:#fffafd}.bar{height:6px}.bar div{background:linear-gradient(90deg,#efb4d0,#da72a3)}.window:first-child .bar div{background:linear-gradient(90deg,#df81ad,#bd477c)}.cardrow{border-radius:17px;box-shadow:0 5px 20px #ba71950a}.cardicon{border-radius:13px}.empty{background:linear-gradient(120deg,#fff0f7,#fff8fc);border-radius:20px}.storage{border:1px solid #f2d5e3;border-radius:20px;background:linear-gradient(110deg,#fce6f0,#fff0f7)}dialog{border-radius:22px;box-shadow:0 20px 70px #9a577933}input{border-radius:10px}.eyebrow{color:#b4487b}.brand{color:#86415f}.clockbox strong{color:#a44e77}
.storage .actions{flex-wrap:wrap;justify-content:flex-end;max-width:55%}.badge.error{background:#ffe2e9;color:#a33461}button:disabled{opacity:.5;cursor:wait}@media(max-width:750px){.storage .actions{max-width:100%;justify-content:flex-start}}
[hidden]{display:none!important}
.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.header-actions #account-name{font-size:12px;color:var(--muted)}.access-note{font-size:12px;color:#a15b80;margin:12px 0 0}#login-dialog{max-width:430px}#login-error{background:#ffe6ee;border-radius:10px;padding:10px 12px;color:#a33461;font-size:13px}#login-dialog .modalactions .primary{min-width:100px}@media(max-width:750px){header{flex-wrap:wrap;gap:16px}.header-actions{width:100%;justify-content:flex-start;gap:10px}.header-actions .badge{margin-right:auto}}
.admin-link{color:#a24470;font-size:13px;text-decoration:none;padding:8px 0}.admin-link:hover{text-decoration:underline}#register-dialog{max-width:470px}.form-error{background:#ffe6ee;border-radius:10px;padding:10px 12px;color:#a33461;font-size:13px}.admin-intro{padding-bottom:24px}.admin-intro h1{font-size:36px}.admin-panel{background:#fffafd;border:1px solid var(--line);border-radius:22px;padding:25px}.user-search{margin-bottom:24px}.user-search label{margin:0}.user-search>div{display:flex;gap:10px;max-width:480px;align-items:center}.user-search input{margin-top:6px}.user-search button{flex-shrink:0}.user-table-wrap{overflow:auto}.user-table{border-collapse:collapse;width:100%;min-width:760px;font-size:13px}.user-table th{text-align:left;color:var(--muted);font-weight:500;padding:15px 12px;background:#fff0f7}.user-table td{padding:18px 12px;border-bottom:1px solid var(--line)}.user-table td small{display:block;color:var(--muted);font-size:11px;margin-top:6px}.role-pill{display:inline-block;background:#fceaf2;border-radius:24px;padding:5px 10px;color:#a55d80}.role-admin{background:#f5cedf;color:#8c375e}.user-actions{display:flex;gap:3px;flex-wrap:wrap}.danger{color:#b83a62}.protected-user{font-size:12px;color:var(--muted)}.pagination{display:flex;gap:16px;align-items:center;justify-content:flex-end;margin-top:24px;font-size:13px}.empty-users{text-align:center;color:var(--muted)}#user-action-dialog{max-width:460px}@media(max-width:750px){.admin-panel{padding:18px}.admin-intro h1{font-size:30px}.pagination{justify-content:center}.user-table{min-width:690px}}
