/* Refonte ILYGO, 17 octobre 2026 : application, authentification et console. */
:root { --shadow-sm: 0 2px 7px rgb(33 49 80 / .035); --shadow: 0 6px 20px rgb(33 49 80 / .07); --shadow-lg: 0 22px 70px rgb(33 49 80 / .16); --radius: 8px; --radius-lg: 16px; }
.brand-logo { height: 36px; width: 36px; object-fit: contain; background: white; border-radius: 8px; }
.brand h1 { font-size: 16px; font-weight: 650; letter-spacing: -.03em; }
.brand h1 small { display:block; margin: 2px 0 0; font-size: 10px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.btn-primary { background: #213150; color: white; border-color: #213150; border-radius: 8px; min-height: 42px; }
.btn-primary:hover { background: #2e4470; border-color: #2e4470; }
.btn-secondary { min-height: 40px; border-radius: 8px; }
.rail { width: 270px; padding: 12px 10px; background: #213150; border:0; --bg-1:#213150; --bg-2:#2c4160; --bg-3:#36526f; --bg-hover:#36526f; --text:#f0f6ff; --text-2:#c2d1e5; --text-dim:#a9bfd8; --text-faint:#a9bfd8; --border:#435a79; --border-strong:#6d86a5; --accent:#9fe4ef; --accent-soft:#36526f; --shadow:0 8px 28px rgb(0 0 0 / .14); }
.rail-top { min-height: 72px; padding: 8px 12px 22px; }
.rail-new { padding: 6px 8px 18px; }
.rail-new > .btn-primary { background: #f3fbff; color:#213150; min-height:44px; border:0; }
.rail-search { padding: 0 8px 16px; }
.rail-search input { min-height:40px; border:0; padding-left:32px; }
.rail-search .icon { left:18px; transform: translateY(-85%); }
.rail-history .session-item { margin:3px 0; padding-top:14px; padding-bottom:14px; border-radius:9px; }
.rail .session-title { font-size:13px; font-weight:500; }
.rail .session-meta { font-size:11px; }
.rail .session-item.active { background: #36526f; border-color:transparent; box-shadow: inset 3px 0 #69cedf; }
.rail-account { padding-top:16px; }
.rail-help { display:flex; align-items:center; gap:10px; margin:8px; color:#c2d1e5; font-size:12px; text-decoration:none; padding:8px 4px; }
.rail .menu { background:#fff; color:#213150; --text:#213150; --text-2:#53657c; --text-dim:#607187; --bg-hover:#edf3f8; --border:#dce4ee; --accent:#147587; }
.stage { background: #f5f7fb; padding: 28px 36px; }
.home { max-width:920px; padding:50px 10px 40px; }
.home > h2 { font-size:38px; letter-spacing:-.045em; }
.home-sub { font-size:16px; line-height:1.75; margin-top:12px; max-width:65ch; }
.home-kicker { font-size:11px; font-weight:700; color:#147587; text-transform:uppercase; letter-spacing:.14em; margin-bottom:14px; }
.home-cards { gap:20px; margin-top:36px; }
.home-card { position:relative; border-radius:14px; background:white; padding:30px; min-height:220px; box-shadow:var(--shadow-sm); gap:16px; }
.home-card strong { font-size:21px; letter-spacing:-.025em; }
.home-card span { line-height:1.8; }
.home-card:hover { background:white; box-shadow:var(--shadow); transform:translateY(-2px); }
.home-starters { margin-top:40px; border-top:1px solid var(--border); padding-top:24px; }
.thread-header { padding-bottom:22px; border-bottom:1px solid var(--border); margin-bottom:20px; }
.thread-title { font-size:23px; letter-spacing:-.035em; }
.chat-messages { background:var(--bg-1); border:1px solid var(--border); border-radius:14px 14px 0 0; }
.chat-bubble { font-size:15px; line-height:1.8; max-width:850px; }
.chat-bubble.user { background:#e8f4f7; }
.chat-bubble.assistant { background:white; }
.chat-composer { background:white; border:1px solid var(--border); border-top:0; border-radius:0 0 14px 14px; }
.chat-input-bar { border-radius:10px; background:#f5f7fb; padding:8px; }
.mapping-panel { background:white; border-radius:14px; border:1px solid var(--border); }
.auth-main { background:#f5f7fb; padding:56px 24px; }
.auth-card { padding:32px; border-radius:16px; box-shadow:var(--shadow-sm); }
.auth-card h1 { font-size:28px; letter-spacing:-.04em; }
.auth-subtitle { font-size:14px; line-height:1.7; }
.auth-field span, .auth-field input, .auth-field select { font-size:14px; }
.auth-field input, .auth-field select { min-height:44px; }
.auth-hint { font-size:12px; }
.account-content { max-width:1000px; }
.public-brand { gap:12px; }
@media(max-width:900px) { .stage { padding:20px 16px; } .rail { width:290px; top:var(--ilygo-env-offset,0px); } .mobile-bar { min-height:64px; background:white; border-bottom:1px solid var(--border); } .home { padding:24px 0; } .home > h2 { font-size:30px; } .home-card { min-height:0; padding:24px; } .thread-header { gap:14px; } .thread-title { font-size:21px; } .chat-bubble { font-size:15px; } input, select, textarea { font-size:16px !important; } }

.rail .brand h1 { color:#f0f6ff; }

.rail .rail-search input[type=search] { padding-left:32px; }

.console-page { display:flex; flex-direction:column; overflow:hidden; }
.console-navigation { width:220px; position:absolute; top:calc(83px + var(--ilygo-env-offset,0px)); bottom:0; left:0; overflow:auto; background:#213150; padding:24px 14px; } .console-navigation p { font-size:10px; text-transform:uppercase; letter-spacing:.12em; color:#afc4dc; padding:0 12px 16px; } .console-navigation a { display:block; color:#d0deee; text-decoration:none; font-size:13px; padding:12px; border-radius:8px; } .console-navigation a:hover,.console-navigation a:focus-visible { background:#36526f; color:white; } .console-page .app-header { min-height:83px; } .console-page .console-main { flex:1; min-height:0; overflow:auto; margin-left:220px; padding:28px; } .console-section { scroll-margin-top:24px; border-radius:14px; box-shadow:var(--shadow-sm); } .console-section-header { padding:20px 24px; } .console-section-header h2 { font-size:20px; letter-spacing:-.025em; } .console-table th,.console-table td { padding:14px 16px; } .console-stats { gap:16px; padding:24px; } .stat-card { background:#f5f7fb; border-radius:12px; }
@media(max-width:900px) { .console-navigation { position:static; display:flex; gap:6px; width:100%; white-space:nowrap; flex-shrink:0; padding:8px 14px; } .console-navigation p { display:none; } .console-navigation a { padding:10px; } .console-page .console-main { margin:0; padding:16px; } }

.mapping-table th { font:500 10px/1.5 var(--font-sans); text-align:left; padding:6px 8px 12px; color:var(--text-dim); }
