:root{font-family:"Microsoft YaHei",system-ui,sans-serif;color:#182d4d;background:#f3f6fc;font-synthesis:none;--blue:#175bea;--muted:#7e8ca4;--line:#e7edf6}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a{cursor:pointer}button{border:0;border-radius:12px;padding:12px 18px;background:var(--blue);color:white;transition:.2s}button:hover{filter:brightness(.95);transform:translateY(-1px)}button:disabled{opacity:.5;cursor:wait}button.secondary{background:#edf3ff;color:var(--blue)}button.ghost{background:white;color:#65768f;border:1px solid var(--line)}input,select,textarea{width:100%;padding:12px;border:1px solid #dce4ef;border-radius:10px;color:#243c5b;background:white;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #175bea10}label{display:block;font-size:13px;color:#5f718b;margin:14px 0 7px}h1,h2,h3,p{margin-top:0}h1{font-size:30px}h2{font-size:22px}h3{font-size:16px}p{line-height:1.7}small,.muted{color:var(--muted)}.phone-shell{max-width:480px;min-height:100vh;margin:auto;background:#f7f9fd;position:relative;padding-bottom:90px;box-shadow:0 0 80px #18335b09}.header{padding:26px 24px 20px;background:white;display:flex;align-items:center;justify-content:space-between}.logo{font-weight:800;font-size:23px;letter-spacing:-1px}.logo b{color:#ec3d45;margin-right:7px}.capsule{border:1px solid #e7eaf0;border-radius:30px;padding:6px 16px;color:#24344b;font-size:15px}.content{padding:20px}.hero{border-radius:23px;padding:28px 24px;min-height:235px;color:white;background:linear-gradient(125deg,#1446c1,#2072fc);position:relative;overflow:hidden}.hero:after{content:'A+';position:absolute;right:-5px;bottom:-27px;font-size:165px;font-weight:900;color:#ffffff12;transform:rotate(-12deg)}.hero small{color:#c9dfff;letter-spacing:2px;font-size:11px}.hero h1{margin:16px 0 10px;font-size:29px;line-height:1.35;max-width:290px}.hero p{font-size:13px;color:#d8e7ff;max-width:270px}.hero button{background:white;color:var(--blue);font-weight:700;padding:11px 20px;position:relative;z-index:1}.section-head{display:flex;align-items:center;justify-content:space-between;margin:26px 0 14px}.section-head h2{margin:0;font-size:19px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.entry{background:white;padding:20px;border:1px solid #edf1f8;border-radius:17px;color:#243d60;text-align:left}.entry .icon{display:block;color:var(--blue);background:#edf4ff;border-radius:12px;width:42px;height:42px;line-height:42px;text-align:center;font-size:23px;margin-bottom:13px}.entry strong{display:block;font-size:17px}.entry small{display:block;margin-top:6px;font-size:11px}.card{background:white;border:1px solid #e9eef6;border-radius:17px;padding:20px;margin-bottom:14px}.card h3{margin-bottom:8px}.tag{display:inline-block;background:#edf8f2;color:#1e9368;border-radius:6px;padding:4px 8px;font-size:11px}.tag.pending{background:#fff5e4;color:#b27c17}.tag.closed{background:#eff1f5;color:#7a8495}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.row.wrap{flex-wrap:wrap}.price{font-size:24px;font-weight:700;color:var(--blue)}.price small{font-size:12px}.card .muted{font-size:12px}.levels{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}.level{background:#f0f5ff;color:#4273bd;border-radius:6px;padding:5px 9px;font-size:11px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;background:#ffffffed;backdrop-filter:blur(12px);border-top:1px solid var(--line);display:flex;padding:12px 15px 18px;z-index:10}.bottom-nav button{flex:1;background:none;color:#94a1b6;font-size:12px;padding:2px}.bottom-nav button.active{color:var(--blue)}.bottom-nav span{display:block;font-size:24px;margin-bottom:4px}.page-top{display:flex;align-items:center;gap:15px;padding:20px;background:white}.page-top h2{margin:0;font-size:18px}.page-top button{background:#f0f4fc;color:#274971;padding:7px 12px}.notice{background:#edf4ff;padding:15px;border-radius:12px;color:#5273a2;font-size:12px;line-height:1.8}.steps{display:flex;gap:8px;margin-bottom:20px}.steps span{flex:1;background:#e8eef8;padding:8px 4px;text-align:center;font-size:11px;border-radius:7px;color:#8a99b0}.steps .active{background:#e2edff;color:var(--blue)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.check{display:flex;align-items:flex-start;gap:10px;line-height:1.8}.check input{width:18px;margin-top:4px;flex-shrink:0}.full{width:100%;margin-top:18px}.empty{text-align:center;padding:48px 20px;color:#8a99ae}.success{width:72px;height:72px;border-radius:50%;background:#e4f7ed;color:#25a474;text-align:center;line-height:72px;font-size:40px;margin:24px auto}.center{text-align:center}.detail-row{padding:11px 0;border-bottom:1px solid #f1f4f9;display:flex;gap:15px;justify-content:space-between;font-size:13px}.detail-row span:first-child{color:#8b98ad}.detail-row span:last-child{text-align:right;word-break:break-all}.demo{background:#fff3df;color:#a16a16;text-align:center;padding:8px;font-size:11px}.brand-foot{text-align:center;color:#a8b3c4;font-size:10px;letter-spacing:2px;margin:25px 0}#toast{position:fixed;left:50%;bottom:110px;transform:translateX(-50%);background:#183153;color:white;padding:12px 20px;border-radius:12px;max-width:90%;z-index:100;display:none}.admin-layout{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{background:#132c50;color:white;padding:30px 20px}.sidebar .logo{font-size:21px;margin:0 8px 35px}.sidebar button{display:block;width:100%;background:none;text-align:left;color:#a7b9d2;margin-bottom:8px}.sidebar button.active{background:#264574;color:white}.sidebar small{display:block;padding:25px 8px}.admin-main{padding:35px 40px;min-width:0}.admin-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.admin-head p{font-size:13px;color:#8a99ad;margin-bottom:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:25px}.stats .card strong{font-size:30px;display:block;margin-top:16px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap}th{background:#f5f8fd;color:#76869c;font-weight:500;text-align:left}td,th{padding:15px 12px;border-bottom:1px solid var(--line)}td button{padding:7px 10px;font-size:12px}.filters{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.filters select,.filters input{width:auto;max-width:240px}.admin-form{max-width:760px}.login-panel{width:380px;max-width:90%;margin:13vh auto;padding:35px;background:white;border-radius:24px;box-shadow:0 20px 60px #18335b10}.audit{font-size:12px;border-left:2px solid #cbdcf8;padding:10px 18px;margin-bottom:14px}.banner-img{width:100%;border-radius:17px;margin-bottom:10px}.selection{border:2px solid var(--blue);background:#f4f8ff}.mini-help{font-size:12px;color:#8491a6;line-height:1.8}@media(max-width:800px){.admin-layout{grid-template-columns:1fr}.sidebar{padding:15px;display:flex;flex-wrap:wrap;gap:4px}.sidebar .logo{width:100%;margin:0 0 10px}.sidebar button{width:auto;font-size:12px;margin:0;padding:8px}.sidebar small{display:none}.admin-main{padding:22px 15px}.stats{grid-template-columns:1fr 1fr}.admin-head h1{font-size:23px}}@media(min-width:700px){body:not(.admin-body){padding:25px 0}.phone-shell{border-radius:28px;overflow:hidden;min-height:calc(100vh - 50px)}}

.registration-price{padding:20px 0 12px;margin-top:12px;border-top:1px solid var(--line)}.registration-price .price{font-size:22px}
.product-image{display:block;width:100%;height:280px;object-fit:contain;background:#f7f8fb;border-radius:16px;margin:12px 0 20px}.product-thumb{width:110px;height:100px;object-fit:contain;border-radius:12px;background:#f7f8fb}.product-card .mini-help{white-space:pre-wrap}.product-card{overflow:hidden}

/* CEQ's own visual language: ink blue, warm paper and a restrained gold accent. */
body:not(.admin-body){background:#e9edf1}.phone-shell{background:#f6f5f1;color:#163347}.phone-shell .content{padding:22px}.phone-shell .header{background:#f6f5f1;padding-bottom:8px}.brand-note{font-size:10px;letter-spacing:1px;color:#84919b}.phone-shell .logo b{color:#bc8b43}.phone-shell .hero{background:linear-gradient(135deg,#102d43,#1c5264);padding:32px 24px;border-radius:22px;min-height:275px}.phone-shell .hero:after{content:'CEQ';font-size:120px;color:#fff;opacity:.04;right:-8px;bottom:-20px}.phone-shell .hero small{font-size:10px;color:#d7bd8c;letter-spacing:3px}.phone-shell .hero h1{font-size:32px;max-width:270px;margin-top:23px}.phone-shell .hero p{color:#bacbd0;max-width:235px}.phone-shell .hero button{background:#ecd7ae;color:#183646;border-radius:8px}.hero-seal{position:absolute;right:22px;top:28px;font-family:Georgia,serif;line-height:1.1;font-size:25px;color:#e6cf9f;border:1px solid #e6cf9f60;padding:11px 9px;text-align:center}.hero-seal span{font-size:7px;letter-spacing:2px}.phone-shell .card,.phone-shell .entry{border:1px solid #e9e9e0;box-shadow:0 4px 15px #15344803;border-radius:16px}.phone-shell .entry{padding:19px}.phone-shell .entry .icon{color:#1b5264;background:#edf3f1;border-radius:50%}.phone-shell button{background:#1b5264}.phone-shell .secondary{color:#1b5264;background:#edf3f1}.phone-shell .price{color:#1b5264}.phone-shell .entry:last-child:nth-child(odd){grid-column:1/-1;background:#f0e7d5;position:relative}.phone-shell .entry:last-child:nth-child(odd) .icon{float:right;margin:0;background:#fff8e9;color:#9c7137}.phone-shell .bottom-nav .active{color:#1b5264}.phone-shell .level{background:#eef3f2;color:#426b72}.phone-shell .section-head h2{font-size:18px}.phone-shell .page-top{background:#f6f5f1;border-bottom:1px solid #e9e9e0}.phone-shell .page-top button{background:#e9edeb;color:#183646}.listing-title{font-size:25px;line-height:1.4}.filter-tabs{display:flex;gap:5px;margin:18px 0;overflow:auto}.filter-tabs button{background:none;color:#839196;flex:1;white-space:nowrap;padding:9px;font-size:12px}.filter-tabs .selected{background:#1b5264;color:white}.event-cover{background:linear-gradient(120deg,#1b5264,#102d43);padding:30px;margin-bottom:18px;border-radius:20px;color:white;position:relative;overflow:hidden}.event-cover:after{content:'A+';font:900 130px Georgia;position:absolute;right:-15px;bottom:-20px;color:#ffffff13;transform:rotate(-12deg)}.event-cover span{font-size:10px;letter-spacing:3px;color:#d7bd8c}.event-cover h1{font-size:30px;line-height:1.5;margin:18px 0}.event-cover div{font-size:14px;color:#d7bd8c}.text-body{white-space:pre-wrap;line-height:1.9;font-size:14px}.login-intro{padding:25px 5px 10px}.login-intro h1{margin:18px 0 10px}.login-intro p{color:#839196;font-size:13px}.login-symbol,.profile-avatar{display:inline-block;padding:15px 12px;border-radius:15px;background:#1b5264;color:#ecd7ae;font:700 22px Georgia}.code-row{display:flex;gap:10px}.code-row input{min-width:0}.code-row button{white-space:nowrap;font-size:12px}.profile-links{display:flex;gap:12px;margin:20px 0}.profile-links button{flex:1}.payment-overlay{position:fixed;inset:0;background:#102d43a0;display:flex;align-items:center;justify-content:center;padding:20px;z-index:30}.payment-dialog{width:380px;max-width:100%;background:white;padding:24px;border-radius:22px;text-align:center}.payment-dialog>button:first-child{float:right;padding:5px 10px}.payment-dialog h2{clear:both;padding-top:15px}.pay-qr{display:block;width:250px;max-width:100%;margin:0 auto}.phone-shell .field-grid{grid-template-columns:1fr}.phone-shell button:disabled{cursor:not-allowed}
/* Keep navigation and service cards light; their colors override generic buttons. */
.phone-shell button.entry{background:white;color:#243d60}.phone-shell button.entry:last-child:nth-child(odd){background:#f0e7d5}.phone-shell .bottom-nav button{background:transparent;color:#94a1b6;border-radius:0}.phone-shell .bottom-nav button.active{color:#1b5264}.phone-shell button.ghost{background:white;color:#65768f}
.official-score-link{display:block;border:1px solid #dce7e4;border-radius:12px;padding:15px;text-decoration:none;color:#1b5264;background:#edf3f1;font-size:14px}.score-result{font-size:18px;font-weight:600;color:#1b5264;white-space:pre-wrap}.score-table-text{max-width:340px;white-space:pre-wrap;word-break:break-word}

.ling-number{color:#b18b45;font-size:11px;letter-spacing:2px}.ling-section h3{margin-top:10px}.ling-edit textarea{min-height:150px}

.ling-form>div{margin:24px 0}.ling-form label{margin-bottom:10px}.ling-radios{display:flex;gap:24px;flex-wrap:wrap}.ling-modules{border:0;padding:24px 0}.ling-modules .check{margin:18px 0}.ling-form table{width:100%}.ling-form textarea{min-height:90px}

.period-cover{display:block;width:100%;aspect-ratio:1.65;object-fit:cover;border-radius:14px;margin-bottom:20px}.detail-cover{margin-top:12px}.region-filter{margin-top:20px}.region-arrow{text-align:center;color:#ba934d;margin:12px 0}.region-filter select{width:100%}
.notice-overlay{position:fixed;inset:0;background:#152a4fcc;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.notice-dialog{background:white;border-radius:20px;width:520px;max-width:100%;padding:24px;box-shadow:0 20px 80px #0003}.notice-dialog h2{text-align:center;margin:0 0 16px}.notice-body{height:55vh;overflow:auto;white-space:pre-wrap;line-height:1.8}.notice-actions{display:flex;gap:12px;padding-top:18px}.notice-actions button{flex:1}

.registration-detail-table{width:max-content;min-width:100%}.registration-detail-table th,.registration-detail-table td{min-width:140px;max-width:320px;white-space:normal;overflow-wrap:anywhere;vertical-align:top}.registration-detail-table th{white-space:nowrap}.registration-detail-table td:last-child{min-width:160px}

.birth-date-control{position:relative;min-height:58px;border:1px solid #dce5f1;border-radius:12px;background:#fff;display:flex;align-items:center;padding:14px 44px 14px 16px;color:#173252;box-sizing:border-box}.birth-date-control:after{content:"▦";position:absolute;right:16px;font-size:23px;pointer-events:none}.birth-date-control input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;box-sizing:border-box}.birth-date-control:focus-within{outline:2px solid #638fc5;outline-offset:2px}

.period-card>.row:last-child>small{flex:1;min-width:0;overflow-wrap:anywhere}.period-card>.row:last-child>button{flex:0 0 124px;width:124px;padding:12px 14px;white-space:nowrap;line-height:1.5}

.phone-shell .hero h1{font-size:28px;max-width:calc(100% - 96px);line-height:1.45;text-wrap:balance}.hero>small{display:block;max-width:calc(100% - 96px);line-height:1.6}.phone-shell .hero{min-height:235px}

.phone-shell .hero h1{font-size:26px;max-width:100%;white-space:nowrap;text-wrap:nowrap;margin-top:62px}.phone-shell .hero-seal{top:22px}.phone-shell .hero{min-height:235px}
.auth-tabs{display:flex;gap:10px;margin:16px 0}.auth-tabs button{flex:1}.captcha-row{display:flex;align-items:center;gap:10px}.captcha-row input{min-width:0;flex:1}.captcha-row button{padding:0;background:transparent;flex:0 0 140px;overflow:hidden;height:48px;border:1px solid #dce4ef}.captcha-row img{display:block;width:140px;height:48px}.auth-switch{text-align:center;margin:18px 0 0;font-size:13px}.phone-shell .auth-link{padding:4px 8px;background:transparent;color:#1b5264;text-decoration:underline}.auth-tabs+.card .code-row input{min-width:0}.auth-tabs+.card .code-row button{white-space:nowrap}

.auth-methods{display:flex;gap:10px;margin:0 0 16px}.auth-methods button{flex:1}.phone-shell .auth-switch a.auth-link{display:inline;padding:0 4px;background:none!important;color:#1b5264!important;border:0;text-decoration:underline;white-space:nowrap}

.phone-shell .auth-page .login-intro{padding:8px 0 12px}.auth-page .login-intro h1{font-size:25px;margin:6px 0}.auth-page .login-intro p{margin:6px 0;font-size:12px}.auth-page .auth-methods{gap:0;border-bottom:1px solid #dce4df;margin-bottom:16px}.phone-shell .auth-page .auth-methods button{background:transparent;color:#1b5264;border-radius:0;padding:12px 6px;border-bottom:2px solid #1b5264;font-weight:700}.phone-shell .auth-page .auth-methods button.secondary{color:#87949a;border-bottom-color:transparent;font-weight:400}.auth-page .card{padding:20px}.auth-page .card label{margin-top:10px}.auth-page .auth-switch{margin-top:12px}

.score-guide-intro{padding:8px 0 22px}.score-kicker{font-size:10px;letter-spacing:2px;color:#a57d3d}.score-guide-intro h1{font-size:27px;margin:12px 0 6px}.score-guide-intro p{font-size:13px;color:#84919b}.score-guide-intro .official-score-link{display:block;text-align:center;background:#1b5264;color:white;padding:13px;border-radius:12px;text-decoration:none}.score-step-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.score-step-head>span{flex:0 0 30px;height:30px;line-height:30px;text-align:center;background:#edf3f1;color:#1b5264;border-radius:50%;font-weight:700}.score-step-head h3{margin:0;line-height:1.5}.score-guide-step p,.score-guide-note p{margin-bottom:0;overflow-wrap:anywhere;line-height:1.9}.score-id-example{padding:15px;margin-top:16px;border:1px dashed #b5c7c8;border-radius:12px;background:#f7f9f8}.score-id-example>small{color:#74858b}.score-id-example>div{display:flex;gap:12px;margin-top:14px}.score-id-example span{flex:1;min-width:0;font-size:13px;font-weight:700;color:#1b5264}.score-id-example span small{display:block;font-size:10px;font-weight:400;line-height:1.6;margin-top:4px}.score-local-results>summary{padding:15px 2px;color:#607d86;font-size:14px;cursor:pointer}.score-local-content{padding-top:8px}

.score-guide-figure{margin:18px 0 0}.score-guide-figure img{width:100%;height:auto;display:block;border-radius:12px;border:1px solid #e5ece9}.score-guide-figure figcaption{font-size:12px;color:#81929b;text-align:center;margin-top:7px}

.score-marked-shot{position:relative}.score-marked-shot svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.score-marker-legend{color:#a83131;background:#fff6f4;padding:12px;border-radius:10px;font-size:13px;line-height:1.9}.score-shot-zoom summary{cursor:pointer;text-align:center;color:#1b5264;font-size:13px;margin:12px 0}.score-shot-scroll{overflow:auto;max-height:70vh;border:1px solid #dce5e4;border-radius:10px}.score-shot-large{width:884px}.score-shot-large img{border:none;border-radius:0}

.level-choices{border:0;padding:0;margin:20px 0;display:flex;flex-wrap:wrap;gap:12px}.level-choices legend{margin-bottom:12px;color:#627a9d}.level-choice{position:relative;flex:1 1 140px;margin:0;cursor:pointer}.level-choice input{position:absolute;opacity:0;width:1px;height:1px}.level-choice span{display:block;border:1px solid #d9e1e7;border-radius:12px;padding:16px;text-align:center;background:white;color:#254052}.level-choice small{display:block;margin-top:6px}.level-choice input:checked+span{border-color:#195365;background:#eaf3f3;color:#195365;box-shadow:inset 0 0 0 1px #195365}.level-choice input:focus-visible+span{outline:3px solid #b9d7de}

.registration-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:20px;margin:22px 0 12px}.registration-stat{background:#ecf6f5;border-radius:12px;padding:20px 18px}.registration-stat small{display:block;color:#68818e;font-size:14px;margin-bottom:10px}.registration-stat strong{display:block;color:#183442;font-size:30px;line-height:1.2}@media(max-width:600px){.registration-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.registration-stat strong{font-size:26px}}

.candidate-dialog{border:0;border-radius:20px;padding:24px;width:min(900px,calc(100vw - 32px));max-height:90vh;box-sizing:border-box;overflow:auto;color:var(--text,#203b5b)}.candidate-dialog::backdrop{background:rgba(15,30,55,.55)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;top:-24px;background:white;z-index:1;padding:12px 0}.dialog-head h2{margin:0}.candidate-dialog .admin-form{max-width:none;margin:0}

.auth-login-tabs{display:flex;gap:28px;margin:10px 0 24px;padding:0 4px}.phone-shell .auth-login-tabs button{background:transparent;border:0;border-radius:0;padding:10px 0;color:#202c39;font-size:20px;font-weight:600;box-shadow:none;border-bottom:3px solid transparent;transform:none}.phone-shell .auth-login-tabs button.active{color:#1268ee;border-bottom-color:#1268ee}.phone-shell .auth-login-tabs button:hover{transform:none;filter:none}.auth-login-form{border-radius:8px}.auth-login-form input:not([type=checkbox]){border-radius:2px;background:#fff}.auth-login-form #auth-submit{border-radius:2px;background:#1268ee;margin-top:24px}.auth-login-form .auth-link{color:#1268ee}.auth-login-tabs button:focus-visible{outline:2px solid #1268ee;outline-offset:4px}
.candidate-check{width:18px!important;height:18px!important;min-width:18px;padding:0!important;accent-color:#1268ee;cursor:pointer}
.mail-selection-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.mail-dialog{width:min(850px,94vw)}
.mail-body-preview{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.8;background:#f5f7fb;border-radius:8px;padding:18px;max-height:320px;overflow:auto}
.mail-recipient-list{max-height:300px;overflow:auto;margin:16px 0;border:1px solid #dce3ef;border-radius:8px}
.mail-recipient-list>div{padding:12px 16px;border-bottom:1px solid #e9edf4;overflow-wrap:anywhere}
#mail-text{min-height:220px}
