:root{--ink:#eaf3ff;--muted:#8ea2ba;--panel:#101d2d;--line:#2a3d53;--blue:#2ca9ff;--blue-glow:rgba(44,169,255,0.25);--green:#33d17a;--red:#ff5f69;color-scheme:dark}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#07111e;color:var(--ink);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh}

/* Tela de Login */
.login-wrapper{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:20px;background:radial-gradient(circle at 50% 20%,#152e4d 0,#07111e 60%)}
.login-card{width:100%;max-width:440px;background:linear-gradient(145deg,#122237,#0d1929);border:1px solid var(--line);border-radius:24px;padding:36px;box-shadow:0 30px 80px rgba(0,0,0,0.6),0 0 40px var(--blue-glow);animation:fadeIn .4s cubic-bezier(0.16,1,0.3,1)}
@keyframes fadeIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.login-brand{text-align:center;margin-bottom:28px}
.login-logo{width:52px;height:52px;margin:0 auto 14px;background:linear-gradient(135deg,#087ee1,#18adff);border-radius:14px;display:grid;place-items:center;box-shadow:0 8px 24px var(--blue-glow)}
.login-logo svg{width:28px;height:28px;fill:#fff}
.login-eyebrow{color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.2em;margin:0 0 6px}
.login-brand h1{font-size:26px;margin:0 0 6px;font-weight:800;letter-spacing:-0.02em}
.login-brand p{color:var(--muted);font-size:13px;margin:0}

.login-form{display:grid;gap:18px}
.login-field{display:grid;gap:8px}
.login-field label{font-size:12px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.login-field input{height:48px;width:100%;border:1px solid #3a5069;border-radius:12px;padding:0 16px;background:#081523;color:var(--ink);font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s}
.login-field input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-glow)}

.login-submit{height:48px;border:1px solid #48baff;border-radius:12px;background:linear-gradient(135deg,#087ee1,#18adff);color:#fff;font-size:15px;font-weight:800;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 6px 20px rgba(8,126,225,0.4)}
.login-submit:hover{transform:translateY(-1px);box-shadow:0 10px 28px rgba(8,126,225,0.6)}
.login-submit:active{transform:none}
.login-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}

.login-message{min-height:22px;text-align:center;font-size:13px;color:var(--muted);margin-top:12px}
.login-message.error{color:var(--red)}
.login-message.success{color:var(--green)}

.login-hint{margin-top:24px;padding:12px 16px;background:#081626;border:1px solid #1c324c;border-radius:10px;font-size:12px;color:var(--muted);text-align:center}
.login-hint code{color:var(--blue);font-weight:700}

/* Topbar do Usuário Autenticado */
.user-badge-wrap{display:flex;align-items:center;gap:12px}
.user-info{display:flex;align-items:center;gap:10px;padding:6px 14px;border:1px solid var(--line);border-radius:999px;background:#0b1725;font-size:13px;color:var(--ink)}
.user-avatar{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#087ee1,#18adff);color:#fff;display:grid;place-items:center;font-weight:900;font-size:11px}
.logout-btn{height:34px;padding:0 14px;border:1px solid #743d47;border-radius:999px;background:transparent;color:#ff8994;font-size:12px;font-weight:800;cursor:pointer;transition:background .2s}
.logout-btn:hover{background:#2a1418}

/* Shell do App (oculto quando não autenticado) */
.online-shell{width:min(1500px,calc(100% - 32px));margin:auto;padding:34px 0 60px}
.online-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:20px}
.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.online-eyebrow{margin:0 0 8px;color:var(--blue);font-size:12px;font-weight:900;letter-spacing:.16em}
.online-header h1{font-size:clamp(34px,5vw,58px);line-height:1;margin:0}
.online-header p{color:var(--muted);max-width:760px}
.online-status{display:flex;align-items:center;gap:9px;padding:11px 15px;border:1px solid var(--line);border-radius:999px;background:#0b1725;color:var(--muted);white-space:nowrap}
.online-status i{width:9px;height:9px;border-radius:50%;background:#ffbd44}
.online-status.ready i{background:var(--green);box-shadow:0 0 14px #33d17a}

.library-card,.panel-card{background:linear-gradient(145deg,#122237,#0d1929);border:1px solid var(--line);border-radius:20px;box-shadow:0 22px 60px #0008;overflow:hidden}
.library-card{padding:22px;margin-bottom:20px}
.library-heading,.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:18px}
.library-heading>div,.panel-heading{display:flex;align-items:center;gap:12px}
.library-heading h2,.panel-heading h2{margin:0;font-size:22px}
.library-heading p,.panel-heading p{color:var(--muted);font-size:13px}
.section-number{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#123454;color:#64bdff;font-weight:900}
.recipe-form{display:grid;grid-template-columns:1.1fr 1.35fr 1fr auto;gap:12px;align-items:end;padding:20px 0;border-bottom:1px solid var(--line)}
.recipe-form label{display:grid;gap:7px}
.recipe-form label>span{font-size:12px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.recipe-form input{height:46px;width:100%;border:1px solid #3a5069;border-radius:10px;padding:0 12px;background:#081523;color:var(--ink)}
.photo-field input{padding:10px}
.recipe-form button,.recipe-actions button{height:46px;border:1px solid #48baff;border-radius:10px;padding:0 16px;background:linear-gradient(135deg,#087ee1,#18adff);color:#fff;font-weight:900;cursor:pointer}
.recipe-form button:disabled{opacity:.45;cursor:not-allowed}
.empty-library{padding:34px;text-align:center;color:var(--muted)}
.recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding-top:18px}
.recipe-item{display:grid;grid-template-columns:150px 1fr;min-height:180px;background:#091625;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.recipe-photo{background:linear-gradient(145deg,#173b5b,#0e263c);display:grid;place-items:center;color:#7fa0bc;font-size:12px;min-height:180px}
.recipe-photo img{width:100%;height:100%;object-fit:cover}
.recipe-info{padding:14px;min-width:0}
.recipe-info h3{margin:3px 0 7px;font-size:18px}
.recipe-info>p{margin:0 0 10px;color:var(--muted);font-size:13px}
.recipe-date{color:#5ebcff!important;font-size:11px!important;font-weight:800;text-transform:uppercase}
.recipe-meta{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0}
.recipe-meta span{padding:4px 7px;border-radius:999px;background:#14283d;color:#a9bdd2;font-size:10px}
.recipe-actions{display:flex;gap:7px}
.recipe-actions button{height:36px;padding:0 10px;font-size:12px}
.recipe-actions .delete-online{background:transparent;border-color:#743d47;color:#ff8994}
.panel-card{scroll-margin-top:12px}
.panel-heading{padding:18px 22px;border-bottom:1px solid var(--line);justify-content:flex-start}
.panel-heading p{margin:4px 0 0}
.panel-card iframe{display:block;width:100%;height:3100px;border:0;background:#09111d}
@media(max-width:1050px){.recipe-form{grid-template-columns:1fr 1fr}.recipe-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.online-header,.library-heading{align-items:flex-start;flex-direction:column}.recipe-form,.recipe-grid{grid-template-columns:1fr}.recipe-item{grid-template-columns:110px 1fr}.panel-card iframe{height:3800px}}
