:root{--bg:#f7f8fa;--surface:#ffffff;--text:#1a2233;--text-soft:#5a6478;--border:#dfe3ea;--accent:#2451e6;--accent-soft:#e8edfd;--error:#c92a2a}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Hiragino Sans,Noto Sans JP,Yu Gothic UI,system-ui,sans-serif;line-height:1.7}main{max-width:960px;margin:0 auto;padding:24px 20px 80px}header.site{display:flex;align-items:baseline;gap:12px;padding:8px 0 28px}header.site .logo{align-items:center;color:var(--text);display:inline-flex;font-size:22px;font-weight:800;gap:8px;letter-spacing:.04em;text-decoration:none}header.site .logo svg{flex-shrink:0}header.site .logo .logo-text span{color:var(--accent)}header.site .tagline{color:var(--text-soft);font-size:13px}.hero{text-align:center;padding:20px 0 36px}.hero h1{font-size:clamp(24px,4.2vw,36px);font-weight:800;line-height:1.45}.hero p.lead{margin-top:12px;color:var(--text-soft);font-size:15px}.tool-grid{display:grid;grid-gap:18px;gap:18px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:8px}a.tool-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;color:inherit;display:block;padding:22px;text-decoration:none;transition:border-color .15s,transform .15s}a.tool-card:hover{border-color:var(--accent);transform:translateY(-2px)}a.tool-card h2{font-size:17px;margin-bottom:6px}a.tool-card h2 .ext{color:var(--text-soft);font-size:12px;font-weight:400;margin-left:6px}a.tool-card p{color:var(--text-soft);font-size:13.5px}a.tool-card .badge{background:var(--accent-soft);border-radius:999px;color:var(--accent);display:inline-block;font-size:11.5px;font-weight:700;margin-bottom:10px;padding:2px 10px}.note{color:var(--text-soft);font-size:13px;margin-top:28px;text-align:center}.tool-page h1{font-size:clamp(22px,3.6vw,30px);font-weight:800;line-height:1.45}.tool-page p.lead{color:var(--text-soft);font-size:14.5px;margin:10px 0 24px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:24px}.panel label.field{display:block;font-size:13.5px;font-weight:700;margin-bottom:6px}.panel input[type=url]{border:1px solid var(--border);border-radius:8px;font-size:15px;padding:11px 12px;width:100%}.panel input[type=url]:focus{border-color:var(--accent);outline:none}.panel textarea{border:1px solid var(--border);border-radius:8px;font:inherit;font-size:14.5px;padding:10px 12px;resize:vertical;width:100%}.panel textarea:focus{border-color:var(--accent);outline:none}.results .toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:24px 0 14px}.results .toolbar h2{font-size:17px;margin-right:auto}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow-x:auto}.table-wrap table{border-collapse:collapse;font-size:13px;width:100%}.table-wrap td,.table-wrap th{border-bottom:1px solid var(--border);max-width:320px;overflow:hidden;padding:7px 10px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.table-wrap th{background:#f0f2f6;color:var(--text-soft);font-size:12.5px}.options{display:flex;flex-wrap:wrap;gap:16px;margin:16px 0}.options label{align-items:center;display:flex;font-size:13.5px;gap:6px}button.action{background:var(--accent);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:15px;font-weight:700;padding:11px 26px}button.action:disabled{opacity:.5;cursor:default}.status{margin-top:12px;font-size:14px}.status .error{color:var(--error)}.status .info{color:var(--text-soft)}.dropzone{border:2px dashed var(--border);border-radius:14px;background:var(--surface);padding:40px 20px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.dropzone.dragging,.dropzone:hover{border-color:var(--accent);background:var(--accent-soft)}.dropzone .main-label{font-size:16px;font-weight:700}.dropzone .sub-label{margin-top:6px;color:var(--text-soft);font-size:13px}.store-links{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}a.store-link{background:var(--surface);border:1px solid var(--border);border-radius:10px;color:inherit;display:block;padding:12px 14px;text-decoration:none;transition:border-color .15s}a.store-link:hover{border-color:var(--accent)}a.store-link .store-name{display:block;font-size:14px;font-weight:700}a.store-link .store-note{color:var(--text-soft);display:block;font-size:12px;margin-top:2px}button.action.small{font-size:12.5px;padding:5px 12px}.options select{border:1px solid var(--border);border-radius:6px;font:inherit;margin-left:6px;padding:4px 8px}.exif-card{display:flex;gap:18px;margin-top:16px}.exif-card .thumb{border-radius:8px;flex-shrink:0;height:110px;object-fit:cover;width:110px}.exif-card .exif-body{min-width:0;flex:1 1}.exif-card .filename{font-size:13.5px;font-weight:700;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta-table{border-collapse:collapse;font-size:13px;margin-bottom:12px;width:100%}.meta-table th{color:var(--text-soft);font-weight:600;padding:3px 12px 3px 0;text-align:left;white-space:nowrap;width:1%}.meta-table td{padding:3px 0}.meta-table .danger{color:var(--error);font-weight:700}.meta-table .danger a{color:var(--error)}.meta-table .safe{color:#2b8a3e;font-weight:700}.exif-card .actions{display:flex;flex-wrap:wrap;gap:10px}@media (max-width:560px){.exif-card{flex-direction:column}}.panel.player{margin-top:16px}.panel.player .filename{font-size:14.5px;font-weight:700;margin-bottom:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seekbar{accent-color:var(--accent);display:block;width:100%}.time-row{color:var(--text-soft);display:flex;font-size:12.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;justify-content:space-between;margin:4px 0 14px}.transport{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.transport button{background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:13.5px;font-weight:600;padding:9px 14px}.transport button.play,.transport button:hover{border-color:var(--accent)}.transport button.play{background:var(--accent);color:#fff;font-size:15px;font-weight:700;min-width:140px;padding:11px 22px}.player-options{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:16px}.player-options label{align-items:center;color:var(--text-soft);display:flex;font-size:13px;gap:6px}.player-options select{border:1px solid var(--border);border-radius:6px;font-size:13px;padding:5px 8px}.save-indicator{color:#2b8a3e;font-size:12.5px;margin-top:14px;text-align:center}.panel.library{margin-top:20px}.panel.library h2{font-size:15px;margin-bottom:12px}.lib-item{border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:10px 16px;justify-content:space-between;padding:12px 0}.lib-item .lib-info{flex:1 1;min-width:220px}.lib-item .filename{font-size:13.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-item .lib-meta{color:var(--text-soft);font-size:12.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lib-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}button.action.small{font-size:13px;padding:7px 14px}.link-danger{background:none;border:none;color:var(--error);cursor:pointer;text-decoration:underline}.link-danger,details.history{font-size:12.5px}details.history summary{color:var(--text-soft);cursor:pointer}details.history ul{list-style:none;margin-top:6px}button.history-item{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12.5px;padding:2px 0;text-decoration:underline}.badge{background:var(--accent-soft);border-radius:999px;color:var(--accent);display:inline-block;font-size:11.5px;font-weight:700;padding:2px 10px}button.mini{background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:12.5px;font-weight:600;padding:7px 12px}button.mini:hover:not(:disabled){border-color:var(--accent)}button.mini:disabled{opacity:.5;cursor:default}button.action.secondary{background:var(--surface);border:1px solid var(--accent);color:var(--accent)}.panel textarea.prompt-input{border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:14.5px;line-height:1.6;padding:11px 12px;resize:vertical;width:100%}.panel textarea.prompt-input:focus{border-color:var(--accent);outline:none}.panel input[type=date],.panel input[type=datetime-local],.panel input[type=search],.panel input[type=text],.panel select{border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:13.5px;padding:8px 10px}.panel input:focus,.panel select:focus{border-color:var(--accent);outline:none}.plain-list{list-style:none}.plain-list li{padding:3px 0}.service-grid{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.service-row{align-items:center;border:1px solid var(--border);border-radius:8px;display:flex;font-size:13.5px;justify-content:space-between;padding:8px 12px}.service-row.on{background:var(--accent-soft);border-color:var(--accent)}.service-row label{align-items:center;display:flex;gap:8px;cursor:pointer}.service-row .hint{color:var(--text-soft);font-size:11.5px}.notice-panel{margin-bottom:16px}.notice-panel p{font-size:13.5px;margin-bottom:10px}.panel.ringing{animation:ring-pulse 1.2s ease-in-out infinite;border-color:var(--error);margin-top:16px}@keyframes ring-pulse{0%,to{box-shadow:0 0 0 0 rgba(201,42,42,.35)}50%{box-shadow:0 0 0 8px rgba(201,42,42,0)}}.ringing-title{font-size:18px;font-weight:800}.ringing-sub{color:var(--text-soft);font-size:13px;margin:4px 0 12px}.reminder-form{display:flex;flex-wrap:wrap;gap:8px}.reminder-form input[type=search],.reminder-form input[type=text]{flex:1 1;min-width:200px}.done-item{color:var(--text-soft);font-size:13px;gap:10px}.done-item,.launcher-row{align-items:center;display:flex}.launcher-row{flex-wrap:wrap;gap:8px;padding:6px 0}.launcher-row .row-no{color:var(--text-soft);font-size:12.5px;width:18px}.launcher-row .path-input{flex:2 1;min-width:220px}.launcher-row .args-input{flex:1 1;min-width:120px}.code-preview{background:#10141f;border-radius:8px;color:#d7dce7;font-size:12px;line-height:1.55;max-height:380px;overflow:auto;padding:14px;white-space:pre}.timeline-head{gap:14px;justify-content:space-between;margin-bottom:10px}.timeline-head,.unread-toggle{align-items:center;display:flex}.unread-toggle{font-size:13px;gap:6px}.rss-item{border-top:1px solid var(--border);padding:10px 0}.rss-item a{color:var(--accent);font-size:14.5px;font-weight:700;text-decoration:none}.rss-item a:hover{text-decoration:underline}.rss-item.read a{color:var(--text-soft);font-weight:400}.rss-summary{color:var(--text-soft);font-size:13px;margin-top:2px}.feed-error{color:var(--error)}.dream-form{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.dream-form .tag-input{flex:1 1;min-width:220px}.lucid-check{align-items:center;display:flex;font-size:13px;gap:6px}.dream-stats{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.stat{background:var(--bg);border-radius:10px;display:flex;flex-direction:column;padding:12px 14px}.stat-value{font-size:20px;font-weight:800}.stat-label{color:var(--text-soft);font-size:12px}.bar-row{align-items:center;display:flex;font-size:12.5px;gap:10px;padding:2px 0}.bar-label{overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap;width:110px}.bar-track{background:var(--bg);border-radius:4px;flex:1 1;height:12px}.bar-fill{background:var(--accent);border-radius:4px;height:100%;min-width:2px}.bar-count{color:var(--text-soft);white-space:nowrap;width:44px}.dream-entry{border-top:1px solid var(--border);padding:12px 0}.dream-head{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}.dream-head .spacer{flex:1 1}.dream-date{font-size:13px;font-weight:700}.dream-text{font-size:14px;white-space:pre-wrap}.dream-tags{margin-top:6px}button.tag{background:var(--accent-soft);border:none;border-radius:999px;color:var(--accent);cursor:pointer;font-size:12px;margin-right:6px;padding:2px 10px}.search-form{display:flex;gap:8px}.search-form input{flex:1 1}.search-result{border-top:1px solid var(--border);padding:10px 0}.search-result a{color:var(--accent);display:block;font-size:14.5px;font-weight:700;text-decoration:none}.search-result a:hover{text-decoration:underline}.host-badge{background:var(--bg);border-radius:4px;color:var(--text-soft);display:inline-block;font-size:11.5px;margin-bottom:2px;padding:1px 6px}section.explain{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:40px}section.explain article{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px}section.explain h3{font-size:14.5px;margin-bottom:6px}section.explain p{color:var(--text-soft);font-size:13px}header.site .site-nav{margin-left:auto}header.site .site-nav a{color:var(--text-soft);font-size:13.5px;text-decoration:none}header.site .site-nav a:hover{color:var(--accent)}.post-list{display:grid;grid-gap:14px;gap:14px}a.post-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;color:inherit;display:block;padding:18px 20px;text-decoration:none;transition:border-color .15s}a.post-card:hover{border-color:var(--accent)}a.post-card time{color:var(--text-soft);font-size:12.5px}a.post-card h2{font-size:16.5px;margin:4px 0 6px}a.post-card p{color:var(--text-soft);font-size:13.5px}.post-meta{font-size:13px;margin-bottom:8px}.post-meta,.post-meta a{color:var(--text-soft)}.post-body{font-size:15px;margin-top:20px}.post-body h2{border-bottom:1px solid var(--border);font-size:19px;margin:34px 0 12px;padding-bottom:8px}.post-body h3{font-size:16px;margin:26px 0 8px}.post-body p{margin:12px 0}.post-body ol,.post-body ul{margin:12px 0;padding-left:24px}.post-body li{margin:5px 0}.post-body a{color:var(--accent)}.post-body code{background:var(--accent-soft);border-radius:4px;font-size:.9em;padding:1px 5px}.post-body blockquote{border-left:3px solid var(--border);color:var(--text-soft);margin:12px 0;padding-left:14px}.post-body table{border-collapse:collapse;font-size:13.5px;margin:14px 0;width:100%}.post-body td,.post-body th{border:1px solid var(--border);padding:7px 10px;text-align:left}.tool-cta{background:var(--accent-soft);border-radius:14px;margin-top:36px;padding:22px 24px;text-align:center}.tool-cta .cta-label{color:var(--text-soft);font-size:13px;margin-bottom:12px}.tool-cta .cta-button{background:var(--accent);border-radius:8px;color:#fff;display:inline-block;font-size:15px;font-weight:700;padding:11px 26px;text-decoration:none}.tool-cta .cta-desc{color:var(--text-soft);font-size:13px;margin-top:12px}.other-tools{border-top:1px solid var(--border);margin-top:48px;padding-top:24px}.tool-article-link{font-size:13.5px;margin-bottom:16px}.tool-article-link a{color:var(--accent)}.other-tools h2{font-size:14.5px;margin-bottom:10px}.other-tools ul{display:grid;grid-gap:6px 24px;gap:6px 24px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));list-style:none}.other-tools a{color:var(--text-soft);font-size:13px;text-decoration:none}.other-tools a:hover{color:var(--accent);text-decoration:underline}footer.site{border-top:1px solid var(--border);font-size:12.5px;margin-top:72px;padding:20px 0;text-align:center}footer.site,footer.site a{color:var(--text-soft)}.log-analyzer .panel{margin-top:16px}.paste-log{margin-top:12px}.paste-log summary{color:var(--text-soft);cursor:pointer;font-size:13px}.paste-log .panel,.paste-log button.action{margin-top:10px}.section-title{font-size:15px;margin-bottom:10px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;overflow-wrap:anywhere}.log-stats{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));margin:16px 0 8px}.clickable-row{cursor:pointer}.clickable-row:hover td{background:var(--bg)}.clickable-row.active td{background:color-mix(in srgb,var(--accent) 10%,transparent)}.drill-head{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.drill-head .spacer{flex:1 1}.drill-head .section-title{margin-bottom:0}.drill-panel{border-color:var(--accent)}.agg-grid h3,.drill-panel h3{font-size:13.5px;margin:14px 0 6px}.agg-grid{display:grid;grid-gap:0 20px;gap:0 20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.log-analyzer .bar-row.wide .bar-label{width:42%}@media (max-width:560px){.log-analyzer .bar-row.wide .bar-label{width:130px}}.panel .hint{color:var(--text-soft);font-size:12.5px;margin-top:8px}.explain code,.panel .hint code,.tool-page p.lead code{background:var(--bg);border:1px solid var(--border);border-radius:5px;font-size:.92em;padding:1px 5px}.stat-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));margin:16px 0}.stat-grid .stat{background:var(--surface);border:1px solid var(--border)}.stat-grid .stat strong{font-size:20px;font-weight:800}.chip-row,.preset-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}button.chip,button.preset{background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--text);cursor:pointer;font-size:13px;padding:6px 14px}button.chip:hover,button.preset:hover{border-color:var(--accent)}button.chip.on,button.preset.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:700}.panel fieldset{border:0;margin-bottom:16px}.panel legend{color:var(--text-soft);font-size:13px;font-weight:700}.setting-row{margin-bottom:14px}.best-line{color:var(--accent);font-size:13px;font-weight:700;margin-top:10px}.target-panel .target-result{display:flex;flex-wrap:wrap;font-size:14px;gap:8px 24px;margin-top:10px}.target-panel .target-result strong{color:var(--accent);font-size:17px}.chart-wrap{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:16px}.chart{align-items:flex-end;display:flex;gap:1px;height:180px;overflow:hidden}.chart .bar{background:var(--accent-soft);border-radius:2px 2px 0 0;border-top:2px solid var(--accent);flex:1 1;min-width:1px}.chart .bar.hit{background:color-mix(in srgb,var(--accent) 45%,transparent)}.chart-axis{color:var(--text-soft);display:flex;font-size:12px;justify-content:space-between;margin-top:6px}.dice-table{max-height:420px;overflow-y:auto}.dice-table tr.on td{background:var(--accent-soft);font-weight:700}.drill-setup .action{margin-top:8px}.drill-progress{align-items:center;color:var(--text-soft);display:flex;font-size:13px;gap:14px}.drill-progress button{margin-left:auto}.drill-question{font-size:clamp(34px,9vw,56px);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:.02em;margin:18px 0 12px;text-align:center}.drill-input{background:var(--surface);border:2px solid var(--border);border-radius:12px;display:block;font-size:32px;font-weight:700;margin:0 auto;max-width:320px;padding:10px 16px;text-align:center;width:100%}.drill-input:focus{outline:none}.drill-input:focus,.drill-run.flash-ok{border-color:var(--accent)}.drill-run.flash-ng,.drill-run.flash-ng .drill-input{border-color:var(--error)}.drill-result h2{font-size:17px}.drill-actions{margin-top:16px}.drill-actions,.scan-toolbar{display:flex;flex-wrap:wrap;gap:10px}.scan-toolbar{align-items:center}.scan-toolbar .field{margin:0}.scan-canvas-wrap{margin-top:12px;width:100%}.scan-canvas{border:1px solid var(--border);border-radius:8px;cursor:crosshair;display:block;max-width:100%;touch-action:none}.scan-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.scan-preview{margin-top:18px}.scan-preview h3{font-size:14px;margin-bottom:8px}.scan-preview img{border:1px solid var(--border);border-radius:8px;display:block;max-width:100%}.scan-pages h2{font-size:16px;margin-bottom:10px}.page-list{display:flex;flex-direction:column;gap:6px;list-style:none}.page-list li{align-items:center;border:1px solid var(--border);border-radius:8px;display:flex;gap:8px;padding:6px 10px}.page-list li.on{border-color:var(--accent);background:var(--accent-soft)}.page-select{align-items:center;background:none;border:0;cursor:pointer;display:flex;flex:1 1;font:inherit;gap:10px;min-width:0;text-align:left}.page-no{background:var(--surface);border:1px solid var(--border);border-radius:6px;font-size:12px;font-weight:700;min-width:26px;padding:1px 6px;text-align:center}.page-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-ops,.tab-row{display:flex;gap:4px}.tab-row{border-bottom:1px solid var(--border);margin-bottom:16px}button.tab{background:none;border:0;border-bottom:3px solid transparent;color:var(--text-soft);cursor:pointer;font:inherit;font-weight:700;padding:8px 14px}button.tab:hover{color:var(--text)}button.tab.on{border-bottom-color:var(--accent);color:var(--accent)}.print-sheet{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px}.sheet-head h2{font-size:18px;margin-bottom:6px}.sheet-head .answer-tag{background:var(--accent-soft);border-radius:4px;color:var(--accent);font-size:12px;margin-left:8px;padding:2px 8px;vertical-align:middle}.sheet-meta{color:var(--text-soft);display:flex;flex-wrap:wrap;font-size:13px;gap:8px 24px;margin-bottom:14px}table.masu{border-collapse:collapse;table-layout:fixed;width:100%}table.masu td,table.masu th{border:1px solid #333;font-size:15px;font-weight:400;height:34px;text-align:center}table.masu th{background:var(--bg);font-weight:700}table.masu th.corner{background:var(--accent-soft)}ol.drill-sheet{display:grid;grid-gap:6px 18px;gap:6px 18px;list-style:none}ol.drill-sheet.cols-2{grid-template-columns:repeat(2,1fr)}ol.drill-sheet.cols-4{grid-template-columns:repeat(4,1fr)}ol.drill-sheet li{align-items:baseline;border-bottom:1px solid var(--border);display:flex;font-size:15px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;gap:6px;padding:5px 2px}ol.drill-sheet .q-no{color:var(--text-soft);font-size:12px;min-width:30px}ol.drill-sheet .q-text{white-space:nowrap}ol.drill-sheet .q-answer{font-weight:700;min-width:40px}@media print{.explain,.no-print,.other-tools,.tool-page>h1,.tool-page>p.lead,footer,header.site{display:none!important}main{max-width:none;padding:0}body{background:#fff}.print-sheet{border:0;border-radius:0;padding:0}table.masu td,table.masu th{height:46px}ol.drill-sheet li{padding:8px 2px}}.expr-row{align-items:center;display:flex;gap:8px;margin-bottom:8px}.expr-row input{flex:1 1}.expr-dot{border-radius:50%;display:inline-block;flex:none;height:10px;margin-right:6px;width:10px}.chart-svg{display:block;height:200px;width:100%}.target-list{list-style:none;margin-top:10px}.target-list li{align-items:center;display:flex;font-size:14px;gap:4px;padding:3px 0}.target-list strong{color:var(--accent);font-size:16px}.results .toolbar h2 .sub{color:var(--text-soft);font-size:13px;font-weight:400}.pdf-toolbar{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:12px;display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px;position:-webkit-sticky;position:sticky;top:8px;z-index:20}.pdf-toolbar label{align-items:center;color:var(--text-soft);display:flex;font-size:12.5px;gap:5px}.pdf-toolbar input[type=number]{border:1px solid var(--border);border-radius:6px;padding:4px 6px;width:58px}.pdf-toolbar .spacer{flex:1 1}.tool-btn{background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:13px;padding:6px 12px}.tool-btn.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:700}.tool-btn.danger{border-color:var(--error);color:var(--error)}.pdf-textinput textarea{border:1px solid var(--accent);border-radius:8px;font:inherit;margin-top:10px;padding:8px 10px;width:100%}.pdf-stage{display:flex;flex-direction:column;align-items:center;gap:18px;margin-top:14px;overflow-x:auto}.pdf-page{background:#fff;box-shadow:0 2px 10px rgba(20,30,60,.15);position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pdf-page img{display:block;pointer-events:none;width:100%}.pdf-page .ink-layer{left:0;pointer-events:none;position:absolute;top:0}.pdf-page .ink-layer polyline{pointer-events:stroke}.pdf-page .ink-layer polyline.selected{filter:drop-shadow(0 0 2px var(--accent))}.edit-item{cursor:move;line-height:1.3;position:absolute;white-space:pre-wrap}.edit-item.text{min-width:20px;outline:1px dashed transparent}.edit-item.whiteout{background:#fff;outline:1px dashed #f0c000}.edit-item.selected{outline:1.5px dashed var(--accent)}.scanner-video video{border-radius:10px;max-width:100%;width:420px}.scanner-video button{display:block;margin-top:10px}.scanner-form{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.scanner-form label{display:block;font-size:13px;font-weight:700}.scanner-form input{border:1px solid var(--border);border-radius:8px;font-size:15px;margin-top:4px;padding:9px 10px;width:100%}.scanner-form button{align-self:end}.filter-input{border:1px solid var(--border);border-radius:8px;font-size:13.5px;padding:7px 10px}.product-card{margin-top:12px}.product-head{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:8px}.product-name{font-size:14.5px;font-weight:700}.product-code{color:var(--text-soft);font-size:12px}.best-badge{background:#e6f7ec;border-radius:999px;font-size:11px;margin-left:6px;padding:1px 8px}.best-badge,.best-price{color:#2b8a3e;font-weight:700}.entry-date{color:var(--text-soft);font-size:12px}.privacy-table{width:100%;border-collapse:collapse;margin:.8rem 0;font-size:.92rem}.privacy-table td,.privacy-table th{border:1px solid var(--border);padding:.5rem .6rem;text-align:left;vertical-align:top}.privacy-table th{background:var(--bg);white-space:nowrap}.ef-input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px}.ef-results .toolbar h2{font-size:16px}.ef-sub{color:var(--text-soft);font-size:13px;font-weight:500;margin-left:8px}.ef-issues{display:grid;grid-gap:8px;gap:8px;list-style:none;margin-bottom:16px}.ef-issue{background:var(--surface);border:1px solid var(--border);border-left-width:4px;border-radius:10px;display:flex;gap:12px;padding:10px 14px}.ef-issue.ef-error{border-left-color:#d64545}.ef-issue.ef-warn{border-left-color:#e0a300}.ef-issue.ef-info{border-left-color:#6c8bd6}.ef-sev{flex:0 0 44px;font-size:12px;font-weight:800;padding-top:2px}.ef-error .ef-sev{color:#d64545}.ef-warn .ef-sev{color:#b58300}.ef-info .ef-sev{color:#4d6fc4}.ef-msg{font-size:14px;font-weight:700}.ef-detail{color:var(--text-soft);font-size:13px;margin-top:3px}.ef-block{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:14px;padding:16px 18px}.ef-block h3{font-size:14px;margin-bottom:10px}.ef-code-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.ef-code,.ef-pre{background:var(--bg);border:1px solid var(--border);border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13.5px;line-height:1.6;overflow-x:auto;padding:10px 12px}.ef-code{flex:1 1 300px;word-break:break-all}.ef-pre{margin:0;white-space:pre}.ef-explain{font-size:14.5px;line-height:1.7;padding-left:1.4em}.ef-explain li+li{margin-top:4px}.ef-tree{font-size:13px;overflow-x:auto}.ef-tree ol{border-left:2px solid var(--border);list-style:none;margin:4px 0 4px 10px;padding-left:14px}.ef-tree ol li{padding:3px 0}.ef-tree-bin{align-items:center;display:inline-flex;flex-wrap:wrap;gap:4px}.ef-node{border-radius:6px;display:inline-block;padding:1px 7px}.ef-fn{background:var(--accent-soft);color:var(--accent);font-weight:800}.ef-ref{background:#eaf3ff;color:#1c4f9c;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.ef-str{background:#fff3e0;color:#9a5b00}.ef-num{background:#eef7ea;color:#2b6d2f}.ef-op{font-weight:700}.ef-empty,.ef-op{color:var(--text-soft)}.wt-stats .stat{border-radius:12px;cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:2px;padding:12px 14px;text-align:left}.wt-stats .stat span{color:var(--text-soft);font-size:12px}.wt-stats .stat.on,.wt-stats button.stat:hover{border-color:var(--accent)}.wt-stats .stat.on{background:var(--accent-soft)}.wt-stats .wt-soon strong{color:#b58300}.wt-stats .wt-expired strong{color:var(--text-soft)}.wt-form-title{font-size:16px;margin-bottom:14px}.wt-form select{border:1px solid var(--border);border-radius:8px;font:inherit;font-size:14px;margin-top:4px;padding:9px 10px;width:100%}.wt-form input[type=file]{border:0;padding:6px 0}.wt-span2{grid-column:1/-1}.wt-quick{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.wt-quick .chip{font-size:12px;font-weight:500;padding:3px 10px}.wt-preview{border:1px solid var(--border);border-radius:8px;display:block;margin-top:8px;max-height:220px;max-width:100%}.wt-list{display:grid;grid-gap:10px;gap:10px;list-style:none}.wt-card{align-items:flex-start;background:var(--surface);border:1px solid var(--border);border-left-width:5px;border-radius:12px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:14px 16px}.wt-card.wt-soon{border-left-color:#e0a300}.wt-card.wt-active,.wt-card.wt-lifetime{border-left-color:#2b8a3e}.wt-card.wt-expired{border-left-color:var(--border);opacity:.75}.wt-card-main{flex:1 1 260px;min-width:0}.wt-card-head{align-items:center;display:flex;gap:10px;margin-bottom:4px}.wt-badge{border-radius:999px;font-size:11px;font-weight:800;padding:2px 9px}.wt-badge-soon{background:#fff4d6;color:#9a6b00}.wt-badge-active,.wt-badge-lifetime{background:#e6f7ec;color:#2b8a3e}.wt-badge-expired{background:var(--bg);color:var(--text-soft)}.wt-days{font-size:13px;font-weight:700}.wt-soon .wt-days{color:#9a6b00}.wt-name{font-size:16px;font-weight:800;overflow-wrap:anywhere}.wt-meta{color:var(--text-soft);font-size:12.5px;margin-top:4px}.wt-meta b{color:var(--text)}.wt-meta2{display:flex;flex-wrap:wrap;gap:4px 12px}.wt-sep{margin:0 3px}.wt-card-actions{display:flex;flex-wrap:wrap;gap:6px}.wt-viewer{align-items:center;background:rgba(0,0,0,.85);cursor:zoom-out;display:flex;flex-direction:column;gap:10px;inset:0;justify-content:center;padding:20px;position:fixed;z-index:50}.wt-viewer img{border-radius:8px;max-height:85vh;max-width:100%;object-fit:contain}.wt-viewer p{color:#fff;font-size:13px}.ep-parsed{display:grid;grid-gap:4px;gap:4px;list-style:none;margin-top:10px}.ep-parsed li{display:flex;flex-wrap:wrap;font-size:13px;gap:10px}.ep-parsed li span{color:var(--text-soft)}.ep-head{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:12px}.ep-exam-name{font-size:18px;font-weight:800}.ep-countdown{color:var(--text-soft);font-size:14px}.ep-countdown b{color:var(--accent);font-size:22px}.ep-head-actions{display:flex;gap:6px}.ep-progress{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;padding:14px 16px}.ep-bar{background:var(--bg);border-radius:999px;height:12px;overflow:visible;position:relative}.ep-bar-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .3s}.ep-bar-today{background:#e0a300;border-radius:2px;height:20px;position:absolute;top:-4px;width:3px}.ep-progress-meta{color:var(--text-soft);display:flex;flex-wrap:wrap;font-size:13px;gap:6px 18px;margin-top:10px}.ep-progress-meta b{color:var(--text)}.ep-overdue{background:#fff8e6;border:1px solid #f0d58a;border-radius:12px;font-size:14px;gap:12px;justify-content:space-between;padding:14px 16px}.ep-overdue,.ep-today h2{align-items:center;display:flex;flex-wrap:wrap;margin-bottom:12px}.ep-today h2{font-size:18px;gap:10px}.ep-done-badge{background:#e6f7ec;border-radius:999px;color:#2b8a3e;font-size:13px;font-weight:800;padding:3px 12px}.ep-missions{display:grid;grid-gap:6px;gap:6px;list-style:none}.ep-missions li label{align-items:center;border:1px solid var(--border);border-radius:10px;cursor:pointer;display:flex;gap:10px;padding:8px 12px}.ep-missions.ep-big li label{font-size:16px;padding:14px 16px}.ep-missions input[type=checkbox]{flex:0 0 auto;height:18px;width:18px}.ep-missions.ep-big input[type=checkbox]{height:22px;width:22px}.ep-label{flex:1 1 auto}.ep-amount{color:var(--text-soft);font-size:12.5px;white-space:nowrap}.ep-missions li.done label{background:var(--bg);color:var(--text-soft);text-decoration:line-through}.ep-all{display:grid;grid-gap:8px;gap:8px}.ep-day{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 14px}.ep-day.today{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.ep-day.past:not(.all-done){opacity:.7}.ep-day.ep-rest,.ep-day.ep-review{background:var(--bg)}.ep-day.ep-exam{background:var(--accent-soft);border-color:var(--accent)}.ep-day-head{font-size:13px;justify-content:space-between;margin-bottom:6px}.ep-date,.ep-day-head{align-items:center;display:flex}.ep-date{font-weight:800;gap:8px}.ep-kind{color:var(--text-soft);font-size:12px;font-weight:700}.ep-day.all-done .ep-kind{color:#2b8a3e}.ep-day .ep-missions li label{font-size:13.5px;padding:6px 10px}.ep-exam-line{font-weight:800;margin:0}