:root{--color-bg:#f7f7f4;--color-surface:#ffffff;--color-text:#1f2937;--color-muted:#6b7280;--color-border:#ececea;--color-brand:#0f766e;--color-brand-strong:#115e59;--color-brand-soft:#ccfbf1;--color-danger:#b91c1c;--radius-card:1.25rem;--radius-control:0.875rem;--shadow-card:0 1px 2px rgba(16,24,40,0.04),0 10px 28px -14px rgba(16,24,40,0.14);--shadow-soft:0 1px 2px rgba(16,24,40,0.05);--frame-width:42rem;--frame-pad-x:1rem;--frame-pad-y:1.5rem}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body,html{margin:0;background:var(--color-bg);color:var(--color-text);font-family:Hiragino Kaku Gothic ProN,Hiragino Sans,Noto Sans JP,BIZ UDPGothic,Yu Gothic,Meiryo,system-ui,sans-serif;font-size:18px;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{letter-spacing:-.01em}a,button,input,select,textarea{transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,opacity .18s ease,transform .06s ease}::selection{background:var(--color-brand-soft)}body{overflow-x:hidden}a,button,input,select,textarea{font:inherit}a[role=button],button{min-height:44px}button[aria-label*="消す"],button[aria-label*="片付"],button[aria-label*="見送"]{min-height:0}input,select,textarea{font-size:max(16px,1rem);max-width:100%;border-radius:var(--radius-control)}@media (max-width:600px){input,select,textarea{font-size:16px!important}}body{overflow-wrap:anywhere;word-break:normal}img,svg,video{height:auto}img,svg,table,video{max-width:100%}pre{overflow-x:auto}:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-brand);border-radius:.5rem}.authbar-slot{min-height:28px}.loading-block{border-radius:12px;background:linear-gradient(90deg,#f1f5f9 25%,#e9eef5 37%,#f1f5f9 63%);background-size:400% 100%;animation:loading-sheen 1.4s ease-in-out infinite}@keyframes loading-sheen{0%{background-position:100% 50%}to{background-position:0 50%}}@media (prefers-reduced-motion:reduce){.loading-block{animation:none}}.frame{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--color-bg)}.frame-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:rgba(255,255,255,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(16,24,40,.06);padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.frame-brand{font-size:1.5rem;font-weight:700;letter-spacing:-.01em;color:var(--color-brand);text-decoration:none}.frame-menu-btn{padding:.5rem .75rem;border:none;background:transparent;border-radius:var(--radius-control);font-size:1.25rem;color:var(--color-text);cursor:pointer}.frame-menu-btn:hover{background:rgba(0,0,0,.05)}.frame-menu{position:absolute;right:1rem;top:3.75rem;z-index:20;display:flex;flex-direction:column;max-height:calc(100dvh - 110px);min-width:240px;max-width:85vw;overflow:hidden;background:var(--color-surface);border-radius:1rem;box-shadow:0 10px 30px -12px rgba(16,24,40,.25);outline:1px solid rgba(0,0,0,.05)}.frame-menu-list{min-height:0;flex:1 1;overflow-y:auto}.frame-menu a,.frame-menu button{display:block;width:100%;text-align:left;padding:.625rem 1rem;font-size:.875rem;color:var(--color-text);text-decoration:none;background:transparent;border:none;cursor:pointer}.frame-menu a:hover,.frame-menu button:hover{background:#f9fafb}.frame-main{flex:1 1;width:100%;max-width:var(--frame-width);margin:0 auto;padding:var(--frame-pad-y) var(--frame-pad-x)}.frame-nav{position:-webkit-sticky;position:sticky;bottom:0;z-index:10;display:grid;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 -1px 0 rgba(16,24,40,.06),0 -8px 24px -18px rgba(16,24,40,.25);padding-bottom:env(safe-area-inset-bottom)}.frame-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem 0;font-size:.875rem;color:var(--color-muted);text-decoration:none}.frame-nav a.is-primary,.frame-nav a[aria-current=page]{color:var(--color-brand)}.frame-nav .frame-nav-icon{display:flex;align-items:center;justify-content:center;height:2.25rem;width:3rem;font-size:1.5rem;border-radius:9999px}.frame-nav a.is-primary .frame-nav-icon,.frame-nav a[aria-current=page] .frame-nav-icon{background:var(--color-brand-soft)}.frame-nav a.is-primary .frame-nav-icon{height:2.75rem;width:2.75rem;font-size:1.875rem}.frame-nav .frame-nav-label{margin-top:.125rem}.card{background:var(--color-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:1rem 1.125rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border-radius:1rem;padding:.75rem 1.5rem;font-size:1.125rem;font-weight:500;border:none;cursor:pointer}.btn:active{transform:translateY(1px)}.btn[disabled]{opacity:.5;cursor:default;transform:none}.btn-primary{background:var(--color-brand);color:#fff;box-shadow:var(--shadow-soft)}.btn-primary:hover:not([disabled]){background:var(--color-brand-strong)}.btn-secondary{background:var(--color-surface);color:var(--color-brand);border:1px solid var(--color-brand)}.btn-secondary:hover:not([disabled]){background:var(--color-brand-soft)}.btn-ghost{background:transparent;color:var(--color-text)}.btn-ghost:hover:not([disabled]){background:rgba(0,0,0,.05)}.btn-danger{background:var(--color-surface);color:var(--color-danger);border:1px solid var(--color-danger)}@media (hover:hover){a.card:hover{transform:translateY(-1px);box-shadow:0 2px 4px rgba(16,24,40,.06),0 16px 32px -16px rgba(16,24,40,.2)}}@media (prefers-reduced-motion:reduce){a.card:hover{transform:none}}