:root{color-scheme:light;font-family:Hiragino Sans,Yu Gothic,Meiryo,system-ui,sans-serif;background:#f6f3ea;color:#17191c;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#fcf9f0fa,#f0f7f4fa),#f6f3ea}button,input,select{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{width:min(1180px,100%);margin:0 auto;padding:16px}.floating-home-button{position:fixed;top:12px;left:12px;z-index:50;min-height:44px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:#20252b;color:#fff;padding:0 14px;font-weight:900;box-shadow:0 10px 24px #20252b3d}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0 18px}.eyebrow{margin:0 0 4px;color:#24695f;font-weight:700;font-size:.9rem}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(1.65rem,3.5vw,2.8rem);line-height:1.05}h2{font-size:1.55rem;line-height:1.25}.app-nav{display:grid;grid-template-columns:repeat(4,minmax(64px,1fr));gap:8px;min-width:min(460px,100%)}.app-nav button,.secondary-action,.primary-action,.hint-button,.segmented button{min-height:44px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:800}.app-nav button{background:#fff;color:#333;border:2px solid #ded7c8;padding:0 10px;white-space:nowrap}.app-nav button.active{background:#236f66;color:#fff;border-color:#236f66}main{display:grid;gap:18px}.top-screen,.practice-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(310px,.9fr);gap:18px;align-items:start}.top-copy,.problem-card,.draggable-clock,.answer-input,.feedback,.progress-panel,.print-panel{background:#ffffffeb;border:1px solid #ded7c8;border-radius:8px;box-shadow:0 12px 32px #282c2614}.top-copy{padding:22px}.top-copy p{font-size:1.1rem;line-height:1.75}.control-grid,.practice-settings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}label{display:grid;gap:6px;color:#3f3a2e;font-weight:800;min-width:0}select,input{width:100%;min-height:44px;border-radius:8px;border:2px solid #d8cfbd;background:#fff;padding:8px 10px}.primary-action{background:#d94f3d;color:#fff;padding:0 16px}.primary-action.big{width:100%;min-height:54px;font-size:1.1rem}.secondary-action,.hint-button{background:#fff;color:#245a63;border:2px solid #9bd1cb;padding:0 14px}.draggable-clock{padding:14px;touch-action:pan-y;outline:none;align-self:start}.draggable-clock:focus-visible{border-color:#236f66;box-shadow:0 0 0 4px #236f662e}.clock-panel-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.clock-panel-heading p{margin-bottom:0;color:#5f625e;line-height:1.55}.panel-kicker{margin-bottom:4px;color:#236f66;font-size:.82rem;font-weight:900;letter-spacing:0;text-transform:none}.clock-toolbar{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:10px;margin-bottom:8px}.segmented{display:grid;grid-template-columns:repeat(2,1fr);border:2px solid #c7d4d1;border-radius:8px;overflow:hidden}.segmented button{border-radius:0;background:#fff;color:#315e65;padding:0 12px}.segmented button.active{background:#236f66;color:#fff}.clock-reset-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:8px;border:2px solid #e3c97b;background:#fffaf0;color:#635221;padding:0 12px;font-weight:900}.clock-face-shell{position:relative;display:grid;justify-items:center;transition:filter .18s ease,transform .18s ease}.clock-face-shell.is-grabbed{filter:drop-shadow(0 0 18px rgba(248,184,54,.8));transform:scale(1.01)}.clock-face{width:min(72vw,340px);max-width:100%;aspect-ratio:1;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}.clock-rim{fill:#fbf1d0;stroke:#20252b;stroke-width:4}.clock-inner{fill:#fffdfa;stroke:#ecd286;stroke-width:3}.clock-touch-surface{fill:transparent;pointer-events:all}.tick{stroke:#6c665d;stroke-width:1.2;stroke-linecap:round}.tick.major{stroke:#202124;stroke-width:2.5}.clock-number{fill:#202124;font-size:13px;font-weight:900}.clock-number.roman{font-size:10px}.hour-hand{stroke:#245a63;stroke-width:7;stroke-linecap:round}.minute-hand{stroke:#d94f3d;stroke-width:5;stroke-linecap:round;transition:stroke-width .12s ease;pointer-events:none}.minute-hand.is-grabbed{stroke-width:9}.minute-grip{fill:#d94f3d;stroke:#fffdfa;stroke-width:3;pointer-events:none;transition:r .12s ease,stroke-width .12s ease}.minute-grip.is-grabbed{stroke-width:4}.minute-hit-area{stroke:transparent;stroke-width:34;stroke-linecap:round;cursor:grab;pointer-events:stroke;touch-action:none}.minute-hit-area.is-grabbed{cursor:grabbing}.hand-cap{fill:#263238}.clock-help,.small-note{color:#62635f;font-weight:700;text-align:center;min-height:1.5em}.practice-layout{grid-template-columns:minmax(0,1.08fr) minmax(300px,.82fr)}.practice-settings{grid-column:1 / -1;align-items:end}.problem-card{padding:18px}.problem-card h2{font-size:1.58rem;line-height:1.35}.problem-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.problem-meta span{border-radius:999px;background:#e9f5f2;color:#245a63;padding:6px 10px;font-size:.85rem;font-weight:900}.target-strip{display:inline-grid;grid-template-columns:auto auto;align-items:baseline;gap:10px;margin-bottom:14px;border-radius:8px;background:#fff2d1;border:1px solid #ecd286;padding:10px 12px}.target-strip span{color:#695d43;font-size:.9rem;font-weight:800}.target-strip strong{color:#17191c;font-size:1.55rem}.hint-box-inline{display:flex;gap:10px;margin-top:12px;padding:12px;border-radius:8px;background:#fff7df;color:#4d4130;font-weight:700}.answer-input{padding:18px;display:grid;gap:14px;border-color:#d94f3d;box-shadow:0 14px 34px #d94f3d21}.answer-heading h3{margin:0;font-size:1.45rem}.answer-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.clock-only-answer{margin:0;color:#4d4130;font-weight:800;line-height:1.6}.unit-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.unit-input-wrap input{min-height:58px;border-color:#d94f3d;font-size:1.75rem;font-weight:900;text-align:center}.unit-input-wrap span{color:#352f2b;font-size:1.2rem;font-weight:900}.duration-field{max-width:360px;font-size:1rem}.duration-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.duration-input-wrap input{min-height:58px;border-color:#d94f3d;font-size:1.75rem;font-weight:900;text-align:center}.duration-input-wrap span{color:#352f2b;font-size:1.3rem;font-weight:900}.feedback{padding:14px;display:flex;gap:12px;align-items:flex-start;border-color:#d7e2df;font-size:1.05rem;line-height:1.65}.feedback strong{display:inline-block;margin-bottom:2px;font-size:1.24rem}.feedback.correct{background:#edf8e8;border-color:#83bd70}.feedback.wrong{background:#fff0ec;border-color:#e59a8a}.feedback.neutral{background:#f6fbfa}.practice-footer,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.practice-footer{grid-column:1 / -1}.completion-panel{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #ded7c8;border-radius:8px;background:#fffdf8;padding:16px;box-shadow:0 12px 32px #282c2614}.completion-panel h2{margin-bottom:0}.completion-actions{display:flex;gap:10px;flex-wrap:wrap}.practice-layout>.draggable-clock{grid-column:2;grid-row:2 / span 3;position:sticky;top:14px}.practice-layout>.answer-input,.practice-layout>.feedback{grid-column:1}.progress-panel,.print-panel{padding:18px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.stat-card{border:2px solid #e6ddc8;border-radius:8px;padding:12px;background:#fffdf8}.weakness-panel{display:grid;gap:12px;margin-top:16px;padding:16px;border:1px solid #d6e3d0;border-radius:8px;background:#f7fbf4}.weakness-panel h3,.weakness-panel h4{margin-bottom:6px}.weakness-panel p{margin:0}.weakness-list{display:flex;flex-wrap:wrap;gap:8px}.weakness-list span{min-height:36px;display:inline-flex;align-items:center;border:1px solid #c9dbbf;border-radius:999px;background:#fff;padding:6px 10px;font-size:.92rem;font-weight:800}.weakness-detail ul{margin:0;padding-left:1.2em}.weakness-detail li+li{margin-top:4px}meter{width:100%;height:14px}.check-row{display:flex;align-items:center;gap:10px;margin:8px 0 16px}.check-row input{min-height:auto;width:22px;height:22px}.worksheet{background:#fff;border:2px dashed #c9c0af;border-radius:8px;padding:18px}.worksheet h1{font-size:1.6rem;margin-bottom:14px}.worksheet li{display:grid;gap:8px;margin-bottom:12px;break-inside:avoid}.worksheet strong{color:#e84d3c}.app-footer{padding:18px 0 8px;color:#5d5549;text-align:center;font-weight:700}@media(max-width:820px){.app-shell{padding:64px 12px 12px}.floating-home-button{top:10px;left:10px}.app-header,.top-screen,.practice-layout{grid-template-columns:1fr}.app-header{display:grid}.app-nav{position:sticky;top:0;z-index:10;background:#f6f3eaf0;padding:6px 0}.app-nav button{font-size:.85rem;padding:0 4px}.control-grid,.practice-settings{grid-template-columns:1fr}.practice-footer{display:grid;grid-template-columns:1fr}.completion-panel{display:grid}.practice-layout>.draggable-clock,.practice-layout>.answer-input,.practice-layout>.feedback{grid-column:1}.practice-layout>.draggable-clock{grid-row:auto;position:static}}@media print{body{background:#fff}.app-header,.practice-settings,.print-panel>.section-heading,.check-row,.app-footer{display:none!important}.app-shell{width:100%;padding:0}.print-panel,.worksheet{border:0;box-shadow:none;padding:0}.worksheet li{grid-template-columns:1fr auto;border-bottom:1px solid #ddd;padding-bottom:10px}}
