/* پوسته پنل — الگوی Sidebar (inset) از shadcn/ui */
.ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
body.app{background:var(--sidebar)}

/* Sidebar */
.sidenav{position:fixed;inset-block:0;inset-inline-start:0;width:var(--side);display:flex;flex-direction:column;z-index:30;background:var(--sidebar);color:var(--foreground)}
.side-brand{display:flex;align-items:center;gap:.6rem;margin:.5rem;padding:.5rem;border-radius:var(--radius);color:var(--foreground);text-decoration:none;line-height:1.3}
.side-brand:hover{background:var(--accent)}
.side-brand img{width:34px;height:34px}
.side-brand span{display:flex;flex-direction:column;font-weight:600;font-size:.875rem}
.side-brand small{font-weight:400;font-size:.75rem;color:var(--muted-foreground)}
.side-find{margin:0 .5rem .25rem;padding:0 .5rem;position:relative}
.side-find input{height:2rem;padding:0 2rem 0 .6rem;font-size:.8125rem;background:var(--background);box-shadow:none}
.side-find .ic{position:absolute;inset-inline-start:1.15rem;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--muted-foreground)}
.side-scroll{flex:1;overflow-y:auto;padding:0 .5rem;scrollbar-width:thin}
.side-group{padding:.5rem}
.side-group>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;height:2rem;padding:0 .5rem;font-size:.75rem;font-weight:500;color:var(--muted-foreground);border-radius:var(--radius)}
.side-group>summary::-webkit-details-marker{display:none}
.side-group>summary:hover{background:var(--accent);color:var(--foreground)}
.side-group>summary .ic{width:14px;height:14px;transition:transform .15s}
.side-group:not([open])>summary .ic{transform:rotate(90deg)}
.sidenav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}
.sidenav li a{display:flex;align-items:center;gap:.5rem;height:2rem;padding:0 .5rem;border-radius:var(--radius);color:var(--foreground);text-decoration:none;font-size:.875rem}
.sidenav li a:hover{background:var(--accent);text-decoration:none}
.sidenav li a.active{background:var(--brand-soft);color:var(--primary);font-weight:500}
.sidenav li a.active .ic{color:var(--primary)}
.sidenav li[hidden],.side-group[hidden]{display:none}
.side-empty{color:var(--muted-foreground);font-size:.8125rem;padding:.5rem 1rem}
.side-user{margin:.5rem;padding:0;display:flex;align-items:center;gap:.25rem}
.side-user .me{flex:1;min-width:0;display:flex;align-items:center;gap:.6rem;height:3rem;padding:0 .5rem;border-radius:var(--radius);color:var(--foreground);text-decoration:none;font-size:.875rem;font-weight:500}
.side-user .me:hover{background:var(--accent)}
.side-user .me>span:last-child{display:flex;flex-direction:column;overflow:hidden;line-height:1.35}
.side-user .me small{font-weight:400;font-size:.75rem;color:var(--muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.avatar{width:2rem;height:2rem;flex:none;border-radius:var(--radius);background:var(--brand-soft);color:var(--primary);display:grid;place-items:center;font-weight:600;font-size:.8125rem;border:1px solid var(--border)}

/* Inset: محتوا داخل یک برگه گرد */
.inset{margin:.5rem;margin-inline-start:var(--side);min-height:calc(100svh - 1rem);background:var(--background);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-sm);border:1px solid var(--border);display:flex;flex-direction:column}
.topbar{position:sticky;top:.5rem;z-index:20;display:flex;align-items:center;gap:.5rem;height:3.5rem;padding:0 1rem;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--background) 92%,transparent);backdrop-filter:blur(8px);border-radius:calc(var(--radius) + 4px) calc(var(--radius) + 4px) 0 0}
.topbar form{margin:0;display:flex}
.vsep{width:1px;height:1rem;background:var(--border);margin:0 .25rem}
.crumbs{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--muted-foreground);white-space:nowrap;overflow:hidden}
.crumbs b{color:var(--foreground);font-weight:400}
.spacer{flex:1}
.topbar .icon-btn,.side-user .icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;margin:0;border-radius:var(--radius);background:transparent;border:0;box-shadow:none;color:var(--foreground);position:relative;text-decoration:none}
.topbar .icon-btn:hover,.side-user .icon-btn:hover{background:var(--accent);color:var(--foreground)}
.topbar .menu-btn{display:inline-flex}
body.side-off .sidenav{transform:translateX(100%)}
body.side-off .inset{margin-inline-start:.5rem}
.sidenav{transition:transform .2s ease}
.inset{transition:margin .2s ease}
.topbar .searchbox{display:inline-flex;align-items:center;gap:.5rem;width:15rem;height:2rem;padding:0 .5rem 0 .75rem;margin:0;background:var(--background);border:1px solid var(--border);box-shadow:var(--shadow-xs);border-radius:var(--radius);color:var(--muted-foreground);font-weight:400;font-size:.8125rem;justify-content:flex-start}
.topbar .searchbox:hover{background:var(--accent);color:var(--foreground)}
.searchbox kbd{margin-inline-start:auto;font:inherit;font-size:.6875rem;direction:ltr;background:var(--muted);border:1px solid var(--border);border-radius:4px;padding:0 .3rem;line-height:1.25rem;color:var(--muted-foreground)}
.dot{position:absolute;top:.3rem;inset-inline-end:.3rem;width:.5rem;height:.5rem;border-radius:50%;background:var(--destructive);border:2px solid var(--background);font-size:0}

.content{flex:1;padding:1.5rem;width:100%;max-width:80rem}
.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}
.page-head h1{margin:0;font-size:1.5rem;font-weight:600}
.page-head p{margin:.25rem 0 0;color:var(--muted-foreground)}

/* Card داخل پنل */
.content .card,.card.wide{max-width:none;margin:0 0 1rem;padding:1.5rem}
.content .card>h2:first-child,.content .card>h3:first-child{margin:0 0 1.25rem;font-size:1rem;font-weight:600;line-height:1.3}
.content .card>h2:first-child+p.muted{margin:-1rem 0 1.25rem}
.content .card:has(> h2:first-child + table:last-child),.content .card:has(> table:only-child){padding:0;overflow:hidden}
.content .card:has(> h2:first-child + table:last-child)>h2{padding:1.25rem 1.5rem 0;margin-bottom:1rem}

/* کارت‌های شاخص (section cards) */
.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));margin-bottom:1rem}
.grid:has(> .stat){grid-template-columns:repeat(auto-fit,minmax(11rem,1fr))}
.stat{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:.4rem;padding:1.25rem 1.5rem;background:var(--card);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-sm);color:var(--muted-foreground);font-size:.875rem;line-height:1.4;text-decoration:none}
.stat b{display:block;font-size:1.75rem;font-weight:600;color:var(--foreground);line-height:1.2;font-variant-numeric:tabular-nums}
a.stat:hover{background:var(--accent);text-decoration:none}
.cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr))}
.pcard{background:var(--card);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-sm);padding:1.25rem 1.5rem}

/* Table */
.content table{width:100%;border-collapse:collapse;font-size:.875rem;margin-bottom:1rem;caption-side:bottom}
.content table th,.content table td{padding:0 .5rem;height:2.75rem;text-align:start;vertical-align:middle;border-bottom:1px solid var(--border);white-space:nowrap}
.content table td{white-space:normal}
.content table th{height:2.5rem;color:var(--muted-foreground);font-weight:500}
.content table th:first-child,.content table td:first-child{padding-inline-start:1rem}
.content table th:last-child,.content table td:last-child{padding-inline-end:1rem}
.content table tr:last-child td{border-bottom:0}
.content table tbody tr:hover td,.content table tr:hover td{background:color-mix(in srgb,var(--muted) 50%,transparent)}
.content > table,.content > form > table{border:1px solid var(--border);border-radius:var(--radius);border-collapse:separate;border-spacing:0;overflow:hidden}
.content .card table{margin:0}
.content table td form{margin:0}
.content table td .toolbar{margin:0;flex-wrap:nowrap}
.content table td button,.content table td .btn{height:2rem;padding:0 .75rem;font-size:.8125rem}
.table-wrap{overflow-x:auto}

/* Toolbar */
.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1rem}
.toolbar input,.toolbar select{width:auto;min-width:9rem}
.toolbar label{margin:0}

/* Badge */
.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;border:1px solid transparent;border-radius:var(--radius);font-size:.75rem;font-weight:500;line-height:1.35;white-space:nowrap;background:var(--muted);color:var(--foreground)}
.badge.ok{background:color-mix(in srgb,var(--success) 12%,transparent);color:var(--success)}
.badge.warn{background:color-mix(in srgb,var(--warning) 14%,transparent);color:var(--warning)}
.badge.bad{background:color-mix(in srgb,var(--destructive) 12%,transparent);color:var(--destructive)}
.badge.outline{background:transparent;border-color:var(--border)}

.kv{display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1.5rem;margin:0}
.kv dt,.kv .k{color:var(--muted-foreground)}
.prose{line-height:2;max-width:68ch;font-size:.9375rem}.prose img{border-radius:var(--radius)}
.gal{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr))}
.gal img,.gal video{width:100%;height:9rem;object-fit:cover;border-radius:var(--radius)}
canvas{max-width:100%}

/* داشبورد */
.quick{display:flex;flex-wrap:wrap;gap:.5rem}
.quick a{display:inline-flex;align-items:center;gap:.5rem;height:2.25rem;padding:0 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--background);box-shadow:var(--shadow-xs);color:var(--foreground);font-weight:500;font-size:.875rem;text-decoration:none}
.quick a:hover{background:var(--accent)}
.two{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:1rem;margin-bottom:1rem}
.content .two>.card{margin:0}
.rows{list-style:none;margin:0;padding:0}
.rows li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--border)}
.rows li:first-child{padding-top:0}
.rows li:last-child{border-bottom:0;padding-bottom:0}
.rows small{color:var(--muted-foreground);white-space:nowrap}
.empty-state{color:var(--muted-foreground);margin:0;padding:1.5rem 0;text-align:center}

/* برگه ساده بیرون از پنل */
.plain-head{height:3.5rem;display:flex;align-items:center;padding:0 1.5rem;border-bottom:1px solid var(--border)}
.plain-mark{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;color:var(--foreground);text-decoration:none}
.plain-mark img{width:28px;height:28px}
.plain-main{max-width:56rem;margin:0 auto;padding:2rem 1.5rem 4rem}

/* راهنما */
.helpbtn{position:fixed;inset-inline-end:1.25rem;bottom:1.25rem;width:2.25rem;height:2.25rem;border-radius:50%;padding:0;margin:0;z-index:40;background:var(--background);border:1px solid var(--border);color:var(--foreground);box-shadow:var(--shadow-sm)}
.helpbtn:hover{background:var(--accent);color:var(--foreground)}
.helppop{position:fixed;inset-inline-end:1.25rem;bottom:4rem;max-width:20rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;z-index:41;box-shadow:0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1);font-size:.875rem}
.tour-hl{outline:2px solid var(--ring);outline-offset:3px;border-radius:6px}
.scrim{display:none}

@media (max-width:960px){
  .sidenav{transform:translateX(100%);transition:transform .2s ease;border-inline-end:1px solid var(--border)}
  body.nav-open .sidenav{transform:none;box-shadow:0 10px 30px rgb(0 0 0 / .15)}
  body.nav-open .scrim{display:block;position:fixed;inset:0;background:rgb(0 0 0 / .5);z-index:25}
  .inset{margin:0;border:0;border-radius:0;box-shadow:none;min-height:100svh}
  .topbar{top:0;border-radius:0}
  .topbar .searchbox{width:2rem;padding:0;justify-content:center;box-shadow:none}
  .searchbox span,.searchbox kbd{display:none}
  .content{padding:1rem}
  .two{grid-template-columns:1fr}
}
@media (max-width:700px){
  .content table{display:block;overflow-x:auto}
  .grid:has(> .stat){grid-template-columns:1fr 1fr}
}
@media print{.sidenav,.topbar,.helpbtn,.helppop,.toolbar{display:none!important}.inset{margin:0;border:0;box-shadow:none}.content{padding:0}}
.quick a .ic{color:var(--primary)}

/* اجزای مشترک صفحه‌های فهرست و فرم */
.table-card{padding:0!important;overflow:hidden}
.table-card table{margin:0}
.row-actions{white-space:nowrap;text-align:end!important}
.row-actions form{display:inline}
.row-actions .btn,.row-actions button{height:1.875rem!important;padding:0 .6rem!important;margin:0;font-size:.8125rem;box-shadow:none}
.danger-text{color:var(--destructive)!important}
.danger-text:hover{background:color-mix(in srgb,var(--destructive) 8%,transparent)!important}
.empty-cell{text-align:center!important;color:var(--muted-foreground);height:6rem!important}
.form-card{max-width:42rem!important}
.form-card label:first-of-type{margin-top:0}
.form-card label.check{display:flex;align-items:center;margin:1rem 0 0;font-weight:500}
.form-actions{display:flex;gap:.5rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border)}
.form-actions button,.form-actions .btn{margin:0}
.kv{grid-template-columns:minmax(8rem,max-content) 1fr;gap:0}
.kv dt,.kv dd{margin:0;padding:.7rem 0;border-bottom:1px solid var(--border)}
.kv dt{color:var(--muted-foreground);padding-inline-end:1.5rem}
.kv dt:last-of-type,.kv dd:last-of-type{border-bottom:0}
.content table td[colspan]{text-align:center;color:var(--muted-foreground)}
.tiles{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr))}
.tile{display:flex;flex-direction:column;gap:.2rem;padding:1.25rem 1.5rem;background:var(--card);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-sm);color:var(--foreground);text-decoration:none}
.tile:hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--border));text-decoration:none}
.tile-ic{width:2.25rem;height:2.25rem;border-radius:var(--radius);background:var(--brand-soft);color:var(--primary);display:grid;place-items:center;margin-bottom:.75rem}
.tile b{font-weight:600}
.tile small{color:var(--muted-foreground)}
.progress{height:.5rem;background:var(--muted);border-radius:999px;overflow:hidden;margin:.5rem 0 1.5rem}
.progress span{display:block;height:100%;background:var(--primary);border-radius:999px}
.mailgrid aside ul{display:flex;flex-direction:column;gap:.15rem}
.mailgrid aside a:not(.btn){border-radius:var(--radius);color:var(--foreground);text-decoration:none}
.mailgrid aside a:not(.btn):hover{background:var(--accent)}
.mailgrid aside a.active{background:var(--brand-soft);color:var(--primary);font-weight:500}
@media (max-width:760px){.mailgrid{grid-template-columns:1fr!important}}

/* ───── اصلاحات سراسری صفحه‌های پنل ───── */
.content form.card,.content .card.wide:has(> form:only-child){max-width:48rem}
.content form.card label:first-of-type{margin-top:0}
.content form.card > button[type=submit],.content form.card > .btn{margin-top:1.5rem}
.content > h2,.content > section > h2{font-size:1rem;font-weight:600;margin:2rem 0 .75rem}
.content > p{color:var(--foreground)}
select[multiple]{height:auto;min-height:7rem;padding:.35rem;background-image:none}
select[multiple] option{padding:.3rem .5rem;border-radius:4px}
select[multiple] option:checked{background:var(--brand-soft);color:var(--primary)}
input[type=date],input[type=datetime-local],input[type=time]{direction:ltr;text-align:right}
input[type=color]{width:4rem;padding:.2rem;height:2.25rem}
.toolbar label{display:inline-flex;align-items:center;gap:.4rem;font-weight:400;color:var(--muted-foreground)}
.toolbar label input{min-width:0}
/* فرم ساخت جمع‌شونده بالای فهرست‌ها */
details.create{margin:0 0 1rem;background:var(--card);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-sm)}
details.create > summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.5rem;height:3rem;padding:0 1.25rem;font-weight:500}
details.create > summary::-webkit-details-marker{display:none}
details.create > summary::before{content:"+";display:grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:var(--radius);background:var(--primary);color:var(--primary-foreground);font-size:1rem;line-height:1}
details.create[open] > summary{border-bottom:1px solid var(--border)}
details.create[open] > summary::before{content:"−"}
details.create > form{padding:1.25rem 1.5rem 1.5rem;max-width:48rem;margin:0;border:0;box-shadow:none;background:none}
details.create > form label:first-of-type{margin-top:0}
.content form.card .toolbar{margin:1rem 0 0}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
@media (max-width:640px){.grid-2{grid-template-columns:1fr}}
/* انتخاب وضعیت حضور */
.seg{display:inline-flex;gap:.25rem;padding:.2rem;background:var(--muted);border-radius:var(--radius)}
.seg label{margin:0;display:inline-flex}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{display:inline-flex;align-items:center;height:1.75rem;padding:0 .75rem;border-radius:calc(var(--radius) - 2px);font-size:.8125rem;color:var(--muted-foreground);cursor:pointer;user-select:none}
.seg label:hover span{color:var(--foreground)}
.seg input:focus-visible+span{outline:2px solid var(--ring)}
.seg input:checked+span{background:var(--background);color:var(--foreground);box-shadow:var(--shadow-xs);font-weight:500}
.seg-absent input:checked+span{background:var(--destructive);color:#fff}
.seg-late input:checked+span{background:var(--warning);color:#fff}
.seg-excused input:checked+span{background:color-mix(in srgb,var(--success) 15%,var(--background));color:var(--success)}
.score-in{width:5.5rem;text-align:center;direction:ltr}
.side-brand span{display:flex;flex-direction:column;gap:.3rem}
.side-brand img.wm{height:.95rem;width:auto;border-radius:0}
.side-brand img.wm.fa{height:1.35rem}
.plain-mark img.wm{width:auto;height:1.3rem}
.side-brand img.wm.fa{height:1.25rem}
.side-brand .wm-stack img.wm.fa{height:1.3rem}
.side-brand .wm-stack img.wm:not(.fa){height:.58rem}
.side-brand>img{width:38px;height:38px}
