/* ══════════════════════════════════════════════════════════
   CAIRN Pages Stylesheet (Auth, Terms, Document Pages)
   ══════════════════════════════════════════════════════════ */
* { margin:0; padding:0; box-sizing:border-box; }

body {
    font-family:'Noto Sans JP','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
    background:#080b10;
    color:#e2e8f0;
    min-height:100vh;
    line-height:1.8;
}

/* ── Auth / Login Container ── */
.auth-body {
    display:flex;
    align-items:center;
    justify-content:center;
    background-image:
        radial-gradient(ellipse at 20% 50%, rgba(249,115,22,0.08) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 20%, rgba(236,72,153,0.05) 0%, transparent 50%);
}

.auth-container, .container.auth-container {
    max-width:520px;
    width:100%;
    padding:2rem;
    text-align:center;
    margin:0 auto;
}

.brand { margin-bottom:2rem; text-align:center; }
.brand h1 {
    font-size:3.5rem; font-weight:800; letter-spacing:0.15em;
    background:linear-gradient(135deg,#f97316,#ef4444,#ec4899);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; margin-bottom:0.5rem;
}
.brand-sub { font-size:0.9rem; color:#94a3b8; letter-spacing:0.15em; text-transform:uppercase; font-weight:600; }
.brand-full { font-size:0.8rem; color:#64748b; margin-top:0.5rem; letter-spacing:0.03em; }

/* Card */
.card { background:#0d1117; border:1px solid #1e293b; border-radius:16px; padding:2.5rem 2rem; text-align:center; }
.card p { color:#94a3b8; font-size:1rem; margin-bottom:1.8rem; line-height:1.7; text-align:center; }

/* Google button */
.btn-google {
    width:100%; padding:1rem; border:1px solid #334155; border-radius:12px;
    background:#1e293b; color:#f1f5f9; font-size:1.05rem; font-weight:600;
    cursor:pointer; transition:all 0.3s; display:flex; align-items:center;
    justify-content:center; gap:0.8rem; font-family:inherit;
}
.btn-google:hover {
    background:#334155; border-color:#475569; transform:translateY(-2px);
    box-shadow:0 8px 24px rgba(0,0,0,0.4);
}

/* Apple button */
.btn-apple {
    width:100%; padding:1rem; border:1px solid #ffffff; border-radius:12px;
    background:#ffffff; color:#000000; font-size:1.05rem; font-weight:600;
    cursor:pointer; transition:all 0.3s; display:flex; align-items:center;
    justify-content:center; gap:0.8rem; font-family:inherit;
}
.btn-apple:hover {
    background:#f1f5f9; transform:translateY(-2px);
    box-shadow:0 8px 24px rgba(255,255,255,0.25);
}

/* Dev login */
.dev-section { margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid #1e293b; text-align:center; }
.dev-label { font-size:0.7rem; color:#475569; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:0.8rem; }
.btn-dev {
    width:100%; padding:0.8rem; border:1px dashed #334155; border-radius:10px;
    background:transparent; color:#64748b; font-size:0.9rem; font-weight:500;
    cursor:pointer; transition:all 0.3s; font-family:inherit;
}
.btn-dev:hover { background:#1e293b; color:#94a3b8; border-style:solid; }

/* ── Terms & Document Layout (Strictly Left-Aligned Content) ── */
.container, .terms-container, .doc-container {
    max-width:800px;
    margin:0 auto;
    padding:2rem 1.5rem 4rem;
    text-align:left;
    box-sizing:border-box;
}

.back { display:inline-block; color:#f97316; text-decoration:none; font-size:0.85rem; margin-bottom:1.5rem; text-align:left; }
.back:hover { text-decoration:underline; }

h1 {
    font-size:1.8rem; font-weight:700; color:#f1f5f9; margin-bottom:0.5rem; text-align:left;
    background:linear-gradient(135deg,#f97316,#ec4899); -webkit-background-clip:text; -webkit-text-fill-color:transparent;
}
.subtitle { color:#64748b; font-size:0.85rem; margin-bottom:2rem; text-align:left; }
h2 {
    font-size:1.15rem; font-weight:600; color:#f97316; margin:2rem 0 0.8rem; padding-bottom:0.4rem;
    border-bottom:1px solid rgba(249,115,22,0.2); text-align:left;
}
h3 { font-size:1rem; font-weight:600; color:#94a3b8; margin:1.2rem 0 0.5rem; text-align:left; }

p { margin-bottom:0.8rem; font-size:0.9rem; text-align:left; line-height:1.85; }

/* Bullet lists: Left aligned with disc bullets */
ul {
    padding-left:1.5rem;
    margin-bottom:0.8rem;
    text-align:left;
    list-style-type:disc;
    list-style-position:outside;
}
ol {
    padding-left:1.5rem;
    margin-bottom:0.8rem;
    text-align:left;
    list-style-type:decimal;
    list-style-position:outside;
}
li {
    margin-bottom:0.45rem;
    font-size:0.9rem;
    text-align:left;
    line-height:1.75;
}

.highlight {
    background:rgba(249,115,22,0.08); border-left:3px solid #f97316; padding:0.8rem 1rem;
    border-radius:6px; margin:1rem 0; text-align:left;
}
.warning {
    background:rgba(239,68,68,0.08); border-left:3px solid #ef4444; padding:0.8rem 1rem;
    border-radius:6px; margin:1rem 0; text-align:left;
}
.info {
    background:rgba(59,130,246,0.08); border-left:3px solid #3b82f6; padding:0.8rem 1rem;
    border-radius:6px; margin:1rem 0; text-align:left;
}

table {
    width:100%; border-collapse:collapse; margin:0.8rem 0; font-size:0.85rem; text-align:left;
}
th {
    text-align:left; padding:0.55rem 0.7rem; color:#94a3b8;
    border-bottom:1px solid rgba(255,255,255,0.1); font-weight:600;
}
td {
    padding:0.55rem 0.7rem; border-bottom:1px solid rgba(255,255,255,0.04); text-align:left;
}

.footer {
    margin-top:3rem; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,0.06);
    color:#475569; font-size:0.75rem; text-align:center;
}
.footer a { color:#64748b; text-decoration:none; }
.footer a:hover { text-decoration:underline; }
