/* ===== پالت از تصویر: رنگ‌های خنثی ===== */
:root{
  --ink:#091A36; --slate:#38475E; --mid:#6A7686; --soft:#838C9B; --line:#CDD0D5; --mist:#E6E7EB; --paper:#EFEEEA; --white:#fff;
  --exam:#E5484D; --exam-d:#a82a2f;
  --homework:#F2A33A; --homework-d:#b0711a;
  --question:#2FB8A3; --question-d:#1c7d6e;
  --other:#6E7BF2; --other-d:#4350b8;
  --ink-d:#030a17;
  --r:22px;
  --font:'Vazirmatn','Vazir','IRANSans',Tahoma,'Segoe UI',system-ui,sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:var(--font);color:var(--ink);line-height:1.7;
  background-color:var(--paper);
  background-image:linear-gradient(rgba(9,26,54,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(9,26,54,.06) 1px,transparent 1px);
  background-size:28px 28px;
  min-height:100vh;overflow-x:hidden;
}
button,input,select,textarea{font-family:inherit;font-size:1rem;color:inherit}
.wrap{max-width:760px;margin:0 auto;padding:16px 16px 90px}

/* ===== کارت سه‌بعدی ===== */
.card{
  background:var(--white);border:2px solid var(--ink);border-radius:var(--r);padding:16px;margin-top:20px;
  box-shadow:0 7px 0 var(--ink),0 22px 30px -10px rgba(9,26,54,.28);
  transition:transform .25s ease,box-shadow .25s ease;
}
.card h2{margin:0 0 12px;font-size:1.25rem;display:flex;align-items:center;gap:8px}
.tilt{transform-style:preserve-3d;will-change:transform}

/* ===== دکمه سه‌بعدی ===== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;text-decoration:none;
  border:2px solid var(--ink);background:var(--ink);color:#fff;border-radius:16px;padding:10px 18px;font-weight:700;
  box-shadow:0 6px 0 var(--ink-d);transform:translateY(0);transition:transform .08s,box-shadow .08s,filter .2s;
  user-select:none;
}
.btn:hover{filter:brightness(1.15)}
.btn:active{transform:translateY(5px);box-shadow:0 1px 0 var(--ink-d)}
.btn.light{background:var(--white);color:var(--ink);box-shadow:0 6px 0 var(--line)}
.btn.light:active{box-shadow:0 1px 0 var(--line)}
.btn.slate{background:var(--slate);box-shadow:0 6px 0 var(--ink)}
.btn.slate:active{box-shadow:0 1px 0 var(--ink)}
.btn.red{background:var(--exam);border-color:var(--exam-d);box-shadow:0 6px 0 var(--exam-d)}
.btn.red:active{box-shadow:0 1px 0 var(--exam-d)}
.btn.green{background:var(--question);border-color:var(--question-d);box-shadow:0 6px 0 var(--question-d)}
.btn.green:active{box-shadow:0 1px 0 var(--question-d)}
.btn.small{padding:6px 12px;border-radius:12px;font-size:.9rem;box-shadow:0 4px 0 var(--ink-d)}
.btn.small.light{box-shadow:0 4px 0 var(--line)}
.btn.small:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink-d)}
.btn.block{display:flex;width:100%}
.btn[disabled]{opacity:.5;pointer-events:none}

/* ===== هدر ===== */
.hero{position:relative;padding-top:6px}
.hero-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.logo-chip{font-size:.85rem;font-weight:700;background:var(--white);border:2px solid var(--ink);border-radius:999px;padding:2px 12px;box-shadow:0 4px 0 var(--ink)}
.title{
  font-size:clamp(2.4rem,11vw,4rem);line-height:1.15;margin:18px 0 4px;font-weight:900;color:var(--ink);
  text-shadow:1px 1px 0 #fff,2px 2px 0 var(--soft),3px 3px 0 var(--soft),4px 4px 0 var(--mid),5px 5px 0 var(--mid),6px 6px 0 var(--slate),7px 7px 14px rgba(9,26,54,.35);
}
.title span{color:var(--mid)}
.sub{color:var(--slate);margin:0;font-weight:500}

/* مکعب چرخان */
.cube-stage{position:absolute;left:6px;top:46px;width:84px;height:84px;perspective:420px;pointer-events:none}
.cube{width:100%;height:100%;position:relative;transform-style:preserve-3d;animation:spin 14s linear infinite}
.cube i{position:absolute;inset:0;width:60px;height:60px;margin:auto;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:28px;
  background:linear-gradient(145deg,var(--mist),var(--line));border:2px solid var(--ink);border-radius:12px;backface-visibility:visible;opacity:.96}
.cube i:nth-child(1){transform:translateZ(30px)}
.cube i:nth-child(2){transform:rotateY(180deg) translateZ(30px)}
.cube i:nth-child(3){transform:rotateY(90deg) translateZ(30px)}
.cube i:nth-child(4){transform:rotateY(-90deg) translateZ(30px)}
.cube i:nth-child(5){transform:rotateX(90deg) translateZ(30px)}
.cube i:nth-child(6){transform:rotateX(-90deg) translateZ(30px)}
@keyframes spin{from{transform:rotateX(-24deg) rotateY(0)}to{transform:rotateX(-24deg) rotateY(360deg)}}

/* ===== ساعت ===== */
.clock-card{background:linear-gradient(160deg,var(--slate),var(--ink));color:#fff;text-align:center;border-color:var(--ink);box-shadow:0 7px 0 var(--ink-d),0 22px 30px -10px rgba(9,26,54,.4)}
.clock{font-size:clamp(2.4rem,13vw,3.6rem);font-weight:900;letter-spacing:2px;direction:ltr;font-variant-numeric:tabular-nums;text-shadow:0 3px 0 rgba(0,0,0,.35)}
.today-date{font-size:1.1rem;font-weight:700;margin-top:2px}
.tz{display:inline-block;margin-top:8px;font-size:.8rem;background:rgba(255,255,255,.14);border-radius:999px;padding:1px 12px}

/* ===== روبیکا ===== */
.rubika{margin-top:20px}
.rubika .btn{padding:14px;font-size:1.1rem;background:linear-gradient(135deg,#7a5cff,#d94fbf);border-color:#4b2fb3;box-shadow:0 7px 0 #4b2fb3}
.rubika .btn:active{box-shadow:0 1px 0 #4b2fb3}

/* ===== تب‌ها ===== */
.tabs{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.tab{cursor:pointer;border:2px solid var(--ink);background:var(--mist);border-radius:14px;padding:5px 14px;font-weight:700;box-shadow:0 4px 0 var(--ink);transition:transform .08s,box-shadow .08s}
.tab[aria-selected=true]{background:var(--ink);color:#fff}
.tab:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}

/* ===== آیتم‌ها ===== */
.list{display:flex;flex-direction:column;gap:10px}
.item{
  display:flex;gap:10px;align-items:flex-start;background:var(--paper);border:2px solid var(--ink);border-radius:16px;padding:10px 12px;
  border-right-width:8px;box-shadow:0 4px 0 var(--line)
}
.item .ic{font-size:1.5rem;line-height:1.3}
.item .body{flex:1;min-width:0}
.item .t{font-weight:800;overflow-wrap:anywhere}
.item .m{font-size:.85rem;color:var(--mid);font-weight:500}
.item .d{font-size:.92rem;color:var(--slate);white-space:pre-wrap;overflow-wrap:anywhere;margin-top:2px}
.item.exam{border-right-color:var(--exam)} .item.homework{border-right-color:var(--homework)}
.item.question{border-right-color:var(--question)} .item.other{border-right-color:var(--other)}
.badge{display:inline-block;font-size:.72rem;font-weight:800;color:#fff;border-radius:999px;padding:0 9px;margin-inline-start:6px;vertical-align:middle}
.badge.exam{background:var(--exam)} .badge.homework{background:var(--homework);color:var(--ink)}
.badge.question{background:var(--question)} .badge.other{background:var(--other)}
.empty{text-align:center;color:var(--mid);padding:14px 6px;font-weight:500}
.sec-title{font-weight:900;font-size:1rem;margin:14px 0 6px;color:var(--slate)}
.sched{display:flex;flex-direction:column;gap:8px}
.sched .row{display:flex;gap:10px;align-items:center;background:var(--mist);border:2px solid var(--ink);border-radius:14px;padding:6px 12px;box-shadow:0 4px 0 var(--soft)}
.sched .time{font-weight:800;background:var(--ink);color:#fff;border-radius:10px;padding:0 10px;font-size:.85rem;white-space:nowrap}
.sched .sub-name{font-weight:700}
.day-group{margin-top:10px}
.day-head{display:flex;justify-content:space-between;font-weight:900;margin:0 2px 6px}
.day-head small{color:var(--mid);font-weight:700}

/* ===== تقویم ===== */
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.cal-title{font-size:1.3rem;font-weight:900;text-align:center;flex:1}
.cal-title small{display:block;font-size:.8rem;color:var(--mid);font-weight:700}
.icon-btn{width:46px;height:46px;padding:0;font-size:1.3rem}
.dow,.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.dow div{text-align:center;font-weight:800;color:var(--mid);font-size:.85rem}
.dow div:last-child{color:var(--exam)}
.grid{margin-top:6px;perspective:900px}
.day{
  position:relative;aspect-ratio:1/1.05;border:2px solid var(--ink);border-radius:14px;background:var(--white);cursor:pointer;padding:2px 0 0;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;font-weight:800;font-size:1rem;
  box-shadow:0 4px 0 var(--ink);transition:transform .1s,box-shadow .1s,background .2s;
}
.day:hover{background:var(--mist)}
.day:active{transform:translateY(3px) rotateX(10deg);box-shadow:0 1px 0 var(--ink)}
.day.blank{visibility:hidden;pointer-events:none}
.day.fri{background:#f6e9ea;color:var(--exam-d)}
.day.today{background:var(--ink);color:#fff;box-shadow:0 4px 0 var(--ink-d),0 0 0 3px var(--soft)}
.day.sel{outline:3px solid var(--question);outline-offset:2px}
.dots{display:flex;gap:3px;margin-top:auto;margin-bottom:5px;flex-wrap:wrap;justify-content:center;max-width:90%}
.dot{width:8px;height:8px;border-radius:50%;border:1.5px solid rgba(9,26,54,.8)}
.dot.exam{background:var(--exam)} .dot.homework{background:var(--homework)} .dot.question{background:var(--question)} .dot.other{background:var(--other)}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:14px;font-size:.85rem;font-weight:700;color:var(--slate)}
.legend span{display:inline-flex;align-items:center;gap:5px;cursor:pointer;user-select:none}
.legend span.off{opacity:.35;text-decoration:line-through}

/* ===== پنجره‌ها ===== */
.overlay{position:fixed;inset:0;background:rgba(9,26,54,.55);backdrop-filter:blur(3px);z-index:50;display:none;align-items:flex-end;justify-content:center}
.overlay.open{display:flex;animation:fade .2s}
@keyframes fade{from{opacity:0}to{opacity:1}}
.sheet{
  background:var(--paper);width:100%;max-width:760px;max-height:92vh;overflow:auto;border:2px solid var(--ink);border-bottom:0;
  border-radius:28px 28px 0 0;padding:16px 16px 28px;animation:up .28s cubic-bezier(.2,1.2,.4,1);
  box-shadow:0 -10px 40px rgba(0,0,0,.35)
}
@keyframes up{from{transform:translateY(60px) scale(.97)}to{transform:none}}
.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.sheet-head h3{margin:0;font-size:1.2rem}
.admin-sheet{max-height:96vh;height:96vh}

/* ===== فرم‌ها ===== */
.field{margin-bottom:12px}
.field label{display:block;font-weight:800;margin-bottom:4px;font-size:.92rem}
.input{width:100%;border:2px solid var(--ink);border-radius:14px;padding:10px 12px;background:#fff;box-shadow:inset 0 3px 0 var(--mist);outline:none}
.input:focus{border-color:var(--other);box-shadow:inset 0 3px 0 var(--mist),0 0 0 3px rgba(110,123,242,.3)}
textarea.input{min-height:80px;resize:vertical}
.date-row{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:8px}
.form-card{background:#fff;border:2px solid var(--ink);border-radius:18px;padding:14px;box-shadow:0 5px 0 var(--ink)}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.msg-err{color:var(--exam-d);font-weight:700;min-height:1.4em;margin:6px 0 0}
.row-edit{display:grid;grid-template-columns:1fr 2fr auto;gap:8px;margin-bottom:8px;align-items:center}
.item .tools{display:flex;flex-direction:column;gap:6px}
.banner{margin-top:16px;background:#fff7e0;border:2px dashed var(--homework-d);border-radius:14px;padding:8px 12px;font-size:.88rem;font-weight:600;color:#6b4a0c}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,40px);background:var(--ink);color:#fff;font-weight:700;padding:10px 20px;border-radius:999px;box-shadow:0 6px 0 var(--ink-d);z-index:99;opacity:0;transition:.3s;pointer-events:none;max-width:90vw;text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}
footer{text-align:center;color:var(--mid);font-size:.85rem;margin-top:30px}
.admin-link{background:none;border:0;color:var(--mid);cursor:pointer;font-weight:700;text-decoration:underline;padding:4px}

@media (min-width:600px){
  .day{font-size:1.1rem}
  .dot{width:10px;height:10px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
