:root{font-family:Inter,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#1d3446;background:#f4f7fa;font-synthesis:none;--blue:#147ac4;--muted:#7a8996;--line:#e7edf2}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}[hidden]{display:none!important}.topbar{height:92px;max-width:1240px;padding:0 48px;margin:auto;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:750;letter-spacing:-.3px}.brand small{font-size:12px;font-weight:500;color:var(--muted);margin-left:12px}.mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--blue);color:white;font-weight:700}.mark svg{fill:white;width:22px;height:22px}.topnote{font-size:12px;color:var(--muted)}.user-main{max-width:1144px;margin:52px auto 70px;padding:0 34px;display:grid;grid-template-columns:.78fr 1.22fr;gap:68px;align-items:start}.intro{padding-top:28px;position:sticky;top:50px}.eyebrow{text-transform:uppercase;color:var(--blue);font-size:12px;letter-spacing:1.7px;font-weight:700}.intro h1{font-size:50px;font-weight:780;line-height:1.3;letter-spacing:-1.8px;margin:21px 0 24px}.intro h1 span{color:var(--blue)}.intro p{line-height:1.9;font-size:15px;color:#718391}.workspace{display:grid;gap:24px}.panel{background:#fff;border:1px solid var(--line);border-radius:22px;padding:30px;box-shadow:0 8px 28px #16334d04}.panel-heading{display:flex;gap:16px;margin-bottom:25px;align-items:flex-start}.step-label{width:33px;height:33px;border-radius:10px;background:#eef6fd;color:var(--blue);font-size:12px;font-weight:700;display:grid;place-items:center;flex-shrink:0}h2{font-size:19px;letter-spacing:-.4px;margin:0;font-weight:740}.panel-heading p{margin:7px 0 0;color:var(--muted);font-size:12px;line-height:1.6}label{display:block;font-size:13px;font-weight:650;margin-bottom:9px}input,textarea,select{border:1px solid #dce5ed;background:#fafcfe;border-radius:10px;color:#1d3446;outline:none;width:100%;padding:13px 14px;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1378c611}input{height:48px}#card-code{font:13px ui-monospace,Consolas,monospace;letter-spacing:.3px}input::placeholder{color:#a3b0bb;letter-spacing:0}textarea{resize:vertical;line-height:1.8;font-family:ui-monospace,Consolas,monospace;font-size:12px;overflow-wrap:anywhere}.primary,.secondary{border:0;border-radius:10px;padding:14px 18px;font-size:13px;font-weight:650;display:flex;justify-content:center;align-items:center;gap:10px;min-height:46px;transition:background .15s}.primary{color:white;background:var(--blue);box-shadow:0 4px 10px #147ac417}.primary:hover{background:#0966ae}.secondary{background:#edf5fb;color:var(--blue)}form>.primary{width:100%;margin-top:15px}.primary span{margin-left:auto;font-size:19px}form>.primary:first-child{margin:0}.notice{font-size:13px;line-height:1.7;color:#c14f45;margin:12px 0 0}.notice:empty{display:none}.notice.success{color:#298268}.fineprint{border-top:1px solid var(--line);margin-top:23px;padding-top:20px;display:flex;gap:8px;align-items:center;color:#8999a6;font-size:11px}.dot{height:5px;width:5px;background:#4e9ecf;border-radius:50%;flex-shrink:0}.result-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:21px}.small{font-size:10px;letter-spacing:1.2px;display:block;margin-bottom:7px}.badge{display:inline-block;white-space:nowrap;border-radius:30px;background:#e7f6ef;color:#278465;padding:6px 10px;font-size:11px;font-weight:600}.badge.neutral{color:#7c8997;background:#f0f4f7}.badge.expired{color:#a26c36;background:#fff2e3}.badge.danger{color:#b55352;background:#ffefee}.stats{display:grid;grid-template-columns:1.1fr 1fr;gap:15px;background:#f7fafd;border-radius:12px;padding:16px;margin-bottom:21px}.stats span{display:block;font-size:11px;color:#8c9aa6;margin-bottom:8px}.stats strong{font-size:13px;font-weight:660}.actions{display:flex;gap:10px;margin-top:13px}.actions>*{flex:1}.hint{color:#8998a5;font-size:11px;line-height:1.8;margin:12px 0 0}.text-button{background:none;border:none;color:var(--blue);font-size:12px;padding:5px 0}.text-button:hover{text-decoration:underline}#refresh{margin-top:9px}.steps{list-style:none;padding:0;margin:0;display:grid;gap:23px}.steps li{display:flex;gap:15px}.steps li>span{height:24px;width:24px;display:grid;place-items:center;color:#93a5b3;border:1px solid #dfe7ed;border-radius:50%;font-size:10px;flex-shrink:0}.steps strong{font-size:13px;font-weight:650}.steps p{font-size:12px;color:#8998a4;margin:7px 0 0;line-height:1.8}.tip{font-size:11px;line-height:1.9;color:#7793a9;background:#f4f9fd;border-radius:10px;margin-top:25px;padding:13px 15px}footer{max-width:1144px;margin:auto;padding:25px 34px 40px;border-top:1px solid #e7edf2;color:#a1adb7;font-size:11px;letter-spacing:.3px}footer span{margin:0 8px}.admin-main{max-width:1200px;margin:40px auto 65px;padding:0 34px}.login{max-width:430px;margin:85px auto;padding:36px}.login h1{margin:15px 0;font-size:30px}.subtext{color:var(--muted);line-height:1.8;font-size:13px}.login form{margin-top:28px}.admin-intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px}.admin-intro h1{font-size:33px;margin:12px 0}.summary{padding:20px;border:1px solid var(--line);border-radius:14px;background:white;font-size:13px;white-space:nowrap}.create-form{display:grid;grid-template-columns:1.1fr 1.1fr .65fr 1.25fr;gap:20px;align-items:end}.input-group{display:flex}.input-group input{border-radius:10px 0 0 10px;min-width:0}.input-group select{width:80px;flex-shrink:0;border-left:0;border-radius:0 10px 10px 0;padding:10px}.optional{font-size:10px;color:#9aa9b5;font-weight:400;margin-left:5px}.create-form .create-button{grid-column:4;margin:0}.created{background:#f6faff;border-radius:12px;padding:18px;margin-top:20px}.created .result-heading{margin-bottom:12px;font-size:13px}.card-list{margin-top:25px}.count{font-size:11px;padding:3px 8px;background:#f0f4f7;border-radius:8px;color:#7e909e;margin-left:5px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{color:#91a0ac;font-weight:500;border-bottom:1px solid var(--line);padding:14px 12px;white-space:nowrap}td{padding:17px 12px;border-bottom:1px solid #edf2f6;color:#657e90;vertical-align:middle}th:first-child,td:first-child{padding-left:0}th:last-child,td:last-child{padding-right:0}td:first-child{min-width:310px}.code-button{font-family:ui-monospace,Consolas,monospace;color:#345e7a;font-size:11px;border:0;background:transparent;padding:0;text-align:left;cursor:pointer;white-space:nowrap}.code-button:hover{color:var(--blue)}.card-label{font-size:11px;color:#a0aeba;margin-top:6px}.delete-button{color:#bc655f;white-space:nowrap}.empty{text-align:center;color:#9aa9b5;padding:42px}.date{white-space:nowrap;font-size:11px}body.admin{min-height:100vh}
@media(max-width:850px){.user-main{grid-template-columns:1fr;gap:30px;margin:20px auto 45px;max-width:590px}.intro{position:static;padding:0}.intro h1{font-size:38px;margin:14px 0 15px}.intro h1 br{display:none}.intro p{font-size:13px;margin:0}.topbar{padding:0 26px;height:78px}.topnote{display:none}.create-form{grid-template-columns:1fr 1fr}.create-form .create-button{grid-column:1/-1}.admin-intro{display:block}.summary{display:inline-block;margin-top:7px}.admin-main{padding:0 24px}.brand small{display:none}}@media(max-width:460px){.user-main{padding:0 20px}.topbar{padding:0 20px}.panel{padding:23px;border-radius:17px}.intro h1{font-size:33px;letter-spacing:-1px}.intro p br{display:none}.stats{grid-template-columns:1fr;gap:17px}.actions{flex-direction:column}.brand{font-size:16px}.mark{width:33px;height:33px;border-radius:10px}.login{margin:40px auto;padding:27px}.create-form{grid-template-columns:1fr;gap:16px}.admin-main{padding:0 16px}.admin-main .panel{padding:20px}.admin-intro h1{font-size:30px}footer{padding-left:20px;padding-right:20px}}
