*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
    :root{
      --sky:#4dd0e1;--blue:#00bcd4;--deep:#006978;--warn:#ffb300;--danger:#ef5350;--go:#66bb6a;
      --text:#e8f4f8;--muted:rgba(232,244,248,0.52);--dimmed:rgba(232,244,248,0.28);
      --card:rgba(4,14,20,0.62);--border:rgba(232,244,248,0.10);
      --mono:'DM Sans',sans-serif;
      --serif:'Cormorant Garamond',Georgia,serif;
      --safe-bottom:env(safe-area-inset-bottom,0px);
    }
    html,body{min-height:100%;color:var(--text);font-family:var(--serif);overflow-x:hidden;background:#040a0e;-webkit-tap-highlight-color:transparent;}
    #sky{position:fixed;inset:0;z-index:0;
      background:radial-gradient(ellipse 200% 45% at 50% -5%,rgba(0,188,212,0.18) 0%,transparent 60%),
        radial-gradient(ellipse 120% 40% at 15% 0%,rgba(77,208,225,0.12) 0%,transparent 55%),
        radial-gradient(ellipse 120% 40% at 85% 0%,rgba(0,105,120,0.14) 0%,transparent 55%),
        linear-gradient(to bottom,#040a0e 0%,#050d14 35%,#04111a 65%,#040c12 100%);}
    #sky::before{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");opacity:0.04;mix-blend-mode:overlay;pointer-events:none;}
    #sky::after{content:'';position:absolute;top:0;left:0;right:0;height:40%;background:linear-gradient(to bottom,rgba(77,208,225,0.06) 0%,transparent 100%);pointer-events:none;}
    #particles{position:fixed;inset:0;z-index:1;pointer-events:none;}
    .particle{position:absolute;width:2px;height:2px;border-radius:50%;background:rgba(77,208,225,0.4);animation:drift var(--dur,12s) linear infinite var(--delay,0s);opacity:0;}
    @keyframes drift{0%{opacity:0;transform:translate(0,0);}10%{opacity:1;}90%{opacity:0.3;}100%{opacity:0;transform:translate(var(--dx,20px),var(--dy,-60px));}}
    #app{position:relative;z-index:10;min-height:100vh;display:flex;flex-direction:column;}

    header{padding:clamp(1.5rem,4vw,2.8rem) clamp(1rem,4vw,1.5rem) 0;display:flex;flex-direction:column;align-items:center;text-align:center;animation:fadeDown 0.9s ease both;}
    .wordmark{font-family:var(--serif);font-weight:300;font-size:clamp(2.6rem,10vw,7rem);letter-spacing:0.28em;text-transform:uppercase;color:var(--text);line-height:1;}
    .wordmark em{font-style:normal;color:var(--sky);}
    .tagline{margin-top:0.7rem;font-family:var(--mono);font-size:0.58rem;color:var(--muted);letter-spacing:0.22em;text-transform:uppercase;}
    .header-rule{width:48px;height:1px;background:linear-gradient(to right,transparent,var(--sky),transparent);margin:1.4rem auto 0;opacity:0.55;}

    .hero{flex:1;display:flex;flex-direction:column;align-items:center;padding:2rem 1.2rem 3rem;animation:fadeUp 1s ease both 0.25s;}
    .hero-headline{font-family:var(--serif);font-weight:300;font-size:clamp(1.4rem,4.5vw,2rem);line-height:1.35;text-align:center;max-width:30ch;margin-bottom:0.7rem;}
    .hero-sub{font-family:var(--mono);font-size:0.6rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--muted);text-align:center;max-width:44ch;line-height:1.9;margin-bottom:2.2rem;}

    /* Recent chips */
    .recent-wrap{width:100%;max-width:560px;margin-top:0;}
    .recent-label{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--dimmed);margin-bottom:0.4rem;}
    .recent-chips{display:flex;flex-wrap:wrap;gap:0.4rem;}
    .recent-chip{font-family:var(--mono);font-size:0.57rem;letter-spacing:0.1em;padding:0.4rem 0.85rem;border:1px solid var(--border);border-radius:20px;background:rgba(255,255,255,0.03);color:var(--muted);cursor:pointer;transition:border-color 0.15s,color 0.15s;min-height:36px;display:flex;align-items:center;}
    .recent-chip:active{border-color:var(--sky);color:var(--sky);}

    /* ── FORM ── */
    .form-card{background:var(--card);backdrop-filter:blur(24px);border:1px solid var(--border);border-radius:12px;padding:1.6rem 1.4rem 1.8rem;width:100%;max-width:560px;display:flex;flex-direction:column;gap:1rem;}
    .field{display:flex;flex-direction:column;gap:0.45rem;position:relative;}
    label{font-family:var(--mono);font-size:0.57rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--dimmed);}
    input,select{background:rgba(255,255,255,0.04);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--serif);font-size:1.05rem;padding:0.8rem 1rem;outline:none;transition:border-color 0.2s,background 0.2s;width:100%;-webkit-appearance:none;appearance:none;min-height:48px;}
    select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='rgba(232,244,248,0.3)'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem;background-color:rgba(255,255,255,0.04);}
    select option{background:#050e18;color:var(--text);}
    input:focus,select:focus{border-color:rgba(77,208,225,0.4);background:rgba(255,255,255,0.065);}
    input::placeholder{color:rgba(232,244,248,0.2);}
    input[type="date"]::-webkit-calendar-picker-indicator{filter:invert(0.7) sepia(0.3);cursor:pointer;}
    .row{display:flex;gap:0.8rem;}.row .field{flex:1;}

    /* Units toggle */
    .units-toggle-wrap{display:flex;align-items:center;justify-content:space-between;}
    .units-toggle-wrap label{margin:0;}
    .units-toggle{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;}
    .units-btn{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.14em;text-transform:uppercase;padding:0.45rem 0.8rem;background:transparent;color:var(--dimmed);cursor:pointer;border:none;transition:background 0.15s,color 0.15s;min-height:34px;display:flex;align-items:center;}
    .units-btn.active{background:rgba(77,208,225,0.12);color:var(--sky);}
    .units-sep{width:1px;background:var(--border);}

    /* Flight time row */
    .flight-time-wrap{display:flex;flex-direction:column;gap:0.6rem;}
    .flight-time-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;}
    .flight-time-field{display:flex;flex-direction:column;gap:0.45rem;flex:1;min-width:160px;}
    .flight-time-label-row{display:flex;align-items:center;gap:0.5rem;font-family:var(--mono);font-size:0.57rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--dimmed);}
    .flight-end-display{font-family:var(--mono);font-size:0.62rem;letter-spacing:0.1em;color:var(--sky);padding:0.8rem 1rem;background:rgba(77,208,225,0.05);border:1px solid rgba(77,208,225,0.15);border-radius:8px;min-height:48px;display:flex;align-items:center;}
    .flight-end-sub{font-family:var(--mono);font-size:0.44rem;color:var(--dimmed);letter-spacing:0.08em;text-transform:uppercase;margin-top:0.15rem;}

    .location-wrapper{position:relative;}
    #locationDropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#060f1a;border:1px solid var(--border);border-radius:8px;z-index:200;display:none;box-shadow:0 12px 40px rgba(0,0,0,0.8);max-height:260px;overflow-y:auto;}
    #locationDropdown.open{display:block;}
    .dropdown-header{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--dimmed);padding:0.6rem 1rem 0.4rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:#060f1a;}
    .dropdown-item{padding:0.9rem 1rem;cursor:pointer;transition:background 0.12s;border-bottom:1px solid rgba(232,244,248,0.045);display:flex;align-items:baseline;gap:0.7rem;min-height:52px;}
    .dropdown-item:last-child{border-bottom:none;}
    .dropdown-item:active{background:rgba(77,208,225,0.07);}
    .dropdown-city{font-family:var(--serif);font-size:1rem;color:var(--text);flex-shrink:0;}
    .dropdown-region{font-family:var(--mono);font-size:0.54rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);}
    .dropdown-status{padding:0.85rem 1rem;font-family:var(--mono);font-size:0.6rem;color:var(--dimmed);letter-spacing:0.1em;animation:pulse 1.2s ease infinite;}
    #droneDropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#060f1a;border:1px solid rgba(77,208,225,0.2);border-radius:8px;z-index:200;display:none;box-shadow:0 12px 40px rgba(0,0,0,0.8);max-height:240px;overflow-y:auto;}
    #droneDropdown.open{display:block;}
    .drone-item{padding:0.85rem 1rem;cursor:pointer;transition:background 0.12s;border-bottom:1px solid rgba(232,244,248,0.04);display:flex;flex-direction:column;gap:0.15rem;min-height:56px;}
    .drone-item:last-child{border-bottom:none;}
    .drone-item:active{background:rgba(77,208,225,0.06);}
    .drone-item-name{font-family:var(--serif);font-size:0.98rem;color:var(--text);}
    .drone-item-specs{font-family:var(--mono);font-size:0.48rem;letter-spacing:0.08em;color:var(--dimmed);}
    .drone-none{padding:0.8rem 1rem;font-family:var(--mono);font-size:0.58rem;color:var(--dimmed);letter-spacing:0.08em;}

    .btn{background:linear-gradient(135deg,var(--deep) 0%,var(--sky) 100%);color:#040a0e;border:none;border-radius:10px;font-family:var(--mono);font-size:0.67rem;font-weight:400;letter-spacing:0.2em;text-transform:uppercase;padding:0.9rem 1.5rem;cursor:pointer;transition:opacity 0.2s,transform 0.1s;width:100%;margin-top:0.3rem;min-height:52px;}
    .btn:active:not(:disabled){transform:scale(0.99);}
    .btn:disabled{opacity:0.4;cursor:not-allowed;}
    .error-msg{background:rgba(239,83,80,0.12);border:1px solid rgba(239,83,80,0.3);border-radius:8px;padding:0.8rem 1rem;font-family:var(--mono);font-size:0.62rem;color:#f08070;letter-spacing:0.05em;}

    /* ── RESULT VIEW ── */
    #resultView{display:none;flex-direction:column;align-items:center;padding:1.8rem 1.2rem calc(3rem + var(--safe-bottom));}
    #result{width:100%;max-width:660px;animation:fadeUp 0.7s ease both;}
    .result-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.2rem;flex-wrap:wrap;gap:0.7rem;}
    .back-btn{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:8px;font-family:var(--mono);font-size:0.57rem;letter-spacing:0.16em;text-transform:uppercase;padding:0.6rem 1rem;cursor:pointer;transition:border-color 0.2s,color 0.2s;min-height:44px;display:flex;align-items:center;}
    .back-btn:active{border-color:var(--sky);color:var(--sky);}

    /* Result units toggle */
    .result-controls{display:flex;align-items:center;gap:0.6rem;flex-wrap:wrap;}
    .units-toggle-sm{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;}
    .units-btn-sm{font-family:var(--mono);font-size:0.48rem;letter-spacing:0.12em;text-transform:uppercase;padding:0.35rem 0.65rem;background:transparent;color:var(--dimmed);cursor:pointer;border:none;transition:background 0.15s,color 0.15s;min-height:30px;display:flex;align-items:center;}
    .units-btn-sm.active{background:rgba(77,208,225,0.12);color:var(--sky);}

    /* Window editor in results */
    .window-editor{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1rem 1.2rem;margin-bottom:1.1rem;display:flex;align-items:center;gap:0.8rem;flex-wrap:wrap;}
    .we-label{font-family:var(--mono);font-size:0.5rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--dimmed);flex-shrink:0;}
    .we-selects{display:flex;gap:0.4rem;align-items:center;}
    .we-select{background:rgba(255,255,255,0.04);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:var(--mono);font-size:0.52rem;padding:0.38rem 0.6rem;outline:none;cursor:pointer;-webkit-appearance:none;appearance:none;min-height:32px;}
    .we-select option{background:#050e18;}
    .we-end-display{font-family:var(--mono);font-size:0.52rem;color:var(--sky);padding:0.38rem 0.6rem;background:rgba(77,208,225,0.05);border:1px solid rgba(77,208,225,0.15);border-radius:6px;min-height:32px;display:flex;align-items:center;}
    .we-apply{font-family:var(--mono);font-size:0.48rem;letter-spacing:0.1em;text-transform:uppercase;padding:0.38rem 0.8rem;background:rgba(77,208,225,0.1);border:1px solid rgba(77,208,225,0.3);border-radius:6px;color:var(--sky);cursor:pointer;transition:background 0.15s;min-height:32px;}
    .we-apply:hover{background:rgba(77,208,225,0.18);}

    /* ── NIGHT WARNING BANNER ── */
    .night-warning-banner{background:rgba(30,15,60,0.85);border:1px solid rgba(120,80,200,0.4);border-left:3px solid #9c6ff7;border-radius:0 10px 10px 0;padding:1rem 1.3rem;margin-bottom:1.1rem;display:flex;align-items:flex-start;gap:0.8rem;}
    .night-warning-icon{font-size:1.3rem;flex-shrink:0;line-height:1.3;}
    .night-warning-body{flex:1;}
    .night-warning-title{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.18em;text-transform:uppercase;color:#9c6ff7;margin-bottom:0.35rem;}
    .night-warning-text{font-family:var(--serif);font-size:0.95rem;line-height:1.65;color:rgba(232,244,248,0.65);}

    /* ── LEGAL DISCLAIMER STRIP ── */
    .legal-strip{background:rgba(255,179,0,0.06);border:1px solid rgba(255,179,0,0.22);border-radius:10px;margin-bottom:1.1rem;overflow:hidden;}
    .legal-strip-header{display:flex;align-items:center;gap:0.65rem;padding:0.75rem 1rem;cursor:pointer;user-select:none;min-height:44px;}
    .legal-strip-icon{font-size:0.85rem;flex-shrink:0;}
    .legal-strip-title{font-family:var(--mono);font-size:0.5rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--warn);flex:1;}
    .legal-strip-arrow{font-family:var(--mono);font-size:0.6rem;color:rgba(255,179,0,0.5);transition:transform 0.25s;}
    .legal-strip-arrow.open{transform:rotate(180deg);}
    .legal-strip-body{display:none;padding:0 1rem 1rem;border-top:1px solid rgba(255,179,0,0.12);}
    .legal-strip-body.open{display:block;}
    .legal-lead{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.04em;color:var(--warn);line-height:1.7;margin-bottom:0.8rem;padding-top:0.75rem;}
    .legal-points{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:0.9rem;}
    .legal-point{font-family:var(--serif);font-size:0.9rem;line-height:1.7;color:rgba(232,244,248,0.55);padding-left:1rem;position:relative;}
    .legal-point::before{content:'·';position:absolute;left:0;color:rgba(255,179,0,0.5);}
    .legal-point strong{color:var(--warn);font-weight:600;}
    .legal-auth-label{font-family:var(--mono);font-size:0.46rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--dimmed);margin-bottom:0.4rem;}
    .legal-auth-links{display:flex;gap:0.4rem;flex-wrap:wrap;}
    .legal-auth-link{font-family:var(--mono);font-size:0.47rem;letter-spacing:0.08em;padding:0.3rem 0.65rem;border:1px solid rgba(255,179,0,0.2);border-radius:2px;color:rgba(255,179,0,0.65);text-decoration:none;transition:border-color 0.15s,color 0.15s;}
    .legal-auth-link:hover{border-color:rgba(255,179,0,0.45);color:var(--warn);}

    /* ── FLIGHT STABILITY SCORE (Goldcast-style) ── */
    .verdict-scale-wrap{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1.4rem 1.6rem;margin-bottom:1.1rem;position:relative;overflow:hidden;}
    .verdict-scale-wrap::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--verdict-color,#4dd0e1);}
    .verdict-scale-label{font-family:var(--mono);font-size:0.5rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--dimmed);margin-bottom:0.5rem;}
    .score-num-large{font-family:var(--serif);font-size:clamp(3rem,12vw,5rem);font-weight:300;line-height:1;margin-bottom:0.1rem;}
    .score-sub-line{font-family:var(--mono);font-size:0.46rem;letter-spacing:0.1em;color:var(--dimmed);margin-bottom:0.9rem;}
    .verdict-scale-track{position:relative;height:10px;border-radius:5px;background:linear-gradient(to right,rgba(239,83,80,0.35),rgba(255,179,0,0.35),rgba(255,179,0,0.35),rgba(77,208,225,0.35),rgba(102,187,106,0.35));margin-bottom:0.5rem;}
    .verdict-scale-pointer{position:absolute;top:50%;transform:translate(-50%,-50%);width:18px;height:18px;border-radius:50%;border:2px solid #040a0e;box-shadow:0 0 12px currentColor;transition:left 0.6s cubic-bezier(0.34,1.56,0.64,1);}
    .verdict-scale-labels{display:flex;justify-content:space-between;font-family:var(--mono);font-size:0.44rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--dimmed);margin-top:0.45rem;margin-bottom:0.7rem;}
    .verdict-scale-word{font-family:var(--serif);font-size:clamp(1.4rem,5vw,2rem);font-weight:300;line-height:1;}
    .verdict-scale-note{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.08em;color:var(--muted);margin-top:0.3rem;}
    .verdict-confidence{font-family:var(--mono);font-size:0.47rem;letter-spacing:0.1em;color:var(--dimmed);margin-top:0.5rem;padding-top:0.5rem;border-top:1px solid var(--border);}
    .verdict-conservative{font-family:var(--mono);font-size:0.44rem;letter-spacing:0.07em;color:var(--dimmed);opacity:0.6;margin-top:0.25rem;font-style:italic;}
    .verdict-nogo{color:#ef5350;}
    .verdict-marginal{color:#ff7043;}
    .verdict-caution{color:#ffb300;}
    .verdict-good{color:#4dd0e1;}
    .verdict-ideal{color:#66bb6a;}

    /* ── NO SAFE WINDOW CARD ── */
    .no-window-card{background:rgba(239,83,80,0.07);border:1px solid rgba(239,83,80,0.3);border-radius:10px;padding:1.2rem 1.4rem;margin-bottom:1.1rem;}
    .no-window-title{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--danger);margin-bottom:0.5rem;}
    .no-window-msg{font-family:var(--serif);font-size:1rem;line-height:1.65;color:rgba(232,244,248,0.6);margin-bottom:0.9rem;}

    /* ── LEAST RISKY WINDOW CARD ── */
    .least-risky-card{background:rgba(77,208,225,0.04);border:1px solid rgba(77,208,225,0.22);border-radius:10px;padding:1.2rem 1.4rem;margin-bottom:1.1rem;}
    .lrw-eyebrow{font-family:var(--mono);font-size:0.5rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--sky);margin-bottom:0.4rem;}
    .lrw-window{font-family:var(--serif);font-size:clamp(1.3rem,5vw,1.8rem);font-weight:300;line-height:1.1;margin-bottom:0.2rem;}
    .lrw-score{font-family:var(--mono);font-size:0.54rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);}

    /* Result header */
    .result-header{text-align:center;margin-bottom:1.1rem;padding:1.4rem 1rem;background:var(--card);border:1px solid var(--border);border-radius:10px;}
    .result-location{font-family:var(--mono);font-size:0.54rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--sky);margin-bottom:0.2rem;}
    .result-date{font-family:var(--mono);font-size:0.5rem;letter-spacing:0.1em;color:var(--dimmed);margin-bottom:0.9rem;}
    .sun-times-row{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap;margin-bottom:0.9rem;}
    .sun-time-item{display:flex;flex-direction:column;align-items:center;gap:0.2rem;}
    .sun-time-icon{font-size:1.1rem;line-height:1;}
    .sun-time-lbl{font-family:var(--mono);font-size:0.44rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--dimmed);}
    .sun-time-val{font-family:var(--mono);font-size:0.62rem;color:var(--text);}
    .score-ring-row{display:flex;gap:0.6rem;justify-content:center;align-items:center;flex-wrap:wrap;}
    .mini-score{display:flex;flex-direction:column;align-items:center;gap:0.2rem;}
    .mini-score-num{font-family:var(--mono);font-size:0.9rem;font-weight:400;}
    .mini-score-lbl{font-family:var(--mono);font-size:0.42rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--dimmed);}
    .score-sep{color:var(--dimmed);font-size:0.6rem;}
    .drone-tag{display:inline-flex;align-items:center;gap:0.4rem;font-family:var(--mono);font-size:0.48rem;letter-spacing:0.12em;text-transform:uppercase;padding:0.28rem 0.65rem;border:1px solid rgba(77,208,225,0.25);border-radius:20px;color:var(--sky);margin-top:0.7rem;}
    .update-note{font-family:var(--mono);font-size:0.46rem;color:var(--dimmed);letter-spacing:0.07em;margin-top:0.5rem;opacity:0.6;}

    /* Flight window card */
    .flight-window-card{background:var(--card);border:1px solid rgba(77,208,225,0.25);border-left:3px solid var(--sky);border-radius:0 10px 10px 0;padding:1.4rem;margin-bottom:1.1rem;}
    .fw-eyebrow{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--sky);margin-bottom:0.55rem;}
    .fw-window{font-family:var(--serif);font-size:clamp(1.4rem,5vw,1.9rem);font-weight:300;line-height:1.1;margin-bottom:0.25rem;}
    .fw-sub{font-family:var(--mono);font-size:0.54rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);margin-bottom:0.85rem;}
    .fw-pills{display:flex;gap:0.5rem;flex-wrap:wrap;}
    .fw-pill{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.08em;text-transform:uppercase;padding:0.32rem 0.75rem;border:1px solid var(--border);border-radius:20px;color:var(--muted);}
    .fw-pill.warn{border-color:rgba(255,179,0,0.35);color:var(--warn);}
    .fw-pill.danger{border-color:rgba(239,83,80,0.35);color:var(--danger);}
    .fw-pill.go{border-color:rgba(102,187,106,0.35);color:var(--go);}
    .fw-pill.gold{border-color:rgba(245,197,24,0.35);color:#f5c518;}

    /* Narrative */
    .narrative-card{background:var(--card);border:1px solid var(--border);border-left:2px solid var(--sky);border-radius:0 10px 10px 0;padding:1.4rem;margin-bottom:1.1rem;}
    .narrative-eyebrow{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--sky);margin-bottom:0.8rem;}
    .narrative-text{font-family:var(--serif);font-size:1.05rem;line-height:1.8;font-weight:300;}
    .narrative-text strong{font-weight:600;color:#4dd0e1;}

    /* Wind */
    .wind-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1.3rem;margin-bottom:1.1rem;}
    .wind-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;gap:0.5rem;flex-wrap:wrap;}
    .wind-card-label{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--dimmed);}
    .wind-status{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.12em;text-transform:uppercase;padding:0.25rem 0.6rem;border-radius:2px;}
    .wind-ok{background:rgba(102,187,106,0.12);color:var(--go);border:1px solid rgba(102,187,106,0.3);}
    .wind-warn{background:rgba(255,179,0,0.12);color:var(--warn);border:1px solid rgba(255,179,0,0.3);}
    .wind-bad{background:rgba(239,83,80,0.12);color:var(--danger);border:1px solid rgba(239,83,80,0.3);}
    .wind-dial-row{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;}
    .wind-dial{width:90px;height:90px;flex-shrink:0;}
    .wind-dial svg{width:100%;height:100%;}
    .wind-stats{flex:1;min-width:180px;}
    .wind-stat-row{display:flex;align-items:baseline;justify-content:space-between;padding:0.35rem 0;border-bottom:1px solid rgba(232,244,248,0.05);}
    .wind-stat-row:last-child{border-bottom:none;}
    .wind-stat-lbl{font-family:var(--mono);font-size:0.5rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--dimmed);}
    .wind-stat-val{font-family:var(--serif);font-size:1rem;font-weight:300;}
    .wind-limit-note{font-family:var(--mono);font-size:0.48rem;letter-spacing:0.08em;color:var(--dimmed);margin-top:0.6rem;padding-top:0.5rem;border-top:1px solid var(--border);}

    /* Battery */
    .battery-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1.3rem;margin-bottom:1.1rem;}
    .battery-eyebrow{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--dimmed);margin-bottom:0.9rem;}
    .battery-main{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;}
    .battery-bar-wrap{width:54px;height:24px;border:2px solid rgba(232,244,248,0.25);border-radius:3px;position:relative;overflow:hidden;flex-shrink:0;}
    .battery-bar-wrap::after{content:'';position:absolute;right:-6px;top:50%;transform:translateY(-50%);width:4px;height:10px;background:rgba(232,244,248,0.2);border-radius:0 2px 2px 0;}
    .battery-fill{height:100%;border-radius:1px;transition:width 0.5s ease;}
    .battery-details{flex:1;}
    .battery-minutes{font-family:var(--serif);font-size:1.8rem;font-weight:300;line-height:1;}
    .battery-unit{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--dimmed);}
    .battery-factors{display:flex;gap:0.5rem;flex-wrap:wrap;margin-top:0.6rem;}
    .battery-factor{font-family:var(--mono);font-size:0.48rem;letter-spacing:0.08em;padding:0.25rem 0.6rem;border-radius:20px;border:1px solid var(--border);color:var(--dimmed);}
    .battery-factor.warn{border-color:rgba(255,179,0,0.35);color:var(--warn);}
    .battery-factor.danger{border-color:rgba(239,83,80,0.35);color:var(--danger);}
    .battery-land-by{font-family:var(--mono);font-size:0.5rem;letter-spacing:0.08em;color:var(--dimmed);margin-top:0.55rem;}
    .battery-land-by strong{color:var(--warn);}

    /* Charts */
    .hourly-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1.2rem 1.1rem 0.9rem;margin-bottom:1.1rem;overflow:hidden;}
    .hourly-label{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--dimmed);margin-bottom:0.9rem;}
    .hourly-svg{display:block;width:100%;height:auto;}
    .temp-chart-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1.2rem 1.1rem 0.9rem;margin-bottom:1.1rem;overflow:hidden;}
    .temp-chart-label{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--dimmed);margin-bottom:0.9rem;}

    /* Tips */
    .tips-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1.3rem;margin-bottom:1.1rem;}
    .tips-label{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--dimmed);margin-bottom:0.85rem;}
    .tips-list{list-style:none;display:flex;flex-direction:column;gap:0.9rem;}
    .tips-list li{font-family:var(--serif);font-size:1rem;line-height:1.65;color:var(--muted);padding:0.5rem 0 0.5rem 1.3rem;position:relative;}
    .tips-list li::before{content:'—';position:absolute;left:0;color:var(--sky);top:0.5rem;}

    /* Light quality */
    .light-card{background:var(--card);border:1px solid rgba(245,197,24,0.2);border-left:2px solid #f5c518;border-radius:0 10px 10px 0;padding:1.3rem;margin-bottom:1.1rem;}
    .light-eyebrow{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.18em;text-transform:uppercase;color:#f5c518;margin-bottom:0.7rem;}
    .light-body{font-family:var(--serif);font-size:1rem;line-height:1.7;color:var(--muted);}
    .light-unavailable{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.07em;color:var(--dimmed);margin-top:0.5rem;font-style:italic;}
    .light-score-row{display:flex;align-items:center;gap:0.8rem;margin-top:0.75rem;flex-wrap:wrap;}
    .light-score-num{font-family:var(--serif);font-size:2rem;font-weight:300;color:#f5c518;}
    .light-score-detail{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--dimmed);line-height:1.7;}

    /* Conditions grid */
    .conditions{display:grid;grid-template-columns:repeat(3,1fr);gap:0.55rem;margin-bottom:1.1rem;}
    @media(min-width:480px){.conditions{grid-template-columns:repeat(4,1fr);}}
    .cond-item{background:var(--card);border:1px solid var(--border);border-radius:2px;padding:0.75rem;}
    .cond-label{font-family:var(--mono);font-size:0.47rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--dimmed);margin-bottom:0.3rem;}
    .cond-value{font-family:var(--serif);font-size:0.98rem;font-weight:300;}
    .cond-bar{height:3px;border-radius:1px;margin-top:0.4rem;}

    /* ── CONDITIONS FORECAST DROPDOWN (with why-score inside) ── */
    .conditions-dropdown{background:var(--card);border:1px solid var(--border);border-radius:3px;margin-bottom:1.1rem;overflow:hidden;}
    .conditions-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.3rem;cursor:pointer;user-select:none;min-height:48px;}
    .conditions-dropdown-title{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--dimmed);}
    .conditions-dropdown-arrow{font-family:var(--mono);font-size:0.65rem;color:var(--dimmed);transition:transform 0.25s;}
    .conditions-dropdown-arrow.open{transform:rotate(180deg);}
    .conditions-dropdown-body{display:none;padding:0 1.3rem 1.3rem;border-top:1px solid var(--border);}
    .conditions-dropdown-body.open{display:block;}
    .conditions-dropdown-body .conditions{margin-top:1rem;margin-bottom:1.2rem;}

    /* Why score (inside dropdown) */
    .why-score-label{font-family:var(--mono);font-size:0.5rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--dimmed);margin-bottom:0.55rem;margin-top:0.3rem;}
    .why-score-factors{display:flex;flex-direction:column;gap:0.4rem;margin-bottom:1.2rem;}
    .why-factor{display:flex;align-items:center;gap:0.6rem;font-family:var(--mono);font-size:0.54rem;letter-spacing:0.07em;color:var(--muted);padding:0.2rem 0;}
    .why-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
    .why-factor-worst{background:rgba(239,83,80,0.06);border-left:2px solid rgba(239,83,80,0.4);border-radius:0 2px 2px 0;margin-left:-0.5rem;padding-left:calc(0.5rem - 2px);}

    /* Spectrum legend (inside dropdown) */
    .spectrum-legend{display:flex;flex-direction:column;gap:0.45rem;padding-top:0.8rem;border-top:1px solid var(--border);}
    .spectrum-legend-title{font-family:var(--mono);font-size:0.46rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--dimmed);margin-bottom:0.25rem;}
    .spectrum-row{display:flex;align-items:center;gap:0.6rem;}
    .spectrum-swatch{width:9px;height:9px;border-radius:1px;flex-shrink:0;}
    .spectrum-info{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.04em;color:var(--muted);line-height:1.5;}
    .spectrum-info strong{font-weight:400;color:var(--text);}

    /* Airspace */
    .airspace-card{background:var(--card);border:1px solid var(--border);border-radius:3px;padding:1.3rem;margin-bottom:1.1rem;}
    .airspace-eyebrow{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--dimmed);margin-bottom:0.8rem;display:flex;align-items:center;justify-content:space-between;gap:0.5rem;}
    .airspace-tag{font-family:var(--mono);font-size:0.48rem;letter-spacing:0.1em;text-transform:uppercase;padding:0.2rem 0.5rem;border-radius:2px;background:rgba(77,208,225,0.08);color:var(--sky);border:1px solid rgba(77,208,225,0.2);}
    .airspace-zones{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:1rem;}
    .airspace-zone{display:flex;align-items:center;gap:0.7rem;padding:0.65rem 0.85rem;border-radius:2px;}
    .airspace-zone-ok{background:rgba(102,187,106,0.07);border:1px solid rgba(102,187,106,0.2);}
    .airspace-zone-warn{background:rgba(255,179,0,0.07);border:1px solid rgba(255,179,0,0.2);}
    .airspace-zone-no{background:rgba(239,83,80,0.07);border:1px solid rgba(239,83,80,0.2);}
    .az-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
    .az-name{font-family:var(--serif);font-size:0.95rem;font-weight:300;flex:1;}
    .az-detail{font-family:var(--mono);font-size:0.48rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--dimmed);}
    .airspace-map{border-radius:3px;overflow:hidden;height:260px;margin-bottom:0.9rem;border:1px solid var(--border);}
    .airspace-app-links{display:flex;gap:0.5rem;flex-wrap:wrap;margin-bottom:0.8rem;}
    .airspace-app-link{font-family:var(--mono);font-size:0.5rem;letter-spacing:0.1em;text-transform:uppercase;padding:0.45rem 0.9rem;border:1px solid rgba(77,208,225,0.25);border-radius:2px;color:var(--sky);text-decoration:none;transition:background 0.15s,border-color 0.15s;}
    .airspace-app-link:hover{background:rgba(77,208,225,0.07);border-color:rgba(77,208,225,0.4);}
    .airspace-note{font-family:var(--mono);font-size:0.5rem;letter-spacing:0.06em;color:var(--dimmed);line-height:1.6;border-top:1px solid var(--border);padding-top:0.6rem;}
    .airspace-link{color:var(--sky);text-decoration:none;}

    /* 10-day chart */
    .chart-card{background:var(--card);border:1px solid var(--border);border-radius:2px;padding:1.2rem 1.1rem 0.9rem;margin-bottom:1.1rem;}
    .chart-label{font-family:var(--mono);font-size:0.52rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--dimmed);margin-bottom:0.9rem;}
    .chart-bars{display:flex;align-items:flex-end;gap:0.35rem;height:68px;}
    .chart-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:0.28rem;height:100%;justify-content:flex-end;}
    .chart-bar-wrap{width:100%;display:flex;align-items:flex-end;justify-content:center;flex:1;}
    .chart-bar{width:100%;border-radius:1px 1px 0 0;min-height:3px;}
    .chart-bar.today{outline:1px solid var(--sky);}
    .chart-bar.past{opacity:0.35;}
    .chart-day{font-family:var(--mono);font-size:0.44rem;letter-spacing:0.05em;text-transform:uppercase;color:var(--dimmed);text-align:center;line-height:1.4;}
    .chart-day.today-lbl{color:var(--sky);}
    .chart-legend{display:flex;gap:0.9rem;margin-top:0.8rem;flex-wrap:wrap;}
    .chart-legend-item{display:flex;align-items:center;gap:0.3rem;font-family:var(--mono);font-size:0.48rem;color:var(--dimmed);letter-spacing:0.05em;}
    .legend-dot{width:6px;height:6px;border-radius:1px;flex-shrink:0;}

    /* Share */
    .share-card{margin-bottom:1.1rem;}
    .share-btn{width:100%;background:transparent;border:1px solid var(--border);border-radius:2px;color:var(--muted);font-family:var(--mono);font-size:0.6rem;letter-spacing:0.18em;text-transform:uppercase;padding:0.9rem 1rem;cursor:pointer;transition:border-color 0.2s,color 0.2s;display:flex;align-items:center;justify-content:center;gap:0.6rem;min-height:52px;}
    .share-btn:active{border-color:var(--sky);color:var(--sky);}
    .share-copied{color:#66bb6a!important;border-color:rgba(102,187,106,0.4)!important;}

    /* Explainer */
    .explainer-section{width:100%;max-width:660px;margin:0 auto;padding:0 1.2rem calc(4rem + var(--safe-bottom));}
    .explainer-toggle{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:1.3rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);user-select:none;min-height:52px;}
    .explainer-toggle-label{font-family:var(--mono);font-size:0.58rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);}
    .explainer-arrow{font-family:var(--mono);font-size:0.7rem;color:var(--dimmed);transition:transform 0.3s;}
    .explainer-arrow.open{transform:rotate(180deg);}
    .explainer-body{display:none;padding-top:1.6rem;}
    .explainer-body.open{display:block;}
    .explainer-intro{font-family:var(--serif);font-size:1rem;line-height:1.8;color:var(--muted);margin-bottom:1.6rem;}
    .explainer-factors{display:grid;grid-template-columns:1fr;gap:0.7rem;margin-bottom:1.6rem;}
    @media(min-width:480px){.explainer-factors{grid-template-columns:1fr 1fr;}}
    .factor-card{background:var(--card);border:1px solid var(--border);border-radius:2px;padding:1.2rem;}
    .factor-name{font-family:var(--mono);font-size:0.53rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--sky);margin-bottom:0.55rem;}
    .factor-desc{font-family:var(--serif);font-size:0.93rem;line-height:1.75;color:var(--muted);}
    .explainer-bands{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:1.6rem;}
    .band-row{display:flex;align-items:flex-start;gap:0.8rem;}
    .band-swatch{width:10px;height:10px;border-radius:1px;flex-shrink:0;margin-top:3px;}
    .band-info{font-family:var(--mono);font-size:0.55rem;letter-spacing:0.06em;color:var(--muted);line-height:1.6;}
    .band-info strong{font-weight:400;color:var(--text);}
    .explainer-note{font-family:var(--serif);font-style:italic;font-size:0.88rem;line-height:1.7;color:var(--dimmed);border-left:1px solid var(--border);padding-left:1rem;}

    .loading-wrap{text-align:center;padding:4rem 1.5rem;}
    .loading-text{font-family:var(--serif);font-style:italic;font-size:1.1rem;color:var(--muted);animation:pulse 1.4s ease infinite;}
    @keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
    @keyframes fadeDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
    @keyframes pulse{0%,100%{opacity:0.4}50%{opacity:1}}
    .leaflet-container{background:#071218!important;}
    .leaflet-tile{filter:brightness(0.55) saturate(0.5) hue-rotate(170deg);}
    .leaflet-control-attribution{display:none;}
    .leaflet-control-zoom a{background:#071218!important;color:var(--sky)!important;border-color:var(--border)!important;}

/* ── DRONECAST RESULT PILL TABS — all screen sizes ── */
.dc-result-pills {
  display: flex;
  gap: 0.35rem;
  margin: 0.6rem 0 0.8rem;
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 2px;
}
.dc-result-pills::-webkit-scrollbar { display: none; }

.dc-pill-tab {
  flex-shrink: 0;
  padding: 0.4rem 0.9rem;
  border-radius: 20px;
  border: 1px solid rgba(232,244,248,0.12);
  background: rgba(255,255,255,0.03);
  font-family: var(--mono);
  font-size: 0.5rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--dimmed);
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
  position: relative;
}

.dc-pill-tab.active {
  border-color: rgba(77,208,225,0.5);
  background: rgba(77,208,225,0.1);
  color: var(--sky);
}

.dc-pill-tab.active::before {
  content: '';
  position: absolute;
  top: -1px; left: 20%; right: 20%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--sky), transparent);
}

.dc-pill-section { display: none; animation: fadeUp 0.2s ease both; }
.dc-pill-section.active { display: block; }
.dc-always-show { display: block !important; }

@media (max-width: 640px) {
  /* Compact topbar on mobile */
  .back-btn { min-height: 36px; padding: 0.4rem 0.8rem; font-size: 0.52rem; }
  .units-toggle-sm button { min-height: 32px; }
}

@media (min-width: 641px) {

  /* Desktop: wind + battery side by side */
  .dc-conditions-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    margin-bottom: 1.1rem;
  }
  .dc-conditions-grid .wind-card,
  .dc-conditions-grid .battery-card {
    margin-bottom: 0;
  }
}

/* Flight window compact single line */
.fw-compact-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  flex-wrap: nowrap;
  overflow: hidden;
}
.fw-window-text {
  font-family: var(--serif);
  font-size: clamp(1.1rem, 4vw, 1.8rem);
  font-weight: 300;
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
  min-width: 0;
}
.fw-score-badge {
  flex-shrink: 0;
  font-family: var(--mono);
  font-size: 0.52rem;
  letter-spacing: 0.1em;
  padding: 0.3rem 0.7rem;
  border-radius: 20px;
  border: 1px solid currentColor;
  white-space: nowrap;
}

/* Collapsible section wrapper */
.dc-collapsible {
  margin-bottom: 1.1rem;
}
.dc-collapsible-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  padding: 0.9rem 1.2rem;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;
  transition: background 0.15s;
  user-select: none;
}
.dc-collapsible-toggle:hover { background: rgba(255,255,255,0.05); }
.dc-collapsible-toggle.open { border-radius: 10px 10px 0 0; border-bottom: none; }
.dc-collapsible-label {
  font-family: var(--mono);
  font-size: 0.54rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}
.dc-collapsible-arrow {
  font-family: var(--mono);
  font-size: 0.65rem;
  color: var(--dimmed);
  transition: transform 0.2s;
}
.dc-collapsible-toggle.open .dc-collapsible-arrow { transform: rotate(180deg); }
.dc-collapsible-body {
  display: none;
  border: 1px solid var(--border);
  border-top: none;
  border-radius: 0 0 10px 10px;
  overflow: hidden;
}
.dc-collapsible-body.open { display: block; }
.dc-collapsible-body > *:last-child { margin-bottom: 0; }
.dc-collapsible-body .wind-card,
.dc-collapsible-body .battery-card,
.dc-collapsible-body .tips-card,
.dc-collapsible-body .airspace-card {
  border-radius: 0;
  border: none;
  border-bottom: 1px solid var(--border);
  margin-bottom: 0;
}
.dc-collapsible-body > *:last-child { border-bottom: none; }