*{box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans,sans-serif;line-height:1.6;color:#333;max-width:900px;margin:0 auto;padding:1rem 2rem;background:#f1f5f9}@media (max-width:600px){body{padding:1rem}}.topbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;margin-bottom:1rem;border-bottom:1px solid #e2e8f0}.topbar-brand{display:flex;align-items:baseline;gap:.35rem}.topbar-brand-sub{font-size:.9375rem;font-weight:600;color:#1e293b}.topbar-auth{display:flex;align-items:center}.topbar-login-btn{padding:.45rem 1rem;font-size:.875rem;font-weight:500;background:#2563eb;color:#fff;border:none;border-radius:6px;cursor:pointer;white-space:nowrap}.topbar-login-btn:hover{background:#1d4ed8}.topbar-username{padding:.4rem .875rem;font-size:.875rem;font-weight:500;background:#f8fafc;color:#1e293b;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-username:hover{background:#e2e8f0}.brand-logo{font-size:1rem;font-weight:800;letter-spacing:.12em;color:#2563eb}.tagline{font-size:.9375rem;font-weight:600;color:#1e293b;margin:0 0 .75rem}form{background:#fff;padding:1.35rem 1.25rem;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06);border:1px solid rgba(0,0,0,.04);margin-bottom:1.5rem}.form-row{margin-bottom:1rem}.form-row label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.35rem;color:#555}.form-row input{width:100%;padding:.5rem .75rem;font-size:1rem;border:1px solid #ccc;border-radius:6px}.form-row input:focus{outline:none;border-color:#1a73e8;box-shadow:0 0 0 2px rgba(26,115,232,.2)}button[type=submit]{margin-top:.5rem;padding:.6rem 1.25rem;font-size:1rem;background:#1a73e8;color:#fff;border:none;border-radius:6px;cursor:pointer}button[type=submit]:hover{background:#1557b0}button[type=submit]:disabled{background:#ccc;cursor:not-allowed}.report-section{margin-top:1.5rem}.report-view{background:#fff;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,.06);padding:1.75rem 1.5rem;font-size:.9375rem;line-height:1.75;color:#1f2937}.report-view .report-h1{font-size:1.375rem;font-weight:700;color:#111827;margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:2px solid #e5e7eb;letter-spacing:-.02em}.report-view .report-h2{font-size:1.125rem;font-weight:600;color:#111827;margin:1.75rem 0 .75rem;padding-left:.5rem;border-left:3px solid #2563eb}.report-view .report-h3{font-size:1rem;font-weight:600;color:#374151;margin:1.25rem 0 .5rem}.report-view .report-h4{font-size:.9375rem;font-weight:600;color:#4b5563;margin:1rem 0 .5rem}.report-view .report-p{margin:0 0 .75rem;color:#4b5563}.report-view .report-ul{margin:.5rem 0 1rem;padding-left:1.5rem}.report-view .report-li{margin-bottom:.35rem;color:#374151}.report-view .report-strong{font-weight:600;color:#111827}.report-view .report-hr{border:none;border-top:1px solid #e5e7eb;margin:1.5rem 0}.report-view .report-table-wrap{overflow-x:auto;margin:1rem 0 1.25rem;border-radius:8px;border:1px solid #e5e7eb}.report-view .report-table{width:100%;border-collapse:collapse;font-size:.875rem}.report-view .report-thead .report-th{background:#f8fafc;font-weight:600;color:#374151;text-align:left;padding:.65rem .75rem;border-bottom:2px solid #e2e8f0;white-space:nowrap}.report-view .report-tbody .report-td{padding:.65rem .75rem;border-bottom:1px solid #f1f5f9;color:#475569;vertical-align:top}.report-view .report-tbody .report-tr:hover{background:#f8fafc}.report-view .report-tbody .report-td:first-child{font-weight:500;color:#334155}.report-view .report-td br{display:block;content:"";margin-top:.25em}.usage-bar{font-size:.875rem;color:#475569;margin-bottom:1rem}.usage-text{font-weight:500}.usage-hint{display:block;margin-top:.25rem;font-size:.8125rem;color:#64748b}.auth-section{background:#fff;padding:1.25rem 1.25rem 1rem;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06);margin-bottom:1rem}.auth-heading{font-size:1.25rem;font-weight:700;color:#1a1a1a;margin:0 0 .25rem;text-align:center;letter-spacing:-.02em}.auth-subtitle{font-size:.875rem;color:#64748b;margin:0 0 1.25rem;text-align:center;line-height:1.5}.auth-section-logged-in{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.auth-logout-btn,.auth-user{font-size:.875rem;color:#475569}.auth-logout-btn{padding:.4rem .75rem;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer}.auth-logout-btn:hover{background:#e2e8f0}.auth-form .form-row{margin-bottom:.75rem}.auth-form .form-row input{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:.9375rem}.auth-form .form-row input:focus{background:#fff;border-color:#1a73e8;box-shadow:0 0 0 3px rgba(26,115,232,.15)}.auth-password-label-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.35rem}.auth-forgot-inline{font-size:.8125rem;color:#1a73e8;background:none;border:none;cursor:pointer;padding:0;line-height:1}.auth-forgot-inline:hover{color:#1557b0;text-decoration:underline;text-underline-offset:2px}.auth-submit-btn{display:block;width:100%;margin-top:.5rem;padding:.75rem 1rem;font-size:1rem;font-weight:600;background:#1a1a1a;color:#fff;border:none;border-radius:8px;cursor:pointer;letter-spacing:.01em;transition:background .15s}.auth-submit-btn:hover{background:#333}.auth-submit-btn:disabled{background:#94a3b8;cursor:not-allowed}.auth-switch-text{margin:1rem 0 0;font-size:.875rem;color:#64748b;text-align:center}.auth-switch-link{color:#1a73e8;background:none;border:none;cursor:pointer;padding:0;font-size:.875rem;font-weight:500;text-decoration:underline;text-underline-offset:2px}.auth-switch-link:hover{color:#1557b0}.auth-error,.auth-success{margin-bottom:.75rem}.auth-success{padding:.65rem .75rem;font-size:.875rem;color:#065f46;background:#d1fae5;border-radius:6px;line-height:1.5}.voucher-section{margin-bottom:1rem}form.voucher-form{background:none;padding:0;border-radius:0;box-shadow:none;border:none;margin-bottom:0}.voucher-form{display:flex;gap:.5rem;align-items:stretch}.voucher-input{flex:1 1;padding:.5rem .75rem;font-size:.9375rem;border:1px solid #ccc;border-radius:6px;height:42px}.voucher-form button{padding:0 1.25rem;font-size:.9375rem;background:#0d9488;color:#fff;border:none;border-radius:6px;cursor:pointer;margin-top:0;height:42px;white-space:nowrap}.voucher-form button:hover{background:#0f766e}.voucher-form button:disabled{background:#94a3b8;cursor:not-allowed}.voucher-success{color:#0d9488}.voucher-error,.voucher-success{margin-top:.5rem;font-size:.875rem}.voucher-error{color:#c5221f}.limit-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.limit-modal{position:relative;background:#fff;border-radius:16px;padding:2.25rem 1.75rem 1.75rem;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 16px 48px rgba(0,0,0,.2)}.modal-close-x{position:absolute;top:.875rem;right:.875rem;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem;line-height:1;color:#64748b;background:#f1f5f9;border:none;border-radius:50%;cursor:pointer}.modal-close-x:hover{background:#e2e8f0;color:#1a1a1a}.limit-modal-bottom-msg{margin:.75rem 0 0;padding:.6rem 1rem;font-size:.875rem;font-weight:600;text-align:center;color:#b45309;background:#fef3c7;border:1px solid #fde68a;border-radius:8px}.limit-modal .auth-section{margin-bottom:0;box-shadow:none;border:1px solid #e2e8f0}.limit-modal-voucher-row{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #f1f5f9;margin-bottom:1rem}.limit-modal-voucher-row .voucher-input{font-size:.875rem;height:38px;color:#64748b}.limit-modal-voucher-row .voucher-form button{height:38px;padding:0 .875rem;font-size:.875rem}.error{color:#c5221f;background:#fdecea;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem}.loading{color:#64748b;padding:1rem 0;font-size:.9375rem}.loading-progress{padding:1.25rem 0 .5rem}.loading-phase{font-size:.875rem;color:#475569;margin-bottom:.6rem}.loading-bar-wrap{height:6px;background:#e2e8f0;border-radius:9999px;overflow:hidden}.loading-bar{height:100%;background:linear-gradient(90deg,#2563eb,#1d4ed8);border-radius:9999px;transition:width .4s ease}.loading-percent{margin-top:.4rem;font-size:.8125rem;color:#64748b;text-align:right}.summary-dashboard{display:flex;flex-direction:column;gap:1rem}.summary-title{font-size:1rem;font-weight:600;color:#475569;margin:0 0 .25rem}.summary-hero{background:linear-gradient(145deg,#0f766e,#0d9488);color:#fff;border-radius:16px;padding:1.5rem 1.25rem;box-shadow:0 4px 14px rgba(15,118,110,.35)}.summary-hero-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;opacity:.9;margin:0 0 .35rem}.summary-hero-main{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem;margin:0}.summary-hero-value{font-size:1.75rem;font-weight:700;letter-spacing:-.03em;line-height:1.2}.summary-hero-badge{font-size:.8125rem;font-weight:600;background:hsla(0,0%,100%,.25);padding:.2rem .5rem;border-radius:6px}.summary-hero-note{font-size:.8125rem;opacity:.95;margin:.5rem 0 0}.summary-hero-sub{margin-top:1rem;padding-top:1rem;border-top:1px solid hsla(0,0%,100%,.3);font-size:.875rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem}.summary-hero-sub-label{opacity:.9}.summary-hero-sub-value{font-weight:600}.summary-hero-sub-note{font-size:.8125rem;opacity:.85}.summary-hero-tradein{font-size:.8125rem;margin:.75rem 0 0;opacity:.9}.summary-card{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px rgba(0,0,0,.06);border:1px solid rgba(0,0,0,.04)}.summary-card-head{font-size:.9375rem;font-weight:600;color:#1e293b;margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:1px solid #f1f5f9}.summary-card-lead{font-size:.875rem;color:#475569;margin:0 0 .5rem;line-height:1.6}.summary-price-grid{display:grid;grid-gap:.5rem;gap:.5rem}.summary-price-item{display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.summary-price-label{color:#64748b}.summary-price-value{font-weight:600;color:#1e293b}.summary-price-total{margin-top:.35rem;padding-top:.5rem;border-top:1px dashed #e2e8f0}.summary-price-total .summary-price-value{font-size:.9375rem;color:#0f766e}.summary-list{margin:0;padding-left:1.25rem;font-size:.875rem;color:#475569;line-height:1.65}.summary-list li{margin-bottom:.25rem}.summary-list-tips li{margin-bottom:.4rem}.summary-list-sm{font-size:.8125rem}.summary-rivals{gap:.75rem;margin-bottom:.75rem}.summary-rival,.summary-rivals{display:flex;flex-direction:column}.summary-rival{gap:.2rem;padding:.6rem .75rem;background:#f8fafc;border-radius:8px;border-left:3px solid #0ea5e9}.summary-rival-name{font-size:.8125rem;font-weight:600;color:#0c4a6e}.summary-rival-point{font-size:.8125rem;color:#475569;line-height:1.5}.summary-saythis{margin-bottom:.75rem}.summary-saythis-label{font-size:.75rem;font-weight:600;color:#64748b;display:block;margin-bottom:.25rem}.summary-saythis-text{font-size:.875rem;color:#334155;margin:0;padding:.6rem .75rem;background:#f0fdfa;border-radius:8px;border-left:3px solid #14b8a6;line-height:1.55}.summary-card-twocol .summary-card-head{margin-bottom:.75rem}.summary-options-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}@media (max-width:520px){.summary-options-grid{grid-template-columns:1fr}}.summary-options-col-head{font-size:.8125rem;font-weight:600;color:#1e293b;margin:0 0 .5rem}.summary-options-col-head-save{color:#0d9488}.report-detail-toggle{margin-top:1rem}.report-detail-btn{width:100%;padding:.65rem 1rem;font-size:.875rem;color:#64748b;background:#fff;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;transition:background .2s,color .2s}.report-detail-btn:hover{background:#f8fafc;color:#475569}.report-detail-content{margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}