.enem-app { min-height:100vh; }
.enem-main { max-width:1160px; margin:0 auto; padding:32px 24px 100px; }
.enem-main h1 { font-size:clamp(2rem,4vw,3rem); margin:8px 0 16px; }
.enem-main h2 { font-size:1.5rem; margin:12px 0; }
.enem-main h3 { font-size:1.12rem; }
.enem-main p { max-width:76ch; line-height:1.7; }
.enem-main .card { margin:16px 0; padding:24px; border:1px solid var(--border); box-shadow:none; }
.enem-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr)); gap:20px; }
.enem-actions,.enem-tabs { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin:16px 0; }
.enem-tabs { padding-bottom:12px; border-bottom:1px solid var(--border); }
.enem-tabs [aria-current="page"] { background:var(--primary); color:white; }
.enem-main button,.enem-main select,.enem-main input:not([type=checkbox]),.enem-main textarea { min-height:44px; font:inherit; }
.enem-main textarea { width:100%; min-height:120px; resize:vertical; }
.enem-main input,.enem-main select,.enem-main textarea { max-width:100%; border:1px solid var(--border); border-radius:12px; padding:10px; background:var(--surface); color:var(--text-primary); }
.enem-main label { display:block; font-weight:600; margin:10px 0 6px; }
.enem-main button { cursor:pointer; }
.enem-main button:disabled { cursor:wait; opacity:.6; }
.enem-main :focus-visible,.enem-app header :focus-visible { outline:3px solid var(--primary); outline-offset:4px; }
.enem-task { display:grid; grid-template-columns:36px 1fr auto; gap:12px; align-items:start; padding:18px 0; border-bottom:1px solid var(--border); }
.enem-task input { width:24px; height:24px; margin-top:12px; accent-color:var(--primary); }
.enem-task label { margin:0; line-height:1.55; }
.enem-task small,.enem-meta { color:var(--text-secondary); display:block; line-height:1.6; }
.enem-done { background:var(--surface-soft); border-radius:12px; padding:18px; }
.enem-celebration { background:var(--highlight); color:var(--text-primary); padding:20px; border-radius:16px; }
.enem-warning { border-left:4px solid var(--review); padding:12px 16px; background:var(--surface); }
.enem-main progress { width:100%; height:18px; accent-color:var(--primary); }
.enem-tree details { margin:8px 0 8px 12px; padding:4px 0 4px 12px; border-left:1px solid var(--border); }
.enem-tree summary { padding:10px 4px; cursor:pointer; overflow-wrap:anywhere; }
.enem-tree summary span { font-size:.85rem; font-weight:400; color:var(--text-secondary); }
.enem-tree .enem-task { grid-template-columns:28px 1fr; }
.enem-tree .enem-task button { grid-column:2; justify-self:start; }
.enem-prose { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.8; max-width:76ch; }
.enem-lesson-image { max-width:100%; max-height:480px; object-fit:contain; border-radius:16px; }
.enem-question fieldset,.enem-main fieldset { border:1px solid var(--border); border-radius:16px; padding:20px; margin:18px 0; min-width:0; }
.enem-question label { font-weight:400; padding:12px; background:var(--surface-soft); border-radius:10px; display:flex; gap:12px; }
.enem-question input { flex-shrink:0; }
.enem-page img { width:100%; max-height:300px; object-fit:contain; }
.enem-page button { min-height:44px; }
.enem-rubric label { font-size:.92rem; }
.enem-rubric textarea { min-height:90px; }
.enem-message:empty { display:none; }
.enem-message { position:fixed; bottom:16px; left:16px; right:16px; max-width:800px; margin:auto; background:var(--text-primary); color:white; padding:16px; border-radius:12px; z-index:20; }
.enem-skip { position:absolute; left:8px; top:-80px; padding:12px; background:white; z-index:40; }
.enem-skip:focus { top:8px; }
#enem-zoom { width:min(96vw,1200px); max-height:94vh; border:1px solid var(--border); border-radius:16px; padding:20px; }
.enem-zoom-stage { overflow:auto; max-height:75vh; }
#zoom-image { width:100%; max-width:none; }
#zoom-image.zoom-2 { width:150%; }
#zoom-image.zoom-3 { width:200%; }
@media(max-width:600px) { .enem-main { padding:24px 14px 100px; } .enem-main .card { padding:16px; } .enem-task { grid-template-columns:28px 1fr; } .enem-task>button { grid-column:2; justify-self:start; } .enem-tree details { margin-left:3px; padding-left:6px; } .enem-app .app-header { padding:12px; gap:10px; flex-wrap:wrap; } }
@media(prefers-reduced-motion:reduce) { .enem-app * { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
