.print-hub{max-width:1160px;margin:0 auto;padding:8px 20px 48px}.print-hub-intro h1{font-size:28px;line-height:1.3}.print-hub-intro p{color:var(--muted);max-width:36em;margin-top:8px;font-size:16px}@media (min-width:768px){.print-hub-intro h1{font-size:40px}.print-hub-intro p{font-size:19px}}.ph-refresh{border:1.5px solid var(--btn-line);background:var(--surface);min-height:44px;color:var(--green);border-radius:999px;margin-top:12px;padding:0 16px;font-size:14px;font-weight:700}.ph-grid{display:block}@media (min-width:1024px){.ph-grid{grid-template-columns:minmax(0,1fr) 440px;align-items:start;gap:48px;display:grid}.ph-aside{position:sticky;top:16px}}.ph-step-head{align-items:center;gap:10px;margin-top:30px;display:flex}.ph-step-num{background:var(--green);color:#fff;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:14px;font-weight:700;display:grid}.ph-step-title{font-family:Zen Maru Gothic,sans-serif;font-size:19px;font-weight:700}.ph-step-note{color:var(--muted);margin-left:auto;font-size:14px}.ph-aside .ph-step-head{margin-top:0}@media (min-width:768px){.ph-step-num{width:32px;height:32px;font-size:16px}.ph-step-title{font-size:22px}}.ph-genre-section{margin-top:0}.ph-genres{grid-template-columns:1fr;gap:8px;margin-top:14px;display:grid}.ph-genre{background:var(--surface);border:1.5px solid var(--btn-line);text-align:left;min-height:64px;color:inherit;border-radius:16px;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.ph-genre.is-selected{background:var(--mustard-tint);border-color:var(--mustard)}.ph-genre-name{overflow-wrap:anywhere;min-width:0;font-size:16px;font-weight:700;line-height:1.35}.ph-genre-count{white-space:nowrap;color:var(--muted);justify-self:end;font-size:14px}.ph-genre-count.is-pending{color:var(--faint)}.ph-genre-count.is-error{color:var(--err)}@media (min-width:768px){.ph-genres{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}.ph-genre{align-items:start;min-height:76px}.ph-genre .lucide,.ph-genre svg,.ph-genre img{margin-top:2px}.ph-genre-name{align-items:center;min-height:2.7em;display:flex}}.ph-next-step{scroll-margin-top:24px}.ph-next-step:focus{outline:none}.ph-next-step:focus:not(:focus-visible){outline:none}.ph-tabs{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.ph-tab{background:var(--surface);border:1.5px solid var(--btn-line);height:44px;color:var(--ink);border-radius:999px;padding:0 20px;font-size:15px;font-weight:700}.ph-tab.is-active{background:var(--green);color:#fff;border-color:var(--green)}.ph-problems{flex-direction:column;gap:8px;margin-top:12px;display:flex}.ph-problem{background:var(--surface);border:1.5px solid var(--line);text-align:left;min-height:56px;color:inherit;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.ph-problem.is-selected{background:var(--mustard-tint);border-color:var(--mustard)}.ph-problem-main{min-width:0;display:block}.ph-problem-date{font-size:16px;font-weight:700;display:block}.ph-problem-id{color:var(--faint);overflow-wrap:anywhere;margin-top:2px;font-family:ui-monospace,monospace;font-size:13px;display:block}.ph-problem-badge{color:var(--muted);flex:none;font-size:13px;font-weight:700}.ph-problem-badge.is-record{color:var(--green)}.ph-empty{background:var(--surface-2);border:1.5px dashed var(--btn-line);color:var(--muted);border-radius:14px;margin-top:12px;padding:14px 16px;font-size:15px;line-height:1.7}.ph-empty strong{color:var(--ink)}.ph-error{background:var(--surface);border:1.5px solid var(--err);color:var(--ink);border-radius:14px;margin-top:12px;padding:14px 16px}.ph-error strong{margin-bottom:4px;display:block}.ph-retry{border:1.5px solid var(--btn-line);background:var(--surface);min-height:44px;color:var(--green);border-radius:999px;margin-top:10px;padding:0 18px;font-weight:700}.ph-loading{color:var(--faint);margin-top:12px;font-size:15px}.ph-modes{grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;display:grid}.ph-mode{background:var(--surface);border:1.5px solid var(--btn-line);text-align:left;color:inherit;border-radius:14px;padding:12px 14px}.ph-mode.is-selected{background:var(--mustard-tint);border-color:var(--mustard)}.ph-mode-title{font-size:15px;font-weight:700;display:block}.ph-mode-desc{color:var(--muted);margin-top:2px;font-size:13px;line-height:1.5;display:block}.ph-output{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:6px;margin-top:14px;font-size:14px;display:flex}.ph-output strong{color:var(--ink)}.ph-output-label{white-space:nowrap;flex:none}.ph-count-note{text-align:center;color:var(--faint);margin-top:4px;font-size:13px;line-height:1.6}.ph-stepper{align-items:center;gap:12px;display:flex}.ph-step-btn{border:1.5px solid var(--btn-line);background:var(--surface);width:44px;height:44px;color:var(--green);border-radius:50%;place-items:center;font-size:20px;font-weight:700;display:grid}.ph-step-value{text-align:center;min-width:1.4em;font-family:ui-monospace,monospace;font-size:20px;font-weight:600}.ph-note-registration{color:var(--faint);margin-top:18px;font-size:13px;line-height:1.7}.ph-preview-wrap{justify-content:center;padding:22px 0 0;display:flex;position:relative}.ph-preview-back{aspect-ratio:210/297;border:1px solid var(--line);width:250px;box-shadow:var(--shadow-paper);background:#fff;position:absolute;top:32px;left:50%;transform:translate(calc(12px - 50%))}.ph-a4-viewport{aspect-ratio:210/297;width:250px;box-shadow:var(--shadow-paper);background:#fff;position:relative;overflow:hidden}.ph-a4-viewport .print-pages{transform-origin:0 0;color:#000;background:#fff;width:210mm;font-family:"M PLUS 2",sans-serif;display:block;position:absolute;top:0;left:0;transform:scale(.315)}.ph-a4-viewport .print-page{display:none}.ph-a4-viewport .print-page:first-child{box-sizing:border-box;width:210mm;min-height:297mm;padding:18mm;display:block}.ph-a4-viewport .print-page header{border-bottom:1px solid #000;justify-content:space-between;font-size:12pt;display:flex}.ph-a4-viewport .print-page h1{margin:12mm 0 4mm;font-family:Zen Maru Gothic,sans-serif;font-size:26pt}.ph-a4-viewport .print-page>p{font-size:12pt}.ph-a4-viewport .print-page table{border-collapse:collapse;table-layout:fixed;border:2pt solid #000;width:165mm;height:165mm;margin-top:8mm}.ph-a4-viewport .print-page.print-large table{width:174mm;height:174mm}.ph-a4-viewport .print-page td{text-align:center;border:.6pt solid #555;height:18mm;font:20pt "M PLUS 2",sans-serif}.ph-a4-viewport .print-page.print-large td{font-size:26pt}.ph-a4-viewport .print-page td:nth-child(3n){border-right:2pt solid #000}.ph-a4-viewport .print-page tr:nth-child(3n) td{border-bottom:2pt solid #000}.ph-a4-viewport .print-page .print-id{overflow-wrap:anywhere;margin-top:8mm;font-size:9pt;line-height:1.7}.ph-a4-viewport .multi-print h1{margin:8mm 0 4mm;font-family:Zen Maru Gothic,sans-serif;font-size:22pt}.ph-a4-viewport .multi-print .mp-page-board{justify-content:center;margin:6mm 0;display:flex}.ph-a4-viewport .multi-print .mp-rules h2{margin:4mm 0 2mm;font-size:13pt}.ph-a4-viewport .multi-print .mp-rules ul{margin:0 0 4mm;padding-left:6mm;font-size:11pt}.ph-a4-viewport .multi-print .mp-rules li{margin-bottom:1.5mm;line-height:1.5}.ph-a4-viewport .multi-print .mp-page-id{color:#000;margin-top:6mm;font-size:9pt}.ph-a4-viewport .multi-print .board-zone{box-shadow:none;background:#fff;border:0;padding:0;overflow:visible}.ph-a4-viewport .multi-print .sh-cell:disabled,.ph-a4-viewport .multi-print .geo-cell:disabled,.ph-a4-viewport .multi-print .island-hit:disabled,.ph-a4-viewport .multi-print .block-hit:disabled,.ph-a4-viewport .multi-print .tile:disabled{opacity:1}.ph-a4-viewport .multi-print .mg-grid{background:#000;border:2px solid #000}.ph-a4-viewport .multi-print .mg-cell{color:#000}.ph-a4-viewport .multi-print .mg-cell.is-given{background:#eee}.ph-a4-viewport .multi-print .mg-cell.is-sel{color:#000;background:#fff}.ph-a4-viewport .multi-print .sh-cell{border-color:#555}.ph-a4-viewport .multi-print .sh-cell.sh-1{background:#000}.ph-a4-viewport .multi-print .sh-cell.is-wall{background:repeating-linear-gradient(45deg,#555,#555 3px,#fff 3px 6px)}.ph-a4-viewport .multi-print .geo-line{stroke:#999}.ph-a4-viewport .multi-print .rect-shape,.ph-a4-viewport .multi-print .island,.ph-a4-viewport .multi-print .block,.ph-a4-viewport .multi-print .block-goal{stroke:#000;fill:#fff}.ph-a4-viewport .multi-print .bridge-line,.ph-a4-viewport .multi-print .path-line,.ph-a4-viewport .multi-print .path-wall{stroke:#000}.ph-sheets-label{color:var(--muted);text-align:center;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:14px;font-size:14px;display:flex}.ph-sheets-label strong{color:var(--ink);font-weight:700}@media print{.ph-a4-viewport,.ph-preview-back{display:none!important}}.ph-worksheet .ph-lines{display:none}@media print{.print-pages .ph-worksheet .ph-lines{flex-direction:column;gap:8mm;margin-top:8mm;display:flex}.print-pages .ph-worksheet .ph-line{border-bottom:.4mm solid #444;height:0;display:block}.print-pages .ph-worksheet-large .ph-lines{gap:11mm}}.ph-a4-viewport .ph-worksheet .ph-lines{flex-direction:column;gap:34px;margin-top:24px;display:flex}.ph-a4-viewport .ph-worksheet .ph-line{border-bottom:1px solid #444;height:0;display:block}@media print{.print-pages.ph-sheets .print-page.print-large table{width:174mm;height:174mm}.print-pages.ph-sheets .print-page.print-large td{font-size:26pt}.print-pages.ph-large.multi-print h1{font-size:30pt}.print-pages.ph-large .mp-rules h2,.print-pages.ph-large .mp-steps h2{font-size:16pt}.print-pages.ph-large .mp-rules ul,.print-pages.ph-large .mp-rules li,.print-pages.ph-large .mp-steps ul,.print-pages.ph-large .mp-steps ol,.print-pages.ph-large .mp-steps li,.print-pages.ph-large .mp-steps p{font-size:14pt}.print-pages.ph-large .mp-page-id{font-size:12pt}.print-pages.ph-large .mp-page-board{max-width:174mm;margin-left:auto;margin-right:auto}}.ph-step-head{grid-template-columns:auto minmax(0,1fr);display:grid}.ph-step-note{grid-column:2;margin-left:0}.ph-genre-search{flex-direction:column;gap:6px;margin-top:14px;font-size:14px;font-weight:700;display:flex}.ph-genre-search input{border:1.5px solid var(--btn-line);background:var(--surface);width:100%;min-height:48px;font:inherit;border-radius:12px;padding:10px 14px;font-size:16px}.ph-search-status{margin-top:8px;font-size:14px}.ph-search-status button{min-height:44px;color:var(--green);padding-inline:10px;text-decoration:underline}
