    :root{
      --ry:#009999;
      --ry-dark:#0f172a;
      --ry-muted:#64748b;
      --ry-bg:#f8fafc;
      --ry-border:#dbe2ea;
      --ry-shadow:0 20px 50px rgba(15,23,42,.14);
    }

    *{ box-sizing:border-box; }

    html,body{
      margin:0;
      height:100%;
      font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
      background:#eef4f5;
      color:var(--ry-dark);
    }

    #app{
      position:relative;
      width:100%;
      height:100%;
      min-height:720px;
      overflow:hidden;
      background:
        radial-gradient(900px 360px at 10% 0%, rgba(0,153,153,.10), transparent 60%),
        linear-gradient(180deg, #f4f8f9 0%, #ffffff 100%);
    }

    #map{
      width:100%;
      height:100%;
    }

    .verifier-panel{
      position:absolute;
      top:22px;
      left:22px;
      z-index:1000;
      width:400px;
      max-width:calc(100% - 44px);
      background:rgba(255,255,255,.95);
      backdrop-filter:blur(10px);
      border:1px solid rgba(255,255,255,.7);
      border-radius:24px;
      padding:22px;
      box-shadow:var(--ry-shadow);
    }

    .brand-bar{
      width:74px;
      height:4px;
      border-radius:999px;
      background:linear-gradient(90deg, var(--ry), rgba(0,153,153,.25));
      margin-bottom:14px;
    }

    .verifier-title{
      margin:0 0 6px;
      font-size:1.55rem;
      font-weight:900;
      letter-spacing:-.02em;
      color:var(--ry-dark);
      line-height:1.1;
    }

    .verifier-text{
      margin:0 0 18px;
      color:var(--ry-muted);
      font-size:1rem;
      line-height:1.35;
    }

    .search-row{
      display:flex;
      gap:10px;
      margin-bottom:14px;
    }

    .search-row input{
      flex:1;
      height:54px;
      border:1px solid var(--ry-border);
      border-radius:16px;
      padding:0 16px;
      outline:none;
      font-size:1rem;
      background:#fff;
      color:var(--ry-dark);
    }

    .search-row input:focus{
      border-color:rgba(0,153,153,.6);
      box-shadow:0 0 0 4px rgba(0,153,153,.10);
    }

    .search-row button,
    .action-btn{
      border:none;
      border-radius:16px;
      font-weight:800;
      font-size:1rem;
      cursor:pointer;
      transition:.2s ease;
    }

    .search-row button{
      height:54px;
      padding:0 22px;
      background:var(--ry);
      color:#fff;
      white-space:nowrap;
      box-shadow:0 10px 24px rgba(0,153,153,.20);
    }

    .search-row button:hover,
    .action-btn.primary:hover{
      filter:brightness(.96);
      transform:translateY(-1px);
    }

    .status-card{
      border:1px solid #e2e8f0;
      background:#f8fafc;
      border-radius:18px;
      padding:18px;
      margin-bottom:14px;
    }

    .status-label{
      font-size:.78rem;
      font-weight:900;
      letter-spacing:.10em;
      color:var(--ry-muted);
      text-transform:uppercase;
      margin-bottom:8px;
    }

    .status-title{
      font-size:1rem;
      font-weight:800;
      color:var(--ry-dark);
      margin-bottom:4px;
    }

    .status-message{
      font-size:.98rem;
      line-height:1.35;
      color:var(--ry-muted);
    }

    .actions{
      display:flex;
      gap:10px;
      margin-bottom:14px;
    }

    .action-btn{
      flex:1;
      height:52px;
      background:#fff;
      color:var(--ry-dark);
      border:1px solid var(--ry-border);
    }

    .action-btn.primary{
      background:#fff;
    }

    .action-btn .emoji{ margin-right:6px; }

    .fine-print{
      margin:0;
      color:var(--ry-muted);
      font-size:.95rem;
      line-height:1.45;
    }

    .map-legend{
      position:absolute;
      right:22px;
      bottom:22px;
      z-index:1000;
      width:380px;
      max-width:calc(100% - 44px);
      background:rgba(255,255,255,.95);
      backdrop-filter:blur(10px);
      border:1px solid rgba(255,255,255,.7);
      border-radius:20px;
      padding:16px 18px;
      box-shadow:0 14px 36px rgba(15,23,42,.12);
    }

    .map-legend h4{
      margin:0 0 12px;
      font-size:1.1rem;
      font-weight:900;
      color:var(--ry-dark);
    }

    .legend-item{
      display:flex;
      align-items:center;
      gap:10px;
      margin-bottom:8px;
      color:var(--ry-dark);
      font-size:.98rem;
    }

    .legend-dot{
      width:14px;
      height:14px;
      border-radius:999px;
      flex:0 0 14px;
    }

    .legend-dot.coverage{
      background:rgba(0,153,153,.30);
      border:2px solid var(--ry);
    }

    .legend-dot.point{
      background:#0f172a;
    }

    .map-legend p{
      margin:8px 0 0;
      color:var(--ry-muted);
      font-size:.93rem;
      line-height:1.4;
    }

    .leaflet-control-zoom{
      margin-top:18px !important;
      margin-left:18px !important;
      border:none !important;
      box-shadow:0 10px 28px rgba(15,23,42,.16) !important;
    }

    .leaflet-control-zoom a{
      width:42px !important;
      height:42px !important;
      line-height:42px !important;
      color:var(--ry-dark) !important;
      border:none !important;
    }

    .leaflet-popup-content-wrapper,
    .leaflet-popup-tip{
      box-shadow:0 12px 28px rgba(15,23,42,.14);
    }

    .popup-title{
      font-weight:900;
      margin-bottom:6px;
      color:var(--ry-dark);
    }

    .popup-text{
      color:var(--ry-muted);
      line-height:1.35;
    }

    @media (max-width: 768px){
      #app{ min-height:680px; }

      .verifier-panel{
        top:12px;
        left:12px;
        width:calc(100% - 24px);
        max-width:none;
        padding:18px;
        border-radius:20px;
      }

      .verifier-title{ font-size:1.3rem; }

      .search-row{
        flex-direction:column;
      }

      .search-row button,
      .action-btn{
        width:100%;
      }

      .actions{
        flex-direction:column;
      }

      .map-legend{
        left:12px;
        right:12px;
        bottom:12px;
        width:auto;
        max-width:none;
      }
    }