/* main.css */

:root{
    --bg1:#0f172a;
    --bg2:#1e293b;
    --glass:rgba(255,255,255,.10);
    --border:rgba(255,255,255,.22);
    --text:#e5e7eb;
    --muted:#cbd5e1;
    --primary:#22c55e;
    --radius:16px;

    /* controls (slightly softer + clearer) */
    --control-bg:rgba(15,23,42,.65);
    --control-bg-focus:rgba(15,23,42,.92);
    --control-border:rgba(255,255,255,.25);
    --control-text:#ffffff;

    /* accessibility sizing (40–60 audience) */
    --font-base:16px;
    --font-label:14px;
    --font-small:15px;
}

*{
    box-sizing:border-box;
    font-family:Inter, Arial, Helvetica, sans-serif;
}

html{
    font-size:var(--font-base);
    -webkit-text-size-adjust:100%;
}

body{
    margin:0;
    min-height:100vh;
    background:
        radial-gradient(circle at 10% 20%, #334155 0%, transparent 35%),
        radial-gradient(circle at 90% 80%, #14532d 0%, transparent 35%),
        linear-gradient(135deg,var(--bg1),var(--bg2));
    color:var(--text);
    line-height:1.45;
}

/* =========================
   LAYOUT
========================= */

.wrapper{
    max-width:1200px;
    margin:0 auto;
}

.page-application{
    padding:28px 14px 60px;
}

/* index page uses the NEW layout below */
.page-index{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:28px 16px;
}

/* =========================
   GLASS CONTAINERS
========================= */

.container,
.card{
    background:var(--glass);
    border:1px solid var(--border);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    border-radius:var(--radius);
    box-shadow:0 20px 60px rgba(0,0,0,.35);
}

.container{
    padding:26px;
}

.card{
    width:100%;
    max-width:760px;
    padding:30px;
}

/* =========================
   TYPOGRAPHY (larger)
========================= */

h1{
    margin:0;
    font-size:2rem;
    line-height:1.2;
    font-weight:700;
    letter-spacing:.2px;
}

.sub{
    margin-top:6px;
    font-size:var(--font-small);
    color:var(--muted);
}

/* =========================
   LANGUAGE SWITCHER (GLOBAL)
========================= */

.lang-switcher{
    display:flex;
    gap:8px;
    align-items:center;
    margin-top:14px;
}

.lang-btn{
    text-decoration:none;
    padding:8px 16px;
    border-radius:9px;
    background:rgba(255,255,255,.08);
    color:#fff;
    font-size:14px;
    font-weight:600;
    border:1px solid rgba(255,255,255,.12);
    transition:.16s;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    display:inline-flex;
    align-items:center;
    justify-content:center;
}

.lang-btn:hover{
    background:rgba(255,255,255,.12);
    border-color:rgba(255,255,255,.20);
}

.lang-btn.active{
    background:#fff;
    color:#0f172a;
    font-weight:800;
    border-color:#fff;
}

/* =========================
   SECTIONS
========================= */

.section{
    margin-top:22px;
    padding:20px;
    border-radius:14px;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.15);
}

.section h2{
    margin:0 0 14px;
    font-size:1.15rem;
    color:#bbf7d0;
    line-height:1.3;
}

.grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
    gap:14px;
}

label{
    display:block;
    font-size:var(--font-label);
    color:var(--muted);
    margin-bottom:7px;
    line-height:1.35;
}

/* =========================
   FORM CONTROLS (ACCESSIBLE)
========================= */

/* =========================
   FORM CONTROLS (ACCESSIBLE)
========================= */

/* ONLY text type controls get glass styling */
input[type="text"],
input[type="email"],
input[type="number"],
input[type="date"],
input[type="password"],
select,
textarea{
    width:100%;
    border:1px solid var(--control-border);
    background:var(--control-bg);
    color:var(--control-text);
    border-radius:10px;
    padding:12px 13px;
    font-size:1rem;
    outline:none;
    transition:all .18s ease;
    appearance:none;
    -webkit-appearance:none;
    min-height:44px;
}

/* CHECKBOX + RADIO KEEP NORMAL BROWSER STYLE */
input[type="checkbox"],
input[type="radio"]{
    appearance:auto !important;
    -webkit-appearance:checkbox !important;

    width:auto !important;
    min-height:auto !important;
    height:auto !important;

    padding:0 !important;
    margin:0;
    background:transparent !important;
    border:none !important;
    box-shadow:none !important;

    cursor:pointer;
}

select{
    background-image:
        linear-gradient(45deg, transparent 50%, #cbd5e1 50%),
        linear-gradient(135deg, #cbd5e1 50%, transparent 50%);
    background-position:
        calc(100% - 18px) calc(50% - 3px),
        calc(100% - 12px) calc(50% - 3px);
    background-size:6px 6px, 6px 6px;
    background-repeat:no-repeat;
    padding-right:36px;
}

select option{
    background:#0f172a;
    color:#ffffff;
}

input::placeholder,
textarea::placeholder{
    color:rgba(255,255,255,.55);
}

input:focus,
select:focus,
textarea:focus{
    border-color:var(--primary);
    background:var(--control-bg-focus);
    box-shadow:0 0 0 3px rgba(34,197,94,.25);
}

textarea{
    min-height:110px;
    resize:vertical;
}

/* keyboard focus visibility */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
    outline:3px solid rgba(255,255,255,.35);
    outline-offset:2px;
}

/* =========================
   CHOICE CARDS
========================= */

.choice-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:12px;
}

.choice{
    position:relative;
}

.choice input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.choice label{
    margin:0;
    display:block;
    padding:14px 15px;
    border:1px solid rgba(255,255,255,.2);
    background:rgba(255,255,255,.05);
    border-radius:12px;
    color:#f8fafc;
    cursor:pointer;
    transition:.18s;
    font-size:15px;
}

.choice label:hover{
    border-color:rgba(255,255,255,.4);
    background:rgba(255,255,255,.10);
}

.choice input:checked + label{
    border-color:var(--primary);
    background:rgba(34,197,94,.22);
    color:#ffffff;
    box-shadow:0 0 0 2px rgba(34,197,94,.30) inset;
}

/* =========================
   EQUIPMENT
========================= */

.eq-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:12px;
}

.eq-card{
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.18);
    border-radius:12px;
    padding:10px;
}

.eq-card label{
    margin-bottom:8px;
}

/* =========================
   SIGNATURE
========================= */

.signature-box{
    height:140px;
    border:2px dashed rgba(255,255,255,.35);
    border-radius:14px;
    background:rgba(255,255,255,.04);
    display:flex;
    align-items:center;
    justify-content:center;
    color:#94a3b8;
    cursor:pointer;
    transition:.2s;
    overflow:hidden;
    text-align:center;
    padding:10px;
}

.signature-box:hover{
    border-color:var(--primary);
    background:rgba(34,197,94,.08);
}

.signature-placeholder{
    font-size:15px;
}

.signature-rendered{
    font-family:'Great Vibes', cursive;
    font-size:78px;
    color:#ffffff;
    line-height:1;
    transform:rotate(-1deg);
    text-shadow:
        0 1px 2px rgba(0,0,0,.45),
        0 0 6px rgba(255,255,255,.08);
}

/* =========================
   BUTTONS
========================= */

.btn,
.btn-sign{
    border:none;
    background:var(--primary);
    color:#052e16;
    font-weight:800;
    padding:13px 22px;
    border-radius:10px;
    cursor:pointer;
    font-size:16px;
    min-height:46px;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
}

.btn:hover,
.btn-sign:hover{
    filter:brightness(.97);
}

.btn-cancel{
    background:rgba(255,255,255,.15);
    border:1px solid rgba(255,255,255,.18);
    padding:12px 16px;
    border-radius:10px;
    color:white;
    cursor:pointer;
    font-size:16px;
    min-height:46px;
}

.footer{
    margin-top:20px;
    display:flex;
    justify-content:flex-end;
}

/* =========================
   MODAL
========================= */

.sign-modal{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.6);
    display:none;
    align-items:center;
    justify-content:center;
    z-index:999;
    padding:14px;
}

.sign-panel{
    width:420px;
    max-width:100%;
    background:rgba(15,23,42,.95);
    border:1px solid rgba(255,255,255,.2);
    padding:20px;
    border-radius:14px;
}

.sign-panel h3{
    margin-top:0;
    color:#bbf7d0;
    font-size:1.2rem;
}

/* =========================
   INDEX LIST (shared)
========================= */

.benefits{
    margin:0;
    padding-left:20px;
    line-height:1.75;
    font-size:16px;
}

.benefits li{
    margin-bottom:7px;
}

.actions{
    margin-top:24px;
}

/* =========================
   NEW INDEX DESIGN
========================= */

.index-shell{
    width:100%;
    max-width:980px;
}

.index-card{
    width:100%;
    max-width:980px;
    padding:0;
    overflow:hidden;
}

/* hero top */
.index-hero{
    position:relative;
    padding:30px 30px 22px;
    background:
        radial-gradient(circle at 15% 25%, rgba(34,197,94,.18) 0%, transparent 40%),
        radial-gradient(circle at 85% 70%, rgba(255,255,255,.10) 0%, transparent 42%),
        rgba(255,255,255,.05);
    border-bottom:1px solid rgba(255,255,255,.10);
}

/* language pill */
.index-lang{
    position:absolute;
    top:18px;
    right:18px;
    display:flex;
    gap:8px;
    padding:8px;
    border-radius:999px;
    background:rgba(15,23,42,.55);
    border:1px solid rgba(255,255,255,.14);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}

.index-lang .lang-btn{
    padding:9px 14px;
    border-radius:999px;
    background:transparent;
    border:1px solid rgba(255,255,255,.12);
}

.index-lang .lang-btn:hover{
    background:rgba(255,255,255,.10);
    border-color:rgba(255,255,255,.22);
}

.index-lang .lang-btn.active{
    background:#ffffff;
    color:#0f172a;
    border-color:#ffffff;
}

/* title and subtitle */
.index-title{
    margin:0;
    padding-right:160px;
    font-size:2.15rem;
    line-height:1.18;
    font-weight:800;
    letter-spacing:.2px;
}

.index-sub{
    margin:12px 0 0;
    max-width:760px;
    color:rgba(226,232,240,.92);
    font-size:1.05rem;
    line-height:1.7;
}

/* body area */
.index-body{
    padding:22px 30px 28px;
}

.benefits-wrap{
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.10);
    border-radius:14px;
    padding:16px 18px;
}

.benefits-wrap .benefits{
    font-size:1.02rem;
}

.index-note{
    margin-top:10px;
    font-size:0.98rem;
    color:rgba(203,213,225,.92);
}

.index-actions{
    margin-top:18px;
    display:flex;
    justify-content:flex-end;
}

.btn-large{
    font-size:1.08rem;
    padding:14px 28px;
    border-radius:12px;
    min-height:48px;
}

/* =========================
   MOBILE SAFETY
========================= */

@media(max-width:900px){

    .container{
        padding:20px;
    }
}

@media(max-width:700px){

    .container{
        padding:16px;
    }

    .section{
        padding:14px;
    }

    .card{
        padding:18px;
    }

    h1{
        font-size:1.6rem;
    }

    .sub{
        font-size:14px;
    }

    label{
        font-size:14px;
    }

    .btn,
    .btn-sign,
    .btn-cancel{
        width:100%;
    }

    .footer{
        justify-content:stretch;
    }

    /* index responsive */
    .index-hero{
        padding:22px 18px 18px;
    }

    .index-lang{
        position:static;
        margin-bottom:14px;
        padding:8px;
        align-self:flex-start;
        width:max-content;
    }

    .index-title{
        padding-right:0;
        font-size:1.75rem;
    }

    .index-sub{
        font-size:1rem;
    }

    .index-body{
        padding:16px 18px 20px;
    }

    .index-actions{
        justify-content:stretch;
    }

    .index-actions .btn{
        width:100%;
    }

    .lang-btn{
        padding:10px 12px;
        font-size:14px;
        border-radius:10px;
    }
}