:root{--bg:#fafafa;--panel:#ffffff;--text:#111827;--muted:#6b7280;--brand:#dc2626;--brand-dark:#b91c1c;--line:#e5e7eb}*{box-sizing:border-box}body,html{height:100%}body{margin:0;color:var(--text);background:var(--bg);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Inter,"Helvetica Neue",Arial,"Noto Sans","Apple Color Emoji","Segoe UI Emoji"}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.container{max-width:1100px;margin:0 auto;padding:24px}.container.wide{max-width:1280px}.nav{display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:inline-flex;align-items:center;gap:12px;font-weight:800;letter-spacing:.2px}.brand .logo{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#fff;border:2px solid var(--brand);box-shadow:0 1px 2px rgba(0,0,0,.04)}.brand span{font-size:1.1rem}.cta{display:inline-flex;gap:8px;align-items:center;font-weight:700;padding:10px 14px;border-radius:12px;background:var(--brand);color:#fff;border:1px solid var(--brand);box-shadow:0 1px 2px rgba(0,0,0,.05);cursor:pointer;transition:transform .06s ease,background .15s ease,border-color .15s ease;outline:2px solid transparent;outline-offset:2px}.cta:hover{transform:translateY(-1px);background:var(--brand-dark);border-color:var(--brand-dark)}.cta:active{transform:translateY(0)}.cta:focus-visible{outline:3px solid rgba(220,38,38,.35)}.btn-ghost{background:0 0;color:var(--text);border:1px solid var(--line)}.btn-ghost:hover{background-color:var(--brand);border-color:var(--brand);color:#fff}.btn-small{font-size:.9rem;padding:8px 10px;border-radius:10px}.icon-btn,.link-btn{display:inline-flex;align-items:center;gap:6px;font-weight:700;padding:6px 10px;border-radius:999px;background:#fff;color:var(--text);border:1px solid var(--line);box-shadow:0 1px 2px rgba(0,0,0,.04);cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .06s ease}.icon-btn:hover,.link-btn:hover{border-color:var(--brand);color:var(--brand)}.link-btn.is-linked{background:#fee2e2;border-color:var(--brand);color:#7f1d1d}.icon-btn{border-style:dashed}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 2px 12px rgba(0,0,0,.06);padding:20px}.section{padding:28px 0}.action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:8px 0 16px}.action-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:0 1px 6px rgba(0,0,0,.04);display:grid;align-content:start;gap:8px}.action-head{font-weight:800;letter-spacing:-.01em}.action-kicker{margin:0;color:var(--muted);font-size:.95rem;line-height:1.35}.action-card .btn-small{justify-self:start}@media (max-width:780px){.action-grid{grid-template-columns:1fr}}.accent{color:var(--brand);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.badge{display:inline-flex;align-items:center;gap:8px;font-size:.88rem;color:#374151;background:#f3f4f6;padding:6px 10px;border-radius:999px;font-weight:700}.badge .dot{width:8px;height:8px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px rgba(220,38,38,.15)}.kicker{color:var(--muted)}.hero{display:grid;grid-template-columns:1.1fr 0.9fr;gap:32px;align-items:center;padding:44px 0 16px}.hero h1{font-size:clamp(2.2rem, 4.6vw, 3.2rem);line-height:1.1;margin:0 0 12px;letter-spacing:-.015em}.hero p.lede{color:var(--muted);font-size:clamp(1rem, 2.2vw, 1.2rem);margin:0 0 24px}.hero-figure{position:relative;isolation:isolate;display:grid;place-items:center;padding:10px;height:100%}.hero-figure img{max-width:100%;height:auto;border-radius:16px;transform:none;box-shadow:0 2px 12px rgba(0,0,0,.06);border:1px solid var(--line);background:#fff}.section h2{font-size:clamp(1.6rem, 3vw, 2.1rem);margin:0 0 12px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.step{padding:18px;border-radius:14px;border:1px dashed var(--line);background:#f9fafb}.step strong{display:block;font-size:1rem;margin-top:6px}.step p{margin:6px 0 0;color:var(--muted);font-size:.98rem}.notes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:12px}.note{padding:14px;border-radius:12px;background:#f9fafb;border:1px solid var(--line);font-size:.95rem;color:var(--muted)}.table{width:100%;border-collapse:collapse;border:1px solid var(--line)}.table thead th{background:#f9fafb;color:#111827;font-weight:700;font-size:.95rem}.table td,.table th{border-top:1px solid var(--line);padding:10px;text-align:left;vertical-align:middle}.table td:first-child,.table th:first-child{width:40px;text-align:center}.table td:last-child,.table th:last-child{width:48px;text-align:center}.table .period-col{width:90px;text-align:center;font-weight:700}.table .days-col{width:320px}.table .period-label{font-weight:700;background:#fee2e2;color:#7f1d1d;padding:4px 8px;border-radius:8px;display:inline-block}input[type=number],input[type=text],select{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--text)}input::placeholder{color:#9ca3af}input:focus,select:focus{outline:3px solid rgba(220,38,38,.2);border-color:var(--brand)}.days-picker{display:grid;grid-auto-flow:column;grid-template-columns:repeat(7,1fr);gap:6px;align-items:center}.days-picker label{position:relative;display:inline-flex;justify-content:center;align-items:center;padding:4px 6px;border-radius:8px;border:1px solid var(--line);background:#fff;font-weight:700;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.days-picker label input{position:absolute;inset:0;opacity:0;cursor:pointer}.days-picker label:has(input:checked){background:#fef2f2;border-color:var(--brand);color:var(--brand-dark)}.days-picker label:first-child{grid-column:auto}.output-table{margin-top:16px}.output-table table{width:100%;border-collapse:collapse;border:1px solid var(--line)}.output-table th{background:#f9fafb;padding:10px;border-bottom:1px solid var(--line);text-align:left}.output-table td{padding:10px;border-top:1px solid var(--line)}.output-table .day-col{line-height:1.3}.output-table table.zebra-cols tr>td:nth-child(3),.output-table table.zebra-cols tr>td:nth-child(5),.output-table table.zebra-cols tr>td:nth-child(7),.output-table table.zebra-cols tr>th:nth-child(3),.output-table table.zebra-cols tr>th:nth-child(5),.output-table table.zebra-cols tr>th:nth-child(7){background-color:#f3f4f6!important}.output-table table.zebra-cols thead tr{background-color:#fef2f2}.output-table table.zebra-cols td.period-label{background-color:#fef2f2;font-weight:700}.day-col{font-size:.9rem;line-height:1.35}.day-col .class-name{font-weight:700;font-size:1rem;color:var(--text)}.day-col .teacher-name{font-style:italic;color:var(--muted)}.day-col .room-label{font-weight:700;margin-right:2px}.day-col .room-number{font-weight:500}footer{color:var(--muted);padding:40px 0 24px;text-align:center}footer a.ghost{opacity:.85;border-bottom:1px dashed #9ca3af}.page-title{margin:6px 0 18px}.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center}@media (max-width:940px){.nav{flex-wrap:wrap}.hero{grid-template-columns:1fr}.notes,.steps{grid-template-columns:1fr}.table .days-col{width:auto}}.site-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;background:var(--panel);border-bottom:1px solid var(--line)}.site-header .logo{display:inline-flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-weight:800;letter-spacing:.2px}.site-header .logo .logo-mark{width:40px;height:40px;color:var(--brand)}.site-header .logo .logo-text{font-size:1.1rem}.site-header .logo .logo-accent{fill:var(--brand)}.site-header .site-nav{display:inline-flex;gap:8px}.site-header .site-nav a{padding:6px 10px;border-radius:10px;border:1px solid transparent;transition:background .15s ease,border-color .15s ease,color .15s ease}.site-header .site-nav a:hover{background:#f9fafb;border-color:var(--line)}.main{padding-top:12px}.section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 8px}.section-header .actions{display:inline-flex;gap:8px;flex-wrap:wrap}@media (max-width:580px){.section-header{flex-direction:column;align-items:flex-start}.section-header .actions{width:100%}.section-header .actions .btn-small{width:100%;justify-content:center}}:root{--font-heading:"Outfit",system-ui,-apple-system,Segoe UI,Roboto,Inter,"Helvetica Neue",Arial,"Noto Sans"}h1,h2,h3{font-family:var(--font-heading);font-weight:800;letter-spacing:-.01em}.title-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 18px}.title-left{display:inline-flex;align-items:center;gap:10px}.title-bear{display:inline-block;width:72px;height:45px}.title-bear img{height:100%;width:auto;object-fit:cover;object-position:20% 30%;transform:translateX(-8px);display:block}@media (max-width:580px){.title-bar{flex-direction:column;align-items:flex-start;gap:8px}}.page-subtitle{font:inherit;font-size:clamp(1.2rem, 2.2vw, 1.6rem);margin:0}.section-header{justify-content:flex-start}.section-header .actions{margin-left:12px;justify-content:flex-start}.output-table table{width:100%;border-collapse:collapse;table-layout:auto!important}.output-table td,.output-table th{padding:10px 16px!important;text-align:left;vertical-align:top;white-space:normal;word-break:break-word}.output-table td.period-label,.output-table th.period-label{white-space:nowrap;text-align:center;background-color:#fef2f2;font-weight:700}.output-table .zebra-cols tr>td:nth-child(3),.output-table .zebra-cols tr>td:nth-child(5),.output-table .zebra-cols tr>td:nth-child(7),.output-table .zebra-cols tr>th:nth-child(3),.output-table .zebra-cols tr>th:nth-child(5),.output-table .zebra-cols tr>th:nth-child(7){background-color:#f9fafb}footer .disclaimer{margin-top:16px;font-size:.8rem;color:var(--muted);line-height:1.4}footer .credit{margin-top:12px;font-size:.85rem;color:var(--muted)}footer .credit a{color:var(--muted);text-decoration:none}footer .credit a:hover{color:var(--brand);text-decoration:underline}.row-actions{display:inline-flex;gap:6px;justify-content:center;align-items:center}.row-actions button{min-width:28px;height:28px;line-height:1;padding:0;font-weight:700;border-radius:6px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:12px}.table{min-width:720px}@media (max-width:640px) and (orientation:portrait){.hero{display:flex;flex-direction:column;gap:16px;padding:28px 0 12px}.hero-figure{order:-1}.hero-figure img{max-width:78vw;max-height:42vh;margin:0 auto}}@media (max-width:940px) and (orientation:landscape){.hero{display:grid;grid-template-columns:1.2fr 0.8fr;align-items:center;gap:20px;padding:24px 0 12px}.hero-figure img{max-width:min(46vw,420px);max-height:55vh;margin:0 auto}}@media (max-width:380px){.hero h1{font-size:clamp(1.8rem, 7vw, 2.2rem)}}@media (max-width:640px){.container.wide{padding:16px}.table td,.table th{padding:6px}.table .period-col{width:70px}.cta{width:100%;justify-content:center}.section-header{flex-direction:column;align-items:flex-start}.section-header .actions{margin-left:0;width:100%}.section-header .actions .btn-small{width:100%;justify-content:center}.table .days-col{width:auto}.days-picker{display:grid;grid-template-columns:1fr 1fr;grid-auto-flow:row;gap:6px;align-items:center;min-width:0}.days-picker label{display:flex;justify-content:center;align-items:center;padding:8px 10px;min-height:36px;font-size:.9rem;width:100%}.days-picker label:first-child{grid-column:1/-1}}@media (max-width:940px) and (orientation:landscape){.table .days-col{width:auto}.days-picker{display:grid;grid-template-columns:1fr 1fr;grid-auto-flow:row;gap:6px;align-items:center;min-width:0}.days-picker label{display:flex;justify-content:center;align-items:center;padding:8px 10px;min-height:36px;font-size:.9rem;width:100%}.days-picker label:first-child{grid-column:1/-1}}