:root{--brand: #1a8fb8;--brand-deep: #0d6e8f;--brand-soft: #e8f6fb;--ok: #2e9e5b;--bad: #d64545;--warn: #c97a1a;--text: #222;--muted: #666;--line: #e6e6e6;--bg: #f5f7fa;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body,#app{margin:0;min-height:100%;min-height:100dvh;font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,sans-serif;color:var(--text);background:#fff}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.banner{position:relative;padding:var(--safe-top) 0 0;overflow:hidden;background:linear-gradient(105deg,#1e8fd6,#2bb4c8 45%,#4fd0b8);line-height:0}.banner-frame{width:100%;max-width:1280px;margin:0 auto}.banner-img{display:block;width:100%;height:auto;aspect-ratio:1024 / 350;object-fit:contain;object-position:center center;vertical-align:top}.banner--compact .banner-frame{max-width:980px}.page{max-width:860px;margin:0 auto;padding:0 16px calc(40px + var(--safe-bottom))}.section-title{margin:28px 0 8px;font-size:clamp(20px,5.5vw,26px);font-weight:800;text-align:center}.section-desc{text-align:center;color:var(--muted);margin-bottom:20px;font-size:14px;line-height:1.6;padding:0 4px}.card{background:#fff;border:1px solid #edf0f3;border-radius:12px;padding:16px;box-shadow:0 8px 24px #1038500d}.btn{display:inline-flex;align-items:center;justify-content:center;min-width:120px;min-height:44px;height:44px;padding:0 22px;border:none;border-radius:8px;background:var(--brand);color:#fff;cursor:pointer;font-weight:600;touch-action:manipulation}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.ghost{background:#eef2f5;color:#445}.btn.block{width:100%}.field{margin-bottom:16px}.field label{display:block;margin-bottom:8px;font-weight:600}.field input,.field select,.field textarea{width:100%;border:1px solid #d7dee5;border-radius:8px;padding:12px;outline:none;background:#fff;font-size:16px;line-height:1.4}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand)}.q-item textarea{width:100%;border:1px solid #d7dee5;border-radius:8px;padding:12px;outline:none;font-size:16px;line-height:1.5;resize:vertical;min-height:72px}.radio-row{display:flex;gap:24px;align-items:center}.radio-row label{display:inline-flex;align-items:center;gap:6px;font-weight:500;cursor:pointer;min-height:44px}.q-item{padding:16px 0;border-bottom:1px solid var(--line)}.q-item:last-child{border-bottom:none}.q-stem{font-size:15px;line-height:1.7;margin-bottom:12px;white-space:pre-wrap;word-break:break-word}.q-material{background:#f7f9fb;border-left:3px solid var(--brand);padding:12px 14px;margin-bottom:12px;color:#333;line-height:1.7;white-space:pre-wrap;word-break:break-word;font-size:14px}.opt{display:flex;gap:10px;align-items:flex-start;padding:10px 8px;margin:0 -8px;border-radius:8px;cursor:pointer;min-height:44px}.opt:active{background:var(--brand-soft)}.opt input{margin-top:4px;width:18px;height:18px;flex-shrink:0}.tip-red{color:#d64545;font-weight:600;margin:12px 0 8px;line-height:1.6;font-size:14px}.actions{display:flex;gap:12px;justify-content:space-between;margin-top:24px;position:sticky;bottom:0;padding:12px 0 calc(12px + var(--safe-bottom));background:linear-gradient(to top,#fff 70%,#ffffffd9)}.actions .btn{flex:1}.done-wrap{text-align:center;padding:40px 16px}.done-check{width:88px;height:88px;margin:18px auto;border-radius:50%;background:#2fbf6b;color:#fff;display:grid;place-items:center;font-size:44px}.review-block{margin:18px 0;padding-bottom:16px;border-bottom:1px dashed #ddd}.ans-line{margin-top:8px;font-size:14px}.ans-line .bad{color:var(--bad)}.ans-line .ok{color:var(--ok)}.analysis{margin-top:8px;color:var(--warn);line-height:1.7;font-size:14px}.admin-shell{min-height:100vh;background:#0b3d45}.admin-top{background:#0f5a63;color:#fff;padding:16px 20px;font-size:22px;font-weight:700}.admin-body{display:flex;min-height:calc(100vh - 58px)}.admin-side{width:180px;background:#dfe5e7;padding:16px 12px}.admin-side a,.admin-side button{display:block;width:100%;margin-bottom:10px;padding:10px 12px;border:none;border-radius:4px;background:#0f5a63;color:#fff;text-align:center;cursor:pointer}.admin-main{flex:1;background:#fff;padding:16px;overflow:auto}.admin-panel{background:#fff;min-height:100%;padding:12px}.admin-search{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.admin-search input{height:36px;border:1px solid #ccc;border-radius:4px;padding:0 10px;font-size:16px}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse;font-size:14px;min-width:720px}.table th,.table td{border:1px solid #0f5a63;padding:8px 6px;text-align:center}.table th{background:#0f5a63;color:#fff}.table a{color:#0f5a63;font-weight:600}.pager{display:flex;gap:12px;align-items:center;margin-top:14px;color:#0f5a63;flex-wrap:wrap;font-size:13px}.login-page{min-height:100vh;min-height:100dvh;display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,#4b3f8f,transparent 40%),linear-gradient(135deg,#1d2b64,#c47a3a);padding:20px;padding-bottom:calc(20px + var(--safe-bottom))}.login-box{width:min(420px,100%);background:#1e1c37c7;border:1px solid rgba(255,255,255,.25);border-radius:10px;padding:28px 24px;color:#fff}.login-box h1{margin:0 0 20px;text-align:center;font-size:22px}.login-box input{width:100%;height:44px;margin-bottom:12px;border-radius:6px;border:none;padding:0 12px;font-size:16px}.pwd-form{max-width:420px;padding:16px 12px}.pwd-form .field{margin-bottom:14px}.pwd-form .field label{display:block;margin-bottom:6px;color:#333;font-size:14px}.pwd-form .field input{width:100%;height:40px;border:1px solid #ccc;border-radius:4px;padding:0 10px;font-size:16px}.detail-section{margin-bottom:18px}.detail-section h3{margin:0;padding:10px 12px;background:#0f5a63;color:#fff}.detail-row{padding:10px 12px;border-bottom:1px solid #eee}.detail-row:nth-child(2n){background:#f7f7f7}.detail-answer{color:#c97a1a;margin-top:4px}@media(max-width:720px){.banner-frame{max-width:none}.banner-img{object-position:center center}.page{padding:0 12px calc(28px + var(--safe-bottom))}.section-title{margin:20px 0 6px}.card{padding:14px 12px;border-radius:10px}.actions{flex-direction:row;gap:10px}.admin-top{font-size:16px;padding:12px}.admin-body{flex-direction:column}.admin-side{width:100%;display:flex;gap:8px;overflow-x:auto;padding:10px}.admin-side a,.admin-side button{margin-bottom:0;white-space:nowrap;flex:0 0 auto}.admin-main{padding:8px}}
