Changeset 3444238
- Timestamp:
- 01/21/2026 03:53:21 PM (4 weeks ago)
- Location:
- anyapi/trunk
- Files:
-
- 8 edited
-
anyapi.php (modified) (2 diffs)
-
assets/css/style.css (modified) (4 diffs)
-
assets/css/style.css.map (modified) (1 diff)
-
assets/js/anyapi-logs.min.js (modified) (1 diff)
-
inc/Admin.php (modified) (3 diffs)
-
inc/Anyapi.php (modified) (1 diff)
-
inc/Views/Dashboard.php (modified) (2 diffs)
-
readme.txt (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
anyapi/trunk/anyapi.php
r3414512 r3444238 9 9 * Plugin URI: https://www.anyapiplugin.com 10 10 * Description: No-Code WooCommerce REST API Integration. Connect Orders to any APIs with Automations, JSON Filter, API logs, and Easy Setup in Minutes. 11 * Version: 1.1. 411 * Version: 1.1.5 12 12 * Author: JC 13 13 * Author URI: https://www.anyapiplugin.com … … 22 22 if ( ! function_exists( 'add_action' ) ) { exit; } 23 23 24 define( 'ANYAPI_RELEASE_DATE', '202 5-12-8' );25 define( 'ANYAPI_VERSION', '1.1. 4' );24 define( 'ANYAPI_RELEASE_DATE', '2026-1-21' ); 25 define( 'ANYAPI_VERSION', '1.1.5' ); 26 26 define( 'ANYAPI_ASSETS', '1.0.0' ); 27 27 -
anyapi/trunk/assets/css/style.css
r3414465 r3444238 1074 1074 border-radius: 20px; 1075 1075 margin: 30px 0; 1076 box-shadow: 0 20px 40px rgba(102, 126, 234, 0.3), 1076 box-shadow: 1077 0 20px 40px rgba(102, 126, 234, 0.3), 1077 1078 0 10px 20px rgba(118, 75, 162, 0.2); 1078 1079 position: relative; … … 1209 1210 } 1210 1211 #anyapi-dashboard { 1211 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; 1212 font-family: 1213 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; 1212 1214 background: var(--anyapi-bg); 1213 1215 min-height: 80vh; … … 1323 1325 width: 300px; 1324 1326 max-width: 100%; 1327 } 1328 .logs-controls { 1329 display: flex; 1330 flex-wrap: wrap; 1331 gap: 12px; 1332 align-items: center; 1333 } 1334 #anyapi-status-filter { 1335 padding: 8px 12px; 1336 border: 1px solid #ddd; 1337 border-radius: 8px; 1338 background: white; 1339 min-width: 160px; 1340 } 1341 .dark-mode #anyapi-status-filter { 1342 background: #2d3748; 1343 border-color: #4a5568; 1344 color: white; 1345 } 1346 #anyapi-log-refresh .dashicons { 1347 font-size: 16px; 1348 width: 16px; 1349 height: 16px; 1350 vertical-align: middle; 1351 } 1352 #anyapi-log-refresh.rotating .dashicons { 1353 animation: spin 1s linear infinite; 1354 } 1355 .skeleton-row { 1356 background: #f8f9fa; 1357 animation: pulse 1.5s infinite ease-in-out; 1358 } 1359 .skeleton { 1360 height: 16px; 1361 background: linear-gradient(90deg, #e0e0e0 25%, #f0f0f0 50%, #e0e0e0 75%); 1362 background-size: 200% 100%; 1363 border-radius: 4px; 1364 animation: skeleton-loading 1.8s infinite linear; 1365 } 1366 .skeleton.short { 1367 width: 60%; 1368 } 1369 .skeleton.long { 1370 width: 85%; 1371 } 1372 .skeleton.status { 1373 width: 40%; 1374 } 1375 .skeleton.payload { 1376 width: 90%; 1377 height: 32px; 1378 } 1379 @keyframes skeleton-loading { 1380 0% { 1381 background-position: 200% 0; 1382 } 1383 100% { 1384 background-position: -200% 0; 1385 } 1386 } 1387 @keyframes pulse { 1388 0%, 1389 100% { 1390 opacity: 1; 1391 } 1392 50% { 1393 opacity: 0.7; 1394 } 1395 } 1396 .dark-mode .skeleton { 1397 background: linear-gradient(90deg, #2d3748 25%, #4a5568 50%, #2d3748 75%); 1398 } 1399 .loading { 1400 text-align: center; 1401 padding: 60px; 1402 color: #64748b; 1403 font-size: 16px; 1404 } 1405 .loading::after { 1406 content: ""; 1407 display: inline-block; 1408 width: 20px; 1409 height: 20px; 1410 border: 2px solid #cbd5e1; 1411 border-top-color: #7c3aed; 1412 border-radius: 50%; 1413 animation: spin 1s linear infinite; 1414 margin-left: 12px; 1415 } 1416 @keyframes spin { 1417 to { 1418 transform: rotate(360deg); 1419 } 1420 } 1421 #logs-pagination, 1422 #logs-info { 1423 display: flex; 1424 align-items: center; 1425 gap: 16px; 1426 flex-wrap: wrap; 1427 margin: 5px 0; 1428 font-size: 14px; 1429 color: #2c3338; 1430 } 1431 .tablenav-pages a.button, 1432 .tablenav-pages span.current-page, 1433 .tablenav-pages a.page-numbers { 1434 display: inline-flex; 1435 align-items: center; 1436 justify-content: center; 1437 min-width: 30px; 1438 height: 30px; 1439 font-size: 13px; 1440 font-weight: 600; 1441 padding: 0 12px; 1442 margin: 0 4px; 1443 border-radius: 6px; 1444 text-decoration: none; 1445 transition: all 0.2s ease; 1446 box-sizing: border-box; 1447 } 1448 .tablenav-pages a.button, 1449 .tablenav-pages a.page-numbers { 1450 background: #ffffff; 1451 border: 1px solid #c3c4c7; 1452 color: #2c3338; 1453 } 1454 .tablenav-pages a.button:hover, 1455 .tablenav-pages a.page-numbers:hover { 1456 background: #f0f0f1; 1457 border-color: #8c8f94; 1458 color: #1d2327; 1459 } 1460 .tablenav-pages span.current-page { 1461 background: #2271b1; 1462 color: white; 1463 border: 1px solid #135e96; 1464 font-weight: bold; 1465 box-shadow: 0 2px 6px rgba(34, 113, 177, 0.25); 1466 } 1467 .prev-page, 1468 .next-page { 1469 min-width: 100px !important; 1470 font-weight: 600; 1471 } 1472 .tablenav-pages span.dots { 1473 padding: 0 12px; 1474 color: #646970; 1475 font-weight: bold; 1476 } 1477 @media (max-width: 782px) { 1478 #logs-pagination, 1479 #logs-info { 1480 flex-direction: column; 1481 align-items: flex-start; 1482 gap: 12px; 1483 } 1484 .tablenav-pages a.button, 1485 .tablenav-pages span.current-page { 1486 min-width: 36px; 1487 height: 36px; 1488 font-size: 14px; 1489 } 1490 .prev-page, 1491 .next-page { 1492 min-width: 80px !important; 1493 } 1325 1494 } 1326 1495 .method-post { … … 1410 1579 text-overflow: ellipsis; 1411 1580 white-space: nowrap; 1412 }1413 .loading {1414 text-align: center;1415 padding: 60px;1416 font-size: 18px;1417 color: #646970;1418 1581 } 1419 1582 .anyapi-sidebar { -
anyapi/trunk/assets/css/style.css.map
r3414465 r3444238 1 {"version":3,"sources":["modules/tabs.scss","modules/button.scss","modules/checkbox.scss","modules/table.scss","modules/form.scss","modules/features.scss","modules/pretty.scss","modules/general.scss","modules/desert.scss","modules/ui-dashboard.scss","modules/ui-orderapi.scss"],"names":[],"mappings":"AAAA,2EAKE,UAAW,CACX,UAAW,CACX,QAAS,CACT,oBAAqB,CACrB,mCAAoC,CATtC,0FAYI,UAAW,CACX,kBAAmB,CAbvB,oGAgBM,gBAAiB,CACjB,eAAgB,CAChB,YAAa,CACb,4BAA6B,CAC7B,yBAA0B,CAC1B,UAAW,CACX,oBAAqB,CAtB3B,kIAyBQ,2BAA4B,CAzBpC,idAiCQ,UAAW,CACX,cAAe,CACf,qBAAsB,CACtB,wBAAyB,CAC1B,0DAOL,UAAW,CACX,SAAU,CACV,YAAa,CAJf,wEAOI,aAAc,CACd,YAAa,CACb,qBAAsB,CACtB,0CAA8C,CAC/C,SAID,YAAa,CACb,cAAe,CACf,WAAY,CACZ,UAAW,CACX,UAAW,CACX,cAAe,CACf,WAAY,CACZ,YAAa,CACb,uBAAwB,CACxB,WAAY,CACZ,cAAe,CACf,YAAa,CACb,iBAAkB,CACnB,eAGC,qBAAsB,CACvB,KCrEC,oBAAqB,CACrB,oBAAqB,CACrB,qBAAsB,CACtB,gBAAiB,CACjB,UAAW,CACX,mBAAoB,CACpB,eAAgB,CACjB,WAGC,gBAAiB,CACjB,iBAAkB,CAClB,eAAgB,CACjB,YAGC,gBAAiB,CACjB,kBAAmB,CACnB,eAAgB,CACjB,WAGC,gBAAiB,CACjB,kBAAmB,CACnB,eAAgB,CACjB,UAGC,gBAAiB,CACjB,kBAAmB,CACnB,eAAgB,CACjB,eAGC,wBAAyB,CAC1B,UAIC,UAAW,CACX,wBAAmC,CACpC,aAGC,aAAwB,CACxB,qBAAsB,CACvB,aAGC,UAAW,CACX,wBAAoC,CACrC,WAGC,UAAW,CACX,wBAAmC,CACpC,WAGC,UAAW,CACX,wBAAoC,CACrC,YAGC,UAAW,CACX,qBAAsB,CACvB,YAIC,UAAW,CACX,wBAAmC,CACpC,cAGC,UAAW,CACX,wBAAoC,CACrC,aAGC,eAAgB,CAChB,wBAAiC,CAClC,eAKC,UAAW,CACX,wBAAyB,CAC1B,aAGC,UAAW,CACX,wBAAmC,CACpC,aAIC,UAAW,CACX,wBAAyB,CAC1B,UAGC,aAAc,CACd,wBAAyB,CAC1B,UAGC,aAAc,CACd,wBAAyB,CAC1B,cAIC,UAAW,CACX,wBAAgC,CACjC,aAGC,UAAW,CACX,wBAAyB,CAE1B,qBAOC,cAAe,CACf,WAAY,CACb,cAGC,cAAe,CACf,WAAY,CACb,cAGC,WAAY,CACZ,wBAAyB,CAEzB,mBAAoB,CACrB,SAGC,UAAW,CACX,wBAAyB,CACzB,kBAAmB,CACpB,UAIC,UAAW,CACX,qBAAsB,CACtB,cAAe,CACf,wBAAyB,CAC1B,kBAGC,wBAAmC,CACpC,2BAGC,YAAa,CADf,kCAGI,aAAc,CACf,YAID,UAAW,CACX,qBAAsB,CACvB,4BASC,oBAAqB,CACrB,oBAAqB,CACrB,cAAe,CACf,eAAgB,CAChB,qBAAsB,CACtB,iBAAkB,CAIlB,aAAc,CAGd,WAAY,CACZ,cAAe,CACf,mBAAoB,CAIpB,mBAAoB,CACrB,YAGC,gBAAiB,CACjB,eAAgB,CAChB,mBAAoB,CACrB,mCAMC,wBAAyB,CACzB,aAAc,CACf,mCAKC,wBAAyB,CACzB,aAAc,CACf,iBAGC,gBAAiB,CACjB,kBAAmB,CACnB,eAAgB,CACjB,yCAKC,wBAAyB,CAE1B,yCAKC,wBAAyB,CACzB,UAAW,CAKZ,uDAQC,gBAAiB,CACjB,WAAY,CACb,wCAMC,WAAY,CACb,cCtPC,QAAS,CACT,SAAU,CAEV,qCACE,YAAa,CAEb,mDACE,oBA5BgB,CA6BhB,kBA7BgB,CA8BhB,kCA9BgB,CAgChB,uDACE,gBAmCiB,CAlClB,oBAKH,yBAA0B,CAC1B,oBAAqB,CACrB,iBAAkB,CA7BpB,0BA+B0B,CA9B1B,wBA8B0B,CA5B1B,qBA4B0B,CA1B1B,gBA0B0B,CAExB,kBA3CS,CA4CT,gCA9CkB,CA+ClB,wBA7CS,CA8CT,kBAA0B,CAC1B,UAAkB,CAClB,WAkBqB,CAhBrB,wBACE,yBAA0B,CAC1B,kBAAmB,CACnB,UAamB,CAZnB,WAYmB,CAXnB,iBAA0B,CAC3B,wDAIC,cAAe,CAChB,oBAQD,kBAAmB,CACpB,WCxED,UAAW,CACX,kBAAmB,CACnB,eAAgB,CAHlB,uCAQI,qBAAsB,CACtB,wBAAyB,CACzB,YAAa,CAVjB,cAcI,wBAAyB,CAC1B,WAID,UAAW,CACX,kBAAmB,CACnB,eAAgB,CAHlB,uCAQI,uBAAwB,CACxB,wBAAyB,CACzB,WAAY,CAVhB,cAcI,qBAAsB,CACvB,aAID,iBAAkB,CACnB,cCrCC,oBAAqB,CACtB,WAGC,eAAgB,CACjB,YAGC,gBAAiB,CAClB,MAGC,SAAU,CACX,QAGC,oBAAqB,CACtB,YAGC,oBAAqB,CACrB,gBAAiB,CACjB,iBAAkB,CACnB,gBAGC,aAAc,CACd,eAAgB,CACjB,kBCxBC,gBAAiB,CAClB,SAGC,4CAAgD,CAChD,kBAAmB,CACnB,eAAgB,CAChB,mBAAoB,CACrB,eAIC,6BAA8B,CAC9B,2CAA+C,CAChD,iBAIC,gBAAiB,CACjB,eAAgB,CAChB,kBAAmB,CACnB,mCAAoC,CAErC,eAGC,mCAAoC,CACrC,cAGC,oBAAqB,CACrB,YAAa,CACb,UAAW,CACZ,wBAGC,iBAAkB,CAClB,oBAAqB,CACrB,YAAa,CACb,UAAW,CACZ,gBAGC,oBAAqB,CACrB,UAAW,CACZ,cAGC,gBAAiB,CACjB,UAAW,CACX,eAAgB,CAChB,oBAAqB,CACtB,cAGC,gBAAiB,CACjB,eAAgB,CACjB,oBAGC,eAAgB,CAChB,YAAa,CACb,qBAAsB,CACtB,UAAW,CACZ,mBAGC,cAAe,CACf,YAAa,CACb,kBAAmB,CACnB,UAAW,CACZ,cAGC,aAAc,CACd,YAAa,CACb,aAAc,CACf,aAGC,UAAW,CACZ,gBAGC,iBAAkB,CAClB,iBAAkB,CACnB,cAGC,iBAAkB,CAClB,cAAe,CAChB,WAIC,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,gBAAiB,CACjB,gBAAiB,CACjB,UAAW,CACX,wBAAyB,CACzB,qBAAoC,CACpC,kBAAmB,CACpB,cAOC,4CAAgD,CAChD,kBAAmB,CACnB,eAAgB,CAChB,mBAAoB,CACrB,sBAOC,WAAY,CACZ,gBAAiB,CAClB,aAQC,oBAAqB,CACrB,YAAa,CACb,cAAe,CACf,iBAAkB,CACnB,UAGC,0BAA2B,CAC3B,YAAa,CAIb,qBAAsB,CACtB,qBAAsB,CACvB,aAGC,YAAa,CACb,kBAAmB,CACnB,UAAW,CACX,oBAAqB,CACtB,kBAGC,aAAc,CACd,kBAAmB,CACpB,8BAGC,aAAc,CACf,kCAGC,aAAc,CACf,UAGC,QAAS,CACT,iBAAkB,CAClB,UAAW,CACX,eAAgB,CAChB,qBAAsB,CACvB,gBAOC,YAAa,CAEb,kBAAmB,CACnB,eAAgB,CAChB,eAAgB,CAEhB,wBAAyB,CAEzB,cAAe,CACf,eAAgB,CACjB,sBAKC,cAAe,CACf,eAAgB,CAEhB,kBAAmB,CACnB,eAAgB,CACjB,sEAKC,SAAU,CAGV,WAAY,CACZ,cAAe,CACf,mBAAoB,CACpB,aAAc,CACd,iBAAkB,CAClB,wBAAyB,CACzB,oCAAwC,CACzC,oFAIC,UAAW,CAJZ,yEAIC,UAAW,CACZ,wBAGC,YAAa,CAEb,2CAA+C,CAChD,mBAOC,YAAa,CACb,kBAAmB,CACnB,eAAgB,CACjB,SAGC,WAAY,CACb,SAGC,WAAY,CACb,gBAGC,YAAa,CACb,kBAAmB,CACnB,6BAA8B,CAC9B,kBAAmB,CACpB,eAGC,gBAAiB,CACjB,gBAAiB,CACjB,QAAS,CACV,yBAGC,YAAa,CACb,kBAAmB,CACnB,aAAc,CACd,qBAAsB,CACtB,iBAAkB,CACnB,eAIC,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACvB,UAAW,CACZ,aAIC,iBAAkB,CAClB,6CAA8C,CAC9C,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAAiB,CACjB,WAAY,CACZ,cAAe,CACf,cAAe,CACf,WAAY,CACb,oBAGC,kBAAmB,CACpB,kBAIC,UAAW,CACX,UAAW,CACX,iBAAkB,CAClB,sBAAuB,CACxB,oBAGC,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACvB,wBAAyB,CACzB,WAAY,CACZ,UAAW,CACZ,0BAGC,wBAAyB,CAC1B,2BAGC,wBAAyB,CAC1B,gCAGC,WAAY,CACb,gBAGC,YAAa,CACb,qBAAsB,CACvB,eAGC,MAAO,CACP,cAAe,CACf,gBAAiB,CACjB,kBAAmB,CACnB,SAAU,CACV,gBAAiB,CAClB,WA0BC,YAAa,CACb,kBAAmB,CACnB,OAAQ,CACR,eAAgB,CAChB,cAAe,CAChB,eAIC,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACpB,YAGC,YAAa,CACb,iBAAkB,CAClB,SAAU,CACV,OAAQ,CACR,0BAA2B,CAC3B,gBAAiB,CACjB,eAAgB,CAChB,gBAAiB,CACjB,qBAAsB,CACtB,iBAAkB,CAClB,cAAe,CACf,kBAAmB,CACnB,qCAAyC,CACzC,UAAW,CAdb,oBAkBI,UAAW,CACX,iBAAkB,CAClB,OAAQ,CACR,UAAW,CACX,0BAA2B,CAC3B,4BAA6B,CAC7B,uBAAwB,CAxB5B,mBA6BI,UAAW,CACX,iBAAkB,CAClB,OAAQ,CACR,UAAW,CACX,0BAA2B,CAC3B,4BAA6B,CAC7B,uBAAwB,CACxB,SAAU,CACX,iCAKD,aAAc,CACf,WAOC,oBAAqB,CACrB,2BAA4B,CAC7B,gBAGC,YAAa,CACb,kBAAmB,CACnB,kBAAmB,CACnB,SAAU,CACX,uBAGC,iBAAkB,CACnB,kBAGC,UAAW,CACX,WAAY,CACZ,yBAA0B,CAC3B,QAGC,WAAY,CACZ,wBAAyB,CAC1B,QAEC,WAAY,CACZ,wBAAyB,CAC1B,QAEC,WAAY,CACZ,wBAAyB,CAC1B,QCxcC,WAAY,CAEZ,aAAc,CACd,YAAa,CACb,qBAAsB,CACtB,QAAS,CACV,QAGC,wBAAyB,CACzB,aAAc,CACd,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACxB,gBAGC,YAAa,CACd,kBAGC,YAAa,CACb,WAAY,CACb,kBAGC,YAAa,CACd,YAIC,YAAa,CACd,gBAGC,YAAa,CACb,eAAgB,CACjB,cAGC,YAAa,CACb,gBAAiB,CAClB,MAGC,YAAa,CACd,WC/CC,eAAgB,CAGhB,gBAAiB,CACjB,aAAc,CACf,MAGC,YAAa,CACb,sBAAkB,CAAlB,iBAAkB,CAClB,cAAe,CAEhB,cAQC,oCAAqC,CACtC,cAGC,oCAAqC,CACtC,cAGC,oCAAqC,CACtC,cAGC,oCAAqC,CACtC,gBAGC,kBAAmB,CACpB,QAOC,eAAgB,CAChB,qBAAsB,CACtB,SAAU,CACV,cAAe,CACf,wBAAyB,CACzB,QAAS,CACT,YAAa,CACd,cAGC,+BAAgC,CACjC,sDASC,eAAgB,CAChB,UAAW,CAGX,qBAAsB,CACvB,iBAGC,gBAAiB,CACjB,gBAAiB,CACjB,oBAAqB,CACtB,mBAGC,gBAAiB,CACjB,eAAgB,CAChB,oBAAqB,CACtB,kBAGC,cAAe,CACf,eAAgB,CAChB,oBAAqB,CACtB,YAGC,aAAc,CACd,gBAAiB,CACjB,eAAgB,CAChB,aAAc,CACd,wBAAyB,CACzB,oBAAqB,CACrB,qBAAsB,CACvB,MAGC,eAAgB,CAChB,YAAa,CACb,qBAAsB,CACtB,UAAW,CACZ,WAGC,gBAAiB,CACjB,YAAa,CACb,kBAAmB,CACnB,UAAW,CACZ,WAGC,UAAW,CACX,WAAY,CACZ,aAAc,CACf,QAGC,YAAa,CAGb,4CAAgD,CACjD,iBAIC,8BAA+B,CAChC,kBAGC,+BAAgC,CACjC,aAGC,iBAAkB,CACnB,OAGC,eAAgB,CACjB,iBAOC,gBAAiB,CAClB,cAGC,kBAAmB,CAEnB,SAAU,CACX,uBAGC,gBAAiB,CACjB,wBAAyB,CACzB,cAAe,CAChB,wBAGC,wBAAyB,CACzB,cAAe,CACf,iBAAkB,CAClB,eAAgB,CACjB,+BAGC,oBAAqB,CACrB,iBAAkB,CAClB,MAAO,CACP,UAAW,CAEX,wBAAyB,CACzB,gBAAiB,CACjB,eAAgB,CAChB,UAAW,CACX,wBAAyB,CACzB,mBAAoB,CACpB,uBAAwB,CACzB,aAGC,iBAAkB,CAClB,oBAAqB,CACtB,WAGC,aAAc,CACd,eAAgB,CAChB,cAAe,CACf,wBAAyB,CACzB,mBAAoB,CACpB,oBAAqB,CACtB,YAGC,gBAAiB,CACjB,eAAgB,CAChB,UAAW,CACX,oBAAqB,CACtB,iBAGC,cAAe,CACf,eAAgB,CAChB,mBAAoB,CACrB,WAGC,gBAAiB,CACjB,eAAgB,CAChB,aAAc,CACf,cAGC,iBAAkB,CAClB,iBAAkB,CACnB,cAGC,gBAAiB,CACjB,eAAgB,CAChB,iBAAkB,CACnB,cAGC,aAAc,CACd,aAAc,CACd,YAAa,CACb,wBAAyB,CACzB,oBAAqB,CACrB,cAAe,CACf,iBAAkB,CACnB,eAGC,gBAAiB,CACjB,UAAW,CACX,eAAgB,CAChB,oBAAqB,CACtB,cAGC,gBAAiB,CACjB,eAAgB,CACjB,gBCzPC,aAAc,CACd,qBAAsB,CACvB,YAEC,qBAAsB,CACtB,UAAW,CACZ,SAEC,aAAc,CACf,SAEC,aAAc,CACd,gBAAiB,CAClB,SAEC,aAAc,CACf,SAEC,aAAc,CACf,SAEC,aAAc,CACf,SAEC,UAAW,CACZ,SAEC,UAAW,CACZ,SAEC,aAAc,CACd,gBAAiB,CAClB,SAEC,aAAc,CACd,gBAAiB,CAClB,SAEC,aAAc,CACf,SAEC,aAAc,CACf,YAIC,YAAa,CACb,eAAgB,CAChB,aAAc,CACf,gDASC,oBAAqB,CACtB,aAUC,gBACE,qBAAsB,CACvB,mBAGC,UAAW,CACZ,mBAGC,UAAW,CACX,gBAAiB,CAClB,mBAGC,UAAW,CACX,iBAAkB,CACnB,mBAGC,UAAW,CACX,gBAAiB,CAClB,mBAGC,UAAW,CACZ,mBAGC,UAAW,CACZ,mBAGC,UAAW,CACZ,mBAGC,UAAW,CACX,gBAAiB,CAClB,mBAGC,UAAW,CACZ,mBAGC,UAAW,CACZ,CCpGH,MACE,oBAAY,CACZ,mBAAc,CACd,yBAAiB,CACjB,+BAAuB,CACvB,sBAAc,CACd,yBAAiB,CACjB,wBAAgB,CAGjB,WAGC,oBAAY,CACZ,sBAAc,CACd,yBAAiB,CACjB,+BAAuB,CACvB,uBAAc,CACd,yBAAiB,CACjB,wBAAgB,CAGjB,sBAOC,4DAA6D,CAC7D,WAAY,CACZ,iBAAkB,CAClB,kBAAmB,CACnB,aAAc,CACd,6EACqC,CACrC,iBAAkB,CAClB,eAAgB,CAChB,iCAAkC,CACnC,8BAGC,UAAW,CACX,iBAAkB,CAClB,KAAM,CACN,UAAW,CACX,UAAW,CACX,WAAY,CACZ,kFAKC,CACD,6BAA8B,CAC/B,gBAGC,YAAa,CACb,kBAAmB,CACnB,QAAS,CACT,gBAAiB,CACjB,aAAc,CACf,aAGC,cAAe,CACf,uCAAwC,CACzC,gBAGC,gBAAiB,CACjB,cAAe,CACf,eAAgB,CACjB,eAGC,gBAAiB,CACjB,WAAY,CACZ,cAAe,CAChB,cAGC,cAAe,CACf,cAAe,CACf,yCAA0C,CAC3C,gBAGC,YAAa,CACb,QAAS,CACT,gBAAiB,CAClB,wBAGC,4BAA6B,CAC7B,0BAA2B,CAC3B,6BAA8B,CAC9B,mCAAoC,CACrC,gCAGC,0BAA2B,CAC3B,wBAAyB,CACzB,sDAA0D,CAC3D,sCAGC,0BAA2B,CAC3B,uDAA2D,CAC5D,cAGC,iBAAkB,CAClB,QAAS,CACT,UAAW,CACX,eAAgB,CAChB,WAAY,CACZ,2BAA+B,CAC/B,cAAe,CACf,UAAW,CACX,WAAY,CACZ,iBAAkB,CAClB,cAAe,CACf,wBAAyB,CAC1B,oBAGC,gCAAoC,CACpC,WAAY,CACZ,uBAAwB,CACzB,qBAIC,KACE,SAAU,CACV,2BAA4B,CAE9B,GACE,SAAU,CACV,uBAAwB,CAAA,CAI5B,mBACE,GACE,UAAW,CAEb,KACE,SAAU,CAAA,CAId,iBACE,QAEE,yBAA0B,CAE5B,IACE,2BAA4B,CAAA,CAIhC,mBACE,QAEE,SAAU,CAEZ,IACE,WAAY,CAAA,CAKhB,0BACE,gBACE,qBAAsB,CACtB,iBAAkB,CAClB,QAAS,CACV,gBAEC,wBAAyB,CACzB,sBAAuB,CACvB,cAAe,CAChB,CAGH,kBACE,6EAA8E,CAC9E,2BAA4B,CAC5B,eAAgB,CAChB,YAAa,CACb,iBAAkB,CACnB,qBAGC,cAAe,CACf,aAAc,CACd,eAAgB,CAChB,gBAAiB,CACjB,kBAAmB,CACnB,WAAY,CACb,kBAIC,YAAa,CACb,+BAAgC,CAChC,QAAS,CACT,eAAgB,CACjB,2BAEC,kBACE,yBAA0B,CAC3B,gBAEC,QAAS,CACV,CAGH,aACE,YAAa,CACb,0DAA2D,CAC3D,QAAS,CACT,kBAAmB,CACpB,aAIC,6BAA8B,CAC9B,YAAa,CACb,kBAAmB,CACnB,qCAAyC,CACzC,yBAA0B,CAC3B,mBAGC,0BAA2B,CAC5B,gBAGC,eAAgB,CAChB,cAAe,CACf,aAAc,CACd,wBAAyB,CACzB,oBAAqB,CACtB,oBAGC,cAAe,CACf,eAAgB,CAChB,aAAc,CACd,cAAe,CAChB,qBAGC,cAAe,CAChB,UAKC,2BAA4B,CAC7B,SAGC,aAAc,CAEf,UAIC,0BAA2B,CAC5B,mBAIC,YAAa,CACb,6BAA8B,CAC9B,QAAS,CACT,kBAAmB,CACpB,0BAGC,mBACE,yBAA0B,CAC3B,CAGH,mBAEE,6BAA8B,CAC9B,YAAa,CACb,kBAAmB,CACnB,qCAAyC,CAC1C,sBAGC,YAAa,CACb,cAAe,CAChB,qBAKC,6BAA8B,CAC9B,kBAAmB,CACnB,qCAAyC,CACzC,eAAgB,CACjB,oBAGC,iBAAkB,CAClB,+BAAgC,CAChC,YAAa,CACb,6BAA8B,CAC9B,kBAAmB,CACpB,oCAGC,YAAa,CACb,QAAS,CACT,kBAAmB,CACpB,mBAGC,iBAAkB,CAClB,qBAAsB,CACtB,kBAAmB,CACnB,WAAY,CACZ,cAAe,CAChB,aAGC,kBAAmB,CACnB,WAAY,CACZ,gBAAiB,CACjB,iBAAkB,CAClB,cAAe,CACf,gBAAiB,CAClB,cAGC,gBAAiB,CACjB,iBAAkB,CAClB,gBAAiB,CACjB,cAAe,CAChB,sBAGC,kBAAmB,CACnB,WAAY,CACb,sBAGC,kBAAmB,CACnB,WAAY,CACb,oBAGC,kBAAmB,CACnB,WAAY,CACb,eAGC,cAAe,CACf,kBAAmB,CACnB,eAAgB,CAChB,iBAAkB,CACnB,aAGC,QAAS,CACT,cAAe,CACf,UAAW,CACX,oBAAqB,CACrB,oBAAqB,CACtB,oBAGC,YAAa,CACb,6BAA8B,CAC9B,eAAgB,CAChB,cAAe,CACf,UAAW,CACZ,mBAGC,gBAAiB,CACjB,qBAAsB,CACtB,iBAAkB,CAClB,WAAY,CACb,mBAGC,UAAW,CACX,wBAAyB,CAC1B,sBAGC,kBAAmB,CACnB,eAAgB,CAChB,iBAAkB,CAClB,eAAgB,CAChB,aAAc,CACf,sBAGC,iBAAkB,CAClB,4BAA6B,CAC7B,cAAe,CAChB,YAMC,2BAA4B,CAC7B,YAIC,0BAA2B,CAC5B,YAIC,0BAA2B,CAC3B,gBAAiB,CAClB,SAIC,8DAA+D,CAC/D,cAAe,CACf,aAAc,CACd,eAAgB,CAChB,eAAgB,CAChB,sBAAuB,CACvB,kBAAmB,CACpB,SAGC,iBAAkB,CAClB,YAAa,CACb,cAAe,CACf,aAAc,CACf,gBAIC,YAAa,CACb,qBAAsB,CACtB,QAAS,CACV,qBAIC,6BAA8B,CAC9B,YAAa,CACb,kBAAmB,CACnB,qCAAyC,CACzC,wBAAyB,CAC1B,wBAGC,eAAgB,CAChB,cAAe,CACf,aAAc,CACf,mBAIC,aAAc,CACf,mBAGC,aAAc,CACf,kBAGC,aAAc,CACd,wCAAyC,CAC1C,2BAGC,cAAe,CACf,aAAc,CACd,gBAAiB,CACjB,gBAAiB,CAJnB,iCAOI,kBAAmB,CACnB,UAAW,CACZ,mBAID,aAAc,CACd,YAAa,CACb,kBAAmB,CACnB,6BAA8B,CAC9B,cAAe,CACf,eAAgB,CANlB,0BASI,cAAe,CACf,aAAc,CACd,iBAAkB,CAXtB,sBAeI,gBAAiB,CACjB,iBAAkB,CAClB,eAAgB,CAjBpB,yBAoBM,iBAAkB,CApBxB,yCAyBI,kBAAmB,CACnB,oBAAqB,CACrB,eAAgB,CAChB,gBAAiB,CACjB,qBAAsB,CA7B1B,8FAiCM,kBAAmB,CACnB,oBAAqB,CAlC3B,wCAuCI,eAAgB,CAChB,cAAe,CACf,UAAW,CAzCf,8CA4CM,aAAc,CACf,oBAKH,cAAe,CACf,aAAc,CACf,uBAIC,KACE,sBAAuB,CAEzB,GACE,wBAAyB,CAAA,CAK7B,gBACE,4DAA6D,CAC7D,WAAY,CACZ,iBAAkB,CAClB,eAAgB,CACjB,wBAGC,UAAW,CACX,iBAAkB,CAClB,QAAS,CACT,UAAW,CACX,UAAW,CACX,WAAY,CACZ,gCAAoC,CACpC,uBAAwB,CACzB,wDAKC,WAAY,CACb,uBAGC,iBAAkB,CAClB,QAAS,CACT,UAAW,CACX,kBAAmB,CACnB,UAAW,CACX,gBAAiB,CACjB,kBAAmB,CACnB,cAAe,CACf,gBAAiB,CAClB,0BAGC,aAAc,CACd,iBAAkB,CACnB,6BAGC,iBAAkB,CAClB,iBAAkB,CACnB,qCAGC,WAAS,CAAI,iBACH,CAAQ,UACZ,CAAK,gCAGkB,gBACjB,CAAK,aACV,CAAO,gBACD,CAAI,qBAGC,aACT,CAAK,iBACF,CAAM,aAGR,iBACE,CAAM,eACN,CAAI,cACL,CAAI,WACN,CAAG,oBAIK,eACL,CAAI,SACP,CAAC,QACF,CAAC,uBAGW,iBACL,CAAG,sBAGC,aACZ,CAAO,oBACG,CAAI,4BAGI,yBACR,CAAS,oBAIT,YACR,CAAI,0DACU,CAAoC,QACtD,CAAI,eACG,CAAI,kBAED,6BAEH,CAAkB,YACrB,CAAI,kBACE,CAAI,qCACG,CAAmB,wBACjC,CAAiB,iBACb,CAAM,qBAEA,eACV,CAAQ,aACT,CAAO,oBAEG,aACV,CAAO,kBACC,CAAI,eACN,CAAG,0BAEO,UAChB,CAAI,yBAOW,iBACZ,CAAQ,YACT,CAAI,6BACI,CAAa,kBACjB,CAAM,eACP,CAAI,cACP,CAAM,kBACA,CAAI,cACR,CAAI,QACV,CAAI,oBAGQ,YACR,CAAI,kBACA,CAAM,QACd,CAAI,aAGC,WACF,CAAI,UACL,CAAI,iBAGG,iBACC,CAAG,yBACN,CAAc,uBAEN,qBACT,CAAW,qBAGJ,iBACR,CAAQ,UACX,CAAI,OACN,CAAG,0BACG,CAAgB,0BAGL,yBACE,cACb,CAAM,qBAEG,UACX,CAAI,CACZ,kBAOc,iBACL,CAAQ,UACX,CAAI,WACH,CAAI,kBACA,CAAO,kBACJ,CAAI,WACX,CAAI,cACJ,CAAO,eACL,CAAM,0BACJ,CAAe,+BAGC,iBAClB,CAAQ,OACb,CAAG,QACF,CAAG,UACF,CAAI,WACH,CAAI,gBACA,CAAK,iBACF,CAAG,yBACN,CAAc,oCACJ,CAAkB,yDAId,iBAChB,CAAQ,OACb,CAAG,cACG,CAAI,uBACH,CAAY,4BAGC,QACnB,CAAG,SACA,CAAC,6BAEgB,SACnB,CAAG,SACD,CAAC,6BAIgB,kBACd,CAAO,0CAGoB,0BAC5B,CAAgB,uCAGS,SAC3B,CAAC,wCAG2B,SAC5B,CAAC,WAGF,kBACI,CAAO,aACZ,CAAO,kKAQY,kBACd,CAAO,oCACG,CAAkB,iBAC1B,CAAI,+GAMW,aACtB,CAAO,4CAIS,wBAChB,CAAkB,0BAGF,kBACX,CAAO,uBAGC,2BAEb,CAAqB,8CAGR,0BAEb,CAAoB,MCl1BxB,wBAEY,CAAC,4BACG,CAAC,sBACP,CAAC,WAGN,wBACO,CAAC,4BACG,CAAC,sBACP,CAAC,kBAGC,YACN,CAAI,+BACU,CAAS,QAC3B,CAAI,aACD,CAAM,eAGF,6BACA,CAAkB,kBACf,CAAI,YACV,CAAI,uBACL,CADK,kBACL,CAAW,WAGX,YACC,CAAI,kBACA,CAAM,QACd,CAAI,cACA,CAAM,cACP,CAAO,qBACH,CAAU,+BAGM,+BAChB,CAAoB,WACzB,CAAK,aAGF,UACH,CAAI,WACH,CAAI,iBACG,CAAG,mCACN,CAAwB,YAC3B,CAAI,kBACA,CAAM,gBACN,CAAI,YAGR,cACE,CAAI,8BACR,CAAwB,qBAGb,iBACR,CAAQ,cAGP,YACF,CAAI,qBACF,CAAW,qBAGJ,aACT,CAAK,kBAGN,KACJ,SACO,CAAC,0BACC,CAAgB,GAE3B,SACS,CAAC,uBACC,CAAa,CAAA,YAIjB,kBACM,CAAI,kBAGJ,aACN,CAAK,iBACC,CAAG,eACL,CAAG,wBACT,CAAkB,0DAKP,UACX,CAAI,YACF,CAAI,qCACK,CAAoB,iBACvB,CAAG,6BACN,CAAkB,4BAClB,CAAiB,4EAKL,YACf,CAAI,kCACC,CAAqB,UAG5B,0BACA,CAAoB,WAGnB,8BACD,CAAwB,cACpB,CAAI,oBAGE,YACR,CAAI,OACR,CAAG,aACA,CAAM,UAGP,gBACE,CAAQ,qCACC,CAAoB,6BAC1B,CAAkB,iBACf,CAAG,cACV,CAAO,iBAGD,gCACF,CAAqB,WAC1B,CAAK,kCACE,CAAqB,cAGxB,kBACC,CAAO,iBACJ,CAAG,YACT,CAAI,aACL,CAAM,aACJ,CAAI,kBAGC,QACP,CAAC,aACF,CAAO,oCACD,CAAwB,cAC1B,CAAI,cAGJ,YACF,CAAI,6BACU,CAAO,QACzB,CAAI,kBACM,CAAI,aAGT,6BACE,CAAkB,YACrB,CAAI,kBACE,CAAI,qCACD,CAAoB,gBAGzB,YACD,CAAC,wBACN,CAAkB,mBAGT,aACP,CAAK,YACN,CAAK,cACL,CAAO,oBAGE,YACR,CAAI,wBACI,CAAQ,QACpB,CAAI,cACA,CAAM,yCACO,CAAoB,kBAG3B,+BACH,CAAoB,WACzB,CAAK,0BAIU,kBACL,yBACQ,CAAG,eAEd,QACL,CAAE,YACA,CAAI,sBACI,CAAM,WAEf,qBACQ,CAAM,iBACV,CAAM,cAEP,yBACY,CAAG,CAC3B,eAIW,2BACA,CAAgB,gBAChB,CAAK,uBAGG,2DACR,CAAgD,WACrD,CAAK,iBACH,CAAS,kBACH,CAAI,eACN,CAAG,YACP,CAAI,kBACA,CAAM,6BACF,CAAa,aACtB,CAAM,0CACS,CAAuB,gBAGjC,YACJ,CAAI,OACR,CAAG,kBAGO,6BACH,CAAkB,qCACZ,CAAoB,kBACvB,CAAI,eACT,CAAM,aACR,CAAM,sCACS,CAAmB,iBAG5B,YACL,CAAI,mDACU,CAA6B,QAC/C,CAAI,YACA,CAAI,kBACA,CAAM,cACR,CAAI,2BAGQ,iBACP,6BACS,CAAO,QACzB,CAAI,CACV,0BAGqB,iBACN,yBACS,CAAG,iBACd,CAAM,CACnB,OAGG,gBACK,CAAQ,kBACF,CAAI,cACR,CAAI,eACF,CAAG,iBACJ,CAAM,kBACL,CAAM,cAGR,kBACC,CAAO,WACZ,CAAK,YAGH,kBACG,CAAO,aACZ,CAAO,cAGH,kBACC,CAAO,aACZ,CAAO,iBACL,CAAS,kBACH,CAAI,iDACN,CAAqC,cACvC,CAAI,eACL,CAAM,sBACD,CAAQ,kBACV,CAAM,cACR,CAAI,yBAGO,kBACV,CAAO,aACZ,CAAO,eAGF,iBACA,CAAM,aACV,CAAM,gBAGD,6BACD,CAAkB,sBACvB,CAAgB,4BACd,CAAoB,cAClB,CAAI,kBACA,CAAI,eAGP,iBACA,CAAM,kBACV,CAAW,kCAIY,2DACnB,CAAgD,6BAGlC,qCACH,CAAkB,oBAIxB,iBACL,CAAM,eACP,CAAK,aACR,CAAM,YACL,CAAI,sBAEM,cACR,CAAI,aACP,CAAM,wBACP,CAAkB,cAEd,cACA,CAAI,aACR,CAAO,oBAEG,aACT,CAAM,YACL,CAAI,QACR,CAAI,sBACQ,CAAM,cACZ,CAAI,6BAEW,gBAClB,CAAS,cACN,CAAI,WAEP,aACA,CAAM,aAEJ,4BACD,CAAoB,yBAClB,CAAe,kBACX,CAAI,0CACI,CAAuB,mBAE9B,eACJ,CAAI,YACP,CAAI,QACR,CAAI,sBACQ,CAAM,cACZ,CAAI,kBAIA,gBACP,CAAS,iBACL,CAAM,gBAGL,+DACyC,CAAU,sBACzD,CAAgB,WACf,CAAI,4BACH,CAAoB,cAClB,CAAI,kBACA,CAAI,2CACK,CAAuB,mBACnC,CAAQ,sBAGD,0BACR,CAAgB,2CACH,CAAuB,wBAG1B,WACZ,CAAG,kBACJ,CAAW,iBACT,CAAQ,+BAEU,UACnB,CAAE,iBACD,CAAQ,UACX,CAAI,WACH,CAAI,qBACJ,CAAc,4BACJ,CAAW,iBACd,CAAG,iCACP,CAAuB,UAC3B,CAAI,gBAGH,GACN,wBACW,CAAc,CAAA,aAIjB,eACE,CAAI,YACP,CAAI,kBACE,CAAI,uCACN,CAA2B,cAC7B,CAAI,eACH,CAAI,eACL,CAAK,gBACH,CAAI,iBACH,CAAI,gBACV,CAAS,qBAGC,kBACN,CAAO,oBACL,CAAO,aACd,CAAO,mBAGE,kBACJ,CAAO,oBACL,CAAO,aACd,CAAO,gCAGe,kBACjB,CAAO,aACZ,CAAO,8BAEa,kBACf,CAAO,aACZ","file":"style.css","sourcesContent":[".nav-tabs,\n.nav-tabs-tools,\n.nav-tabs-filter,\n.nav-tabs-api,\n.nav-tabs-apiauth {\n float: left;\n width: 100%;\n margin: 0;\n list-style-type: none;\n border-bottom: 1px solid transparent;\n\n > li {\n float: left;\n margin-bottom: -1px;\n\n > a {\n margin-right: 2px;\n line-height: 1.5;\n padding: 10px;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n float: left;\n text-decoration: none;\n\n &:hover {\n border-color: #eee #eee #ddd;\n }\n }\n\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: #555;\n cursor: default;\n background-color: #fff;\n border-color: transparent;\n }\n }\n }\n}\n\n.tab-content > .tab-pane,\n.tab-content-tools > .tab-pane-tools {\n float: left;\n width: 98%;\n display: none;\n\n &.active {\n display: block;\n padding: 10px;\n background-color: #fff;\n box-shadow: 0 5px 4px -2px rgba(0, 0, 0, 0.15);\n }\n}\n\n#top-btn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: purple;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n}\n\n#top-btn:hover {\n background-color: #555;\n}\n","/**************************/\n/* Tags */\n/**************************/\n\n.tag {\n display: inline-block;\n text-decoration: none;\n padding: 0.4rem 0.8rem; /* 0.4 0.8*/\n font-size: 0.9rem; /* 1.2 */\n color: none;\n border-radius: 100px;\n font-weight: 300;\n}\n\n.tag.small {\n font-size: 0.8rem;\n border-radius: 3px;\n font-weight: 300;\n}\n\n.tag.medium {\n font-size: 0.9rem;\n border-radius: 15px;\n font-weight: 300;\n}\n\n.tag.large {\n font-size: 1.4rem;\n border-radius: 15px;\n font-weight: 400;\n}\n\n.tag.step {\n font-size: 1.2rem;\n border-radius: 50px;\n font-weight: 500;\n}\n\n.tag.uppercase {\n text-transform: uppercase;\n}\n\n/* Basic */\n.tag--woo {\n color: #eee;\n background-color: rgb(108, 59, 164);\n}\n\n.tag--woorev {\n color: rgb(108, 59, 164);\n background-color: #eee;\n}\n\n.tag--wooadv {\n color: #eee;\n background-color: rgb(218, 179, 254);\n}\n\n.tag--auth {\n color: #333;\n background-color: rgb(246, 169, 14);\n}\n\n.tag--attr {\n color: #333;\n background-color: rgb(206, 206, 206);\n}\n\n.tag--large {\n color: #333;\n background-color: #eee;\n}\n\n/* Attributes */\n.tag--order {\n color: #eee;\n background-color: rgb(132, 95, 132);\n}\n\n.tag--billing {\n color: #333;\n background-color: rgb(206, 206, 206);\n}\n\n.tag--fields {\n color: lightblue;\n background-color: rgb(25, 25, 25);\n}\n\n/* Features */\n.tag--codefree {\n // background-color: rgb(249, 222, 0);\n color: #fff;\n background-color: #11111a;\n}\n\n.tag--secure {\n color: #fff;\n background-color: rgb(10, 151, 218);\n}\n\n.tag--notice {\n // background-color: #dd6413;\n color: #fff;\n background-color: #4a4af3;\n}\n\n.tag--new {\n color: #11111a;\n background-color: #f34a4a;\n}\n\n.tag--cap {\n color: #f34a4a;\n background-color: #11111a;\n}\n\n/* License */\n.tag--disable {\n color: #fff;\n background-color: rgb(231, 0, 0);\n}\n\n.tag--enable {\n color: #fff;\n background-color: #43aa8b;\n // background-color: rgb(48, 154, 62);\n}\n\n/**************************/\n/* Dynamic Tags */\n/**************************/\n\n.tag.available:hover {\n cursor: pointer;\n opacity: 0.7;\n}\n\n.tag.selected {\n cursor: pointer;\n opacity: 0.7;\n}\n\n.tag.disabled {\n color: white;\n background-color: #d2d2d2;\n /* text-decoration: line-through; */\n pointer-events: none;\n}\n\n.tag.pro {\n color: #333;\n background-color: #fdf2e9;\n cursor: not-allowed;\n}\n\n/* Step */\n.step-tag {\n color: #eee;\n background-color: #ccc;\n cursor: pointer;\n text-transform: uppercase;\n}\n\n.step-tag.current {\n background-color: rgb(108, 59, 164);\n}\n\n.order-api-step > .step-pane {\n display: none;\n &.active {\n display: block;\n }\n}\n\n.notice-tag {\n color: #eee;\n background-color: #ccc;\n}\n\n/**************************/\n/* Buttons */\n/**************************/\n\n.btn,\n.btn:link,\n.btn:visited {\n display: inline-block;\n text-decoration: none;\n font-size: 1rem; /* 2 */\n font-weight: 400;\n padding: 0.8rem 1.6rem; /* 1.6 3.2 */\n border-radius: 9px; /* 9 */\n\n /* default color*/\n // background-color: #f34a4a;\n color: #11111a;\n\n /* Only necessary for .btn */\n border: none;\n cursor: pointer;\n font-family: inherit;\n\n /* Put transition on original \"state\" */\n /* transition: background-color 0.3s; */\n transition: all 0.3s;\n}\n\n.btn.medium {\n font-size: 0.9rem;\n font-weight: 400;\n padding: 0.6rem 1rem;\n}\n\n.btn--full:link,\n.btn--full:visited {\n // background-color: #e67e22;\n // color: #fff;\n background-color: #f34a4a;\n color: #11111a;\n}\n\n.btn--full:hover,\n.btn--full:active {\n // background-color: #cf711f;\n background-color: #11111a;\n color: #f34a4a;\n}\n\n.btn--full.small {\n font-size: 0.9rem;\n border-radius: 26px;\n font-weight: 500;\n}\n\n.btn--outline:link,\n.btn--outline:visited {\n // background-color: #fff;\n background-color: #2f2f48;\n // color: #555;\n}\n\n.btn--outline:hover,\n.btn--outline:active {\n // background-color: #fdf2e9;\n background-color: #11111a;\n color: #fff;\n\n // border: 3px solid #fff;\n /* Trick to add border inside */\n // box-shadow: inset 0 0 0 3px #fff;\n}\n\n/* Prev Next Save */\n.next-btn,\n.prev-btn,\n.save-btn,\n.back-btn,\n.save-settings {\n text-align: right;\n padding: 1px;\n}\n\n.btn-next,\n.btn-prev,\n.btn-save,\n.btn-back {\n float: right;\n}\n","/* $on: #009eea; */\n$on: rgb(108, 59, 164);\n$bg: #d9cb9e;\n$off: #8c8c8c;\n\n@mixin center {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n@mixin userSelect($value) {\n -webkit-touch-callout: $value;\n -webkit-user-select: $value;\n -khtml-user-select: $value;\n -moz-user-select: $value;\n -ms-user-select: $value;\n user-select: $value;\n}\n\n@mixin ui-toggle($height, $on, $off) {\n margin: 0;\n padding: 0;\n\n input[type=\"checkbox\"] {\n display: none;\n\n &:checked + label {\n border-color: $on;\n background: $on;\n box-shadow: inset 0 0 0 #{$height / 2} $on;\n\n > div {\n margin-left: $height;\n }\n }\n }\n\n label {\n transition: all 200ms ease;\n display: inline-block;\n position: relative;\n\n @include userSelect(none);\n\n background: $off;\n box-shadow: inset 0 0 0 0 $on;\n border: 2px solid $off;\n border-radius: $height + 2;\n width: $height * 2;\n height: $height;\n\n div {\n transition: all 200ms ease;\n background: #ffffff;\n width: $height;\n height: $height;\n border-radius: $height / 2;\n }\n\n &:hover,\n & > div:hover {\n cursor: pointer;\n }\n }\n}\n\ndiv.ui-toggle {\n @include ui-toggle(16px, $on, $off);\n\n &.mb-10 {\n margin-bottom: 10px;\n }\n}\n",".api-table {\n width: 100%;\n border-spacing: 5px;\n text-align: left;\n\n &,\n & th,\n & td {\n border: 1px solid #ccc;\n border-collapse: collapse;\n padding: 10px;\n }\n\n & th {\n background-color: #f5f5f5;\n }\n}\n\n.tag-table {\n width: 100%;\n border-spacing: 5px;\n text-align: left;\n\n &,\n & th,\n & td {\n border: 0.8px solid #ccc;\n border-collapse: collapse;\n padding: 5px;\n }\n\n & th {\n background-color: none;\n }\n}\n\n.text-center {\n text-align: center;\n}\n",".inline-block {\n display: inline-block;\n}\n\n.text-left {\n text-align: left;\n}\n\n.text-right {\n text-align: right;\n}\n\n.w-50 {\n width: 49%;\n}\n\n.inline {\n display: inline-block;\n}\n\n.meta-label {\n display: inline-block;\n font-weight: bold;\n margin-bottom: 5px;\n}\n\n.meta-container {\n display: block;\n margin-top: 20px;\n}\n","/**************************/\n/* Feature CSS */\n/**************************/\n\n.section-features {\n padding: 9.6rem 0;\n}\n\n.feature {\n box-shadow: 0 2.4rem 4.8rem rgba(0, 0, 0, 0.075);\n border-radius: 11px;\n overflow: hidden;\n transition: all 0.4s;\n}\n\n/* card action */\n.feature:hover {\n transform: translateY(-1.2rem);\n box-shadow: 0 3.2rem 6.4rem rgba(0, 0, 0, 0.06);\n}\n\n/* content backgrpund */\n.feature-content {\n font-size: 0.9rem; /* 1.8 */\n line-height: 1.8;\n align-items: center;\n padding: 1.6rem 2.4rem 2.4rem 2.4rem;\n /* 3.2rem 4.8rem 4.8rem 4.8rem;*/\n}\n\n.feature-cards {\n padding: 1.6rem 2.4rem 2.4rem 2.4rem;\n}\n\n.feature-tags {\n margin-bottom: 1.2rem; /* 1.2rem */\n display: flex;\n gap: 0.4rem;\n}\n\n.feature-dashboard-tags {\n margin-top: 2.2rem; /* 1.2rem */\n margin-bottom: 2.2rem; /* 1.2rem */\n display: flex;\n gap: 0.4rem;\n}\n\n.feature-hidden {\n margin-bottom: 1.2rem;\n gap: 0.4rem;\n}\n\n.feature-name {\n font-size: 1.2rem; /* 2.4 */\n color: #333;\n font-weight: 600;\n margin-bottom: 1.6rem; /* 3.2 */\n}\n\n.feature-info {\n font-size: 0.9rem; /*1.8 */\n line-height: 1.6; /*1.8 */\n}\n\n.feature-attributes {\n list-style: none;\n display: flex;\n flex-direction: column;\n gap: 0.2rem; /* 2 */\n}\n\n.feature-attribute {\n font-size: 1rem; /* 1.8 */\n display: flex;\n align-items: center;\n gap: 0.8rem; /* 1.6 */\n}\n\n.feature-icon {\n height: 2.4rem;\n width: 2.4rem;\n color: #e67e22;\n}\n\n.feature-img {\n width: 100%;\n}\n\n.call-to-action {\n text-align: center;\n margin-top: 2.4rem; /* 4.8 */\n}\n\n.all-features {\n text-align: center;\n font-size: 1rem; /* 1.8 */\n}\n\n/* pagination */\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #555;\n background-color: #fae5d3;\n border: 2px solid rgb(255, 255, 255);\n border-radius: 11px;\n}\n\n/**************************/\n/* Card CSS no movement */\n/**************************/\n\n.card-content {\n box-shadow: 0 2.4rem 4.8rem rgba(0, 0, 0, 0.075);\n border-radius: 11px;\n overflow: hidden;\n transition: all 0.4s;\n}\n\n/**************************/\n/* Admin Notice */\n/**************************/\n\n.notice-action-button {\n float: right;\n margin-top: -66px;\n}\n\n/**************************/\n/* Order API */\n/**************************/\n\n/* action span */\n.action-tags {\n margin-bottom: 1.2rem;\n display: flex;\n flex-wrap: wrap;\n gap: 0.8rem 0.2rem;\n}\n\n.tag-item {\n flex: 0 0 calc(50% - 0.1em);\n display: flex;\n // align-items: center;\n // gap: 0.4rem;\n // box-sizing: border-box;\n flex-direction: column;\n box-sizing: border-box;\n}\n\n.tag-wrapper {\n display: flex;\n align-items: center;\n gap: 0.4rem;\n margin-bottom: 0.3rem;\n}\n\n.tag-wrapper .tag {\n flex-shrink: 0;\n white-space: nowrap;\n}\n\n.tag-wrapper .image-container {\n flex-shrink: 0;\n}\n\n.tag-wrapper .image-container img {\n display: block;\n}\n\n.tag-desc {\n margin: 0;\n font-size: 0.85rem;\n color: #666;\n line-height: 1.4;\n word-break: break-word;\n}\n\n/**************************/\n/* API input form */\n/**************************/\n\n.api-input-form {\n display: grid;\n /* grid-template-columns: 0.5fr 1fr; */\n border-radius: 11px;\n overflow: hidden;\n text-align: left;\n /* padding: 1.8rem 0rem 1.8rem 1.8rem; */\n padding: 0px 0px 18px 0px;\n /* font-size: 1.8rem; */\n font-size: 18px;\n line-height: 1.8;\n}\n\n.api-input-form label {\n /* display: block; */\n /* font-size: 1.6rem; */\n font-size: 16px;\n font-weight: 500;\n /*margin-bottom: 1.2rem; */\n margin-bottom: 12px;\n margin-top: 12px;\n}\n\n.api-input-form input,\n.api-input-form textarea,\n.api-input-form select {\n width: 60%;\n /* padding: 0.7rem;\n font-size: 1.5rem; */\n padding: 7px;\n font-size: 15px;\n font-family: inherit;\n color: inherit;\n border-radius: 9px;\n background-color: #fdf2e9;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n.api-input-form input::placeholder,\n.api-input-form textarea::placeholder {\n color: #aaa;\n}\n\n.api-input-form *:focus {\n outline: none;\n /* box-shadow: 0 0 0 0.8rem rgba(253, 242, 233, 0.5); */\n box-shadow: 0 0 0 16px rgba(253, 242, 233, 0.5);\n}\n\n/**************************/\n/* Advance mode */\n/**************************/\n\n.adv-box-container {\n display: flex;\n flex-direction: row;\n padding: 0px 0px;\n}\n\n.adv-box {\n width: 350px;\n}\n\n.adv-pre {\n width: 650px;\n}\n\n.adv-box-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 0 10px 10px;\n}\n\n.adv-box-title {\n font-weight: bold;\n font-size: 0.9rem; /* 1.8 */\n margin: 0;\n}\n\n.adv-box-table-container {\n height: 250px;\n margin-bottom: 15px;\n overflow: auto;\n border: 1px solid #bbb;\n border-radius: 5px;\n}\n\n/* Idle */\n.adv-minus-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.4rem;\n}\n\n/* Delete button */\n.adv-box-btn {\n border-radius: 5px;\n transition: background-color 0.15s ease-in-out;\n user-select: none;\n border: none;\n cursor: pointer;\n font-size: 14px;\n height: 35px;\n}\n\n.adv-box-btn.circle {\n border-radius: 50px;\n}\n\n/* Button icon */\n.adv-box-btn-icon {\n height: 3px;\n width: 12px;\n border-radius: 5px;\n background-color: white;\n}\n\n.adv-box-btn-delete {\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #e53c4a;\n height: 22px;\n width: 22px;\n}\n\n.adv-box-btn-delete:hover {\n background-color: #db3240;\n}\n\n.adv-box-btn-delete:active {\n background-color: #cc2331;\n}\n\n.adv-box td .adv-box-btn-delete {\n margin: auto;\n}\n\n.adv-box-footer {\n display: flex;\n flex-direction: column;\n}\n\n.adv-box-total {\n flex: 1;\n font-size: 14px;\n font-weight: bold;\n margin: 0 10px 15px;\n padding: 0;\n text-align: right;\n}\n\n/**************************/\n/* Tooltips*/\n/**************************/\n\n// .image-container {\n// position: relative;\n// display: inline-block;\n// }\n\n// .image-info {\n// display: none;\n// /* position: absolute; */\n// position: absolute;\n// background-color: #fff;\n// padding: 1px;\n// border: 1px solid #ccc;\n// border-radius: 5px;\n// }\n\n// .image-container:hover .image-info {\n// display: block;\n// }\n\n.api-label {\n display: flex;\n align-items: center; // 文字與圖片垂直置中\n gap: 6px; // 文字與圖片之間的間距\n font-weight: 500;\n cursor: default;\n}\n\n/* 圖片 + info 的容器 */\n.image-wrapper {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.image-info {\n display: none;\n position: absolute;\n left: 100%; // 貼在圖片右側\n top: 50%;\n transform: translateY(-50%);\n margin-left: 10px; // 留出箭頭空間\n background: #fff;\n padding: 8px 12px;\n border: 1px solid #ccc;\n border-radius: 5px;\n font-size: 13px;\n white-space: nowrap;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);\n z-index: 10;\n\n /* 小箭頭(左側指向圖片) */\n &::before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: -16px; // 箭頭寬度\n transform: translateY(-50%);\n border: 8px solid transparent;\n border-right-color: #ccc; // 外框箭頭(與邊框同色)\n }\n\n /* 內層白色箭頭(蓋掉邊框,讓看起來乾淨) */\n &::after {\n content: \"\";\n position: absolute;\n top: 50%;\n left: -14px; // 比外箭頭內縮 1px\n transform: translateY(-50%);\n border: 7px solid transparent;\n border-right-color: #fff; // 填滿背景色\n z-index: 1;\n }\n}\n\n/* Hover 時顯示 */\n.image-wrapper:hover .image-info {\n display: block;\n}\n\n/**************************/\n/* Idle */\n/**************************/\n\n.aa-legend {\n list-style-type: none;\n margin: 17rem 0rem 0rem 5rem;\n}\n\n.aa-legend-item {\n display: flex;\n align-items: center;\n margin-bottom: 10px;\n padding: 0;\n}\n\n.aa-legend-description {\n margin: 0 0 0 10px;\n}\n\n.aa-legend-bullet {\n width: 22px;\n height: 22px;\n border-radius: 5px 5px 0 0;\n}\n\n.color1 {\n color: white;\n background-color: #277da1;\n}\n.color2 {\n color: white;\n background-color: #43aa8b;\n}\n.color3 {\n color: white;\n background-color: #f8961e;\n}\n","/* Scroll control */\n.scroll {\n /* background-color: #e9ecef;*/\n padding: 0px;\n /* How elements that don't fit into container appear */\n overflow: auto;\n display: flex;\n flex-direction: column;\n gap: 40px;\n}\n/* Api Tools Section*/\n.pretty {\n background-color: #adb5bd;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.pretty.sendapi {\n height: 555px;\n}\n\n.pretty.filterapi {\n height: 222px;\n width: 777px;\n}\n\n.pretty.manageapi {\n height: 444px;\n}\n\n/* Order Api Section*/\n.pretty.api {\n height: 333px;\n}\n\n.pretty.advance {\n height: 250px;\n color: lightblue;\n}\n\n.pretty.props {\n height: 333px;\n align-items: left;\n}\n/* Hide pretty */\n.json {\n display: none;\n}\n",".container {\n /* 1140px */\n max-width: 80rem;\n /* max-width: 80rem;\n /*120rem*/\n padding: 0 3.2rem;\n margin: 0 auto;\n}\n\n.grid {\n display: grid;\n column-gap: 2.2rem; /* 6.4 */\n row-gap: 9.6rem;\n /* margin-bottom: 9.6rem; */\n}\n\n/*\n.grid:not(:last-child) {\n margin-bottom: 9.6rem;\n}\n*/\n.grid--2-cols {\n grid-template-columns: repeat(2, 1fr);\n}\n\n.grid--3-cols {\n grid-template-columns: repeat(3, 1fr);\n}\n\n.grid--4-cols {\n grid-template-columns: repeat(4, 1fr);\n}\n\n.grid--5-cols {\n grid-template-columns: repeat(5, 1fr);\n}\n\n.grid--center-v {\n align-items: center;\n}\n\n/**************************/\n/* HEADER */\n/**************************/\n\n.header {\n background: #fff;\n box-sizing: border-box;\n padding: 0;\n position: fixed;\n width: calc(100% - 160px);\n top: 32px;\n z-index: 1001;\n}\n\n.header-title {\n padding: 1.2rem 0rem 1.2rem 0rem;\n}\n\n/**************************/\n/* General */\n/**************************/\n\n.heading-primary,\n.heading-secondary,\n.heading-tertiary {\n font-weight: 700;\n color: #333;\n /* color: #45260a; */\n /* color: #343a40; */\n letter-spacing: -0.5px;\n}\n\n.heading-primary {\n font-size: 5.2rem;\n line-height: 1.05;\n margin-bottom: 3.2rem;\n}\n\n.heading-secondary {\n font-size: 4.4rem;\n line-height: 1.2;\n margin-bottom: 9.6rem;\n}\n\n.heading-tertiary {\n font-size: 3rem;\n line-height: 1.2;\n margin-bottom: 3.2rem;\n}\n\n.subheading {\n display: block;\n font-size: 1.6rem;\n font-weight: 500;\n color: #cf711f;\n text-transform: uppercase;\n margin-bottom: 1.6rem;\n letter-spacing: 0.75px;\n}\n\n.list {\n list-style: none;\n display: flex;\n flex-direction: column;\n gap: 1.6rem;\n}\n\n.list-item {\n font-size: 1.8rem;\n display: flex;\n align-items: center;\n gap: 1.6rem;\n}\n\n.list-icon {\n width: 3rem;\n height: 3rem;\n color: #e67e22;\n}\n\n*:focus {\n outline: none;\n /* outline: 4px dotted #e67e22; */\n /* outline-offset: 8px; */\n box-shadow: 0 0 0 0.8rem rgba(230, 125, 34, 0.5);\n}\n\n/* HELPER/SETTINGS CLASSES */\n.margin-right-sm {\n margin-right: 1.6rem !important;\n}\n\n.margin-bottom-md {\n margin-bottom: 4.8rem !important;\n}\n\n.center-text {\n text-align: center;\n}\n\nstrong {\n font-weight: 500;\n}\n\n/**************************/\n/* SECTION */\n/**************************/\n\n.section-pricing {\n padding: 9.6rem 0;\n}\n\n.pricing-plan {\n border-radius: 11px;\n\n width: 75%;\n}\n\n.pricing-plan--starter {\n justify-self: end;\n border: 2px solid #fdf2e9;\n padding: 4.6rem;\n}\n\n.pricing-plan--complete {\n background-color: #fdf2e9;\n padding: 4.8rem;\n position: relative;\n overflow: hidden;\n}\n\n.pricing-plan--complete::after {\n content: \"Best value\";\n position: absolute;\n top: 6%;\n right: -18%;\n\n text-transform: uppercase;\n font-size: 1.4rem;\n font-weight: 700;\n color: #333;\n background-color: #ffd43b;\n padding: 0.8rem 8rem;\n transform: rotate(45deg);\n}\n\n.plan-header {\n text-align: center;\n margin-bottom: 4.8rem;\n}\n\n.plan-name {\n color: #cf711f;\n font-weight: 600;\n font-size: 2rem;\n text-transform: uppercase;\n letter-spacing: 0.75;\n margin-bottom: 3.2rem;\n}\n\n.plan-price {\n font-size: 6.2rem;\n font-weight: 600;\n color: #333;\n margin-bottom: 1.6rem;\n}\n\n.plan-price span {\n font-size: 3rem;\n font-weight: 500;\n margin-right: 0.8rem;\n}\n\n.plan-text {\n font-size: 1.6rem;\n line-height: 1.6;\n color: #6f6f6f;\n}\n\n.plan-sing-up {\n text-align: center;\n margin-top: 4.8rem;\n}\n\n.plan-details {\n font-size: 1.6rem;\n line-height: 1.6;\n text-align: center;\n}\n\n.feature-icon {\n color: #e67e22;\n height: 3.2rem;\n width: 3.2rem;\n background-color: #fdf2e9;\n margin-bottom: 3.2rem;\n padding: 1.6rem;\n border-radius: 50%;\n}\n\n.feature-title {\n font-size: 2.4rem;\n color: #333;\n font-weight: 700;\n margin-bottom: 1.6rem;\n}\n\n.feature-text {\n font-size: 1.8rem;\n line-height: 1.8;\n}\n","/* desert scheme ported from vim to google prettify */\r\npre.prettyprint {\r\n display: block;\r\n background-color: #333;\r\n}\r\npre .nocode {\r\n background-color: none;\r\n color: #000;\r\n}\r\npre .str {\r\n color: #ffa0a0;\r\n} /* string - pink */\r\npre .kwd {\r\n color: #f0e68c;\r\n font-weight: bold;\r\n}\r\npre .com {\r\n color: #87ceeb;\r\n} /* comment - skyblue */\r\npre .typ {\r\n color: #98fb98;\r\n} /* type - lightgreen */\r\npre .lit {\r\n color: #cd5c5c;\r\n} /* literal - darkred */\r\npre .pun {\r\n color: #fff;\r\n} /* punctuation */\r\npre .pln {\r\n color: #fff;\r\n} /* plaintext */\r\npre .tag {\r\n color: #f0e68c;\r\n font-weight: bold;\r\n} /* html/xml tag - lightyellow */\r\npre .atn {\r\n color: #bdb76b;\r\n font-weight: bold;\r\n} /* attribute name - khaki */\r\npre .atv {\r\n color: #ffa0a0;\r\n} /* attribute value - pink */\r\npre .dec {\r\n color: #98fb98;\r\n} /* decimal - lightgreen */\r\n\r\n/* Specify class=linenums on a pre to get line numbering */\r\nol.linenums {\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n color: #aeaeae;\r\n} /* IE indents via margin-left */\r\nli.L0,\r\nli.L1,\r\nli.L2,\r\nli.L3,\r\nli.L5,\r\nli.L6,\r\nli.L7,\r\nli.L8 {\r\n list-style-type: none;\r\n}\r\n/* Alternate shading for lines */\r\nli.L1,\r\nli.L3,\r\nli.L5,\r\nli.L7,\r\nli.L9 {\r\n}\r\n\r\n@media print {\r\n pre.prettyprint {\r\n background-color: none;\r\n }\r\n pre .str,\r\n code .str {\r\n color: #060;\r\n }\r\n pre .kwd,\r\n code .kwd {\r\n color: #006;\r\n font-weight: bold;\r\n }\r\n pre .com,\r\n code .com {\r\n color: #600;\r\n font-style: italic;\r\n }\r\n pre .typ,\r\n code .typ {\r\n color: #404;\r\n font-weight: bold;\r\n }\r\n pre .lit,\r\n code .lit {\r\n color: #044;\r\n }\r\n pre .pun,\r\n code .pun {\r\n color: #440;\r\n }\r\n pre .pln,\r\n code .pln {\r\n color: #000;\r\n }\r\n pre .tag,\r\n code .tag {\r\n color: #006;\r\n font-weight: bold;\r\n }\r\n pre .atn,\r\n code .atn {\r\n color: #404;\r\n }\r\n pre .atv,\r\n code .atv {\r\n color: #060;\r\n }\r\n}\r\n","/***********************************************************/\n/* ==================== Global Color ===================== */\n/***********************************************************/\n\n/*\nPrimary #f34a4a\nSecondary #4a4af3\nText #b2b2fa\nAccent #f34a4a\nBG Primary #11111A\nBG Secondary #1B1B28\nHeading #fff\nButton Text #11111A\nTertiary #2F2F48\n*/\n\n/* Light Mode(default */\n:root {\n --anyapi-bg: #f6f7f7;\n --anyapi-card: #fff;\n --anyapi-primary: #5d5fef;\n --anyapi-primary-hover: #4c4ddc;\n --anyapi-text: #1a1a2e;\n --anyapi-success: #00c48c;\n --anyapi-danger: #ff6b6b;\n // --anyapi-border: #e8e8ff;\n // --anyapi-text-muted: #666699;\n}\n\n.dark-mode {\n --anyapi-bg: #0f1121;\n --anyapi-card: #161827;\n --anyapi-primary: #7b7cff;\n --anyapi-primary-hover: #9697ff;\n --anyapi-text: ##b2b2fa;\n --anyapi-success: #00d4a0;\n --anyapi-danger: #ff6b9d;\n // --anyapi-border: #23273a;\n // --anyapi-text-muted: #9494b8;\n}\n\n/***********************************************************/\n/* ====================== Dashboard ====================== */\n/***********************************************************/\n\n#anyapi-review-banner {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n padding: 20px 30px;\n border-radius: 20px;\n margin: 30px 0;\n box-shadow: 0 20px 40px rgba(102, 126, 234, 0.3),\n 0 10px 20px rgba(118, 75, 162, 0.2);\n position: relative;\n overflow: hidden;\n animation: slideDown 0.6s ease-out;\n}\n\n#anyapi-review-banner::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: -100%;\n width: 100%;\n height: 100%;\n background: linear-gradient(\n 90deg,\n transparent,\n rgba(255, 255, 255, 0.1),\n transparent\n );\n animation: shimmer 3s infinite;\n}\n\n.review-content {\n display: flex;\n align-items: center;\n gap: 20px;\n max-width: 1000px;\n margin: 0 auto;\n}\n\n.review-icon {\n font-size: 32px;\n animation: float 3s ease-in-out infinite;\n}\n\n.review-text h3 {\n margin: 0 0 4px 0;\n font-size: 22px;\n font-weight: 700;\n}\n\n.review-text p {\n margin: 0 0 8px 0;\n opacity: 0.9;\n font-size: 16px;\n}\n\n.review-stars {\n font-size: 20px;\n margin-top: 4px;\n animation: sparkle 2s ease-in-out infinite;\n}\n\n.review-actions {\n display: flex;\n gap: 12px;\n margin-left: auto;\n}\n\n.review-actions .button {\n padding: 12px 24px !important;\n font-weight: 600 !important;\n border-radius: 12px !important;\n transition: all 0.3s ease !important;\n}\n\n.review-actions .button-primary {\n background: #fff !important;\n color: #667eea !important;\n box-shadow: 0 8px 20px rgba(255, 255, 255, 0.3) !important;\n}\n\n.review-actions .button-primary:hover {\n transform: translateY(-2px);\n box-shadow: 0 12px 30px rgba(255, 255, 255, 0.4) !important;\n}\n\n.review-close {\n position: absolute;\n top: 12px;\n right: 20px;\n background: none;\n border: none;\n color: rgba(255, 255, 255, 0.8);\n font-size: 24px;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.review-close:hover {\n background: rgba(255, 255, 255, 0.2);\n color: white;\n transform: rotate(90deg);\n}\n\n/* Animations */\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-30px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes shimmer {\n 0% {\n left: -100%;\n }\n 100% {\n left: 100%;\n }\n}\n\n@keyframes float {\n 0%,\n 100% {\n transform: translateY(0px);\n }\n 50% {\n transform: translateY(-10px);\n }\n}\n\n@keyframes sparkle {\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.7;\n }\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n .review-content {\n flex-direction: column;\n text-align: center;\n gap: 16px;\n }\n .review-actions {\n margin-left: 0 !important;\n justify-content: center;\n flex-wrap: wrap;\n }\n}\n\n#anyapi-dashboard {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n background: var(--anyapi-bg);\n min-height: 80vh;\n padding: 20px;\n border-radius: 8px;\n}\n\n#anyapi-last-updated {\n font-size: 13px;\n color: #646970;\n margin-top: 10px;\n margin-left: 15px;\n white-space: nowrap;\n float: right;\n}\n\n/* Main Layout (Left Content + Right Info */\n.anyapi-main-grid {\n display: grid;\n grid-template-columns: 1fr 320px;\n gap: 30px;\n margin-top: 20px;\n}\n@media (max-width: 1200px) {\n .anyapi-main-grid {\n grid-template-columns: 1fr;\n }\n .anyapi-sidebar {\n order: -1;\n }\n}\n\n.anyapi-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 20px;\n margin-bottom: 30px;\n}\n\n.anyapi-card {\n // background: #fff;\n background: var(--anyapi-card);\n padding: 24px;\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n transition: transform 0.2s;\n}\n\n.anyapi-card:hover {\n transform: translateY(-4px);\n}\n\n.anyapi-card h3 {\n margin: 0 0 12px;\n font-size: 14px;\n color: #646970;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.anyapi-card .value {\n font-size: 32px;\n font-weight: 700;\n color: #1d2327;\n margin: 8px 0 0;\n}\n\n.anyapi-card .change {\n font-size: 14px;\n}\n\n/* Status */\n.positive {\n // color: #00a32a;\n color: var(--anyapi-success);\n}\n\n.warning {\n color: #dba617;\n // color: var(--anyapi-success);\n}\n\n.negative {\n // color: #d63638;\n color: var(--anyapi-danger);\n}\n\n/* Chart Section */\n.anyapi-charts-row {\n display: grid;\n grid-template-columns: 2fr 1fr;\n gap: 20px;\n margin-bottom: 30px;\n}\n\n@media (max-width: 960px) {\n .anyapi-charts-row {\n grid-template-columns: 1fr;\n }\n}\n\n.anyapi-chart-card {\n // background: #fff;\n background: var(--anyapi-card);\n padding: 24px;\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n\n.anyapi-chart-card h2 {\n margin-top: 0;\n font-size: 18px;\n}\n\n/* Logs Section */\n#anyapi-logs-section {\n // background: #fff;\n background: var(--anyapi-card);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n overflow: hidden;\n}\n\n#anyapi-logs-header {\n padding: 20px 24px;\n border-bottom: 1px solid #e2e4e7;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n#anyapi-logs-section .logs-controls {\n display: flex;\n gap: 12px;\n align-items: center;\n}\n\n#anyapi-log-search {\n padding: 10px 16px;\n border: 1px solid #ddd;\n border-radius: 12px;\n width: 300px;\n max-width: 100%;\n}\n\n.method-post {\n background: #7c3aed;\n color: white;\n padding: 4px 10px;\n border-radius: 8px;\n font-size: 11px;\n font-weight: bold;\n}\n\n.status-badge {\n padding: 4px 10px;\n border-radius: 8px;\n font-weight: bold;\n font-size: 12px;\n}\n\n.status-badge.success {\n background: #10b981;\n color: white;\n}\n\n.status-badge.warning {\n background: #f59e0b;\n color: white;\n}\n\n.status-badge.error {\n background: #ef4444;\n color: white;\n}\n\n.endpoint code {\n font-size: 12px;\n background: #f3f4f6;\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.payload pre {\n margin: 0;\n font-size: 11px;\n color: #666;\n white-space: pre-wrap;\n word-break: break-all;\n}\n\n#anyapi-logs-footer {\n display: flex;\n justify-content: space-between;\n margin-top: 16px;\n font-size: 14px;\n color: #666;\n}\n\n#anyapi-log-search {\n padding: 8px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n width: 300px;\n}\n\n#anyapi-logs-table {\n width: 100%;\n border-collapse: collapse;\n}\n\n#anyapi-logs-table th {\n background: #f9fafb;\n text-align: left;\n padding: 12px 16px;\n font-weight: 600;\n color: #1d2327;\n}\n\n#anyapi-logs-table td {\n padding: 12px 16px;\n border-top: 1px solid #e2e4e7;\n font-size: 14px;\n}\n\n/* Idle CSSS */\n/* Status */\n.status-2xx {\n // color: #00a32a;\n color: var(--anyapi-success);\n}\n\n.status-4xx {\n // color: #d63638;\n color: var(--anyapi-danger);\n}\n\n.status-5xx {\n // color: #d63638;\n color: var(--anyapi-danger);\n font-weight: bold;\n}\n\n/* Idle CSS */\n.payload {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n font-size: 12px;\n color: #646970;\n max-width: 300px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n/* Idle CSS */\n.loading {\n text-align: center;\n padding: 60px;\n font-size: 18px;\n color: #646970;\n}\n\n/* Right Sidebar & Cards */\n.anyapi-sidebar {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.anyapi-sidebar-card {\n // background: #fff;\n background: var(--anyapi-card);\n padding: 20px;\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n border: 1px solid #e2e4e7;\n}\n\n.anyapi-sidebar-card h3 {\n margin: 0 0 12px;\n font-size: 16px;\n color: #1d2327;\n}\n\n/* Plugin Version Card */\n.dashicons-yes-alt {\n color: #00a32a;\n}\n\n.dashicons-warning {\n color: #dba617;\n}\n\n.dashicons-update {\n color: #f56e14;\n animation: anyapi-spin 2s linear infinite;\n}\n\n.anyapi-new-version-notice {\n font-size: 12px;\n color: #d63638;\n font-weight: bold;\n margin: 8px 0 4px;\n\n small {\n font-weight: normal;\n color: #666;\n }\n}\n/* Update details box */\n.anyapi-update-box {\n margin: 10px 0;\n padding: 12px;\n background: #fff8e5;\n border-left: 4px solid #ffb900;\n font-size: 11px;\n line-height: 1.4;\n\n strong {\n font-size: 11px;\n display: block;\n margin-bottom: 4px;\n }\n\n ul {\n margin: 6px 0 8px;\n padding-left: 18px;\n line-height: 1.4;\n\n li {\n margin-bottom: 2px;\n }\n }\n\n .anyapi-update-button {\n background: #d63638;\n border-color: #d63638;\n box-shadow: none;\n text-shadow: none;\n color: #fff !important;\n\n &:hover,\n &:focus {\n background: #c02a2a;\n border-color: #c02a2a;\n }\n }\n\n .anyapi-view-details {\n margin-left: 8px;\n font-size: 10px;\n color: #666;\n\n &:hover {\n color: #d63638;\n }\n }\n}\n\n.anyapi-latest-text {\n font-size: 12px;\n color: #646970;\n}\n\n/* Global */\n@keyframes anyapi-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Upgrade Card */\n.anyapi-upgrade {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n position: relative;\n overflow: hidden;\n}\n\n.anyapi-upgrade::before {\n content: \"\";\n position: absolute;\n top: -50%;\n right: -50%;\n width: 200%;\n height: 200%;\n background: rgba(255, 255, 255, 0.1);\n transform: rotate(30deg);\n}\n\n.anyapi-upgrade h3,\n.anyapi-upgrade p,\n.anyapi-upgrade li {\n color: white;\n}\n\n.anyapi-upgrade .badge {\n position: absolute;\n top: 12px;\n right: 12px;\n background: #ffb900;\n color: #000;\n padding: 4px 10px;\n border-radius: 20px;\n font-size: 11px;\n font-weight: bold;\n}\n\n.anyapi-upgrade .features {\n margin: 16px 0;\n padding-left: 20px;\n}\n\n.anyapi-upgrade .features li {\n margin-bottom: 8px;\n position: relative;\n}\n\n.anyapi-upgrade .features li::before {\n content: \"✓\";\n position: absolute;\n left: -20px;\n}\n\n.anyapi-upgrade .button-primary {\n background: white;\n color: #667eea;\n font-weight: bold;\n}\n\n.anyapi-button-block {\n display: block;\n text-align: center;\n}\n\n.anyapi-save {\n text-align: center;\n margin-top: 12px;\n font-size: 14px;\n opacity: 0.9;\n}\n\n/* Quick Links Card */\n.anyapi-quick-links {\n list-style: none;\n padding: 0;\n margin: 0;\n}\n\n.anyapi-quick-links li {\n margin-bottom: 8px;\n}\n\n.anyapi-quick-links a {\n color: #0073aa;\n text-decoration: none;\n}\n\n.anyapi-quick-links a:hover {\n text-decoration: underline;\n}\n\n/* Bottom Cards */\n.anyapi-bottom-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));\n gap: 20px;\n margin-top: 40px;\n}\n.anyapi-info-card {\n // background: #fff;\n background: var(--anyapi-card);\n padding: 24px;\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n border: 1px solid #e2e4e7;\n text-align: center;\n}\n.anyapi-info-card h3 {\n margin: 0 0 12px;\n color: #1d2327;\n}\n.anyapi-info-card p {\n color: #646970;\n margin-bottom: 20px;\n line-height: 1.5;\n}\n.anyapi-info-card .button {\n width: 100%;\n}\n\n/***********************************************************/\n/* ================== Dashboard Header =================== */\n/***********************************************************/\n\n#anyapi-dashboard-header {\n position: relative;\n display: flex;\n justify-content: space-between;\n align-items: center;\n min-height: 64px;\n padding: 0 24px; /* <- padding -> */\n margin-bottom: 28px;\n flex-wrap: wrap;\n gap: 16px;\n}\n\n.anyapi-header-left {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.anyapi-logo {\n height: 40px;\n width: auto;\n}\n\n.anyapi-logo svg {\n border-radius: 8px;\n transition: transform 0.2s;\n}\n.anyapi-logo:hover svg {\n transform: scale(1.08);\n}\n\n.anyapi-header-right {\n position: absolute;\n right: 20px; /* ← 24px、20px、16px、30px */\n top: 50%;\n transform: translateY(-50%);\n}\n/* Responsive */\n@media (max-width: 782px) {\n #anyapi-dashboard-header {\n padding: 0 16px;\n }\n .anyapi-header-right {\n right: 16px; /* 手機時可再縮一點 */\n }\n}\n\n/***********************************************************/\n/* ================== Dark Mode Toggle =================== */\n/***********************************************************/\n\n#dark-mode-toggle {\n position: relative;\n width: 56px;\n height: 28px;\n background: #ccd0d5;\n border-radius: 50px;\n border: none;\n cursor: pointer;\n overflow: hidden;\n transition: background 0.3s;\n}\n\n#dark-mode-toggle .toggle-ball {\n position: absolute;\n top: 4px;\n left: 4px;\n width: 20px;\n height: 20px;\n background: white;\n border-radius: 50%;\n transition: transform 0.3s;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);\n}\n\n#dark-mode-toggle .sun-icon,\n#dark-mode-toggle .moon-icon {\n position: absolute;\n top: 6px;\n font-size: 14px;\n transition: opacity 0.3s;\n}\n\n#dark-mode-toggle .sun-icon {\n left: 8px;\n opacity: 1;\n}\n#dark-mode-toggle .moon-icon {\n right: 8px;\n opacity: 0;\n}\n\n/* Toggle Dark Mode */\n.dark-mode #dark-mode-toggle {\n background: #6366f1;\n}\n\n.dark-mode #dark-mode-toggle .toggle-ball {\n transform: translateX(28px);\n}\n\n.dark-mode #dark-mode-toggle .sun-icon {\n opacity: 0;\n}\n\n.dark-mode #dark-mode-toggle .moon-icon {\n opacity: 1;\n}\n\n.dark-mode {\n background: #1e1e1e;\n color: #e0e0e0;\n}\n\n.dark-mode #anyapi-dashboard,\n.dark-mode .anyapi-card,\n.dark-mode .chart-card,\n.dark-mode #logs-section,\n.dark-mode .anyapi-sidebar-card,\n.dark-mode .anyapi-info-card {\n background: #2d2d2d;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);\n border-color: #444;\n}\n\n.dark-mode .anyapi-card h3,\n.dark-mode .chart-card h2,\n.dark-mode #logs-table th,\n.dark-mode .anyapi-info-card h3 {\n color: #a0a0a0;\n}\n\n.dark-mode .value,\n.dark-mode #logs-table td {\n color: var(--anyapi-text);\n}\n\n.dark-mode #logs-table th {\n background: #363636;\n}\n\n.dark-mode .status-2xx {\n // color: #00e676;\n color: var(--anyapi-success);\n}\n.dark-mode .status-4xx,\n.dark-mode .status-5xx {\n // color: #ff5252;\n color: var(--anyapi-danger);\n}\n","/* Integration 專屬樣式(加在原有 CSS 後) */\n:root {\n /* 延續上次變數 */\n --anyapi-purple: #7b68ee; /* 步驟紫色,從截圖提取 */\n --anyapi-gray-light: #f8f9fa;\n --anyapi-gray: #6c757d;\n}\n\n.dark-mode {\n --anyapi-purple: #a78bfa;\n --anyapi-gray-light: #2d3748;\n --anyapi-gray: #a0aec0;\n}\n\n.integration-main {\n display: grid;\n grid-template-columns: 200px 1fr;\n gap: 30px;\n margin: 20px 0;\n}\n\n.steps-sidebar {\n background: var(--anyapi-card);\n border-radius: 12px;\n padding: 20px;\n height: fit-content;\n}\n\n.step-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 0;\n cursor: pointer;\n transition: color 0.3s;\n}\n\n.step-item.active .step-number {\n background: var(--anyapi-purple);\n color: white;\n}\n\n.step-number {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background: var(--anyapi-gray-light);\n display: grid;\n place-items: center;\n font-weight: bold;\n}\n\n.step-label {\n font-size: 14px;\n color: var(--anyapi-text-muted);\n}\n\n.integration-content {\n position: relative;\n}\n\n.step-content {\n display: none;\n animation: fadeIn 0.3s;\n}\n\n.step-content.active {\n display: block;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateX(10px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n.form-group {\n margin-bottom: 24px;\n}\n\n.form-group label {\n display: block;\n margin-bottom: 8px;\n font-weight: 600;\n color: var(--anyapi-text);\n}\n\n.form-group input,\n.form-group select,\n.form-group textarea {\n width: 100%;\n padding: 12px;\n border: 1px solid var(--anyapi-border);\n border-radius: 8px;\n background: var(--anyapi-card);\n transition: border-color 0.3s;\n}\n\n.form-group input:focus,\n.form-group select:focus,\n.form-group textarea:focus {\n outline: none;\n border-color: var(--anyapi-primary);\n}\n\n.required {\n color: var(--anyapi-danger);\n}\n\n.help-text {\n color: var(--anyapi-text-muted);\n font-size: 12px;\n}\n\n.filter-mode-toggle {\n display: flex;\n gap: 8px;\n margin: 12px 0;\n}\n\n.mode-btn {\n padding: 8px 16px;\n border: 1px solid var(--anyapi-border);\n background: var(--anyapi-card);\n border-radius: 6px;\n cursor: pointer;\n}\n\n.mode-btn.active {\n background: var(--anyapi-primary);\n color: white;\n border-color: var(--anyapi-primary);\n}\n\n.json-preview {\n background: #1e1e1e;\n border-radius: 8px;\n padding: 16px;\n margin: 16px 0;\n overflow: auto;\n}\n\n.json-preview pre {\n margin: 0;\n color: #f8f8f2;\n font-family: \"Courier New\", monospace;\n font-size: 14px;\n}\n\n.actions-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 20px;\n margin-bottom: 24px;\n}\n\n.action-card {\n background: var(--anyapi-card);\n padding: 20px;\n border-radius: 12px;\n border: 1px solid var(--anyapi-border);\n}\n\n.action-card h3 {\n margin-top: 0;\n color: var(--anyapi-text);\n}\n\n.action-card label {\n display: block;\n margin: 8px 0;\n cursor: pointer;\n}\n\n.integration-footer {\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n padding: 20px 0;\n border-top: 1px solid var(--anyapi-border);\n}\n\n.preview-json-btn {\n background: var(--anyapi-danger);\n color: white;\n}\n\n/* 響應式 */\n@media (max-width: 960px) {\n .integration-main {\n grid-template-columns: 1fr;\n }\n .steps-sidebar {\n order: -1;\n display: flex;\n justify-content: center;\n }\n .step-item {\n flex-direction: column;\n text-align: center;\n }\n .actions-grid {\n grid-template-columns: 1fr;\n }\n}\n\n/* API Status 專屬樣式 */\n#anyapi-status {\n background: var(--anyapi-bg);\n min-height: 100vh;\n}\n\n.anyapi-notice.success {\n background: linear-gradient(90deg, #10b981 0%, #34d399 100%);\n color: white;\n padding: 16px 24px;\n border-radius: 12px;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 20px 0;\n box-shadow: 0 4px 20px rgba(16, 185, 129, 0.2);\n}\n\n.notice-actions {\n display: flex;\n gap: 8px;\n}\n\n.integration-card {\n background: var(--anyapi-card);\n border: 1px solid var(--anyapi-border);\n border-radius: 16px;\n overflow: hidden;\n margin: 30px 0;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);\n}\n\n.integration-row {\n display: grid;\n grid-template-columns: 100px 1fr 120px 1fr 100px 1fr;\n gap: 16px;\n padding: 24px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n@media (max-width: 1280px) {\n .integration-row {\n grid-template-columns: 1fr 1fr;\n gap: 20px;\n }\n}\n\n@media (max-width: 782px) {\n .integration-row {\n grid-template-columns: 1fr;\n text-align: center;\n }\n}\n\n.badge {\n padding: 8px 16px;\n border-radius: 50px;\n font-size: 13px;\n font-weight: 700;\n text-align: center;\n white-space: nowrap;\n}\n\n.badge.purple {\n background: #7b68ee;\n color: white;\n}\n\n.badge.gray {\n background: #e2e8f0;\n color: #475569;\n}\n\n.code-snippet {\n background: #1e1e1e;\n color: #a6e22e;\n padding: 12px 16px;\n border-radius: 12px;\n font-family: \"SFMono-Regular\", Consolas, monospace;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 100%;\n}\n\n.dark-mode .code-snippet {\n background: #2d2d2d;\n color: #89ddff;\n}\n\n.status-action {\n text-align: center;\n margin: 40px 0;\n}\n\n.button-warning {\n background: #f59e0b !important;\n color: white !important;\n padding: 14px 32px !important;\n font-size: 16px;\n border-radius: 12px;\n}\n\n.status-footer {\n text-align: center;\n margin: 60px 0 20px;\n}\n\n/* Dark Mode 增強 */\n.dark-mode .anyapi-notice.success {\n background: linear-gradient(90deg, #059669 0%, #10b981 100%);\n}\n\n.dark-mode .integration-card {\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);\n}\n\n/* 完成頁 */\n.completion-wrapper {\n text-align: center;\n max-width: 900px;\n margin: 0 auto;\n padding: 20px;\n}\n.completion-header h2 {\n font-size: 28px;\n margin: 16px 0;\n color: var(--anyapi-text);\n}\n.success-icon {\n font-size: 64px;\n color: #10b981;\n}\n.completion-actions {\n margin: 30px 0;\n display: flex;\n gap: 12px;\n justify-content: center;\n flex-wrap: wrap;\n}\n.integration-card.standalone {\n margin: 40px auto;\n max-width: 100%;\n}\n.final-cta {\n margin: 50px 0;\n}\n.button-hero {\n padding: 18px 40px !important;\n font-size: 18px !important;\n border-radius: 16px;\n box-shadow: 0 8px 25px rgba(245, 158, 11, 0.4);\n}\n.completion-footer {\n margin-top: 60px;\n display: flex;\n gap: 20px;\n justify-content: center;\n flex-wrap: wrap;\n}\n\n/* */\n.test-api-section {\n margin: 50px auto;\n text-align: center;\n}\n\n.button-success {\n background: linear-gradient(135deg, #10b981, #34d399) !important;\n color: white !important;\n border: none;\n padding: 18px 40px !important;\n font-size: 18px;\n border-radius: 16px;\n box-shadow: 0 10px 30px rgba(16, 185, 129, 0.4);\n transition: all 0.3s;\n}\n\n.button-success:hover {\n transform: translateY(-3px);\n box-shadow: 0 15px 40px rgba(16, 185, 129, 0.5);\n}\n\n.button-success.loading {\n opacity: 0.7;\n cursor: not-allowed;\n position: relative;\n}\n.button-success.loading::after {\n content: \"\";\n position: absolute;\n width: 20px;\n height: 20px;\n border: 3px solid #fff;\n border-top-color: transparent;\n border-radius: 50%;\n animation: spin 1s linear infinite;\n right: 20px;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.test-result {\n margin-top: 30px;\n padding: 20px;\n border-radius: 12px;\n font-family: \"SFMono-Regular\", monospace;\n font-size: 14px;\n text-align: left;\n max-width: 800px;\n margin-left: auto;\n margin-right: auto;\n border: 1px solid;\n}\n\n.test-result.success {\n background: #ecfdf5;\n border-color: #10b981;\n color: #065f46;\n}\n\n.test-result.error {\n background: #fee2e2;\n border-color: #ef4444;\n color: #991b1b;\n}\n\n.dark-mode .test-result.success {\n background: #064e3b;\n color: #86efac;\n}\n.dark-mode .test-result.error {\n background: #7f1d1d;\n color: #fca5a5;\n}\n"]} 1 { 2 "version": 3, 3 "sources": [ 4 "modules/tabs.scss", 5 "modules/button.scss", 6 "modules/checkbox.scss", 7 "modules/table.scss", 8 "modules/form.scss", 9 "modules/features.scss", 10 "modules/pretty.scss", 11 "modules/general.scss", 12 "modules/desert.scss", 13 "modules/ui-dashboard.scss", 14 "modules/ui-orderapi.scss" 15 ], 16 "names": [], 17 "mappings": "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", 18 "file": "style.css", 19 "sourcesContent": [ 20 ".nav-tabs,\n.nav-tabs-tools,\n.nav-tabs-filter,\n.nav-tabs-api,\n.nav-tabs-apiauth {\n float: left;\n width: 100%;\n margin: 0;\n list-style-type: none;\n border-bottom: 1px solid transparent;\n\n > li {\n float: left;\n margin-bottom: -1px;\n\n > a {\n margin-right: 2px;\n line-height: 1.5;\n padding: 10px;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n float: left;\n text-decoration: none;\n\n &:hover {\n border-color: #eee #eee #ddd;\n }\n }\n\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: #555;\n cursor: default;\n background-color: #fff;\n border-color: transparent;\n }\n }\n }\n}\n\n.tab-content > .tab-pane,\n.tab-content-tools > .tab-pane-tools {\n float: left;\n width: 98%;\n display: none;\n\n &.active {\n display: block;\n padding: 10px;\n background-color: #fff;\n box-shadow: 0 5px 4px -2px rgba(0, 0, 0, 0.15);\n }\n}\n\n#top-btn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: purple;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n}\n\n#top-btn:hover {\n background-color: #555;\n}\n", 21 "/**************************/\n/* Tags */\n/**************************/\n\n.tag {\n display: inline-block;\n text-decoration: none;\n padding: 0.4rem 0.8rem; /* 0.4 0.8*/\n font-size: 0.9rem; /* 1.2 */\n color: none;\n border-radius: 100px;\n font-weight: 300;\n}\n\n.tag.small {\n font-size: 0.8rem;\n border-radius: 3px;\n font-weight: 300;\n}\n\n.tag.medium {\n font-size: 0.9rem;\n border-radius: 15px;\n font-weight: 300;\n}\n\n.tag.large {\n font-size: 1.4rem;\n border-radius: 15px;\n font-weight: 400;\n}\n\n.tag.step {\n font-size: 1.2rem;\n border-radius: 50px;\n font-weight: 500;\n}\n\n.tag.uppercase {\n text-transform: uppercase;\n}\n\n/* Basic */\n.tag--woo {\n color: #eee;\n background-color: rgb(108, 59, 164);\n}\n\n.tag--woorev {\n color: rgb(108, 59, 164);\n background-color: #eee;\n}\n\n.tag--wooadv {\n color: #eee;\n background-color: rgb(218, 179, 254);\n}\n\n.tag--auth {\n color: #333;\n background-color: rgb(246, 169, 14);\n}\n\n.tag--attr {\n color: #333;\n background-color: rgb(206, 206, 206);\n}\n\n.tag--large {\n color: #333;\n background-color: #eee;\n}\n\n/* Attributes */\n.tag--order {\n color: #eee;\n background-color: rgb(132, 95, 132);\n}\n\n.tag--billing {\n color: #333;\n background-color: rgb(206, 206, 206);\n}\n\n.tag--fields {\n color: lightblue;\n background-color: rgb(25, 25, 25);\n}\n\n/* Features */\n.tag--codefree {\n // background-color: rgb(249, 222, 0);\n color: #fff;\n background-color: #11111a;\n}\n\n.tag--secure {\n color: #fff;\n background-color: rgb(10, 151, 218);\n}\n\n.tag--notice {\n // background-color: #dd6413;\n color: #fff;\n background-color: #4a4af3;\n}\n\n.tag--new {\n color: #11111a;\n background-color: #f34a4a;\n}\n\n.tag--cap {\n color: #f34a4a;\n background-color: #11111a;\n}\n\n/* License */\n.tag--disable {\n color: #fff;\n background-color: rgb(231, 0, 0);\n}\n\n.tag--enable {\n color: #fff;\n background-color: #43aa8b;\n // background-color: rgb(48, 154, 62);\n}\n\n/**************************/\n/* Dynamic Tags */\n/**************************/\n\n.tag.available:hover {\n cursor: pointer;\n opacity: 0.7;\n}\n\n.tag.selected {\n cursor: pointer;\n opacity: 0.7;\n}\n\n.tag.disabled {\n color: white;\n background-color: #d2d2d2;\n /* text-decoration: line-through; */\n pointer-events: none;\n}\n\n.tag.pro {\n color: #333;\n background-color: #fdf2e9;\n cursor: not-allowed;\n}\n\n/* Step */\n.step-tag {\n color: #eee;\n background-color: #ccc;\n cursor: pointer;\n text-transform: uppercase;\n}\n\n.step-tag.current {\n background-color: rgb(108, 59, 164);\n}\n\n.order-api-step > .step-pane {\n display: none;\n &.active {\n display: block;\n }\n}\n\n.notice-tag {\n color: #eee;\n background-color: #ccc;\n}\n\n/**************************/\n/* Buttons */\n/**************************/\n\n.btn,\n.btn:link,\n.btn:visited {\n display: inline-block;\n text-decoration: none;\n font-size: 1rem; /* 2 */\n font-weight: 400;\n padding: 0.8rem 1.6rem; /* 1.6 3.2 */\n border-radius: 9px; /* 9 */\n\n /* default color*/\n // background-color: #f34a4a;\n color: #11111a;\n\n /* Only necessary for .btn */\n border: none;\n cursor: pointer;\n font-family: inherit;\n\n /* Put transition on original \"state\" */\n /* transition: background-color 0.3s; */\n transition: all 0.3s;\n}\n\n.btn.medium {\n font-size: 0.9rem;\n font-weight: 400;\n padding: 0.6rem 1rem;\n}\n\n.btn--full:link,\n.btn--full:visited {\n // background-color: #e67e22;\n // color: #fff;\n background-color: #f34a4a;\n color: #11111a;\n}\n\n.btn--full:hover,\n.btn--full:active {\n // background-color: #cf711f;\n background-color: #11111a;\n color: #f34a4a;\n}\n\n.btn--full.small {\n font-size: 0.9rem;\n border-radius: 26px;\n font-weight: 500;\n}\n\n.btn--outline:link,\n.btn--outline:visited {\n // background-color: #fff;\n background-color: #2f2f48;\n // color: #555;\n}\n\n.btn--outline:hover,\n.btn--outline:active {\n // background-color: #fdf2e9;\n background-color: #11111a;\n color: #fff;\n\n // border: 3px solid #fff;\n /* Trick to add border inside */\n // box-shadow: inset 0 0 0 3px #fff;\n}\n\n/* Prev Next Save */\n.next-btn,\n.prev-btn,\n.save-btn,\n.back-btn,\n.save-settings {\n text-align: right;\n padding: 1px;\n}\n\n.btn-next,\n.btn-prev,\n.btn-save,\n.btn-back {\n float: right;\n}\n", 22 "/* $on: #009eea; */\n$on: rgb(108, 59, 164);\n$bg: #d9cb9e;\n$off: #8c8c8c;\n\n@mixin center {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n@mixin userSelect($value) {\n -webkit-touch-callout: $value;\n -webkit-user-select: $value;\n -khtml-user-select: $value;\n -moz-user-select: $value;\n -ms-user-select: $value;\n user-select: $value;\n}\n\n@mixin ui-toggle($height, $on, $off) {\n margin: 0;\n padding: 0;\n\n input[type=\"checkbox\"] {\n display: none;\n\n &:checked + label {\n border-color: $on;\n background: $on;\n box-shadow: inset 0 0 0 #{$height / 2} $on;\n\n > div {\n margin-left: $height;\n }\n }\n }\n\n label {\n transition: all 200ms ease;\n display: inline-block;\n position: relative;\n\n @include userSelect(none);\n\n background: $off;\n box-shadow: inset 0 0 0 0 $on;\n border: 2px solid $off;\n border-radius: $height + 2;\n width: $height * 2;\n height: $height;\n\n div {\n transition: all 200ms ease;\n background: #ffffff;\n width: $height;\n height: $height;\n border-radius: $height / 2;\n }\n\n &:hover,\n & > div:hover {\n cursor: pointer;\n }\n }\n}\n\ndiv.ui-toggle {\n @include ui-toggle(16px, $on, $off);\n\n &.mb-10 {\n margin-bottom: 10px;\n }\n}\n", 23 ".api-table {\n width: 100%;\n border-spacing: 5px;\n text-align: left;\n\n &,\n & th,\n & td {\n border: 1px solid #ccc;\n border-collapse: collapse;\n padding: 10px;\n }\n\n & th {\n background-color: #f5f5f5;\n }\n}\n\n.tag-table {\n width: 100%;\n border-spacing: 5px;\n text-align: left;\n\n &,\n & th,\n & td {\n border: 0.8px solid #ccc;\n border-collapse: collapse;\n padding: 5px;\n }\n\n & th {\n background-color: none;\n }\n}\n\n.text-center {\n text-align: center;\n}\n", 24 ".inline-block {\n display: inline-block;\n}\n\n.text-left {\n text-align: left;\n}\n\n.text-right {\n text-align: right;\n}\n\n.w-50 {\n width: 49%;\n}\n\n.inline {\n display: inline-block;\n}\n\n.meta-label {\n display: inline-block;\n font-weight: bold;\n margin-bottom: 5px;\n}\n\n.meta-container {\n display: block;\n margin-top: 20px;\n}\n", 25 "/**************************/\n/* Feature CSS */\n/**************************/\n\n.section-features {\n padding: 9.6rem 0;\n}\n\n.feature {\n box-shadow: 0 2.4rem 4.8rem rgba(0, 0, 0, 0.075);\n border-radius: 11px;\n overflow: hidden;\n transition: all 0.4s;\n}\n\n/* card action */\n.feature:hover {\n transform: translateY(-1.2rem);\n box-shadow: 0 3.2rem 6.4rem rgba(0, 0, 0, 0.06);\n}\n\n/* content backgrpund */\n.feature-content {\n font-size: 0.9rem; /* 1.8 */\n line-height: 1.8;\n align-items: center;\n padding: 1.6rem 2.4rem 2.4rem 2.4rem;\n /* 3.2rem 4.8rem 4.8rem 4.8rem;*/\n}\n\n.feature-cards {\n padding: 1.6rem 2.4rem 2.4rem 2.4rem;\n}\n\n.feature-tags {\n margin-bottom: 1.2rem; /* 1.2rem */\n display: flex;\n gap: 0.4rem;\n}\n\n.feature-dashboard-tags {\n margin-top: 2.2rem; /* 1.2rem */\n margin-bottom: 2.2rem; /* 1.2rem */\n display: flex;\n gap: 0.4rem;\n}\n\n.feature-hidden {\n margin-bottom: 1.2rem;\n gap: 0.4rem;\n}\n\n.feature-name {\n font-size: 1.2rem; /* 2.4 */\n color: #333;\n font-weight: 600;\n margin-bottom: 1.6rem; /* 3.2 */\n}\n\n.feature-info {\n font-size: 0.9rem; /*1.8 */\n line-height: 1.6; /*1.8 */\n}\n\n.feature-attributes {\n list-style: none;\n display: flex;\n flex-direction: column;\n gap: 0.2rem; /* 2 */\n}\n\n.feature-attribute {\n font-size: 1rem; /* 1.8 */\n display: flex;\n align-items: center;\n gap: 0.8rem; /* 1.6 */\n}\n\n.feature-icon {\n height: 2.4rem;\n width: 2.4rem;\n color: #e67e22;\n}\n\n.feature-img {\n width: 100%;\n}\n\n.call-to-action {\n text-align: center;\n margin-top: 2.4rem; /* 4.8 */\n}\n\n.all-features {\n text-align: center;\n font-size: 1rem; /* 1.8 */\n}\n\n/* pagination */\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #555;\n background-color: #fae5d3;\n border: 2px solid rgb(255, 255, 255);\n border-radius: 11px;\n}\n\n/**************************/\n/* Card CSS no movement */\n/**************************/\n\n.card-content {\n box-shadow: 0 2.4rem 4.8rem rgba(0, 0, 0, 0.075);\n border-radius: 11px;\n overflow: hidden;\n transition: all 0.4s;\n}\n\n/**************************/\n/* Admin Notice */\n/**************************/\n\n.notice-action-button {\n float: right;\n margin-top: -66px;\n}\n\n/**************************/\n/* Order API */\n/**************************/\n\n/* action span */\n.action-tags {\n margin-bottom: 1.2rem;\n display: flex;\n flex-wrap: wrap;\n gap: 0.8rem 0.2rem;\n}\n\n.tag-item {\n flex: 0 0 calc(50% - 0.1em);\n display: flex;\n // align-items: center;\n // gap: 0.4rem;\n // box-sizing: border-box;\n flex-direction: column;\n box-sizing: border-box;\n}\n\n.tag-wrapper {\n display: flex;\n align-items: center;\n gap: 0.4rem;\n margin-bottom: 0.3rem;\n}\n\n.tag-wrapper .tag {\n flex-shrink: 0;\n white-space: nowrap;\n}\n\n.tag-wrapper .image-container {\n flex-shrink: 0;\n}\n\n.tag-wrapper .image-container img {\n display: block;\n}\n\n.tag-desc {\n margin: 0;\n font-size: 0.85rem;\n color: #666;\n line-height: 1.4;\n word-break: break-word;\n}\n\n/**************************/\n/* API input form */\n/**************************/\n\n.api-input-form {\n display: grid;\n /* grid-template-columns: 0.5fr 1fr; */\n border-radius: 11px;\n overflow: hidden;\n text-align: left;\n /* padding: 1.8rem 0rem 1.8rem 1.8rem; */\n padding: 0px 0px 18px 0px;\n /* font-size: 1.8rem; */\n font-size: 18px;\n line-height: 1.8;\n}\n\n.api-input-form label {\n /* display: block; */\n /* font-size: 1.6rem; */\n font-size: 16px;\n font-weight: 500;\n /*margin-bottom: 1.2rem; */\n margin-bottom: 12px;\n margin-top: 12px;\n}\n\n.api-input-form input,\n.api-input-form textarea,\n.api-input-form select {\n width: 60%;\n /* padding: 0.7rem;\n font-size: 1.5rem; */\n padding: 7px;\n font-size: 15px;\n font-family: inherit;\n color: inherit;\n border-radius: 9px;\n background-color: #fdf2e9;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n.api-input-form input::placeholder,\n.api-input-form textarea::placeholder {\n color: #aaa;\n}\n\n.api-input-form *:focus {\n outline: none;\n /* box-shadow: 0 0 0 0.8rem rgba(253, 242, 233, 0.5); */\n box-shadow: 0 0 0 16px rgba(253, 242, 233, 0.5);\n}\n\n/**************************/\n/* Advance mode */\n/**************************/\n\n.adv-box-container {\n display: flex;\n flex-direction: row;\n padding: 0px 0px;\n}\n\n.adv-box {\n width: 350px;\n}\n\n.adv-pre {\n width: 650px;\n}\n\n.adv-box-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 0 10px 10px;\n}\n\n.adv-box-title {\n font-weight: bold;\n font-size: 0.9rem; /* 1.8 */\n margin: 0;\n}\n\n.adv-box-table-container {\n height: 250px;\n margin-bottom: 15px;\n overflow: auto;\n border: 1px solid #bbb;\n border-radius: 5px;\n}\n\n/* Idle */\n.adv-minus-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.4rem;\n}\n\n/* Delete button */\n.adv-box-btn {\n border-radius: 5px;\n transition: background-color 0.15s ease-in-out;\n user-select: none;\n border: none;\n cursor: pointer;\n font-size: 14px;\n height: 35px;\n}\n\n.adv-box-btn.circle {\n border-radius: 50px;\n}\n\n/* Button icon */\n.adv-box-btn-icon {\n height: 3px;\n width: 12px;\n border-radius: 5px;\n background-color: white;\n}\n\n.adv-box-btn-delete {\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #e53c4a;\n height: 22px;\n width: 22px;\n}\n\n.adv-box-btn-delete:hover {\n background-color: #db3240;\n}\n\n.adv-box-btn-delete:active {\n background-color: #cc2331;\n}\n\n.adv-box td .adv-box-btn-delete {\n margin: auto;\n}\n\n.adv-box-footer {\n display: flex;\n flex-direction: column;\n}\n\n.adv-box-total {\n flex: 1;\n font-size: 14px;\n font-weight: bold;\n margin: 0 10px 15px;\n padding: 0;\n text-align: right;\n}\n\n/**************************/\n/* Tooltips*/\n/**************************/\n\n// .image-container {\n// position: relative;\n// display: inline-block;\n// }\n\n// .image-info {\n// display: none;\n// /* position: absolute; */\n// position: absolute;\n// background-color: #fff;\n// padding: 1px;\n// border: 1px solid #ccc;\n// border-radius: 5px;\n// }\n\n// .image-container:hover .image-info {\n// display: block;\n// }\n\n.api-label {\n display: flex;\n align-items: center; // 文字與圖片垂直置中\n gap: 6px; // 文字與圖片之間的間距\n font-weight: 500;\n cursor: default;\n}\n\n/* 圖片 + info 的容器 */\n.image-wrapper {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.image-info {\n display: none;\n position: absolute;\n left: 100%; // 貼在圖片右側\n top: 50%;\n transform: translateY(-50%);\n margin-left: 10px; // 留出箭頭空間\n background: #fff;\n padding: 8px 12px;\n border: 1px solid #ccc;\n border-radius: 5px;\n font-size: 13px;\n white-space: nowrap;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);\n z-index: 10;\n\n /* 小箭頭(左側指向圖片) */\n &::before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: -16px; // 箭頭寬度\n transform: translateY(-50%);\n border: 8px solid transparent;\n border-right-color: #ccc; // 外框箭頭(與邊框同色)\n }\n\n /* 內層白色箭頭(蓋掉邊框,讓看起來乾淨) */\n &::after {\n content: \"\";\n position: absolute;\n top: 50%;\n left: -14px; // 比外箭頭內縮 1px\n transform: translateY(-50%);\n border: 7px solid transparent;\n border-right-color: #fff; // 填滿背景色\n z-index: 1;\n }\n}\n\n/* Hover 時顯示 */\n.image-wrapper:hover .image-info {\n display: block;\n}\n\n/**************************/\n/* Idle */\n/**************************/\n\n.aa-legend {\n list-style-type: none;\n margin: 17rem 0rem 0rem 5rem;\n}\n\n.aa-legend-item {\n display: flex;\n align-items: center;\n margin-bottom: 10px;\n padding: 0;\n}\n\n.aa-legend-description {\n margin: 0 0 0 10px;\n}\n\n.aa-legend-bullet {\n width: 22px;\n height: 22px;\n border-radius: 5px 5px 0 0;\n}\n\n.color1 {\n color: white;\n background-color: #277da1;\n}\n.color2 {\n color: white;\n background-color: #43aa8b;\n}\n.color3 {\n color: white;\n background-color: #f8961e;\n}\n", 26 "/* Scroll control */\n.scroll {\n /* background-color: #e9ecef;*/\n padding: 0px;\n /* How elements that don't fit into container appear */\n overflow: auto;\n display: flex;\n flex-direction: column;\n gap: 40px;\n}\n/* Api Tools Section*/\n.pretty {\n background-color: #adb5bd;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.pretty.sendapi {\n height: 555px;\n}\n\n.pretty.filterapi {\n height: 222px;\n width: 777px;\n}\n\n.pretty.manageapi {\n height: 444px;\n}\n\n/* Order Api Section*/\n.pretty.api {\n height: 333px;\n}\n\n.pretty.advance {\n height: 250px;\n color: lightblue;\n}\n\n.pretty.props {\n height: 333px;\n align-items: left;\n}\n/* Hide pretty */\n.json {\n display: none;\n}\n", 27 ".container {\n /* 1140px */\n max-width: 80rem;\n /* max-width: 80rem;\n /*120rem*/\n padding: 0 3.2rem;\n margin: 0 auto;\n}\n\n.grid {\n display: grid;\n column-gap: 2.2rem; /* 6.4 */\n row-gap: 9.6rem;\n /* margin-bottom: 9.6rem; */\n}\n\n/*\n.grid:not(:last-child) {\n margin-bottom: 9.6rem;\n}\n*/\n.grid--2-cols {\n grid-template-columns: repeat(2, 1fr);\n}\n\n.grid--3-cols {\n grid-template-columns: repeat(3, 1fr);\n}\n\n.grid--4-cols {\n grid-template-columns: repeat(4, 1fr);\n}\n\n.grid--5-cols {\n grid-template-columns: repeat(5, 1fr);\n}\n\n.grid--center-v {\n align-items: center;\n}\n\n/**************************/\n/* HEADER */\n/**************************/\n\n.header {\n background: #fff;\n box-sizing: border-box;\n padding: 0;\n position: fixed;\n width: calc(100% - 160px);\n top: 32px;\n z-index: 1001;\n}\n\n.header-title {\n padding: 1.2rem 0rem 1.2rem 0rem;\n}\n\n/**************************/\n/* General */\n/**************************/\n\n.heading-primary,\n.heading-secondary,\n.heading-tertiary {\n font-weight: 700;\n color: #333;\n /* color: #45260a; */\n /* color: #343a40; */\n letter-spacing: -0.5px;\n}\n\n.heading-primary {\n font-size: 5.2rem;\n line-height: 1.05;\n margin-bottom: 3.2rem;\n}\n\n.heading-secondary {\n font-size: 4.4rem;\n line-height: 1.2;\n margin-bottom: 9.6rem;\n}\n\n.heading-tertiary {\n font-size: 3rem;\n line-height: 1.2;\n margin-bottom: 3.2rem;\n}\n\n.subheading {\n display: block;\n font-size: 1.6rem;\n font-weight: 500;\n color: #cf711f;\n text-transform: uppercase;\n margin-bottom: 1.6rem;\n letter-spacing: 0.75px;\n}\n\n.list {\n list-style: none;\n display: flex;\n flex-direction: column;\n gap: 1.6rem;\n}\n\n.list-item {\n font-size: 1.8rem;\n display: flex;\n align-items: center;\n gap: 1.6rem;\n}\n\n.list-icon {\n width: 3rem;\n height: 3rem;\n color: #e67e22;\n}\n\n*:focus {\n outline: none;\n /* outline: 4px dotted #e67e22; */\n /* outline-offset: 8px; */\n box-shadow: 0 0 0 0.8rem rgba(230, 125, 34, 0.5);\n}\n\n/* HELPER/SETTINGS CLASSES */\n.margin-right-sm {\n margin-right: 1.6rem !important;\n}\n\n.margin-bottom-md {\n margin-bottom: 4.8rem !important;\n}\n\n.center-text {\n text-align: center;\n}\n\nstrong {\n font-weight: 500;\n}\n\n/**************************/\n/* SECTION */\n/**************************/\n\n.section-pricing {\n padding: 9.6rem 0;\n}\n\n.pricing-plan {\n border-radius: 11px;\n\n width: 75%;\n}\n\n.pricing-plan--starter {\n justify-self: end;\n border: 2px solid #fdf2e9;\n padding: 4.6rem;\n}\n\n.pricing-plan--complete {\n background-color: #fdf2e9;\n padding: 4.8rem;\n position: relative;\n overflow: hidden;\n}\n\n.pricing-plan--complete::after {\n content: \"Best value\";\n position: absolute;\n top: 6%;\n right: -18%;\n\n text-transform: uppercase;\n font-size: 1.4rem;\n font-weight: 700;\n color: #333;\n background-color: #ffd43b;\n padding: 0.8rem 8rem;\n transform: rotate(45deg);\n}\n\n.plan-header {\n text-align: center;\n margin-bottom: 4.8rem;\n}\n\n.plan-name {\n color: #cf711f;\n font-weight: 600;\n font-size: 2rem;\n text-transform: uppercase;\n letter-spacing: 0.75;\n margin-bottom: 3.2rem;\n}\n\n.plan-price {\n font-size: 6.2rem;\n font-weight: 600;\n color: #333;\n margin-bottom: 1.6rem;\n}\n\n.plan-price span {\n font-size: 3rem;\n font-weight: 500;\n margin-right: 0.8rem;\n}\n\n.plan-text {\n font-size: 1.6rem;\n line-height: 1.6;\n color: #6f6f6f;\n}\n\n.plan-sing-up {\n text-align: center;\n margin-top: 4.8rem;\n}\n\n.plan-details {\n font-size: 1.6rem;\n line-height: 1.6;\n text-align: center;\n}\n\n.feature-icon {\n color: #e67e22;\n height: 3.2rem;\n width: 3.2rem;\n background-color: #fdf2e9;\n margin-bottom: 3.2rem;\n padding: 1.6rem;\n border-radius: 50%;\n}\n\n.feature-title {\n font-size: 2.4rem;\n color: #333;\n font-weight: 700;\n margin-bottom: 1.6rem;\n}\n\n.feature-text {\n font-size: 1.8rem;\n line-height: 1.8;\n}\n", 28 "/* desert scheme ported from vim to google prettify */\r\npre.prettyprint {\r\n display: block;\r\n background-color: #333;\r\n}\r\npre .nocode {\r\n background-color: none;\r\n color: #000;\r\n}\r\npre .str {\r\n color: #ffa0a0;\r\n} /* string - pink */\r\npre .kwd {\r\n color: #f0e68c;\r\n font-weight: bold;\r\n}\r\npre .com {\r\n color: #87ceeb;\r\n} /* comment - skyblue */\r\npre .typ {\r\n color: #98fb98;\r\n} /* type - lightgreen */\r\npre .lit {\r\n color: #cd5c5c;\r\n} /* literal - darkred */\r\npre .pun {\r\n color: #fff;\r\n} /* punctuation */\r\npre .pln {\r\n color: #fff;\r\n} /* plaintext */\r\npre .tag {\r\n color: #f0e68c;\r\n font-weight: bold;\r\n} /* html/xml tag - lightyellow */\r\npre .atn {\r\n color: #bdb76b;\r\n font-weight: bold;\r\n} /* attribute name - khaki */\r\npre .atv {\r\n color: #ffa0a0;\r\n} /* attribute value - pink */\r\npre .dec {\r\n color: #98fb98;\r\n} /* decimal - lightgreen */\r\n\r\n/* Specify class=linenums on a pre to get line numbering */\r\nol.linenums {\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n color: #aeaeae;\r\n} /* IE indents via margin-left */\r\nli.L0,\r\nli.L1,\r\nli.L2,\r\nli.L3,\r\nli.L5,\r\nli.L6,\r\nli.L7,\r\nli.L8 {\r\n list-style-type: none;\r\n}\r\n/* Alternate shading for lines */\r\nli.L1,\r\nli.L3,\r\nli.L5,\r\nli.L7,\r\nli.L9 {\r\n}\r\n\r\n@media print {\r\n pre.prettyprint {\r\n background-color: none;\r\n }\r\n pre .str,\r\n code .str {\r\n color: #060;\r\n }\r\n pre .kwd,\r\n code .kwd {\r\n color: #006;\r\n font-weight: bold;\r\n }\r\n pre .com,\r\n code .com {\r\n color: #600;\r\n font-style: italic;\r\n }\r\n pre .typ,\r\n code .typ {\r\n color: #404;\r\n font-weight: bold;\r\n }\r\n pre .lit,\r\n code .lit {\r\n color: #044;\r\n }\r\n pre .pun,\r\n code .pun {\r\n color: #440;\r\n }\r\n pre .pln,\r\n code .pln {\r\n color: #000;\r\n }\r\n pre .tag,\r\n code .tag {\r\n color: #006;\r\n font-weight: bold;\r\n }\r\n pre .atn,\r\n code .atn {\r\n color: #404;\r\n }\r\n pre .atv,\r\n code .atv {\r\n color: #060;\r\n }\r\n}\r\n", 29 "/***********************************************************/\n/* ==================== Global Color ===================== */\n/***********************************************************/\n\n/*\nPrimary #f34a4a\nSecondary #4a4af3\nText #b2b2fa\nAccent #f34a4a\nBG Primary #11111A\nBG Secondary #1B1B28\nHeading #fff\nButton Text #11111A\nTertiary #2F2F48\n*/\n\n/* Light Mode(default */\n:root {\n --anyapi-bg: #f6f7f7;\n --anyapi-card: #fff;\n --anyapi-primary: #5d5fef;\n --anyapi-primary-hover: #4c4ddc;\n --anyapi-text: #1a1a2e;\n --anyapi-success: #00c48c;\n --anyapi-danger: #ff6b6b;\n // --anyapi-border: #e8e8ff;\n // --anyapi-text-muted: #666699;\n}\n\n.dark-mode {\n --anyapi-bg: #0f1121;\n --anyapi-card: #161827;\n --anyapi-primary: #7b7cff;\n --anyapi-primary-hover: #9697ff;\n --anyapi-text: ##b2b2fa;\n --anyapi-success: #00d4a0;\n --anyapi-danger: #ff6b9d;\n // --anyapi-border: #23273a;\n // --anyapi-text-muted: #9494b8;\n}\n\n/***********************************************************/\n/* ====================== Dashboard ====================== */\n/***********************************************************/\n\n#anyapi-review-banner {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n padding: 20px 30px;\n border-radius: 20px;\n margin: 30px 0;\n box-shadow:\n 0 20px 40px rgba(102, 126, 234, 0.3),\n 0 10px 20px rgba(118, 75, 162, 0.2);\n position: relative;\n overflow: hidden;\n animation: slideDown 0.6s ease-out;\n}\n\n#anyapi-review-banner::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: -100%;\n width: 100%;\n height: 100%;\n background: linear-gradient(\n 90deg,\n transparent,\n rgba(255, 255, 255, 0.1),\n transparent\n );\n animation: shimmer 3s infinite;\n}\n\n.review-content {\n display: flex;\n align-items: center;\n gap: 20px;\n max-width: 1000px;\n margin: 0 auto;\n}\n\n.review-icon {\n font-size: 32px;\n animation: float 3s ease-in-out infinite;\n}\n\n.review-text h3 {\n margin: 0 0 4px 0;\n font-size: 22px;\n font-weight: 700;\n}\n\n.review-text p {\n margin: 0 0 8px 0;\n opacity: 0.9;\n font-size: 16px;\n}\n\n.review-stars {\n font-size: 20px;\n margin-top: 4px;\n animation: sparkle 2s ease-in-out infinite;\n}\n\n.review-actions {\n display: flex;\n gap: 12px;\n margin-left: auto;\n}\n\n.review-actions .button {\n padding: 12px 24px !important;\n font-weight: 600 !important;\n border-radius: 12px !important;\n transition: all 0.3s ease !important;\n}\n\n.review-actions .button-primary {\n background: #fff !important;\n color: #667eea !important;\n box-shadow: 0 8px 20px rgba(255, 255, 255, 0.3) !important;\n}\n\n.review-actions .button-primary:hover {\n transform: translateY(-2px);\n box-shadow: 0 12px 30px rgba(255, 255, 255, 0.4) !important;\n}\n\n.review-close {\n position: absolute;\n top: 12px;\n right: 20px;\n background: none;\n border: none;\n color: rgba(255, 255, 255, 0.8);\n font-size: 24px;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.review-close:hover {\n background: rgba(255, 255, 255, 0.2);\n color: white;\n transform: rotate(90deg);\n}\n\n/* Animations */\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-30px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes shimmer {\n 0% {\n left: -100%;\n }\n 100% {\n left: 100%;\n }\n}\n\n@keyframes float {\n 0%,\n 100% {\n transform: translateY(0px);\n }\n 50% {\n transform: translateY(-10px);\n }\n}\n\n@keyframes sparkle {\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.7;\n }\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n .review-content {\n flex-direction: column;\n text-align: center;\n gap: 16px;\n }\n .review-actions {\n margin-left: 0 !important;\n justify-content: center;\n flex-wrap: wrap;\n }\n}\n\n#anyapi-dashboard {\n font-family:\n -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n background: var(--anyapi-bg);\n min-height: 80vh;\n padding: 20px;\n border-radius: 8px;\n}\n\n#anyapi-last-updated {\n font-size: 13px;\n color: #646970;\n margin-top: 10px;\n margin-left: 15px;\n white-space: nowrap;\n float: right;\n}\n\n/* Main Layout (Left Content + Right Info */\n.anyapi-main-grid {\n display: grid;\n grid-template-columns: 1fr 320px;\n gap: 30px;\n margin-top: 20px;\n}\n@media (max-width: 1200px) {\n .anyapi-main-grid {\n grid-template-columns: 1fr;\n }\n .anyapi-sidebar {\n order: -1;\n }\n}\n\n.anyapi-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 20px;\n margin-bottom: 30px;\n}\n\n.anyapi-card {\n // background: #fff;\n background: var(--anyapi-card);\n padding: 24px;\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n transition: transform 0.2s;\n}\n\n.anyapi-card:hover {\n transform: translateY(-4px);\n}\n\n.anyapi-card h3 {\n margin: 0 0 12px;\n font-size: 14px;\n color: #646970;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.anyapi-card .value {\n font-size: 32px;\n font-weight: 700;\n color: #1d2327;\n margin: 8px 0 0;\n}\n\n.anyapi-card .change {\n font-size: 14px;\n}\n\n/* Status */\n.positive {\n // color: #00a32a;\n color: var(--anyapi-success);\n}\n\n.warning {\n color: #dba617;\n // color: var(--anyapi-success);\n}\n\n.negative {\n // color: #d63638;\n color: var(--anyapi-danger);\n}\n\n/* Chart Section */\n.anyapi-charts-row {\n display: grid;\n grid-template-columns: 2fr 1fr;\n gap: 20px;\n margin-bottom: 30px;\n}\n\n@media (max-width: 960px) {\n .anyapi-charts-row {\n grid-template-columns: 1fr;\n }\n}\n\n.anyapi-chart-card {\n // background: #fff;\n background: var(--anyapi-card);\n padding: 24px;\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n\n.anyapi-chart-card h2 {\n margin-top: 0;\n font-size: 18px;\n}\n\n/* Logs Section */\n#anyapi-logs-section {\n // background: #fff;\n background: var(--anyapi-card);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n overflow: hidden;\n}\n\n#anyapi-logs-header {\n padding: 20px 24px;\n border-bottom: 1px solid #e2e4e7;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n#anyapi-logs-section .logs-controls {\n display: flex;\n gap: 12px;\n align-items: center;\n}\n\n#anyapi-log-search {\n padding: 10px 16px;\n border: 1px solid #ddd;\n border-radius: 12px;\n width: 300px;\n max-width: 100%;\n}\n\n/* status-filter */\n.logs-controls {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n align-items: center;\n}\n\n#anyapi-status-filter {\n padding: 8px 12px;\n border: 1px solid #ddd;\n border-radius: 8px;\n background: white;\n min-width: 160px;\n}\n\n.dark-mode #anyapi-status-filter {\n background: #2d3748;\n border-color: #4a5568;\n color: white;\n}\n\n/* log refresh button */\n#anyapi-log-refresh .dashicons {\n font-size: 16px;\n width: 16px;\n height: 16px;\n vertical-align: middle;\n}\n\n#anyapi-log-refresh.rotating .dashicons {\n animation: spin 1s linear infinite;\n}\n\n/* Skeleton Loading */\n.skeleton-row {\n background: #f8f9fa;\n animation: pulse 1.5s infinite ease-in-out;\n}\n\n.skeleton {\n height: 16px;\n background: linear-gradient(90deg, #e0e0e0 25%, #f0f0f0 50%, #e0e0e0 75%);\n background-size: 200% 100%;\n border-radius: 4px;\n animation: skeleton-loading 1.8s infinite linear;\n}\n\n.skeleton.short {\n width: 60%;\n}\n.skeleton.long {\n width: 85%;\n}\n.skeleton.status {\n width: 40%;\n}\n.skeleton.payload {\n width: 90%;\n height: 32px;\n}\n\n@keyframes skeleton-loading {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n}\n\n@keyframes pulse {\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.7;\n }\n}\n\n.dark-mode .skeleton {\n background: linear-gradient(90deg, #2d3748 25%, #4a5568 50%, #2d3748 75%);\n}\n\n/* Loading */\n.loading {\n text-align: center;\n padding: 60px;\n color: #64748b;\n font-size: 16px;\n}\n\n.loading::after {\n content: \"\";\n display: inline-block;\n width: 20px;\n height: 20px;\n border: 2px solid #cbd5e1;\n border-top-color: #7c3aed;\n border-radius: 50%;\n animation: spin 1s linear infinite;\n margin-left: 12px;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n/* pagination */\n#logs-pagination,\n#logs-info {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n margin: 5px 0;\n font-size: 14px;\n color: #2c3338;\n}\n\n.tablenav-pages a.button,\n.tablenav-pages span.current-page,\n.tablenav-pages a.page-numbers {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 30px;\n height: 30px;\n font-size: 13px;\n font-weight: 600;\n padding: 0 12px;\n margin: 0 4px;\n border-radius: 6px;\n text-decoration: none;\n transition: all 0.2s ease;\n box-sizing: border-box;\n}\n\n/* 一般頁碼按鈕 */\n.tablenav-pages a.button,\n.tablenav-pages a.page-numbers {\n background: #ffffff;\n border: 1px solid #c3c4c7;\n color: #2c3338;\n}\n\n.tablenav-pages a.button:hover,\n.tablenav-pages a.page-numbers:hover {\n background: #f0f0f1;\n border-color: #8c8f94;\n color: #1d2327;\n}\n\n/* 當前頁(current-page) - 更突出 */\n.tablenav-pages span.current-page {\n background: #2271b1;\n color: white;\n border: 1px solid #135e96;\n font-weight: bold;\n box-shadow: 0 2px 6px rgba(34, 113, 177, 0.25);\n}\n\n/* 上一頁 / 下一頁 按鈕 - 文字更明顯 */\n.prev-page,\n.next-page {\n min-width: 100px !important; /* 拉長一點,更好點 */\n font-weight: 600;\n}\n\n.tablenav-pages span.dots {\n padding: 0 12px;\n color: #646970;\n font-weight: bold;\n}\n\n@media (max-width: 782px) {\n #logs-pagination,\n #logs-info {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .tablenav-pages a.button,\n .tablenav-pages span.current-page {\n min-width: 36px;\n height: 36px;\n font-size: 14px;\n }\n\n .prev-page,\n .next-page {\n min-width: 80px !important;\n }\n}\n\n/* log section */\n.method-post {\n background: #7c3aed;\n color: white;\n padding: 4px 10px;\n border-radius: 8px;\n font-size: 11px;\n font-weight: bold;\n}\n\n.status-badge {\n padding: 4px 10px;\n border-radius: 8px;\n font-weight: bold;\n font-size: 12px;\n}\n\n.status-badge.success {\n background: #10b981;\n color: white;\n}\n\n.status-badge.warning {\n background: #f59e0b;\n color: white;\n}\n\n.status-badge.error {\n background: #ef4444;\n color: white;\n}\n\n.endpoint code {\n font-size: 12px;\n background: #f3f4f6;\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.payload pre {\n margin: 0;\n font-size: 11px;\n color: #666;\n white-space: pre-wrap;\n word-break: break-all;\n}\n\n#anyapi-logs-footer {\n display: flex;\n justify-content: space-between;\n margin-top: 16px;\n font-size: 14px;\n color: #666;\n}\n\n#anyapi-log-search {\n padding: 8px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n width: 300px;\n}\n\n/* log table */\n#anyapi-logs-table {\n width: 100%;\n border-collapse: collapse;\n}\n\n#anyapi-logs-table th {\n background: #f9fafb;\n text-align: left;\n padding: 12px 16px;\n font-weight: 600;\n color: #1d2327;\n}\n\n#anyapi-logs-table td {\n padding: 12px 16px;\n border-top: 1px solid #e2e4e7;\n font-size: 14px;\n}\n\n/* Idle CSSS */\n/* Status */\n.status-2xx {\n // color: #00a32a;\n color: var(--anyapi-success);\n}\n\n.status-4xx {\n // color: #d63638;\n color: var(--anyapi-danger);\n}\n\n.status-5xx {\n // color: #d63638;\n color: var(--anyapi-danger);\n font-weight: bold;\n}\n\n/* Idle CSS */\n.payload {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n font-size: 12px;\n color: #646970;\n max-width: 300px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n/* Idle CSS */\n// .loading {\n// text-align: center;\n// padding: 60px;\n// font-size: 18px;\n// color: #646970;\n// }\n\n/* Right Sidebar & Cards */\n.anyapi-sidebar {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.anyapi-sidebar-card {\n // background: #fff;\n background: var(--anyapi-card);\n padding: 20px;\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n border: 1px solid #e2e4e7;\n}\n\n.anyapi-sidebar-card h3 {\n margin: 0 0 12px;\n font-size: 16px;\n color: #1d2327;\n}\n\n/* Plugin Version Card */\n.dashicons-yes-alt {\n color: #00a32a;\n}\n\n.dashicons-warning {\n color: #dba617;\n}\n\n.dashicons-update {\n color: #f56e14;\n animation: anyapi-spin 2s linear infinite;\n}\n\n.anyapi-new-version-notice {\n font-size: 12px;\n color: #d63638;\n font-weight: bold;\n margin: 8px 0 4px;\n\n small {\n font-weight: normal;\n color: #666;\n }\n}\n\n/* Update details box */\n.anyapi-update-box {\n margin: 10px 0;\n padding: 12px;\n background: #fff8e5;\n border-left: 4px solid #ffb900;\n font-size: 11px;\n line-height: 1.4;\n\n strong {\n font-size: 11px;\n display: block;\n margin-bottom: 4px;\n }\n\n ul {\n margin: 6px 0 8px;\n padding-left: 18px;\n line-height: 1.4;\n\n li {\n margin-bottom: 2px;\n }\n }\n\n .anyapi-update-button {\n background: #d63638;\n border-color: #d63638;\n box-shadow: none;\n text-shadow: none;\n color: #fff !important;\n\n &:hover,\n &:focus {\n background: #c02a2a;\n border-color: #c02a2a;\n }\n }\n\n .anyapi-view-details {\n margin-left: 8px;\n font-size: 10px;\n color: #666;\n\n &:hover {\n color: #d63638;\n }\n }\n}\n\n.anyapi-latest-text {\n font-size: 12px;\n color: #646970;\n}\n\n/* Global */\n@keyframes anyapi-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Upgrade Card */\n.anyapi-upgrade {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n position: relative;\n overflow: hidden;\n}\n\n.anyapi-upgrade::before {\n content: \"\";\n position: absolute;\n top: -50%;\n right: -50%;\n width: 200%;\n height: 200%;\n background: rgba(255, 255, 255, 0.1);\n transform: rotate(30deg);\n}\n\n.anyapi-upgrade h3,\n.anyapi-upgrade p,\n.anyapi-upgrade li {\n color: white;\n}\n\n.anyapi-upgrade .badge {\n position: absolute;\n top: 12px;\n right: 12px;\n background: #ffb900;\n color: #000;\n padding: 4px 10px;\n border-radius: 20px;\n font-size: 11px;\n font-weight: bold;\n}\n\n.anyapi-upgrade .features {\n margin: 16px 0;\n padding-left: 20px;\n}\n\n.anyapi-upgrade .features li {\n margin-bottom: 8px;\n position: relative;\n}\n\n.anyapi-upgrade .features li::before {\n content: \"✓\";\n position: absolute;\n left: -20px;\n}\n\n.anyapi-upgrade .button-primary {\n background: white;\n color: #667eea;\n font-weight: bold;\n}\n\n.anyapi-button-block {\n display: block;\n text-align: center;\n}\n\n.anyapi-save {\n text-align: center;\n margin-top: 12px;\n font-size: 14px;\n opacity: 0.9;\n}\n\n/* Quick Links Card */\n.anyapi-quick-links {\n list-style: none;\n padding: 0;\n margin: 0;\n}\n\n.anyapi-quick-links li {\n margin-bottom: 8px;\n}\n\n.anyapi-quick-links a {\n color: #0073aa;\n text-decoration: none;\n}\n\n.anyapi-quick-links a:hover {\n text-decoration: underline;\n}\n\n/* Bottom Cards */\n.anyapi-bottom-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));\n gap: 20px;\n margin-top: 40px;\n}\n.anyapi-info-card {\n // background: #fff;\n background: var(--anyapi-card);\n padding: 24px;\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n border: 1px solid #e2e4e7;\n text-align: center;\n}\n.anyapi-info-card h3 {\n margin: 0 0 12px;\n color: #1d2327;\n}\n.anyapi-info-card p {\n color: #646970;\n margin-bottom: 20px;\n line-height: 1.5;\n}\n.anyapi-info-card .button {\n width: 100%;\n}\n\n/***********************************************************/\n/* ================== Dashboard Header =================== */\n/***********************************************************/\n\n#anyapi-dashboard-header {\n position: relative;\n display: flex;\n justify-content: space-between;\n align-items: center;\n min-height: 64px;\n padding: 0 24px; /* <- padding -> */\n margin-bottom: 28px;\n flex-wrap: wrap;\n gap: 16px;\n}\n\n.anyapi-header-left {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.anyapi-logo {\n height: 40px;\n width: auto;\n}\n\n.anyapi-logo svg {\n border-radius: 8px;\n transition: transform 0.2s;\n}\n.anyapi-logo:hover svg {\n transform: scale(1.08);\n}\n\n.anyapi-header-right {\n position: absolute;\n right: 20px; /* ← 24px、20px、16px、30px */\n top: 50%;\n transform: translateY(-50%);\n}\n\n/* Responsive */\n@media (max-width: 782px) {\n #anyapi-dashboard-header {\n padding: 0 16px;\n }\n .anyapi-header-right {\n right: 16px; /* moblie mode can be decrease */\n }\n}\n\n/***********************************************************/\n/* ================== Dark Mode Toggle =================== */\n/***********************************************************/\n\n#dark-mode-toggle {\n position: relative;\n width: 56px;\n height: 28px;\n background: #ccd0d5;\n border-radius: 50px;\n border: none;\n cursor: pointer;\n overflow: hidden;\n transition: background 0.3s;\n}\n\n#dark-mode-toggle .toggle-ball {\n position: absolute;\n top: 4px;\n left: 4px;\n width: 20px;\n height: 20px;\n background: white;\n border-radius: 50%;\n transition: transform 0.3s;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);\n}\n\n#dark-mode-toggle .sun-icon,\n#dark-mode-toggle .moon-icon {\n position: absolute;\n top: 6px;\n font-size: 14px;\n transition: opacity 0.3s;\n}\n\n#dark-mode-toggle .sun-icon {\n left: 8px;\n opacity: 1;\n}\n#dark-mode-toggle .moon-icon {\n right: 8px;\n opacity: 0;\n}\n\n/* Toggle Dark Mode */\n.dark-mode #dark-mode-toggle {\n background: #6366f1;\n}\n\n.dark-mode #dark-mode-toggle .toggle-ball {\n transform: translateX(28px);\n}\n\n.dark-mode #dark-mode-toggle .sun-icon {\n opacity: 0;\n}\n\n.dark-mode #dark-mode-toggle .moon-icon {\n opacity: 1;\n}\n\n.dark-mode {\n background: #1e1e1e;\n color: #e0e0e0;\n}\n\n.dark-mode #anyapi-dashboard,\n.dark-mode .anyapi-card,\n.dark-mode .chart-card,\n.dark-mode #logs-section,\n.dark-mode .anyapi-sidebar-card,\n.dark-mode .anyapi-info-card {\n background: #2d2d2d;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);\n border-color: #444;\n}\n\n.dark-mode .anyapi-card h3,\n.dark-mode .chart-card h2,\n.dark-mode #logs-table th,\n.dark-mode .anyapi-info-card h3 {\n color: #a0a0a0;\n}\n\n.dark-mode .value,\n.dark-mode #logs-table td {\n color: var(--anyapi-text);\n}\n\n.dark-mode #logs-table th {\n background: #363636;\n}\n\n.dark-mode .status-2xx {\n // color: #00e676;\n color: var(--anyapi-success);\n}\n.dark-mode .status-4xx,\n.dark-mode .status-5xx {\n // color: #ff5252;\n color: var(--anyapi-danger);\n}\n", 30 "/* Integration 專屬樣式(加在原有 CSS 後) */\n:root {\n /* 延續上次變數 */\n --anyapi-purple: #7b68ee; /* 步驟紫色,從截圖提取 */\n --anyapi-gray-light: #f8f9fa;\n --anyapi-gray: #6c757d;\n}\n\n.dark-mode {\n --anyapi-purple: #a78bfa;\n --anyapi-gray-light: #2d3748;\n --anyapi-gray: #a0aec0;\n}\n\n.integration-main {\n display: grid;\n grid-template-columns: 200px 1fr;\n gap: 30px;\n margin: 20px 0;\n}\n\n.steps-sidebar {\n background: var(--anyapi-card);\n border-radius: 12px;\n padding: 20px;\n height: fit-content;\n}\n\n.step-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 0;\n cursor: pointer;\n transition: color 0.3s;\n}\n\n.step-item.active .step-number {\n background: var(--anyapi-purple);\n color: white;\n}\n\n.step-number {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background: var(--anyapi-gray-light);\n display: grid;\n place-items: center;\n font-weight: bold;\n}\n\n.step-label {\n font-size: 14px;\n color: var(--anyapi-text-muted);\n}\n\n.integration-content {\n position: relative;\n}\n\n.step-content {\n display: none;\n animation: fadeIn 0.3s;\n}\n\n.step-content.active {\n display: block;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateX(10px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n.form-group {\n margin-bottom: 24px;\n}\n\n.form-group label {\n display: block;\n margin-bottom: 8px;\n font-weight: 600;\n color: var(--anyapi-text);\n}\n\n.form-group input,\n.form-group select,\n.form-group textarea {\n width: 100%;\n padding: 12px;\n border: 1px solid var(--anyapi-border);\n border-radius: 8px;\n background: var(--anyapi-card);\n transition: border-color 0.3s;\n}\n\n.form-group input:focus,\n.form-group select:focus,\n.form-group textarea:focus {\n outline: none;\n border-color: var(--anyapi-primary);\n}\n\n.required {\n color: var(--anyapi-danger);\n}\n\n.help-text {\n color: var(--anyapi-text-muted);\n font-size: 12px;\n}\n\n.filter-mode-toggle {\n display: flex;\n gap: 8px;\n margin: 12px 0;\n}\n\n.mode-btn {\n padding: 8px 16px;\n border: 1px solid var(--anyapi-border);\n background: var(--anyapi-card);\n border-radius: 6px;\n cursor: pointer;\n}\n\n.mode-btn.active {\n background: var(--anyapi-primary);\n color: white;\n border-color: var(--anyapi-primary);\n}\n\n.json-preview {\n background: #1e1e1e;\n border-radius: 8px;\n padding: 16px;\n margin: 16px 0;\n overflow: auto;\n}\n\n.json-preview pre {\n margin: 0;\n color: #f8f8f2;\n font-family: \"Courier New\", monospace;\n font-size: 14px;\n}\n\n.actions-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 20px;\n margin-bottom: 24px;\n}\n\n.action-card {\n background: var(--anyapi-card);\n padding: 20px;\n border-radius: 12px;\n border: 1px solid var(--anyapi-border);\n}\n\n.action-card h3 {\n margin-top: 0;\n color: var(--anyapi-text);\n}\n\n.action-card label {\n display: block;\n margin: 8px 0;\n cursor: pointer;\n}\n\n.integration-footer {\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n padding: 20px 0;\n border-top: 1px solid var(--anyapi-border);\n}\n\n.preview-json-btn {\n background: var(--anyapi-danger);\n color: white;\n}\n\n/* 響應式 */\n@media (max-width: 960px) {\n .integration-main {\n grid-template-columns: 1fr;\n }\n .steps-sidebar {\n order: -1;\n display: flex;\n justify-content: center;\n }\n .step-item {\n flex-direction: column;\n text-align: center;\n }\n .actions-grid {\n grid-template-columns: 1fr;\n }\n}\n\n/* API Status 專屬樣式 */\n#anyapi-status {\n background: var(--anyapi-bg);\n min-height: 100vh;\n}\n\n.anyapi-notice.success {\n background: linear-gradient(90deg, #10b981 0%, #34d399 100%);\n color: white;\n padding: 16px 24px;\n border-radius: 12px;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 20px 0;\n box-shadow: 0 4px 20px rgba(16, 185, 129, 0.2);\n}\n\n.notice-actions {\n display: flex;\n gap: 8px;\n}\n\n.integration-card {\n background: var(--anyapi-card);\n border: 1px solid var(--anyapi-border);\n border-radius: 16px;\n overflow: hidden;\n margin: 30px 0;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);\n}\n\n.integration-row {\n display: grid;\n grid-template-columns: 100px 1fr 120px 1fr 100px 1fr;\n gap: 16px;\n padding: 24px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n@media (max-width: 1280px) {\n .integration-row {\n grid-template-columns: 1fr 1fr;\n gap: 20px;\n }\n}\n\n@media (max-width: 782px) {\n .integration-row {\n grid-template-columns: 1fr;\n text-align: center;\n }\n}\n\n.badge {\n padding: 8px 16px;\n border-radius: 50px;\n font-size: 13px;\n font-weight: 700;\n text-align: center;\n white-space: nowrap;\n}\n\n.badge.purple {\n background: #7b68ee;\n color: white;\n}\n\n.badge.gray {\n background: #e2e8f0;\n color: #475569;\n}\n\n.code-snippet {\n background: #1e1e1e;\n color: #a6e22e;\n padding: 12px 16px;\n border-radius: 12px;\n font-family: \"SFMono-Regular\", Consolas, monospace;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 100%;\n}\n\n.dark-mode .code-snippet {\n background: #2d2d2d;\n color: #89ddff;\n}\n\n.status-action {\n text-align: center;\n margin: 40px 0;\n}\n\n.button-warning {\n background: #f59e0b !important;\n color: white !important;\n padding: 14px 32px !important;\n font-size: 16px;\n border-radius: 12px;\n}\n\n.status-footer {\n text-align: center;\n margin: 60px 0 20px;\n}\n\n/* Dark Mode 增強 */\n.dark-mode .anyapi-notice.success {\n background: linear-gradient(90deg, #059669 0%, #10b981 100%);\n}\n\n.dark-mode .integration-card {\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);\n}\n\n/* 完成頁 */\n.completion-wrapper {\n text-align: center;\n max-width: 900px;\n margin: 0 auto;\n padding: 20px;\n}\n.completion-header h2 {\n font-size: 28px;\n margin: 16px 0;\n color: var(--anyapi-text);\n}\n.success-icon {\n font-size: 64px;\n color: #10b981;\n}\n.completion-actions {\n margin: 30px 0;\n display: flex;\n gap: 12px;\n justify-content: center;\n flex-wrap: wrap;\n}\n.integration-card.standalone {\n margin: 40px auto;\n max-width: 100%;\n}\n.final-cta {\n margin: 50px 0;\n}\n.button-hero {\n padding: 18px 40px !important;\n font-size: 18px !important;\n border-radius: 16px;\n box-shadow: 0 8px 25px rgba(245, 158, 11, 0.4);\n}\n.completion-footer {\n margin-top: 60px;\n display: flex;\n gap: 20px;\n justify-content: center;\n flex-wrap: wrap;\n}\n\n/* */\n.test-api-section {\n margin: 50px auto;\n text-align: center;\n}\n\n.button-success {\n background: linear-gradient(135deg, #10b981, #34d399) !important;\n color: white !important;\n border: none;\n padding: 18px 40px !important;\n font-size: 18px;\n border-radius: 16px;\n box-shadow: 0 10px 30px rgba(16, 185, 129, 0.4);\n transition: all 0.3s;\n}\n\n.button-success:hover {\n transform: translateY(-3px);\n box-shadow: 0 15px 40px rgba(16, 185, 129, 0.5);\n}\n\n.button-success.loading {\n opacity: 0.7;\n cursor: not-allowed;\n position: relative;\n}\n.button-success.loading::after {\n content: \"\";\n position: absolute;\n width: 20px;\n height: 20px;\n border: 3px solid #fff;\n border-top-color: transparent;\n border-radius: 50%;\n animation: spin 1s linear infinite;\n right: 20px;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.test-result {\n margin-top: 30px;\n padding: 20px;\n border-radius: 12px;\n font-family: \"SFMono-Regular\", monospace;\n font-size: 14px;\n text-align: left;\n max-width: 800px;\n margin-left: auto;\n margin-right: auto;\n border: 1px solid;\n}\n\n.test-result.success {\n background: #ecfdf5;\n border-color: #10b981;\n color: #065f46;\n}\n\n.test-result.error {\n background: #fee2e2;\n border-color: #ef4444;\n color: #991b1b;\n}\n\n.dark-mode .test-result.success {\n background: #064e3b;\n color: #86efac;\n}\n.dark-mode .test-result.error {\n background: #7f1d1d;\n color: #fca5a5;\n}\n" 31 ] 32 } -
anyapi/trunk/assets/js/anyapi-logs.min.js
r3414474 r3444238 1 !function a(e,r,c){function s(n,t){if(!r[n]){if(!e[n]){var o="function"==typeof require&&require;if(!t&&o)return o(n,!0);if(i)return i(n,!0);throw(t=new Error("Cannot find module '"+n+"'")).code="MODULE_NOT_FOUND",t}o=r[n]={exports:{}},e[n][0].call(o.exports,function(t){return s(e[n][1][t]||t)},o,o.exports,a,e,r,c)}return r[n].exports}for(var i="function"==typeof require&&require,t=0;t<c.length;t++)s(c[t]);return s}({1:[function(t,n,o){"use strict";jQuery(document).ready(function(o){var n,a=1,e="",r=o("#anyapi-logs-body"),t=o("#anyapi-log-search"),c=o("#anyapi-log-refresh"),s=o("#logs-info");function i(t,n){var a=0<arguments.length&&void 0!==t?t:1,t=1<arguments.length&&void 0!==n?n:"";r.html('<tr><td colspan="6" class="loading">Loading...</td></tr>'),o.post(anyapiLogs.ajax_url,{action:"anyapi_get_logs",page:a,search:t,_wpnonce:anyapiLogs.nonce},function(t){var n,o;t.success?(o=t.data.logs,n=t.data.total,0===o.length?(r.html('<tr><td colspan="6" class="no-logs">No logs found</td></tr>'),s.text("0 logs")):(o=o.map(function(t){var n,o,a=80<t.payload.length?t.payload.substring(0,80)+"...":t.payload;return"\n <tr>\n <td><strong>".concat((n=t.timestamp,o=Date.now(),(o=Math.floor((o-new Date(n).getTime())/1e3))<60?o+" seconds ago":o<3600?Math.floor(o/60)+" minutes ago":o<86400?Math.floor(o/3600)+" hours ago":new Date(n).toLocaleDateString()),'</strong></td>\n <td><span class="method method-post">POST</span></td>\n <td class="endpoint"><code>').concat(t.api_url,'</code></td>\n <td><span class="status-badge ').concat(200<=(o=t.http_code)&&o<300?"success":400<=o&&o<500?"warning":500<=o?"error":"info",'">').concat(t.http_code,"</span></td>\n <td>").concat(t.latency?t.latency+"ms":"-",'</td>\n <td class="payload"><pre>').concat(a.replace(/</g,"<"),"</pre></td>\n </tr>\n ")}).join(""),r.html(o),s.text("Showing ".concat(20*(a-1)+1,"-").concat(Math.min(20*a,n)," of ").concat(n)))):r.html('<tr><td colspan="6">'.concat(t.data||"Error loading logs","</td></tr>"))})}t.on("input",function(){var t=this;clearTimeout(n),n=setTimeout(function(){e=o(t).val(),i(a=1,e)},500)}),c.on("click",function(){return i(a,e)}),i(),setInterval(function(){return i(a,e)},6e4)})},{}]},{},[1]); 1 !(function e(o, s, r) { 2 function i(a, t) { 3 if (!s[a]) { 4 if (!o[a]) { 5 var n = "function" == typeof require && require; 6 if (!t && n) return n(a, !0); 7 if (c) return c(a, !0); 8 throw ( 9 ((t = new Error("Cannot find module '" + a + "'")).code = 10 "MODULE_NOT_FOUND"), 11 t 12 ); 13 } 14 ((n = s[a] = { exports: {} }), 15 o[a][0].call( 16 n.exports, 17 function (t) { 18 return i(o[a][1][t] || t); 19 }, 20 n, 21 n.exports, 22 e, 23 o, 24 s, 25 r, 26 )); 27 } 28 return s[a].exports; 29 } 30 for ( 31 var c = "function" == typeof require && require, t = 0; 32 t < r.length; 33 t++ 34 ) 35 i(r[t]); 36 return i; 37 })( 38 { 39 1: [ 40 function (t, a, n) { 41 "use strict"; 42 jQuery(document).ready(function (c) { 43 var t, 44 l = 1, 45 e = "", 46 o = "", 47 d = !1, 48 u = c("#anyapi-logs-body"), 49 a = c("#anyapi-log-search"), 50 n = c("#anyapi-status-filter"), 51 s = c("#anyapi-log-refresh"), 52 p = c("#logs-info"), 53 g = c("#logs-pagination"); 54 function f(t) { 55 u.html( 56 '<tr><td colspan="6" style="text-align:center;color:#ef4444;padding:40px;">'.concat( 57 0 < arguments.length && void 0 !== t 58 ? t 59 : "Failed to load logs. Please try again.", 60 "</td></tr>", 61 ), 62 ); 63 } 64 function v(t) { 65 for ( 66 var t = 0 < arguments.length && void 0 !== t ? t : 1, 67 a = "", 68 n = 0; 69 n < 10; 70 n++ 71 ) 72 a += 73 '\n <tr class="skeleton-row">\n <td><div class="skeleton"></div></td>\n <td><div class="skeleton short"></div></td>\n <td><div class="skeleton long"></div></td>\n <td><div class="skeleton status"></div></td>\n <td><div class="skeleton short"></div></td>\n <td><div class="skeleton payload"></div></td>\n </tr>\n '; 74 (u.html(a), 75 d || 76 ((d = !0), 77 (l = t), 78 c.ajax({ 79 url: anyapiLogs.ajax_url, 80 method: "POST", 81 data: { 82 action: "anyapi_get_logs", 83 page: l, 84 search: e, 85 status: o, 86 _wpnonce: anyapiLogs.nonce, 87 }, 88 timeout: 1e4, 89 success: function (t) { 90 if ( 91 (console.log( 92 "AJAX debug:", 93 t.data.debug, 94 "AJAX paginfo:", 95 t.data.pageinfo, 96 "AJAX params:", 97 t.data.pageinfo, 98 ), 99 t.success) 100 ) { 101 var a = t.data.logs || [], 102 n = t.data.total || 0; 103 if (0 === a.length) 104 (u.html( 105 '<tr><td colspan="6" class="no-logs">No API logs found</td></tr>', 106 ), 107 p.text("0 results"), 108 g.empty(), 109 (d = !1)); 110 else { 111 var a = a 112 .map(function (t) { 113 var a, 114 n, 115 e = 116 80 < t.payload.length 117 ? t.payload.substring(0, 80) + "..." 118 : t.payload; 119 return "\n <tr>\n <td><strong>" 120 .concat( 121 ((a = t.timestamp), 122 (n = Date.now()), 123 (n = Math.floor( 124 (n - new Date(a).getTime()) / 1e3, 125 )) < 60 126 ? n + " seconds ago" 127 : n < 3600 128 ? Math.floor(n / 60) + " minutes ago" 129 : n < 86400 130 ? Math.floor(n / 3600) + " hours ago" 131 : new Date(a).toLocaleDateString()), 132 '</strong></td>\n <td><span class="method method-post">POST</span></td>\n <td class="endpoint"><code>', 133 ) 134 .concat( 135 t.api_url, 136 '</code></td>\n <td><span class="status-badge ', 137 ) 138 .concat( 139 200 <= (n = t.http_code) && n < 300 140 ? "success" 141 : 400 <= n && n < 500 142 ? "warning" 143 : 500 <= n 144 ? "error" 145 : "info", 146 '">', 147 ) 148 .concat( 149 t.http_code, 150 "</span></td>\n <td>", 151 ) 152 .concat( 153 t.latency ? t.latency + "ms" : "-", 154 '</td>\n <td class="payload"><pre>', 155 ) 156 .concat( 157 e.replace(/</g, "<"), 158 "</pre></td>\n </tr>\n ", 159 ); 160 }) 161 .join(""), 162 a = (u.html(a), 10 * (l - 1) + 1), 163 e = Math.min(10 * l, n); 164 p.text( 165 "Showing " 166 .concat(a, "–") 167 .concat(e, " of ") 168 .concat(n, " results"), 169 ); 170 var o = l; 171 if ((a = n) <= (e = 10) || 0 === a) g.empty(); 172 else { 173 for ( 174 var a = Math.ceil(a / e), 175 s = '<div class="tablenav-pages">', 176 e = 177 (1 < o && 178 (s += 179 '<a class="prev-page button" data-page="'.concat( 180 o - 1, 181 '">« Previous</a>', 182 )), 183 Math.max(1, o - 2)), 184 r = Math.min(a, o + 2), 185 i = e; 186 i <= r; 187 i++ 188 ) 189 s += 190 i === o 191 ? '<span class="current-page">'.concat( 192 i, 193 "</span>", 194 ) 195 : '<a class="page-number button" data-page="' 196 .concat(i, '">') 197 .concat(i, "</a>"); 198 (o < a && 199 (s += 200 '<a class="next-page button" data-page="'.concat( 201 o + 1, 202 '">Next »</a>', 203 )), 204 g.html((s += "</div>")), 205 g.find("a[data-page]").on("click", function (t) { 206 (t.preventDefault(), 207 v(parseInt(c(this).data("page")))); 208 })); 209 } 210 } 211 } else (f(t.data || "Error loading logs"), (d = !1)); 212 }, 213 error: function (t, a, n) { 214 a = 215 "timeout" === a 216 ? "Request timeout - please try again" 217 : "Network error"; 218 f((a = 403 === t.status ? "Permission denied" : a)); 219 }, 220 complete: function () { 221 d = !1; 222 }, 223 }))); 224 } 225 (a.add(n).on("input change", function () { 226 (clearTimeout(t), 227 (t = setTimeout(function () { 228 ((e = a.val().trim()), (o = n.val()), v((l = 1))); 229 }, 600))); 230 }), 231 s.on("click", function () { 232 var t = this; 233 (c(this).addClass("rotating"), 234 v(l), 235 setTimeout(function () { 236 return c(t).removeClass("rotating"); 237 }, 600)); 238 }), 239 v(1), 240 setInterval(function () { 241 d || "visible" !== document.visibilityState || v(l); 242 }, 6e4)); 243 }); 244 }, 245 {}, 246 ], 247 }, 248 {}, 249 [1], 250 ); -
anyapi/trunk/inc/Admin.php
r3414465 r3444238 371 371 } 372 372 373 public static function getLogInfo( $cache, $where, $params, $perPage, $offset ) { 374 375 global $wpdb; 376 $table = $wpdb->prefix . 'anyapi_log_anyapi'; 377 $cacheKey = 'anyapi_log_' . md5( $cache . $params ); 378 $results = wp_cache_get( $cacheKey, 'anyapi_log_cache' ); 379 380 if ( false === $results ) { 381 $results = match ( $cache ) { 382 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery -- Custom table query required for API logs. 383 'total' => $wpdb->get_var( $wpdb->prepare( 384 "SELECT COUNT(*) FROM $table $where", ...$params 385 ) ), 386 'logs' => $wpdb->get_results( $wpdb->prepare( 387 "SELECT id, order_id, http_code, api_url, payload, latency, timestamp FROM $table $where ORDER BY timestamp DESC LIMIT %d OFFSET %d", ...array_merge( $params, [ $perPage, $offset ] ) 388 ), ARRAY_A ) 389 }; 390 wp_cache_set( $cacheKey, $results, 'anyapi_log_cache', 300 ); 391 return $results; 392 } 393 394 } 395 373 396 public static function activatedDay() { 374 397 $activatedTime = get_option( 'anyapi_activated_time' ); 375 398 return $activatedTime ? 376 floor( ( time() - $activatedTime ) / DAY_IN_SECONDS ) : 0;399 floor( ( time() - $activatedTime ) / DAY_IN_SECONDS ) : 0; 377 400 } 378 401 … … 459 482 public function ajaxGetLogs() { 460 483 461 check_ajax_referer( 'anyapi_logs_nonce');484 check_ajax_referer('anyapi_logs_nonce'); 462 485 463 486 global $wpdb; 464 $table = $wpdb->prefix . 'anyapi_log_anyapi'; 465 $page = max( 1, intval( $_POST[ 'page' ] ?? 1 ) ); 466 $searchRaw = isset( $_POST[ 'search' ] ) ?? '' ; 467 $search = sanitize_text_field( $searchRaw ?? '' ); 468 $perPage = 10; 469 $offset = ( $page - 1 ) * $perPage; 470 471 $params = []; 472 if ( ! empty( $search ) ) { 473 $like = "%$search%"; 474 $params = [ $like, $like, $like ]; 475 } 476 477 $total = wp_cache_get( 'anyapi_log_'. $search, 'anyapi_log_cache' ); 478 if ( false === $total ) { 479 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery -- Custom table query required for API logs. 480 $total = $wpdb->get_var( $wpdb->prepare( 481 "SELECT COUNT(*) FROM %i WHERE (api_url LIKE %s OR payload LIKE %s OR order_id LIKE %s)", $table, ...$params 482 ) ); 483 wp_cache_set( 'anyapi_log_'. $search, $total, 'anyapi_log_cache', 60 ); 484 } 485 486 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery -- Custom table query required for API logs. 487 $logs = $wpdb->get_results( $wpdb->prepare( 488 "SELECT id, order_id, http_code, api_url, payload, latency, timestamp FROM %i WHERE (api_url LIKE %s OR payload LIKE %s OR order_id LIKE %s) ORDER BY timestamp DESC LIMIT %d OFFSET %d", $table, ...array_merge( $params, [ $perPage, $offset ] ) 489 ), ARRAY_A ); 487 $page = max( 1, intval( $_POST[ 'page' ] ?? 1 ) ); 488 $search = trim( sanitize_text_field( wp_unslash( $_POST[ 'search' ] ?? '' ) ) ); 489 $status = sanitize_text_field( wp_unslash( $_POST[ 'status' ] ?? '' ) ); 490 $perPage = 10; // line of records per page 491 $offset = ( $page - 1 ) * $perPage; 492 $params = []; 493 494 // conditions 495 if ( $search !== '' ) { 496 $like = '%' . $wpdb->esc_like( $search ) . '%'; 497 $conditions[] = "(api_url LIKE %s OR payload LIKE %s OR CAST(order_id AS CHAR) LIKE %s)"; 498 $params = array_merge( $params, [ $like, $like, $like ] ); 499 } 500 501 if ( $status === '2xx' ) { 502 $conditions[] = "http_code >= 200 AND http_code < 300"; 503 } elseif ( $status === '4xx' ) { 504 $conditions[] = "http_code >= 400 AND http_code < 500"; 505 } elseif ( $status === '5xx' ) { 506 $conditions[] = "http_code >= 500"; 507 } 508 509 $whereClause = ''; 510 if ( ! empty( $conditions ) ) { 511 $whereClause = 'WHERE ' . implode( ' AND ', $conditions ); 512 } 513 514 $total = self::getLogInfo( 'total', $whereClause, $params, $perPage, $offset ); 515 516 $logs = self::getLogInfo( 'logs', $whereClause, $params, $perPage, $offset ); 490 517 491 518 wp_send_json_success( [ 492 'logs' => $logs ,493 'total' => intval( $total ),494 'page' => $page 519 'logs' => $logs ?: [], 520 'total' => $total, 521 'page' => $page, 495 522 ] ); 496 523 497 524 } 498 499 525 500 526 public function settingsLinks( $links ) { … … 688 714 } 689 715 716 /** 717 * Return admin message 718 * @return array{message: array{system_1...system_2...}} 719 */ 720 690 721 public static function getConfig() { 691 722 -
anyapi/trunk/inc/Anyapi.php
r3414465 r3444238 186 186 $args = array( 187 187 // Dashboard Header (*) 188 //array(189 //'id' => 'anyapi_admin_header',190 //'title' => '',191 // 'callback' => array( $this->dashboard, 'dashboardHeader' ),192 //'page' => 'anyapi_admin_header_content',193 //'args' => array(194 //)195 //),188 array( 189 'id' => 'anyapi_admin_header', 190 'title' => '', 191 'callback' => array( $this->dashboard, 'showBanner' ), 192 'page' => 'anyapi_admin_header_content', 193 'args' => array( 194 ) 195 ), 196 196 // Dashboard Section 197 197 array( -
anyapi/trunk/inc/Views/Dashboard.php
r3414512 r3444238 164 164 <h2>Real Time API Log</h2> 165 165 <div class="logs-controls"> 166 <!-- <input type="text" id="anyapi-log-search" placeholder="Search endpoint, payload, order ID..."> --> 167 <button id="anyapi-log-refresh" class="button">Refresh</button> 166 <input type="text" id="anyapi-log-search" placeholder="Search endpoint, payload, order ID..."> 167 <select id="anyapi-status-filter"> 168 <option value="">All Status</option> 169 <option value="2xx">Success</option> 170 <option value="4xx">Client Error</option> 171 <option value="5xx">Server Error</option> 172 </select> 173 <button id="anyapi-log-refresh" class="button"> 174 <!-- <span class="dashicons dashicons-update"></span> Refresh --> 175 Refresh 176 </button> 168 177 </div> 169 178 </div> … … 184 193 <tr><td colspan="6" class="loading">Loading logs...</td></tr> 185 194 </tbody> 195 <!-- <tbody id="anyapi-logs-body"></tbody> --> 186 196 </table> 187 197 </div> 188 198 189 199 <div id="anyapi-logs-footer"> 190 <div id="logs-pagination" ></div>200 <div id="logs-pagination" class="tablenav-pages"></div> 191 201 <div id="logs-info"></div> 192 202 </div> -
anyapi/trunk/readme.txt
r3414465 r3444238 4 4 Tags: api, json, webhooks, automation, automator 5 5 Tested up to: 6.9 6 Stable tag: 1.1. 46 Stable tag: 1.1.5 7 7 License: GPLv2 or later 8 8 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 16 16 * Features - API Automation, Order Triggers, Woo API Development Tools and API Logs. 17 17 * No Coding Required – Ideal for Business Owners, Developers, and Project Managers. 18 * Fully Tested with WordPress 6. 8and WooCommerce 9.4.1.18 * Fully Tested with WordPress 6.9 and WooCommerce 9.4.1. 19 19 20 20 = E-commerce Automation = … … 72 72 73 73 == Screenshots == 74 1. **Automation** - WooCommerce Order API75 2. **AnyAPI** Dashboard76 3. **API logs* - Monitoring your WooCommerce API integration data77 4. **Visual Interface** - 1-click JSON Filter78 5. **Trigger API** - Turn API status ON to Automate workflows74 1. **Automation** - WooCommerce Order API 75 2. **AnyAPI** Dashboard 76 3. **API logs** - Monitoring your WooCommerce API integration data 77 4. **Visual Interface** - 1-click JSON Filter 78 5. **Trigger API** - Turn API status ON to Automate workflows 79 79 80 80 == Changelog == 81 82 = 1.1.5 (2025-01-21) = 83 * Update - dasboard real time API log section 84 * Added - field for searching endpoint, payload, orderid etc.. 85 * Added - http code status filter 86 * Tweak - better experience for loading "Real Time API Log" 81 87 82 88 = 1.1.4 (2025-12-8) =
Note: See TracChangeset
for help on using the changeset viewer.