:root{--color-primary: #004098;--color-primary-hover: #002966;--color-primary-light: #ebf2fa;--color-primary-focus: #0056b3;--color-text-main: #1a1a1a;--color-text-sub: #545f71;--color-text-light: #707f94;--color-text-inverse: #ffffff;--color-bg-body: #f4f6f8;--color-bg-card: #ffffff;--color-border: #d0d5dd;--color-border-subtle: #e4e7ec;--color-danger: #c93a00;--color-danger-hover: #9e2d00;--color-danger-light: #fff0eb;--color-success: #00734d;--color-success-hover: #005638;--color-success-light: #e6f5ee;--color-warning: #b35900;--color-warning-light: #fff4e5;--color-neutral: #5c6b73;--color-neutral-light: #f0f2f5;--focus-ring: 3px solid #004098;--focus-ring-offset: 2px;--font-base: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;--app-max-width: 480px;--header-height: 48px;--bottom-nav-height: 58px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 3px rgba(16, 24, 40, .08);--shadow-md: 0 4px 12px rgba(16, 24, 40, .12)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{width:100%;height:100%;height:100dvh;max-height:100dvh;overflow:hidden;font-family:var(--font-base);font-size:15px;line-height:1.4;color:var(--color-text-main);background-color:#e2e6ea;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-root{width:100%;max-width:var(--app-max-width);height:100%;height:100dvh;margin:0 auto;background-color:var(--color-bg-body);display:flex;flex-direction:column;position:relative;overflow:hidden;box-shadow:0 0 20px #00000014}.offline-banner{background-color:#262626;color:#fff;text-align:center;font-size:.75rem;padding:3px 8px;display:none;flex-shrink:0}.gov-header{height:var(--header-height);background-color:var(--color-primary);color:var(--color-text-inverse);padding:0 12px;flex-shrink:0;z-index:50;box-shadow:0 1px 3px #0000001f}.gov-header-inner{height:100%;display:flex;align-items:center;justify-content:space-between}.brand-wrapper{display:flex;align-items:center;gap:8px}.brand-logo{width:24px;height:24px;border-radius:var(--radius-sm)}.gov-header-title{font-size:1.05rem;font-weight:700;letter-spacing:.02em}.header-actions{display:flex;align-items:center;gap:6px}.btn-header{background:#ffffff29;color:var(--color-text-inverse);border:1px solid rgba(255,255,255,.35);font-size:.8rem;padding:4px 9px;min-height:30px;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;gap:4px;font-family:inherit;font-weight:500}.btn-header:hover{background:#ffffff47}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:10px 10px 8px}.tab-panel{display:none;height:100%;flex-direction:column;overflow:hidden}.tab-panel.active{display:flex}.gov-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:12px;display:flex;flex-direction:column}.view-fit{height:100%;justify-content:space-between}.card-header-compact{margin-bottom:8px}.gov-card-title{font-size:1.1rem;font-weight:700;color:var(--color-text-main);display:flex;align-items:center;gap:6px;margin-bottom:2px}.compact-desc{font-size:.8rem;color:var(--color-text-sub)}.notice-badge{background-color:#e8f4fd;border:1px solid #bce0fd;border-radius:var(--radius-sm);padding:6px 10px;font-size:.78rem;color:#0b4b80;display:flex;align-items:center;gap:6px;margin-bottom:8px;flex-shrink:0}.notice-badge svg{flex-shrink:0}.compact-fieldset{border:none;margin:0 0 8px;padding:0;flex-shrink:0}.field-label{font-size:.85rem;font-weight:700;color:var(--color-text-main);margin-bottom:6px;display:block}.choice-grid-compact{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.choice-btn{background:var(--color-bg-card);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);padding:8px 4px;font-family:inherit;font-size:.88rem;font-weight:600;color:var(--color-text-main);cursor:pointer;text-align:center;min-height:42px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.choice-btn:hover{border-color:var(--color-primary);background-color:var(--color-primary-light)}.choice-btn.selected{border-color:var(--color-primary);background-color:var(--color-primary-light);color:var(--color-primary);font-weight:700;box-shadow:0 0 0 1px var(--color-primary)}.choice-btn:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}.input-text-compact{width:100%;padding:8px 10px;font-family:inherit;font-size:.9rem;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-card);color:var(--color-text-main);margin-top:6px}.input-text-compact:focus{outline:var(--focus-ring);border-color:var(--color-primary)}.protocol-box-compact{background-color:var(--color-neutral-light);border-left:3.5px solid var(--color-primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:8px 10px;margin-bottom:8px}.protocol-desc-compact{font-size:.78rem;color:var(--color-text-sub);margin-bottom:6px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.protocol-stats-compact{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;background:var(--color-bg-card);padding:6px 4px;border-radius:var(--radius-sm);border:1px solid var(--color-border-subtle)}.proto-stat-item{display:flex;flex-direction:column;align-items:center;text-align:center}.proto-stat-label{font-size:.68rem;color:var(--color-text-sub);margin-bottom:1px}.proto-stat-val{font-size:.82rem;font-weight:700;color:var(--color-primary);font-family:var(--font-mono)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;font-size:.95rem;font-weight:700;padding:10px 16px;border-radius:var(--radius-sm);border:2px solid transparent;cursor:pointer;text-decoration:none;min-height:44px;transition:all .15s ease;line-height:1.2}.btn:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}.btn-primary{background-color:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.btn-primary:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-bg-card);color:var(--color-primary);border-color:var(--color-primary)}.btn-secondary:hover{background-color:var(--color-primary-light)}.btn-action{width:100%;font-size:1.02rem;min-height:46px}.card-footer-compact{margin-top:auto;padding-top:6px}.timer-center-box{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.status-badge{display:inline-block;padding:4px 12px;border-radius:16px;font-size:.8rem;font-weight:700;margin-bottom:6px;letter-spacing:.02em}.timer-set-badge{display:inline-block;padding:4px 10px;border-radius:16px;font-size:.8rem;font-weight:700;margin-bottom:6px;background-color:var(--color-neutral-light);color:var(--color-neutral);border:1px solid var(--color-border)}.badge-primary{background-color:var(--color-primary-light);color:var(--color-primary);border:1px solid rgba(0,64,152,.3)}.badge-warning{background-color:var(--color-warning-light);color:var(--color-warning);border:1px solid rgba(179,89,0,.3)}.badge-danger{background-color:var(--color-danger-light);color:var(--color-danger);border:1px solid rgba(201,58,0,.3)}.badge-success{background-color:var(--color-success-light);color:var(--color-success);border:1px solid rgba(0,115,77,.3)}.badge-neutral{background-color:var(--color-neutral-light);color:var(--color-neutral);border:1px solid var(--color-border)}.badge-tabata{background-color:#fff2e6;color:#c05600;border:1px solid #ffcca3}.badge-norwegian{background-color:#f3edfc;color:#5d2fa3;border:1px solid #d7c4f7}.timer-digital{font-family:var(--font-mono);font-size:4.2rem;font-weight:800;line-height:1.05;color:var(--color-text-main);letter-spacing:-.02em;margin:6px 0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}.prep-countdown{font-size:5.5rem;color:var(--color-warning);animation:pulse 1s infinite alternate ease-in-out}@keyframes pulse{0%{transform:scale(1);opacity:1}to{transform:scale(1.06);opacity:.88}}.timer-sub-info{font-size:.85rem;color:var(--color-text-sub);margin-bottom:8px;min-height:20px}.progress-container-compact{width:90%;max-width:280px;height:8px;background-color:var(--color-border-subtle);border-radius:4px;overflow:hidden;margin:4px auto 8px}.progress-bar{height:100%;width:0%;transition:width .15s linear}.bg-danger{background-color:var(--color-danger)}.bg-success{background-color:var(--color-success)}.bg-primary{background-color:var(--color-primary)}.timer-controls-compact{display:flex;gap:8px;width:100%;margin-top:auto;padding-top:6px}.timer-controls-compact .btn{flex:1;padding:8px 6px;font-size:.9rem;min-height:42px}.records-card-fit{height:100%;display:flex;flex-direction:column;overflow:hidden;padding:10px}.stats-summary-grid-compact{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px;flex-shrink:0}.stat-card-compact{background:var(--color-bg-body);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:6px 10px;display:flex;justify-content:space-between;align-items:baseline}.stat-label{font-size:.72rem;color:var(--color-text-sub)}.stat-value{font-size:1.1rem;font-weight:700;color:var(--color-primary);font-family:var(--font-mono)}.records-toolbar-compact{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:8px;flex-shrink:0}.filter-group-compact{display:flex;gap:4px}.filter-btn-compact{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:4px 10px;font-size:.8rem;font-weight:500;color:var(--color-text-sub);cursor:pointer;min-height:32px}.filter-btn-compact.selected{background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary);font-weight:700}.btn-text-compact{background:none;border:none;color:var(--color-primary);font-size:.78rem;font-weight:600;cursor:pointer;padding:4px 6px;border-radius:var(--radius-sm)}.btn-text-compact:hover{text-decoration:underline;background-color:var(--color-primary-light)}.btn-text-danger{color:var(--color-danger)}.record-scroll-area{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-right:2px}.record-item-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:8px 10px;margin-bottom:6px}.record-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;border-bottom:1px solid var(--color-border-subtle);padding-bottom:4px}.record-header-left{display:flex;align-items:center;gap:6px}.record-date{font-size:.75rem;color:var(--color-text-sub)}.record-actions{display:flex;gap:4px}.record-actions .btn-text-compact{font-size:.72rem;padding:2px 4px}.record-body{display:flex;flex-direction:column;gap:4px}.record-metric{display:flex;align-items:baseline;gap:8px}.metric-label{font-size:.75rem;color:var(--color-text-sub);min-width:55px}.metric-value{font-size:.95rem;font-weight:700;color:var(--color-text-main)}.record-note{background-color:var(--color-neutral-light);padding:4px 8px;border-radius:var(--radius-sm);font-size:.78rem;margin-top:2px}.note-label{font-weight:700;font-size:.72rem;color:var(--color-text-sub);margin-right:4px}.note-content{display:inline;color:var(--color-text-main);white-space:pre-wrap}.empty-state-compact{text-align:center;padding:32px 12px;background:var(--color-bg-card);border:1px dashed var(--color-border);border-radius:var(--radius-sm)}.empty-icon-compact{font-size:2rem;margin-bottom:6px}.empty-text-compact{font-size:.85rem;color:var(--color-text-sub)}.gov-bottom-nav{height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px));background-color:var(--color-bg-card);border-top:1px solid var(--color-border);box-shadow:0 -2px 6px #0000000d;flex-shrink:0;z-index:50;padding-bottom:env(safe-area-inset-bottom,0px)}.nav-bar-list{height:var(--bottom-nav-height);display:flex;list-style:none;padding:0;margin:0}.nav-bar-item{flex:1;height:100%}.nav-tab{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;border-top:3px solid transparent;color:var(--color-text-sub);cursor:pointer;font-family:inherit;transition:all .15s ease;padding:4px 0}.nav-icon{width:22px;height:22px;transition:transform .15s ease}.nav-label{font-size:.72rem;font-weight:500;line-height:1}.nav-tab:hover{color:var(--color-primary);background-color:var(--color-primary-light)}.nav-tab.active{color:var(--color-primary);border-top-color:var(--color-primary);background-color:var(--color-primary-light)}.nav-tab.active .nav-label{font-weight:700}.nav-tab.active .nav-icon{transform:scale(1.08)}.nav-tab:focus-visible{outline:var(--focus-ring);outline-offset:-3px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000008c;display:none;align-items:center;justify-content:center;z-index:1000;padding:12px}.modal-content{background:var(--color-bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-width:360px;width:100%;padding:16px}.modal-header{margin-bottom:12px}.modal-title{font-size:1.15rem;font-weight:700;color:var(--color-text-main)}.modal-body{margin-bottom:16px}.modal-footer{display:flex;justify-content:flex-end;gap:8px}.modal-footer .btn{min-height:38px;padding:6px 14px;font-size:.9rem}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--color-border-subtle)}.setting-label{font-size:.9rem;font-weight:600;color:var(--color-text-main)}.setting-desc{font-size:.75rem;color:var(--color-text-sub);display:block}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.slider-switch{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.25s;border-radius:24px}.slider-switch:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.25s;border-radius:50%}input:checked+.slider-switch{background-color:var(--color-primary)}input:focus-visible+.slider-switch{outline:var(--focus-ring);outline-offset:2px}input:checked+.slider-switch:before{transform:translate(20px)}.range-slider{width:100%;accent-color:var(--color-primary);height:5px;margin:6px 0}.gov-toast{position:fixed;bottom:calc(var(--bottom-nav-height) + 16px);left:50%;transform:translate(-50%) translateY(50px);background-color:#1a1a1a;color:#fff;padding:8px 16px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;box-shadow:var(--shadow-md);z-index:2000;opacity:0;pointer-events:none;transition:transform .25s cubic-bezier(.16,1,.3,1),opacity .25s ease;white-space:nowrap}.gov-toast.show{transform:translate(-50%) translateY(0);opacity:1;pointer-events:auto}.font-mono{font-family:var(--font-mono)}.bgm-selector-group{margin-top:8px;padding:8px 10px;background-color:var(--color-bg-body);border:1px dashed var(--color-border);border-radius:var(--radius-sm)}.bgm-selector-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.field-label-small{font-size:.78rem;font-weight:600;color:var(--color-text-sub);display:inline-flex;align-items:center;gap:5px}.field-label-small svg{color:var(--color-primary)}.btn-text-small{background:none;border:none;color:var(--color-primary);font-size:.75rem;font-weight:600;cursor:pointer;padding:2px 6px;border-radius:4px;text-decoration:underline}.btn-text-small:hover{background-color:#0066cc14}.bgm-selector-controls{display:flex;align-items:center;gap:8px;min-height:32px}.btn-file-select{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;font-size:.8rem;font-weight:600;color:var(--color-text-main);background-color:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background-color .15s ease,border-color .15s ease}.btn-file-select:hover{background-color:var(--color-border-subtle);border-color:var(--color-text-sub)}.btn-file-select svg{color:var(--color-text-sub)}.bgm-filename-label{font-size:.78rem;color:var(--color-text-sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.bgm-filename-label.has-file{color:var(--color-text-main);font-weight:600}
