:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#111827;background:#f7fbfb;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{background:#f7fbfb}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#f6ffff 0%,#fff 55%,#f5ffff 100%)}button,input,textarea,select{font:inherit}.loading{min-height:100vh;display:grid;place-items:center;color:#6b7280}.auth-page{min-height:100vh;padding:62px 28px 40px;text-align:center}.logo-box{width:104px;height:104px;margin:0 auto 24px;border-radius:22px;background:#129f94;color:#fff;display:grid;place-items:center;box-shadow:0 12px 30px rgba(15,159,148,.24);font-size:46px}.auth-page h1{font-size:34px;margin:0 0 14px}.auth-page>p{color:#6b7280;font-size:19px;margin:0 0 36px}.auth-card{max-width:620px;margin:0 auto;background:#fff;border:1px solid #edf0f2;border-radius:24px;padding:38px;text-align:left;box-shadow:0 16px 40px rgba(15,23,42,.07)}.segmented{display:grid;grid-template-columns:1fr 1fr;background:#f1f3f5;border-radius:18px;padding:6px;margin-bottom:30px}.segmented.three{grid-template-columns:repeat(3,1fr);margin-bottom:10px}.segmented button{border:0;background:transparent;padding:15px;border-radius:14px;color:#6b7280}.segmented button.active{background:#fff;color:#0f857d;box-shadow:0 2px 8px rgba(0,0,0,.05)}label{display:block;margin:18px 0 8px;color:#4b5563;font-weight:600}input,textarea,select{width:100%;border:1px solid #d9dee3;border-radius:18px;padding:17px 18px;background:#fff;outline:none}input:focus,textarea:focus,select:focus{border-color:#5fc1b9;box-shadow:0 0 0 3px rgba(18,159,148,.1)}textarea{resize:vertical}.primary{width:100%;border:0;border-radius:16px;background:#129f94;color:#fff;padding:18px 22px;font-weight:700;font-size:18px;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:24px;box-shadow:0 8px 18px rgba(15,159,148,.2)}.primary:disabled{opacity:.5}.secondary{width:100%;border:1px solid #d9dee3;border-radius:16px;background:#fff;padding:16px;display:flex;align-items:center;justify-content:center;gap:8px}.linkbtn{border:0;background:transparent;color:#0f857d;padding:14px 0}.hint{text-align:center;color:#9ca3af;margin-top:18px}.error,.notice{margin-top:18px;border-radius:14px;padding:14px 16px}.error{background:#fff0f0;color:#c0392b;border:1px solid #ffd5d5}.notice{background:#eefaf8;color:#0b6f68;border:1px solid #c9eee9}.app-shell{min-height:100vh;padding-bottom:92px}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:16px 18px;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-bottom:1px solid #edf0f2}.brand-mini{display:flex;align-items:center;gap:8px;font-weight:800}.brand-icon{font-size:20px}.credits{background:#e9f8f6;color:#0f857d;padding:8px 12px;border-radius:999px;font-weight:700}.content{max-width:760px;margin:0 auto;padding:28px 20px}.content h1{font-size:32px;margin:0 0 8px}.muted{color:#6b7280}.small{font-size:13px}.card{background:#fff;border:1px solid #edf0f2;border-radius:22px;padding:20px;margin:18px 0;box-shadow:0 8px 22px rgba(15,23,42,.04)}.upload-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.file-button{display:flex;align-items:center;justify-content:center;gap:8px;border:1px dashed #bfc7ce;border-radius:16px;padding:16px;cursor:pointer;color:#374151;margin:0}.file-button input{display:none}.file-chip{margin-top:14px;display:flex;align-items:center;gap:10px;background:#f7f8f9;padding:12px 14px;border-radius:14px}.file-chip span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-chip button{border:0;background:transparent;color:#b42318}.mt{margin-top:22px}.bottomnav{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid #e5e7eb;display:grid;grid-template-columns:repeat(3,1fr);padding:8px 14px calc(8px + env(safe-area-inset-bottom));z-index:20}.bottomnav button{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:4px;color:#6b7280;padding:8px}.bottomnav button.active{color:#0f857d}.bottomnav span{font-size:12px}.history-item{display:flex;align-items:center;justify-content:space-between;gap:14px}.history-item>div{min-width:0}.history-item strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-button{width:100%;text-align:left;cursor:pointer}.badge{font-size:12px;background:#eef2f7;padding:6px 9px;border-radius:999px;flex:0 0 auto}.profile-card>div{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid #f0f2f4}.profile-card>div:last-child{border-bottom:0}.profile-card span{color:#6b7280}.profile-card strong{overflow-wrap:anywhere;text-align:right}.result-head{text-align:center;padding:8px 0 4px}.result-head h1{margin-top:10px}.result-icon{width:58px;height:58px;border-radius:18px;margin:18px auto 0;background:#e9f8f6;color:#0f857d;display:grid;place-items:center;font-size:28px}.result-card{padding:24px}.result-text{white-space:pre-wrap;line-height:1.65;font-size:16px;color:#1f2937}.result-actions{display:grid;grid-template-columns:1fr 1.2fr;gap:12px;align-items:stretch}.primary.compact{margin:0}.icon-link{border:0;background:transparent;color:#0f857d;padding:8px 0;display:inline-flex;align-items:center;gap:7px;font-weight:700}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.config-error{max-width:680px;margin:80px auto;padding:24px}.config-error h1{font-size:26px}.config-error code{display:block;background:#f3f4f6;padding:12px;border-radius:10px;margin-top:12px;overflow-wrap:anywhere}@media(max-width:620px){.auth-page{padding:58px 18px 32px}.auth-page h1{font-size:28px}.auth-page>p{font-size:17px}.auth-card{padding:28px 22px}.upload-actions{grid-template-columns:1fr}.segmented.three button{padding:12px 6px;font-size:13px}.content h1{font-size:28px}.brand-mini span{font-size:13px}.result-actions{grid-template-columns:1fr}.result-card{padding:20px}.result-text{font-size:15px}}
