/* AttendFlow — shared styles for /tools/* pages. Tokens copied from attendflow.app. */
:root{--bg:#14110F;--bg-card:#1C1917;--bg-card-hover:#232020;--bg-header:rgba(20,17,15,0.85);--text:#FAFAF9;--text-muted:#A8A29E;--text-sub:#D6D3D1;--accent:#6366F1;--accent-hover:#818CF8;--accent-dim:rgba(99,102,241,0.16);--accent-border:rgba(99,102,241,0.30);--border:#292524;--border-subtle:#232020;--border-strong:#44403C;--success:#22C55E;--warn:#FBBF24;--danger:#F87171;--on-accent:#FFFFFF;--header-height:64px;--radius:16px;--radius-sm:10px;--warn-bg:rgba(251,191,36,0.12);--warn-border:rgba(251,191,36,0.30);--info-bg:rgba(99,102,241,0.14);--info-border:rgba(99,102,241,0.30);--ok-bg:rgba(34,197,94,0.12);--ok-border:rgba(34,197,94,0.32);--danger-bg:rgba(248,113,113,0.12);--danger-border:rgba(248,113,113,0.32);}
[data-theme="light"]{--bg:#FAFAF9;--bg-card:#FFFFFF;--bg-card-hover:#F5F5F4;--bg-header:rgba(250,250,249,0.9);--text:#1C1917;--text-muted:#78716C;--text-sub:#44403C;--accent:#4F46E5;--accent-hover:#4338CA;--accent-dim:rgba(79,70,229,0.08);--accent-border:rgba(79,70,229,0.25);--border:#E7E5E4;--border-subtle:#F5F5F4;--border-strong:#D6D3D1;--success:#16A34A;--warn:#D97706;--danger:#DC2626;--on-accent:#FFFFFF;--warn-bg:rgba(217,119,6,0.10);--warn-border:rgba(217,119,6,0.28);--info-bg:rgba(79,70,229,0.06);--info-border:rgba(79,70,229,0.22);--ok-bg:rgba(22,163,74,0.08);--ok-border:rgba(22,163,74,0.28);--danger-bg:rgba(220,38,38,0.08);--danger-border:rgba(220,38,38,0.26);}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);background-image:radial-gradient(920px 460px at 50% -8%,var(--accent-dim),transparent 62%);background-repeat:no-repeat;background-attachment:fixed;color:var(--text);line-height:1.6;min-height:100vh;padding-top:var(--header-height);-webkit-font-smoothing:antialiased;overflow-x:hidden;}
a{color:var(--accent);text-decoration:none;}
a:hover{color:var(--accent-hover);}
.wrap{max-width:860px;margin:0 auto;padding:0 1.25rem;}
h1{font-size:clamp(1.75rem,4.5vw,2.5rem);font-weight:800;letter-spacing:-0.03em;line-height:1.12;}
h2{font-size:clamp(1.3rem,3vw,1.7rem);font-weight:700;letter-spacing:-0.025em;line-height:1.2;}
h3{font-size:1.05rem;font-weight:650;}
p{color:var(--text-muted);}

/* Header */
.site-header{position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--header-height);background:var(--bg-header);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border);}
.site-header .bar{max-width:860px;margin:0 auto;padding:0 1.25rem;height:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.logo-wrap{display:flex;align-items:center;gap:0.55rem;color:var(--text);flex-shrink:0;}
.logo-wrap:hover{color:var(--text);opacity:0.9;}
.logo-icon{width:36px;height:36px;border-radius:50%;overflow:hidden;box-shadow:0 2px 12px rgba(79,70,229,0.35);flex-shrink:0;}
.logo-icon img{width:100%;height:100%;object-fit:cover;display:block;}
.logo-text{font-size:1.25rem;font-weight:800;letter-spacing:-0.04em;}
.logo-text span{color:var(--accent);}
.header-actions{display:flex;align-items:center;gap:0.6rem;}
.theme-toggle{background:none;border:none;cursor:pointer;font-size:1.1rem;line-height:1;padding:0.35rem;border-radius:8px;}
.theme-toggle:hover{background:var(--bg-card-hover);}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.45rem;font-family:inherit;font-weight:700;font-size:0.9rem;border-radius:var(--radius-sm);cursor:pointer;border:1px solid transparent;transition:transform .15s ease,background .2s,box-shadow .2s;white-space:nowrap;}
.btn:active{transform:translateY(1px);}
.btn-primary{background:linear-gradient(135deg,var(--accent-hover),var(--accent));color:var(--on-accent);padding:0.6rem 1.05rem;box-shadow:0 6px 18px -4px rgba(99,102,241,0.5),inset 0 1px 0 rgba(255,255,255,0.16);}
.btn-primary:hover{filter:brightness(1.07);color:var(--on-accent);}
.btn-ghost{background:transparent;color:var(--text);border-color:var(--border-strong);padding:0.55rem 1rem;}
.btn-ghost:hover{background:var(--bg-card-hover);color:var(--text);}
.header-actions .btn-primary{padding:0.5rem 0.9rem;font-size:0.85rem;}

/* Breadcrumb + intro */
.breadcrumb{font-size:0.8rem;color:var(--text-muted);padding-top:1.75rem;display:flex;gap:0.4rem;flex-wrap:wrap;}
.breadcrumb a{color:var(--text-muted);}
.breadcrumb a:hover{color:var(--accent);}
.intro{padding:0.75rem 0 0.25rem;}
.eyebrow{display:inline-flex;align-items:center;gap:0.4rem;font-size:0.72rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent);margin-bottom:0.6rem;}
.eyebrow::before{content:'';width:16px;height:2px;background:var(--accent);border-radius:2px;}
.lead{font-size:1.05rem;color:var(--text-sub);margin-top:0.85rem;max-width:60ch;}
.lead b{color:var(--text);font-weight:650;}

/* Calculator card */
.calc{background:linear-gradient(180deg,var(--bg-card-hover),var(--bg-card));border:1px solid var(--border);border-radius:var(--radius);padding:1.6rem;margin-top:1.5rem;position:relative;box-shadow:0 2px 6px rgba(0,0,0,0.05),0 26px 55px -30px rgba(0,0,0,0.62);}
.calc::before{content:"";position:absolute;top:-1px;left:18px;right:18px;height:1px;background:linear-gradient(90deg,transparent,var(--accent-border),transparent);}
.fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0.9rem;}
.field label{display:block;font-size:0.78rem;font-weight:600;color:var(--text-muted);margin-bottom:0.4rem;letter-spacing:0.01em;}
.field input,.field select,.row input,.row select{width:100%;font-family:inherit;font-size:1.05rem;font-weight:600;color:var(--text);background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:0.7rem 0.8rem;font-variant-numeric:tabular-nums;transition:border-color .2s,box-shadow .2s;-moz-appearance:textfield;}
.field input::-webkit-outer-spin-button,.field input::-webkit-inner-spin-button,.row input::-webkit-outer-spin-button,.row input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.field input:focus,.field select:focus,.row input:focus,.row select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);}
.field select,.row select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A8A29E' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 0.6rem center;background-size:16px;padding-right:2rem;}
.field .hint{font-size:0.7rem;color:var(--text-muted);margin-top:0.3rem;}
.calc-actions{display:flex;align-items:center;gap:0.75rem;margin-top:1.1rem;flex-wrap:wrap;}
.btn-calc{background:linear-gradient(135deg,var(--accent-hover),var(--accent));color:var(--on-accent);padding:0.82rem 1.7rem;font-size:0.98rem;box-shadow:0 10px 26px -8px rgba(99,102,241,0.55),inset 0 1px 0 rgba(255,255,255,0.18);}
.btn-calc:hover{filter:brightness(1.07);color:var(--on-accent);}
.calc-err{color:var(--danger);font-size:0.85rem;font-weight:600;display:none;}

/* Dynamic rows (subjects / semesters) */
.rows{display:flex;flex-direction:column;gap:0.6rem;}
.row{display:grid;gap:0.6rem;align-items:end;}
.row .idx{font-size:0.78rem;font-weight:600;color:var(--text-muted);align-self:center;text-align:center;}
.row-del{background:transparent;border:1px solid var(--border-strong);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;font-size:1.1rem;line-height:1;height:44px;width:44px;flex-shrink:0;transition:color .2s,border-color .2s;}
.row-del:hover{color:var(--danger);border-color:var(--danger);}
.row-head{font-size:0.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.04em;}
.add-row{margin-top:0.85rem;background:transparent;color:var(--accent);border:1px dashed var(--accent-border);border-radius:var(--radius-sm);padding:0.6rem 1rem;font-family:inherit;font-weight:650;font-size:0.88rem;cursor:pointer;display:inline-flex;align-items:center;gap:0.4rem;transition:background .2s;}
.add-row:hover{background:var(--accent-dim);}

/* Result */
.result{margin-top:1.1rem;border-radius:var(--radius);border:1px solid var(--accent-border);background:linear-gradient(180deg,var(--accent-dim),var(--bg) 58%);overflow:hidden;display:none;box-shadow:0 20px 44px -32px rgba(99,102,241,0.55);}
.result.show{display:block;animation:rIn .35s ease;}
@keyframes rIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
.result-top{padding:1.25rem 1.4rem;}
.status-pill{display:inline-flex;align-items:center;gap:0.4rem;font-size:0.72rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;padding:0.28rem 0.65rem;border-radius:99px;margin-bottom:0.7rem;}
.status-pill.ok{background:var(--ok-bg);color:var(--success);border:1px solid var(--ok-border);}
.status-pill.warn{background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn-border);}
.status-pill.info{background:var(--info-bg);color:var(--accent);border:1px solid var(--info-border);}
.stats{display:flex;gap:1.6rem;flex-wrap:wrap;align-items:flex-end;}
.stat .num{font-size:2.6rem;font-weight:800;letter-spacing:-0.04em;line-height:1;font-variant-numeric:tabular-nums;color:var(--text);}
.stat .num.accent{color:var(--accent);background:linear-gradient(135deg,var(--accent-hover),var(--accent));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.stat .cap{font-size:0.78rem;color:var(--text-muted);margin-top:0.35rem;text-transform:uppercase;letter-spacing:0.06em;}
.result-note{font-size:0.9rem;color:var(--text-muted);margin-top:0.9rem;line-height:1.55;}
.result-note b{color:var(--text);}

/* Contextual app CTA */
.cta-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.4rem;border-top:1px solid var(--border);background:var(--info-bg);flex-wrap:wrap;}
.cta-ico{width:44px;height:44px;border-radius:11px;overflow:hidden;flex-shrink:0;box-shadow:0 4px 14px rgba(99,102,241,0.35);}
.cta-ico img{width:100%;height:100%;object-fit:cover;display:block;}
.cta-copy{flex:1;min-width:200px;}
.cta-copy b{display:block;font-size:0.95rem;color:var(--text);font-weight:700;}
.cta-copy span{display:block;font-size:0.83rem;color:var(--text-muted);margin-top:2px;}
.cta-card .btn{padding:0.65rem 1.15rem;font-size:0.9rem;}
.cta-note{font-size:0.72rem;color:var(--text-muted);width:100%;margin-top:0.1rem;}

/* Content sections */
section.block{padding:2.5rem 0;border-top:1px solid var(--border);margin-top:2.5rem;}
section.block:first-of-type{margin-top:3rem;}
.block h2{margin-bottom:0.5rem;}
.block p{margin:0.7rem 0;line-height:1.75;}
.formula{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0.9rem 1.1rem;color:var(--text);font-size:0.92rem;margin:0.9rem 0;overflow-x:auto;}
.worked{background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);padding:1rem 1.2rem;margin:1rem 0;font-size:0.92rem;color:var(--text-sub);}
.worked b{color:var(--text);}
ul.steps{list-style:none;display:flex;flex-direction:column;gap:0.7rem;margin:1rem 0;}
ul.steps li{display:flex;gap:0.8rem;font-size:0.95rem;color:var(--text-sub);}
ul.steps .n{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--accent-dim);color:var(--accent);font-weight:700;font-size:0.8rem;display:grid;place-items:center;}
.tbl-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-sm);margin:1rem 0;}
table.g{border-collapse:collapse;width:100%;font-size:0.88rem;min-width:360px;}
table.g th,table.g td{text-align:left;padding:0.6rem 0.9rem;border-bottom:1px solid var(--border);}
table.g thead th{background:var(--bg-card);font-size:0.72rem;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-muted);}
table.g tbody tr:last-child td{border-bottom:none;}
table.g td.mono{font-family:ui-monospace,Menlo,monospace;color:var(--text);}

/* Related tools */
.related{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;margin-top:1.2rem;}
.related a{display:block;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0.9rem 1.1rem;color:var(--text);transition:border-color .15s,transform .15s;}
.related a:hover{border-color:var(--accent-border);transform:translateY(-2px);color:var(--text);box-shadow:0 14px 30px -20px rgba(99,102,241,0.6);}
.related b{font-size:0.95rem;font-weight:700;}
.related span{display:block;font-size:0.8rem;color:var(--text-muted);margin-top:0.2rem;}

/* FAQ */
.faq{display:flex;flex-direction:column;gap:0.6rem;margin-top:1.2rem;}
details.qa{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 1.1rem;}
details.qa summary{cursor:pointer;list-style:none;padding:1rem 0;font-weight:650;color:var(--text);font-size:0.97rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;}
details.qa summary::-webkit-details-marker{display:none;}
details.qa summary::after{content:'+';color:var(--accent);font-weight:700;font-size:1.2rem;transition:transform .2s;}
details.qa[open] summary::after{transform:rotate(45deg);}
details.qa .a{padding:0 0 1.1rem;color:var(--text-muted);font-size:0.92rem;line-height:1.7;}

/* Closing CTA band */
.cta-band{margin:3rem 0 0;background:linear-gradient(135deg,var(--accent),var(--accent-hover));border-radius:var(--radius);padding:2.4rem 1.75rem;text-align:center;color:#fff;position:relative;overflow:hidden;box-shadow:0 26px 60px -28px rgba(99,102,241,0.7);}
.cta-band::before{content:"";position:absolute;inset:0;background:radial-gradient(620px 230px at 50% -30%,rgba(255,255,255,0.22),transparent 70%);pointer-events:none;}
.cta-band>*{position:relative;}
.cta-band h2{color:#fff;}
.cta-band p{color:rgba(255,255,255,0.92);max-width:46ch;margin:0.6rem auto 1.3rem;}
.cta-band .btn{background:#fff;color:var(--accent);padding:0.8rem 1.6rem;font-size:1rem;box-shadow:0 8px 24px rgba(0,0,0,0.2);}
.cta-band .btn:hover{background:#fff;color:var(--accent-hover);transform:translateY(-1px);}
.cta-band .free{display:block;margin-top:0.8rem;font-size:0.8rem;color:rgba(255,255,255,0.85);}

/* Footer */
footer.site-footer{border-top:1px solid var(--border);margin-top:3.5rem;padding:2rem 0;}
.foot{max-width:860px;margin:0 auto;padding:0 1.25rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center;}
.foot .brand{font-weight:800;letter-spacing:-0.03em;color:var(--text);}
.foot .brand span{color:var(--accent);}
.foot nav{display:flex;gap:1.1rem;flex-wrap:wrap;font-size:0.83rem;}
.foot nav a{color:var(--text-muted);}
.foot nav a:hover{color:var(--accent);}
.foot .copy{width:100%;font-size:0.78rem;color:var(--text-muted);border-top:1px solid var(--border-subtle);padding-top:1rem;margin-top:0.4rem;}

/* Sticky mobile app bar */
.appbar{position:fixed;left:0;right:0;bottom:0;z-index:1500;background:var(--bg-card);border-top:1px solid var(--border);box-shadow:0 -6px 24px rgba(0,0,0,0.25);display:none;align-items:center;gap:0.8rem;padding:0.7rem 1rem;transform:translateY(110%);transition:transform .3s ease;}
.appbar.show{display:flex;transform:translateY(0);}
.appbar .ico{width:38px;height:38px;border-radius:9px;overflow:hidden;flex-shrink:0;}
.appbar .ico img{width:100%;height:100%;object-fit:cover;display:block;}
.appbar .t{flex:1;min-width:0;}
.appbar .t b{display:block;font-size:0.85rem;color:var(--text);font-weight:700;line-height:1.2;}
.appbar .t span{display:block;font-size:0.74rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.appbar .btn{padding:0.55rem 0.95rem;font-size:0.82rem;}
.appbar .x{background:none;border:none;color:var(--text-muted);font-size:1.2rem;cursor:pointer;padding:0.2rem 0.4rem;line-height:1;flex-shrink:0;}

/* Tools nav links (Student Tools / PDF Tools) — shown directly in the header */
.nav-links{display:flex;align-items:center;gap:0.25rem;}
.nav-link{font-family:inherit;font-weight:650;font-size:0.9rem;color:var(--text-muted);padding:0.5rem 0.75rem;border-radius:var(--radius-sm);white-space:nowrap;transition:color .2s,background .2s;}
.nav-link:hover{color:var(--text);background:var(--bg-card-hover);}
.nav-link[aria-current="page"]{color:var(--accent);background:var(--accent-dim);}
@media (max-width:600px){
  .header-actions .btn-primary{display:none;}
  .nav-link{padding:0.4rem 0.5rem;font-size:0.82rem;}
}
@media (max-width:430px){ .logo-text{display:none;} }

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important;}}
