*,*:before,*:after{box-sizing:border-box}body{margin:0;background:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#1a1a1a}.container{max-width:640px;margin:40px auto;padding:0 16px}h2{font-size:20px;font-weight:600;margin:0}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}.auth-card{width:100%;max-width:360px;padding:32px 24px;background:#fff;border:1px solid #eee;border-radius:12px}.auth-card h2{margin-bottom:24px;text-align:center}.tools-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.tool-card{display:block;padding:20px 16px;background:#fff;border:1px solid #eee;border-radius:8px;text-decoration:none;color:inherit;transition:border-color .15s}.tool-card:hover{border-color:#333}.tool-card-name{font-size:15px;font-weight:600;margin-bottom:6px}.tool-card-desc{font-size:12px;color:#888}.page-header{display:flex;align-items:center;gap:12px;margin-bottom:24px}.form{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.field{display:flex;flex-direction:column;gap:4px}label{font-size:13px;color:#666}input{padding:8px 10px;border:1px solid #ddd;border-radius:6px;font-size:14px;outline:none;width:100%}input:focus{border-color:#333}button{padding:10px;background:#1a1a1a;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer}button:disabled{background:#aaa;cursor:not-allowed}.btn-ghost{background:transparent;color:#666;border:1px solid #ddd;padding:6px 12px;font-size:13px;border-radius:6px;cursor:pointer}.btn-ghost:hover{border-color:#999;color:#333}.error{padding:10px 14px;background:#fff0f0;border:1px solid #fcc;border-radius:6px;color:#c00;font-size:14px;margin-bottom:16px}.result{display:flex;flex-direction:column;gap:16px}.period{font-size:13px;color:#888}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.card{padding:16px;border:1px solid #eee;border-radius:8px;background:#fff}.card-label{font-size:12px;color:#888;margin-bottom:6px}.card-value{font-size:22px;font-weight:600;margin-bottom:6px}.card-value.negative{color:#c00}.card-sub{display:flex;flex-direction:column;gap:2px;font-size:12px;color:#888}details{border:1px solid #eee;border-radius:6px;overflow:hidden;background:#fff}details summary{padding:10px 14px;cursor:pointer;font-size:13px;color:#666;-webkit-user-select:none;user-select:none}details pre{padding:12px 14px;font-size:12px;overflow-x:auto;background:#f9f9f9;margin:0}
