{
  "id": "frost-signal-tiers",
  "name": "Sensor Tiers",
  "theme": "frost-signal",
  "category": "Pricing",
  "description": "Three plans priced per sensor per month, each carrying a green bar for what it includes and a red one for what it does not, using the system’s only two colours.",
  "layout": "Three equal columns with a 4px state bar at the top of each and a shared feature table beneath, where inclusion is a bar and not a tick.",
  "modules": [
    {
      "key": "head",
      "name": "Pricing header",
      "html": "\n<header class=\"ph\"><span class=\"k\">Per sensor · per month · billed annually</span><h1>Three tiers, one estate</h1><p>Every tier polls at the same rate and keeps the same record. What changes is who gets told and how fast.</p></header>"
    },
    {
      "key": "cols",
      "name": "Tier columns",
      "html": "\n<section class=\"tc\">\n<article><span class=\"k\">Record</span><p class=\"pr mn\">£4</p><span class=\"u\">per sensor / month</span><ul><li><span class=\"bar ok\"></span>60-second polling</li><li><span class=\"bar ok\"></span>7-year immutable record</li><li><span class=\"bar ok\"></span>Band strips and excursion reports</li><li><span class=\"bar no\"></span>On-call escalation</li><li><span class=\"bar no\"></span>Degree-minute quarantine</li></ul><button class=\"gh\">Choose Record</button></article>\n<article class=\"on\"><span class=\"k\">Respond</span><p class=\"pr mn\">£9</p><span class=\"u\">per sensor / month</span><ul><li><span class=\"bar ok\"></span>60-second polling</li><li><span class=\"bar ok\"></span>7-year immutable record</li><li><span class=\"bar ok\"></span>Band strips and excursion reports</li><li><span class=\"bar ok\"></span>On-call escalation, SMS and push</li><li><span class=\"bar no\"></span>Degree-minute quarantine</li></ul><button class=\"pri\">Choose Respond</button></article>\n<article><span class=\"k\">Release</span><p class=\"pr mn\">£16</p><span class=\"u\">per sensor / month</span><ul><li><span class=\"bar ok\"></span>60-second polling</li><li><span class=\"bar ok\"></span>7-year immutable record</li><li><span class=\"bar ok\"></span>Band strips and excursion reports</li><li><span class=\"bar ok\"></span>On-call escalation, SMS and push</li><li><span class=\"bar ok\"></span>Degree-minute quarantine and disposition</li></ul><button class=\"gh\">Choose Release</button></article>\n</section>"
    },
    {
      "key": "note",
      "name": "Basis note",
      "html": "\n<footer class=\"bn\"><span class=\"k\">What a sensor is</span><p>One probe in one location. A reefer with three probes is three sensors. Gateways, the app, unlimited operators and the API are included at every tier and are not charged for.</p></footer>"
    }
  ],
  "moduleCount": 3,
  "reorderable": true,
  "meta": {
    "id": "frost-signal-tiers",
    "model": "Claude Opus 5",
    "author": "Claude Code",
    "createdAt": "2026-09-02T01:55:55+09:00",
    "updatedAt": "2026-09-02T01:55:55+09:00",
    "version": "1.0.0",
    "isNew": false
  },
  "link": "/api/v1/designs/frost-signal-tiers.json",
  "structure": "Three equal columns with a 4px state bar at the top of each and a shared feature table beneath, where inclusion is a bar and not a tick.",
  "html": "<div class=\"dz dz-frost-signal-tiers\" data-design=\"frost-signal-tiers\" data-theme=\"frost-signal\">\n<section class=\"dz-mod\" data-mod=\"head\" aria-label=\"Pricing header\">\n<header class=\"ph\"><span class=\"k\">Per sensor · per month · billed annually</span><h1>Three tiers, one estate</h1><p>Every tier polls at the same rate and keeps the same record. What changes is who gets told and how fast.</p></header></section>\n<section class=\"dz-mod\" data-mod=\"cols\" aria-label=\"Tier columns\">\n<section class=\"tc\">\n<article><span class=\"k\">Record</span><p class=\"pr mn\">£4</p><span class=\"u\">per sensor / month</span><ul><li><span class=\"bar ok\"></span>60-second polling</li><li><span class=\"bar ok\"></span>7-year immutable record</li><li><span class=\"bar ok\"></span>Band strips and excursion reports</li><li><span class=\"bar no\"></span>On-call escalation</li><li><span class=\"bar no\"></span>Degree-minute quarantine</li></ul><button class=\"gh\">Choose Record</button></article>\n<article class=\"on\"><span class=\"k\">Respond</span><p class=\"pr mn\">£9</p><span class=\"u\">per sensor / month</span><ul><li><span class=\"bar ok\"></span>60-second polling</li><li><span class=\"bar ok\"></span>7-year immutable record</li><li><span class=\"bar ok\"></span>Band strips and excursion reports</li><li><span class=\"bar ok\"></span>On-call escalation, SMS and push</li><li><span class=\"bar no\"></span>Degree-minute quarantine</li></ul><button class=\"pri\">Choose Respond</button></article>\n<article><span class=\"k\">Release</span><p class=\"pr mn\">£16</p><span class=\"u\">per sensor / month</span><ul><li><span class=\"bar ok\"></span>60-second polling</li><li><span class=\"bar ok\"></span>7-year immutable record</li><li><span class=\"bar ok\"></span>Band strips and excursion reports</li><li><span class=\"bar ok\"></span>On-call escalation, SMS and push</li><li><span class=\"bar ok\"></span>Degree-minute quarantine and disposition</li></ul><button class=\"gh\">Choose Release</button></article>\n</section></section>\n<section class=\"dz-mod\" data-mod=\"note\" aria-label=\"Basis note\">\n<footer class=\"bn\"><span class=\"k\">What a sensor is</span><p>One probe in one location. A reefer with three probes is three sensors. Gateways, the app, unlimited operators and the API are included at every tier and are not charged for.</p></footer></section>\n</div>",
  "css": "\n.dz-frost-signal-tiers { background: var(--background); color: var(--foreground); font-family: var(--pv-body); padding: 44px 26px; }\n.dz-frost-signal-tiers .k { text-transform: uppercase; letter-spacing: .14em; font-size: 10.5px; font-weight: 700; color: var(--muted-foreground); }\n.dz-frost-signal-tiers .mn { font-family: var(--pv-mono); font-weight: 500; }\n.dz-frost-signal-tiers .ph { text-align: center; margin-bottom: 32px; }\n.dz-frost-signal-tiers h1 { font-size: 52px; font-weight: 700; letter-spacing: -.025em; margin: 8px 0 10px; }\n.dz-frost-signal-tiers .ph p { margin: 0 auto; font-size: 16px; line-height: 1.6; color: var(--muted-foreground); max-width: 62ch; }\n.dz-frost-signal-tiers .tc { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: 1100px; margin: 0 auto; }\n.dz-frost-signal-tiers .tc article { background: var(--card); border: 1px solid var(--border); border-top: 4px solid var(--secondary); border-radius: 5px; padding: 22px; }\n.dz-frost-signal-tiers .tc .on { border-top-color: var(--accent); }\n.dz-frost-signal-tiers .pr { font-size: 56px; line-height: 1; margin: 8px 0 2px; letter-spacing: -.03em; }\n.dz-frost-signal-tiers .u { font-family: var(--pv-mono); font-weight: 500; font-size: 11.5px; color: var(--muted-foreground); display: block; margin-bottom: 20px; }\n.dz-frost-signal-tiers ul { list-style: none; margin: 0 0 22px; padding: 0; }\n.dz-frost-signal-tiers li { display: flex; align-items: center; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--border); font-size: 14px; }\n.dz-frost-signal-tiers .bar { width: 4px; height: 18px; border-radius: 2px; flex: none; background: var(--accent); }\n.dz-frost-signal-tiers .bar.no { background: var(--destructive); }\n.dz-frost-signal-tiers button { width: 100%; border-radius: 3px; padding: 11px; font: inherit; text-transform: uppercase; letter-spacing: .14em; font-size: 10.5px; font-weight: 700; cursor: pointer; }\n.dz-frost-signal-tiers .pri { background: var(--primary); color: var(--primary-foreground); border: 0; }\n.dz-frost-signal-tiers .gh { background: transparent; color: var(--foreground); border: 1px solid var(--border); }\n.dz-frost-signal-tiers .bn { max-width: 1100px; margin: 32px auto 0; padding-top: 18px; border-top: 1px solid var(--border); }\n.dz-frost-signal-tiers .bn p { margin: 6px 0 0; font-size: 14.5px; line-height: 1.58; color: var(--muted-foreground); max-width: 70ch; }\n@media (prefers-reduced-motion: reduce) { .dz-frost-signal-tiers *, .dz-frost-signal-tiers *::before, .dz-frost-signal-tiers *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; } }\n",
  "requiredTheme": "/api/v1/themes/frost-signal.json",
  "googleFontsHref": "https://fonts.googleapis.com/css2?family=Commissioner:wght@400;500;600;700&family=Azeret+Mono:wght@400;500;600;700&display=swap"
}