*{box-sizing:border-box;margin:0;padding:0}body{color:#333;background:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{max-width:1200px;margin:0 auto;padding:20px}header{margin-bottom:24px}.header-top{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.user-info{color:#666;align-items:center;gap:10px;font-size:.85rem;display:flex}header h1{color:#1a1a1a;font-size:1.5rem}header nav{border-bottom:2px solid #ddd;gap:4px;padding-bottom:0;display:flex}header nav button{cursor:pointer;color:#666;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:8px 20px;font-size:.9rem;transition:all .15s}header nav button:hover{color:#333}header nav button.active{color:#2563eb;border-bottom-color:#2563eb;font-weight:600}main{background:#fff;border-radius:8px;padding:24px;box-shadow:0 1px 3px #0000001a}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.toolbar input,.toolbar select{border:1px solid #ddd;border-radius:4px;padding:6px 12px;font-size:.875rem}.toolbar input[type=text]{min-width:200px}button.btn{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:4px;padding:6px 16px;font-size:.875rem;transition:all .15s}button.btn:hover{background:#f0f0f0}button.btn-primary{color:#fff;background:#2563eb;border-color:#2563eb}button.btn-primary:hover{background:#1d4ed8}button.btn-danger{color:#dc2626;border-color:#dc2626}button.btn-danger:hover{background:#fef2f2}button.btn-sm{padding:3px 10px;font-size:.8rem}table{border-collapse:collapse;width:100%;font-size:.875rem}th,td{text-align:left;border-bottom:1px solid #eee;padding:8px 10px}th{color:#555;background:#fafafa;font-weight:600;position:sticky;top:0}tr:hover{background:#f8fafc}.table-wrapper{max-height:60vh;overflow-y:auto}.badge{border-radius:10px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-block}.badge-green{color:#166534;background:#dcfce7}.badge-gray{color:#6b7280;background:#f3f4f6}.stats{color:#666;gap:16px;margin-bottom:16px;font-size:.85rem;display:flex}.stats span{background:#f3f4f6;border-radius:4px;padding:4px 12px}.upload-area{text-align:center;cursor:pointer;border:2px dashed #ddd;border-radius:8px;padding:40px;transition:border-color .15s}.upload-area:hover{border-color:#2563eb}.mapping-grid{grid-template-columns:1fr 1fr;gap:12px;margin:16px 0;display:grid}.mapping-row{align-items:center;gap:8px;display:flex}.mapping-row label{min-width:120px;font-size:.875rem;font-weight:500}.mapping-row select{border:1px solid #ddd;border-radius:4px;flex:1;padding:6px 10px}.result-box{background:#f0fdf4;border:1px solid #86efac;border-radius:8px;margin-top:16px;padding:20px}.result-box.error{background:#fef2f2;border-color:#fca5a5}.result-box h3{margin-bottom:8px}.result-box p{margin:4px 0;font-size:.9rem}input[type=checkbox]{cursor:pointer;width:16px;height:16px}.login-page{background:#f5f5f5;justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{text-align:center;background:#fff;border-radius:12px;width:100%;max-width:400px;padding:48px;box-shadow:0 2px 8px #0000001a}.login-card h1{color:#1a1a1a;margin-bottom:8px;font-size:1.5rem}.login-card p{color:#666;margin-bottom:32px;font-size:.95rem}.login-error{color:#dc2626;background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;margin-bottom:20px;padding:10px 16px;font-size:.875rem}.google-btn{color:#333;cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:6px;align-items:center;gap:10px;padding:10px 24px;font-size:.95rem;text-decoration:none;transition:all .15s;display:inline-flex}.google-btn:hover{background:#f8f8f8;box-shadow:0 1px 3px #0000001a}
