.app-wrap{padding:28px 0 80px;background:linear-gradient(180deg,var(--cream-2),#fff 50%);min-height:70vh;}
.app-wrap .wrap{max-width:980px;}
.app-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:26px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:16px;}
.app-tabs a,.app-tabs .soon{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:11px;font-size:14px;font-weight:500;text-decoration:none;color:var(--ink-soft);}
.app-tabs a:hover{background:var(--cream-2);}
.app-tabs a.active{background:var(--navy);color:#fff;}
.app-tabs .material-icons-outlined{font-size:19px;}
.app-tabs .soon{opacity:.5;cursor:default;}
.app-tabs .soon em{font-style:normal;font-size:11px;background:var(--cream-2);padding:2px 7px;border-radius:999px;}
.app-h1{font-size:clamp(26px,4vw,34px);margin:0 0 6px;}
.app-sub{color:var(--ink-soft);margin:0 0 24px;}
.app-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-bottom:22px;}
.app-card{display:flex;flex-direction:column;gap:4px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:18px;text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s,border-color .2s;}
.app-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--terracotta);}
.app-card .material-icons-outlined{color:var(--terracotta-dark);font-size:28px;margin-bottom:6px;}
.app-card strong{font-family:'Fraunces',serif;font-size:26px;font-weight:500;}
.app-card span:not(.material-icons-outlined){color:var(--ink-soft);font-size:14px;}
.app-card small{color:var(--terracotta-dark);font-weight:600;margin-top:6px;}
.app-soon{display:flex;gap:10px;align-items:center;padding:14px 18px;border-radius:14px;background:#eaf3fb;color:var(--ink);font-size:14px;}
.app-empty{text-align:center;padding:36px 20px;background:#fff;border:1px dashed #bcd3ea;border-radius:18px;color:var(--ink-soft);margin-bottom:22px;}
.app-empty .material-icons-outlined{font-size:44px;color:#9cc3e8;}
.stu-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:26px;}
.stu{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;display:flex;flex-direction:column;gap:12px;}
.stu header{display:flex;gap:14px;align-items:center;}
.stu h2{margin:0;font-size:20px;}.stu header p{margin:2px 0 0;color:var(--ink-soft);font-size:14px;}
.stu-avatar{width:46px;height:46px;border-radius:50%;background:#4c80b4;color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:21px;flex-shrink:0;}
.stu-arch{margin:0;font-size:13px;color:var(--ink-soft);}
.stu-more summary{cursor:pointer;color:var(--terracotta-dark);font-weight:600;font-size:14px;}
.stu-inline{margin-top:12px;}
.stu-inline select,.stu-form select{border:1px solid var(--line);border-radius:12px;padding:12px 14px;font:inherit;font-size:16px;background:#fff;}
.stu-del{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:#9a3b3b;cursor:pointer;font:inherit;font-size:14px;padding:4px 0;}
.stu-del .material-icons-outlined{font-size:18px;}
.stu-add h2{margin:0 0 14px;font-size:22px;}
.stu-form{grid-template-columns:1fr 1fr;}
.stu-form button{grid-column:1/-1;}
@media(max-width:640px){.stu-form{grid-template-columns:1fr;}.app-tabs{overflow-x:auto;flex-wrap:nowrap;}.app-tabs a,.app-tabs .soon{white-space:nowrap;}}

/* guia de primeiros passos */
.guide{background:#fff;border:1px solid #d9e4ef;border-radius:18px;padding:22px;margin:0 0 22px;}
.guide-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;}
.guide h2{margin:0;font-size:20px;}
.guide-count{color:#7b8794;font-size:14px;}
.guide-bar{height:8px;border-radius:999px;background:#e6f0fa;margin:12px 0 16px;overflow:hidden;}
.guide-bar span{display:block;height:100%;background:var(--navy);border-radius:999px;transition:width .4s;}
.guide-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;}
.guide-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid #e3ecf5;color:var(--ink);text-decoration:none;}
.guide-item .material-icons-outlined:first-child{color:#9fb3c8;}
.guide-item small{display:block;color:#7b8794;font-size:13px;}
.guide-item .go{margin-left:auto;color:var(--navy);}
.guide-item.done{background:#f5f9fd;}
.guide-item.done strong{text-decoration:line-through;color:#7b8794;font-weight:500;}
.guide-item.done .material-icons-outlined:first-child{color:#2e8b57;}
.guide-item.next{border-color:var(--navy);background:#eef5fc;}
.guide-item.next .material-icons-outlined:first-child{color:var(--navy);}
a.guide-item:hover{background:#eef5fc;}
.guide-foot{margin:14px 0 0;font-size:14px;}

/* data de nascimento em 3 campos + ano letivo */
.dob-label{display:block;font-weight:600;margin-bottom:6px;font-size:14px;}
.dob-sels{display:grid;grid-template-columns:1fr 1.6fr 1.1fr;gap:8px;}
.dob-sels select{width:100%;}
.yr-field{display:grid;gap:8px;}
.yr-input[hidden]{display:none;}

/* menu do painel nas páginas públicas */
.app-bar{max-width:980px;padding-top:16px;}
.app-bar .app-tabs{margin:0;}

/* bloqueio de conteúdo para visitantes */
.gate-fade{height:160px;margin-top:-160px;position:relative;pointer-events:none;background:linear-gradient(180deg,rgba(251,253,254,0),var(--cream) 85%);}
.gate-card{position:relative;max-width:560px;margin:0 auto 40px;padding:28px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 44px rgba(40,59,78,.12);}
.gate-card h2{font-size:22px;margin:6px 0 8px;}
.gate-card p{line-height:1.6;margin:0 0 4px;color:var(--ink-soft);}
.gate-icon{font-size:40px;color:var(--terracotta-dark);}
.gate-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:20px 0 10px;}
.gate-card small{color:#7b8794;}

/* ---- barra do aluno ---- */
.stu-bar{background:#fff;border:1px solid var(--line);border-radius:16px;padding:8px;margin-bottom:24px;display:grid;gap:8px;}
.stu-chips{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.stu-back{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;color:var(--ink-soft);}
.stu-back:hover{background:var(--cream-2);}
.stu-chip{display:inline-flex;align-items:center;gap:8px;padding:4px 14px 4px 4px;border-radius:999px;border:1px solid var(--line);color:var(--ink);font-weight:500;font-size:14.5px;text-decoration:none;}
.stu-chip:hover{background:var(--cream-2);}
.stu-chip.active{border-color:var(--navy);background:#eef5fc;}
.stu-dot{width:28px;height:28px;border-radius:50%;background:#9fb9d3;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:15px;}
.stu-dot .material-icons-outlined{font-size:17px;}
.stu-chip.active .stu-dot{background:var(--terracotta-dark);}
.stu-tabs{display:flex;gap:4px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:8px;}
.stu-tabs a{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:11px;font-size:14px;font-weight:500;text-decoration:none;color:var(--ink-soft);white-space:nowrap;}
.stu-tabs a:hover{background:var(--cream-2);}
.stu-tabs a.active{background:var(--navy);color:#fff;}
.stu-tabs .material-icons-outlined{font-size:19px;}
.stu-pick{margin:0;padding:4px 8px;font-size:14px;}
@media(max-width:640px){.stu-tabs{flex-wrap:nowrap;overflow-x:auto;}}

/* ---- início: cartões de aluno ---- */
.home-list{display:grid;gap:12px;margin-bottom:22px;}
.home-stu{display:flex;align-items:center;gap:16px;padding:18px 20px;background:#fff;border:1px solid var(--line);border-radius:18px;text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s,border-color .2s;}
.home-stu:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--terracotta);}
.home-stu-main{display:grid;gap:2px;flex:1;min-width:0;}
.home-stu-main strong{font-family:'Fraunces',serif;font-size:21px;font-weight:500;}
.home-stu-main small{color:var(--ink-soft);font-size:14px;}
.home-stu-status{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:14.5px;color:var(--ink-soft);}
.home-stu-status .material-icons-outlined{font-size:19px;}
.home-stu.todo .home-stu-status{color:var(--navy);font-weight:600;}
.home-go{color:var(--terracotta-dark);}
.home-add{border-style:dashed;}
.home-add .stu-avatar{background:#e6f0fa;color:var(--terracotta-dark);}
.stu-add{margin:0 0 22px;}

/* ---- página do aluno ---- */
.hub-crumb a{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--ink-soft);}
.hub-crumb .material-icons-outlined{font-size:18px;}
.hub-head{display:flex;align-items:center;gap:16px;margin-bottom:20px;}
.hub-head .stu-avatar{width:58px;height:58px;font-size:26px;}
.hub-head .app-h1{margin:0;}.hub-head .app-sub{margin:2px 0 0;}
.hub-steps{list-style:none;margin:0 0 18px;padding:0;display:flex;gap:8px;flex-wrap:wrap;}
.hub-steps li{display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:14px;color:var(--ink-soft);}
.hub-n{width:26px;height:26px;border-radius:50%;background:var(--cream-2);display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:13px;}
.hub-n .material-icons-outlined{font-size:17px;}
.hub-steps li.done .hub-n{background:#dff1e6;color:#2e8b57;}
.hub-steps li.cur{border-color:var(--navy);color:var(--ink);font-weight:600;}
.hub-steps li.cur .hub-n{background:var(--navy);color:#fff;}
.hub-next{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px;margin-bottom:18px;box-shadow:0 18px 40px -30px rgba(40,59,78,.35);}
.hub-next h2{margin:0 0 8px;font-size:24px;}
.hub-next>p{margin:0 0 16px;line-height:1.6;}
.hub-actions{display:flex;gap:10px;flex-wrap:wrap;}
.hub-actions .acc-btn{display:inline-flex;align-items:center;gap:6px;}
.hub-models{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px;margin-bottom:14px;}
.hub-model{position:relative;display:grid;gap:3px;padding:14px 40px 14px 16px;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:var(--ink);transition:border-color .2s,background .2s;}
.hub-model:hover{border-color:var(--navy);background:#eef5fc;}
.hub-model small{color:var(--ink-soft);font-size:13.5px;line-height:1.45;}
.hub-model .material-icons-outlined{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--terracotta-dark);}
.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:18px;}
.hub-panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;}
.hub-panel h3,.hub-settings-body h3{margin:0 0 10px;font-size:18px;}
.hub-muted{color:var(--ink-soft);font-size:14.5px;margin:0 0 12px;}
.hub-evs,.hub-stats{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px;}
.hub-panel .hub-evs,.hub-panel .hub-stats{margin-bottom:0;}
.hub-evs li{display:flex;gap:12px;align-items:baseline;font-size:15px;}
.hub-evs b{min-width:52px;color:var(--terracotta-dark);font-weight:600;white-space:nowrap;}
.hub-stats li{display:flex;gap:10px;align-items:center;font-size:15px;}
.hub-stats .material-icons-outlined{color:var(--terracotta-dark);font-size:21px;}
.hub-settings{margin-top:8px;}
.hub-settings summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--ink-soft);font-size:14px;list-style:none;}
.hub-settings summary::-webkit-details-marker{display:none;}
.hub-settings summary .material-icons-outlined{font-size:18px;}
.hub-settings-body{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;margin-top:12px;display:grid;gap:12px;}
