.legal-page-shell{
    max-width:1180px;
    margin:0 auto;
    padding:30px 0 70px;
}

.legal-topbar,
.legal-page-heading-row,
.legal-document-footer,
.legal-hero-actions,
.legal-actions,
.legal-management-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
}

.legal-topbar{
    margin-bottom:26px;
}

.legal-topbar > div:first-child{
    display:flex;
    flex-direction:column;
    gap:4px;
}

.legal-topbar-title{
    color:var(--ink);
    font-size:20px;
    font-weight:800;
}

.legal-topbar-actions{
    display:flex;
    gap:8px;
}

.btn-ghost{
    border:1px solid transparent;
    background:transparent;
    color:var(--navy);
}

.btn-ghost:hover{
    border-color:var(--line);
    background:var(--surface);
}

.legal-hero{
    display:grid;
    grid-template-columns:minmax(0,1fr) 180px;
    align-items:center;
    gap:30px;
    padding:42px;
    border-radius:24px;
    background:linear-gradient(135deg,#102e60 0%,#1d5ca2 100%);
    color:#fff;
    box-shadow:0 18px 44px rgba(16,46,96,.18);
}

.legal-hero h1,
.legal-consent-card h1,
.legal-management-card h1,
.legal-document h1{
    margin:8px 0 12px;
    color:inherit;
    font-size:clamp(28px,4vw,44px);
    line-height:1.1;
}

.legal-hero p{
    max-width:720px;
    margin:0;
    color:rgba(255,255,255,.82);
    font-size:16px;
    line-height:1.7;
}

.legal-hero .eyebrow,
.legal-consent-card .eyebrow,
.legal-document-heading .eyebrow,
.legal-management-card .eyebrow{
    color:#96c6ff;
}

.legal-hero-mark{
    display:grid;
    place-items:center;
    width:150px;
    height:150px;
    margin-left:auto;
    border:1px solid rgba(255,255,255,.25);
    border-radius:38px;
    color:#d9ecff;
    font-family:Georgia,serif;
    font-size:100px;
    line-height:1;
    transform:rotate(8deg);
}

.legal-hero-actions{
    justify-content:flex-start;
    margin-top:26px;
}

.legal-card-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
    margin-top:22px;
}

.legal-card{
    display:flex;
    gap:16px;
    min-height:210px;
    padding:22px;
    border:1px solid var(--line);
    border-radius:18px;
    background:var(--surface);
    box-shadow:var(--shadow-soft);
}

.legal-card-icon{
    display:grid;
    place-items:center;
    flex:0 0 44px;
    width:44px;
    height:44px;
    border-radius:13px;
    background:var(--blue-soft);
    color:var(--blue);
    font-family:Georgia,serif;
    font-size:24px;
    font-weight:700;
}

.legal-card-content h3{
    margin:5px 0 8px;
    color:var(--ink);
    font-size:20px;
}

.legal-card-content p{
    min-height:68px;
    margin:0;
    color:var(--muted);
    line-height:1.6;
}

.legal-card-kicker,
.legal-management-summary span,
.legal-management-summary small,
.legal-history-item span,
.legal-form-hint{
    color:var(--muted);
    font-size:12px;
}

.legal-card-link,
.legal-consent-links button{
    padding:0;
    border:0;
    background:transparent;
    color:var(--blue);
    cursor:pointer;
    font:inherit;
    font-weight:750;
}

.legal-card-link{ margin-top:15px; }

.legal-document,
.legal-management-card,
.legal-consent-card{
    padding:34px;
    border:1px solid var(--line);
    border-radius:22px;
    background:var(--surface);
    box-shadow:var(--shadow-soft);
}

.legal-document-heading,
.legal-document-body{
    max-width:900px;
    margin:0 auto;
}

.legal-document-heading{
    padding-bottom:24px;
    border-bottom:1px solid var(--line);
}

.legal-document-heading h1,
.legal-management-card h1{ color:var(--navy-dark); }

.legal-document-meta{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    color:var(--muted);
    font-size:13px;
}

.legal-document-meta span{
    padding:6px 10px;
    border-radius:999px;
    background:var(--surface-soft);
}

.legal-document-body{ padding-top:8px; }

.legal-document-section{
    padding:24px 0;
    border-bottom:1px solid #edf0f5;
}

.legal-document-section:last-child{ border-bottom:0; }
.legal-document-section h2{ margin:0 0 12px; color:var(--navy-dark); font-size:20px; }
.legal-document-section p,
.legal-document-section li{ color:#4b5870; line-height:1.75; }
.legal-document-section p{ margin:0 0 10px; }
.legal-document-section ul{ margin:8px 0 0; padding-left:24px; }

.legal-contact-box{
    display:grid;
    gap:5px;
    margin-top:10px;
    padding:16px 18px;
    border:1px solid #d8e4f2;
    border-radius:14px;
    background:#f7fbff;
}

.legal-contact-box strong{ color:var(--navy-dark); }
.legal-contact-box a{ color:var(--blue); }
.legal-contact-box span{ color:var(--muted); font-size:14px; }

.legal-document-footer{
    max-width:900px;
    margin:24px auto 0;
    padding-top:20px;
    border-top:1px solid var(--line);
}

.legal-document-footer > span{
    max-width:610px;
    overflow-wrap:anywhere;
    color:var(--muted);
    font-size:11px;
}

.legal-consent-layout{
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
    gap:22px;
    align-items:start;
}

.legal-consent-card{
    background:linear-gradient(145deg,#102e60 0%,#1b518d 100%);
    color:#fff;
}

.legal-consent-card p{ color:rgba(255,255,255,.83); line-height:1.7; }
.legal-consent-card .legal-note{ color:#d9eaff; }

.legal-consent-links{
    display:grid;
    gap:8px;
    margin-top:22px;
}

.legal-consent-links button{
    display:flex;
    justify-content:space-between;
    padding:11px 13px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:10px;
    color:#fff;
    text-align:left;
}

.legal-consent-links button:hover{ background:rgba(255,255,255,.1); }

.legal-consent-form{
    display:grid;
    gap:16px;
    padding:28px;
    border:1px solid var(--line);
    border-radius:22px;
    background:var(--surface);
    box-shadow:var(--shadow-soft);
}

.legal-consent-form h2{ margin:5px 0 0; color:var(--navy-dark); font-size:22px; }
.legal-checkbox{ display:flex; align-items:flex-start; gap:11px; color:#4b5870; line-height:1.55; }
.legal-checkbox input{ flex:0 0 auto; width:18px; height:18px; margin-top:3px; accent-color:var(--blue); }
.legal-checkbox button{ padding:0; border:0; background:transparent; color:var(--blue); cursor:pointer; font:inherit; font-weight:750; }
.legal-submit-button{ width:100%; }
.legal-inline-error{ padding:10px 12px; border-radius:10px; background:var(--red-soft); color:var(--red); font-size:13px; }

.legal-consent-success{ text-align:center; }
.legal-consent-success .legal-status-dot{ display:grid; place-items:center; width:58px; height:58px; margin:0 auto 12px; border-radius:50%; background:#daf7e9; color:var(--green); font-size:30px; font-weight:800; }
.legal-consent-success .legal-actions{ justify-content:center; margin-top:24px; }

.legal-management-card{ color:var(--ink); }
.legal-page-heading-row{ align-items:flex-start; }
.legal-page-heading-row p{ max-width:650px; margin:0; color:var(--muted); line-height:1.6; }
.legal-status-pill{ flex:0 0 auto; padding:9px 13px; border-radius:999px; font-size:12px; font-weight:800; }
.legal-status-pill.is-active{ background:var(--green-soft); color:var(--green); }
.legal-status-pill.is-inactive{ background:var(--amber-soft); color:var(--amber); }
.legal-management-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:28px; }
.legal-management-summary{ display:grid; gap:6px; padding:18px; border-radius:14px; background:var(--surface-soft); }
.legal-management-summary strong{ color:var(--navy-dark); font-size:20px; }
.legal-management-actions{ justify-content:flex-start; margin-top:20px; }
.btn-danger{ border:1px solid #e8bfc4; background:#fff6f7; color:#b03847; }
.btn-danger:hover{ background:#ffe9eb; }
.legal-history{ margin-top:30px; padding-top:25px; border-top:1px solid var(--line); }
.legal-history h2{ margin:0 0 15px; color:var(--navy-dark); font-size:20px; }
.legal-history-list{ display:grid; gap:10px; }
.legal-history-item{ display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid #edf0f5; }
.legal-history-icon{ display:grid; place-items:center; width:30px; height:30px; border-radius:50%; font-weight:800; }
.legal-history-icon.is-accepted{ background:var(--green-soft); color:var(--green); }
.legal-history-icon.is-withdrawn{ background:var(--red-soft); color:var(--red); }
.legal-history-item div{ display:grid; gap:3px; }
.legal-history-item strong{ color:var(--ink); }

.legal-loading,
.legal-empty-state{
    display:grid;
    place-items:center;
    gap:14px;
    min-height:220px;
    padding:30px;
    border:1px dashed var(--line);
    border-radius:18px;
    color:var(--muted);
    text-align:center;
}

.legal-error-state{ color:var(--red); }

@media (max-width:900px){
    .legal-page-shell{ padding:22px 14px 50px; }
    .legal-card-grid{ grid-template-columns:1fr; }
    .legal-consent-layout{ grid-template-columns:1fr; }
    .legal-hero{ grid-template-columns:1fr; padding:30px; }
    .legal-hero-mark{ display:none; }
}

@media (max-width:640px){
    .legal-topbar,
    .legal-page-heading-row,
    .legal-document-footer,
    .legal-management-actions{ align-items:flex-start; flex-direction:column; }
    .legal-topbar-actions{ width:100%; overflow:auto; }
    .legal-document,
    .legal-management-card,
    .legal-consent-card,
    .legal-consent-form{ padding:22px; border-radius:16px; }
    .legal-management-grid{ grid-template-columns:1fr; }
    .legal-status-pill{ align-self:flex-start; }
}
