:root{font-family:Inter,"Microsoft YaHei",sans-serif;color:#18202a;background:#edf2f7;line-height:1.5}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 10% 0,#dcecff,transparent 35%),radial-gradient(circle at 95% 10%,#ffe4ec,transparent 30%),#edf2f7}.shell{max-width:1120px;margin:auto;padding:40px 20px 80px}header,.title-row,nav{display:flex;align-items:center;justify-content:space-between;gap:18px}header{margin-bottom:26px}h1,h2,p{margin-top:0}h1{font-size:32px;margin-bottom:0}h2{font-size:20px;margin-bottom:16px}.eyebrow{font-size:11px;letter-spacing:.2em;color:#637083}.pill{padding:7px 12px;border-radius:99px;background:#fff9;box-shadow:0 8px 30px #52607418;font-size:13px}.pill.ok{color:#087b54}.pill.bad{color:#b42f42}.card{background:#ffffffc9;border:1px solid #fff;box-shadow:0 18px 55px #42536b1c;backdrop-filter:blur(20px);border-radius:22px;padding:24px;margin-bottom:20px}.narrow{max-width:430px;margin:80px auto}label{display:grid;gap:7px;color:#5c6877;font-size:13px}input,select,button{font:inherit;border-radius:12px;border:1px solid #d8e0e9;padding:11px 13px;background:#fff;color:#18202a}input:focus,select:focus{outline:2px solid #3487ff55;border-color:#3487ff}button{border:0;background:#1677ff;color:white;font-weight:650;cursor:pointer}button:hover{filter:brightness(.97)}button:disabled{opacity:.48;cursor:not-allowed}button.ghost,.tab{background:#fff;color:#526071;border:1px solid #dce4ed}button.danger{color:#b42f42}.tab.active{background:#18202a;color:#fff;border-color:#18202a}form:not(.inline){display:grid;gap:16px}.inline,.button-row{display:flex;gap:10px;align-items:center}.inline input{min-width:220px}nav{justify-content:flex-start;margin-bottom:20px}nav #logout{margin-left:auto}.panel{display:none}.panel.active{display:block}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.account{padding:17px;border:1px solid #e2e8ef;border-radius:15px;background:#fff}.account h3{margin:0 0 4px}.account .actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.account button{padding:8px 10px;font-size:13px}.status{font-size:12px;color:#738091}.form-grid{grid-template-columns:1fr 1fr}.wide{grid-column:1/-1}.note{font-size:13px;color:#768293;margin:12px 0 0}.error-text{color:#a43a4a;overflow-wrap:anywhere}.list{display:grid;gap:10px;margin-top:18px}.row{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:12px;align-items:center;background:#fff;border:1px solid #e2e8ef;padding:13px 15px;border-radius:13px;font-size:14px}.row small{color:#778392;overflow-wrap:anywhere}.row button{padding:7px 9px;font-size:12px}.screen-link{color:#1677ff;text-decoration:none;font-size:13px}.modal{position:fixed;inset:0;background:#10203080;display:grid;place-items:center;padding:20px;z-index:20}.modal[hidden]{display:none}.modal-box{width:min(620px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:22px;padding:24px}.modal img{display:block;max-width:100%;max-height:480px;margin:15px auto;border-radius:12px}#toast{position:fixed;right:24px;bottom:24px;z-index:30;max-width:380px;padding:12px 16px;border-radius:12px;background:#18202a;color:#fff;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:none}@media(max-width:700px){.shell{padding:24px 12px}.title-row{align-items:flex-start;flex-direction:column}.inline{width:100%;flex-direction:column;align-items:stretch}.inline input{min-width:0}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.row{grid-template-columns:1fr}.card{padding:18px}header{align-items:flex-start}nav{overflow:auto}.button-row{flex-wrap:wrap}}

.field{display:grid;gap:7px;color:#5c6877;font-size:13px}.contact-picker{position:relative}.contact-trigger{width:100%;min-height:46px;text-align:left;background:#fff;color:#18202a;border:1px solid #d8e0e9;font-weight:500;display:flex;align-items:center;justify-content:space-between}.contact-trigger:after{content:"⌄";color:#738091}.contact-menu{position:absolute;left:0;right:0;top:calc(100% + 7px);z-index:15;background:#fff;border:1px solid #d8e0e9;border-radius:14px;box-shadow:0 18px 45px #24344c2c;padding:10px}.contact-menu[hidden]{display:none}.contact-toolbar{display:flex;gap:7px;padding-bottom:9px;border-bottom:1px solid #edf1f5}.contact-toolbar button{padding:7px 9px;font-size:12px}.contact-options{max-height:280px;overflow:auto;padding:7px 2px}.contact-option{display:flex;grid-template-columns:none;align-items:center;gap:10px;padding:9px 8px;border-radius:9px;color:#26313e;cursor:pointer}.contact-option:hover{background:#f1f6ff}.contact-option input{width:17px;height:17px;margin:0;padding:0;accent-color:#1677ff}.contact-option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:700px){.contact-menu{position:fixed;left:12px;right:12px;top:auto;bottom:18px;max-height:70vh}.contact-options{max-height:48vh}}
.auth-card{max-width:460px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:22px;padding:5px;border-radius:14px;background:#eef3f8}.auth-tab{background:transparent;color:#657284;border:0}.auth-tab.active{background:#fff;color:#18202a;box-shadow:0 8px 22px #52607418}.user-chip{margin-left:auto;padding:8px 12px;border-radius:99px;background:#ffffffb8;border:1px solid #fff;color:#425064;font-size:13px;white-space:nowrap}nav #logout{margin-left:0}@media(max-width:700px){.user-chip{display:none}}
.product-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.product-status-card{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid #e1e8f0;border-radius:16px;background:#fff}.product-status-card h3{margin:0 0 5px}.product-status-card p{margin:0}.product-badge{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;color:#fff;font-size:20px;font-weight:800}.product-badge.douyin{background:#151821}.product-badge.weibo{background:#ff6b35}.cdk-redeem-form{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin-top:18px}.cdk-redeem-form button{min-height:46px}.product-expiry{margin:8px 0 0;font-size:13px;color:#087b54}.product-expiry.expired{color:#b42f42}.platform-placeholder{border-style:dashed}.platform-soon{padding:7px 11px;border-radius:99px;background:#eef3f8;color:#697688;font-size:12px}.empty-platform{padding:18px;border:1px dashed #d6dee8;border-radius:14px;color:#778392;background:#fff8}.cdk-code-list{display:grid;gap:8px;margin:16px 0}.cdk-code{display:block;padding:11px 13px;border-radius:10px;background:#101722;color:#d8f7e7;overflow-wrap:anywhere;user-select:all}.subheading{font-size:15px;margin:22px 0 10px}.cdk-row{display:grid;grid-template-columns:1.6fr .8fr .8fr .9fr;gap:10px;align-items:center;padding:12px 14px;border:1px solid #e2e8ef;border-radius:12px;background:#fff;font-size:13px}.cdk-row code{overflow-wrap:anywhere}.cdk-row small{color:#778392}.expired{color:#b42f42!important}@media(max-width:700px){.product-status-grid{grid-template-columns:1fr}.cdk-redeem-form{grid-template-columns:1fr}.cdk-row{grid-template-columns:1fr}.product-status-card{align-items:flex-start}}

.password-field{position:relative;display:flex;align-items:center}.password-field input{width:100%;padding-right:44px}.password-toggle{position:absolute;right:7px;width:34px;height:34px;padding:0;border-radius:10px;background:transparent;color:#7a8797;border:0;font-size:16px;display:grid;place-items:center}.password-toggle span{position:relative;width:18px;height:12px;border:2px solid currentColor;border-radius:50%/60%;display:block}.password-toggle span:after{content:"";position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:50%;background:currentColor;transform:translate(-50%,-50%)}.password-toggle:hover,.password-toggle.active{background:#eef4fb;color:#1677ff;filter:none}.text-button{justify-self:end;background:transparent;color:#5f6f82;padding:0;border-radius:0;font-weight:500;font-size:13px}.text-button:hover{color:#1677ff;filter:none}.password-modal-box{max-width:480px}.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.guide-grid article{padding:18px;border:1px solid #e1e8f0;border-radius:16px;background:#fff}.guide-grid h3{margin:0 0 8px;font-size:16px}.guide-grid p{margin:0;color:#677587;font-size:14px}.privacy-note{color:#8a96a5;font-size:12px;white-space:nowrap}@media(max-width:700px){.guide-grid{grid-template-columns:1fr}.password-modal-box{width:100%}}

.task-edit-modal-box{max-width:520px}.task-edit-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0;padding:14px 16px;border:1px solid #e1e8f0;border-radius:14px;background:#f8fbff;color:#637083;font-size:14px}.task-edit-summary b{color:#18202a}.task-edit-modal-box form{margin-top:16px}@media(max-width:700px){.task-edit-summary{grid-template-columns:1fr}}

.task-actions{flex-wrap:wrap;justify-content:flex-end}

.reminder-summary{padding:8px 12px;border-radius:99px;background:#eef5ff;color:#32659a;font-size:13px;white-space:nowrap}.reminder-product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.reminder-product{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px;border:1px solid #e2e8ef;border-radius:16px;background:#fff}.reminder-product h3{margin:0 0 6px}.reminder-product p{margin:0;color:#738091;font-size:13px}.reminder-product.due{border-color:#f1b64a;background:#fffaf0}.reminder-product.due strong{color:#b66b00;font-size:13px;white-space:nowrap}.switch-row{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 4px}.switch-row input{width:18px;height:18px;margin:0}.reminder-form{margin-top:8px}@media(max-width:700px){.reminder-product-grid{grid-template-columns:1fr}.reminder-summary{white-space:normal}}

.platform-line{display:flex;align-items:center;margin-bottom:8px}.platform-mini{display:inline-flex;align-items:center;justify-content:center;min-width:38px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:750;line-height:1.3;vertical-align:middle}.platform-mini.douyin{background:#171b24;color:#fff}.platform-mini.weibo{background:#fff0ea;color:#d94f1e;border:1px solid #ffd4c4}.account .platform-line+.account h3{margin-top:0}@media(max-width:700px){.platform-mini{min-width:36px}}
