:root{--paper:#f4f1e8;--panel:#fffdf8;--ink:#292b25;--moss:#586650;--moss-dark:#3f4b39;--line:#d9d5c9;--muted:#5f6359;--danger:#994c43;--shadow:0 24px 70px #242a2020}
*{box-sizing:border-box}html,body{margin:0;background:var(--paper);color:var(--ink);font-family:"Yu Mincho","Hiragino Mincho ProN",serif}button,input,textarea,select{font:inherit;color:inherit}button,.button{cursor:pointer;border:1px solid var(--line);background:#faf8f1;border-radius:4px;padding:.7rem 1rem;text-decoration:none;display:inline-block}.primary{background:var(--moss);border-color:var(--moss);color:#fff}.primary:hover{background:var(--moss-dark)}.danger{color:var(--danger);border-color:#d7aaa5}.version{position:fixed;right:12px;top:10px;z-index:2000;background:#fffdf8ef;border:1px solid var(--line);border-radius:99px;padding:.3rem .55rem;color:var(--moss);font:600 .68rem/1 Arial,sans-serif}.eyebrow{font:700 .68rem/1.4 Arial,sans-serif;letter-spacing:.22em;color:var(--moss)}
.auth-page{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(circle at 50% 45%,#faf8f1,#e3e5da)}.auth-card{width:min(560px,100%);background:var(--panel);border:1px solid var(--line);padding:3rem;box-shadow:var(--shadow);text-align:center}.auth-card label{display:grid;gap:.4rem;text-align:left;margin:.85rem 0;color:var(--muted);font-size:.86rem}.auth-card input{width:100%;border:1px solid var(--line);background:white;padding:.78rem}.auth-card .primary{width:100%;margin-top:1rem}.tabs,.view-switch{display:flex;gap:0;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:#faf8f1}.tabs{margin:1rem 0}.tabs button,.view-switch button{flex:1;border:0;border-radius:0;background:transparent}.tabs button+button,.view-switch button+button{border-left:1px solid var(--line)}.tabs .active,.view-switch .active{background:var(--moss);color:#fff}.alert{padding:1rem;border:1px solid var(--line);margin:1rem 0}.alert.success{color:var(--moss)}.alert.error,.form-message{color:var(--danger)}.helper{color:var(--muted);font-size:.86rem}.setup-form{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}.setup-form button,.setup-form label:last-of-type{grid-column:1/-1}
.site-header{position:sticky;top:0;z-index:50;min-height:82px;padding:0 3vw;display:flex;align-items:center;justify-content:space-between;background:#faf8f1f2;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:.75rem}.brand span{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--moss);color:#fff}.brand strong{font-size:1.15rem}.brand small{display:block;color:var(--muted);font-size:.58rem}.site-header nav{display:flex}.site-header nav button{border:0;background:transparent}.site-header nav button.active{color:var(--moss);border-bottom:1px solid var(--moss)}.header-actions{display:flex;gap:.6rem;align-items:center}.header-actions a[href*="claim-data.php"],.header-actions a[href*="migrate-v4-data.php"]{display:none!important}.login-id-notice{max-width:1120px;margin:1rem auto 0;padding:1rem 1.1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid var(--line);background:#fffdf8}.login-id-notice p{margin:0;display:grid;gap:.25rem}.login-id-notice strong{font-weight:500;color:var(--moss)}.login-id-notice span{color:var(--muted);font-size:.9rem}.login-id-notice .button{flex:0 0 auto}.quota-status-banner{max-width:1120px;margin:1rem auto 0;padding:.85rem 1rem;border:1px solid #d7aaa5;background:#fff8f6;color:var(--danger);font:600 .9rem/1.65 "Yu Gothic","Meiryo",sans-serif}.quota-status-banner strong{display:block;margin-bottom:.15rem;color:#74352f}.quota-status-banner ul{margin:.25rem 0 0;padding-left:1.2rem}.quota-status-banner li+li{margin-top:.18rem}.plan-status-panel{margin:0 0 1.2rem;padding:1rem;border:1px solid var(--line);background:#fffdf8;font-family:"Yu Gothic","Meiryo",sans-serif}.plan-status-head{display:flex;align-items:center;justify-content:space-between;gap:.7rem;flex-wrap:wrap}.plan-status-head span{color:var(--moss);font-size:.82rem;font-weight:700}.plan-status-head strong{margin-right:auto;font-size:1rem}.plan-status-head button{padding:.45rem .7rem;color:var(--muted);cursor:not-allowed}.plan-status-panel p{margin:.7rem 0;color:var(--muted);line-height:1.65}.plan-status-panel dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;margin:.8rem 0 0}.plan-status-panel div{padding:.55rem .65rem;background:#f7f5ed}.plan-status-panel dt{color:var(--muted);font-size:.75rem}.plan-status-panel dd{margin:.18rem 0 0;font-weight:700}.app-shell{max-width:1450px;margin:auto;padding:0 4vw 5rem}.hero{margin:0 -4vw 2rem;padding:4.5rem 7vw;background:radial-gradient(circle at 75% 40%,#fbfaf6,#e5e6dc)}.hero h1{font-weight:400;font-size:clamp(2.4rem,5vw,4.8rem);line-height:1.42}.hero p:last-child,.page-heading p{color:var(--muted)}.toolbar{display:flex;justify-content:center;gap:1rem;align-items:center;margin:2rem 0}.toolbar input{width:min(560px,66vw);padding:1rem;border:1px solid var(--line);background:#fff}.chips{display:flex;gap:.5rem;flex-wrap:wrap;margin:1.5rem auto;max-width:1120px}.chips button{border-radius:99px;padding:.42rem .8rem}.chips button.active{background:var(--moss);color:#fff}.section-heading{max-width:1120px;margin:2rem auto 1rem;display:flex;align-items:baseline;gap:1rem}.section-heading h2{font-weight:400}.section-heading span{color:var(--muted)}
.item-grid{max-width:1120px;margin:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem 1rem;align-items:start}.item-card{cursor:pointer;min-width:0}.item-photo{aspect-ratio:4/3;background:#dedbd1;overflow:hidden}.item-photo img{display:block;width:100%;height:100%;object-fit:cover}.placeholder{height:100%;display:grid;place-items:center;color:var(--muted)}.item-card h3{font-weight:400;margin:.65rem 0 .25rem}.item-card p{color:var(--muted);font-size:.82rem;margin:.2rem 0}.item-card .tags{display:flex;gap:.25rem;flex-wrap:wrap}.item-card .tags span{background:#eee9dc;padding:.18rem .45rem;border-radius:4px;font-size:.72rem}.item-grid.list{display:block}.list .item-card{display:grid;grid-template-columns:90px 1.5fr 1fr 1fr;gap:1rem;align-items:center;border-bottom:1px solid var(--line);padding:.7rem 0}.list .item-photo{aspect-ratio:1}
dialog{width:min(920px,95vw);max-height:92vh;border:0;padding:0;background:var(--panel);box-shadow:0 35px 100px #1118}dialog::backdrop{background:#1d231dbb}.dialog-form{padding:2rem;max-height:92vh;overflow:auto}.dialog-form header,.dialog-form footer{display:flex;align-items:center;justify-content:space-between;gap:.7rem;border-bottom:1px solid var(--line);padding-bottom:1rem}.dialog-form footer{border:0;border-top:1px solid var(--line);padding-top:1rem;margin-top:1rem}.close-dialog,.floating-close{border:0;background:transparent;font-size:1.5rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}.dialog-form label{display:grid;gap:.4rem;margin:.85rem 0;color:var(--muted);font-size:.86rem}.dialog-form input,.dialog-form textarea{width:100%;border:1px solid var(--line);background:#fff;padding:.78rem}.dialog-form textarea{min-height:80px}.photo-drop{margin:1rem 0;padding:1.5rem;border:1px dashed #9ea795;background:#f7f7f0;text-align:center}.photo-drop span{display:block;color:var(--muted);font-size:.82rem}.photo-preview{display:flex;gap:.5rem;overflow:auto;margin-top:.8rem}.photo-preview img{width:90px;height:70px;object-fit:cover}.detail-dialog{width:min(1120px,96vw);height:min(760px,94vh);background:#171915;overflow:hidden}.detail-dialog[open]{display:grid;grid-template-columns:minmax(0,2fr) minmax(290px,1fr)}.detail-photo{position:relative;display:grid;place-items:center;overflow:hidden;touch-action:none;background:#171915}.detail-photo img{max-width:100%;max-height:100%;object-fit:contain;transform-origin:center;transition:transform .16s ease;will-change:transform}.detail-photo img.is-zoomed{cursor:zoom-out}.detail-photo-nav{position:absolute;top:50%;z-index:4;display:grid;place-items:center;width:46px;height:64px;padding:0;border:0;border-radius:4px;background:#fffdf8d9;color:#292b25;font:400 2.5rem/1 Georgia,serif;transform:translateY(-50%);box-shadow:0 8px 24px #0004}.detail-photo-nav:hover{background:#fffdf8}.detail-photo-prev{left:14px}.detail-photo-next{right:14px}.detail-zoom-controls{position:absolute;right:14px;bottom:14px;z-index:4;display:flex;gap:4px;padding:4px;border-radius:6px;background:#171915aa}.detail-zoom-controls button{min-width:42px;height:36px;padding:0 .55rem;border:0;border-radius:4px;background:#fffdf8e8;color:#292b25;font:700 .9rem/1 Arial,sans-serif}.detail-zoom-controls button:hover{background:#fffdf8}.detail-photo-count{position:absolute;left:50%;bottom:14px;z-index:4;transform:translateX(-50%);padding:.35rem .7rem;border-radius:99px;background:#171915cc;color:#fffdf8;font:700 .78rem/1 Arial,sans-serif}.floating-close{position:absolute;right:12px;top:12px;z-index:5;border-radius:50%;background:#fffdf8}.detail-info{background:var(--panel);padding:3rem 2rem;overflow:auto}.detail-info dl{display:grid;grid-template-columns:90px 1fr}.detail-info dt,.detail-info dd{padding:.55rem 0;border-bottom:1px solid var(--line);margin:0}.detail-info dt{color:var(--muted)}
@media(max-width:820px){.auth-card{padding:2rem 1.3rem}.setup-form,.form-grid{grid-template-columns:1fr}.site-header{min-height:58px;padding:.42rem .65rem;flex-wrap:nowrap;gap:.35rem;overflow:hidden}.brand{gap:.45rem;min-width:0;flex:0 1 auto}.brand span{width:34px;height:34px;font-size:.9rem}.brand strong{font-size:.95rem;white-space:nowrap}.brand small{display:none}.site-header nav{display:flex;flex:1 1 auto;justify-content:center;min-width:0;overflow:auto;scrollbar-width:none}.site-header nav::-webkit-scrollbar{display:none}.site-header nav button{flex:0 0 auto;padding:.42rem .34rem;font-size:.78rem;white-space:nowrap}.header-actions{width:auto;flex:0 0 auto;gap:.25rem;overflow:visible}.header-actions .button,.header-actions button{padding:.48rem .52rem;font-size:.78rem;white-space:nowrap}.logout-action{display:none}.hero{padding-top:3rem}.toolbar{flex-direction:column;align-items:stretch}.toolbar input{width:100%}.item-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem .7rem}.list .item-card{grid-template-columns:70px 1fr}.list .item-card>p,.list .tags{display:none}.detail-dialog[open]{display:block;overflow:auto}.detail-photo{height:58vh}.detail-info{min-height:42vh;padding:2rem 1.2rem}}

/* v5.00.14: mobile-first compact shell */
.version{display:none}.site-header{min-height:64px;padding:.55rem 3vw}.site-header nav{display:none!important}.brand span{flex:0 0 auto}.brand strong{line-height:1.15}.header-actions{margin-left:auto}.header-actions .button,.header-actions button{white-space:nowrap}.app-shell{padding-bottom:7rem}.app-footer{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;align-items:center;justify-content:center;gap:1rem;padding:.55rem max(1rem,env(safe-area-inset-left)) calc(.55rem + env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-right));background:#faf8f1f2;border-top:1px solid var(--line);backdrop-filter:blur(14px)}.footer-nav{display:flex;gap:.35rem;align-items:center;justify-content:center}.footer-nav button{border:0;background:transparent;border-radius:99px;padding:.55rem .85rem;color:var(--ink)}.footer-nav button.active{background:var(--moss);color:#fff}.footer-version{border:1px solid var(--line);border-radius:99px;padding:.42rem .7rem;color:var(--moss);font:700 .72rem/1 Arial,sans-serif;background:#fffdf8}.hero{position:relative;isolation:isolate;overflow:hidden;min-height:clamp(280px,34vh,430px);padding:2.6rem 7vw;margin:0 -4vw 1.35rem;background:linear-gradient(90deg,#f6f5ecf2 0%,#f6f5ecdd 38%,#f6f5ec88 66%,#f6f5ec55 100%),url("hero-calligraphy.jpg") center/cover no-repeat}.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 12% 35%,#faf8f1 0%,#faf8f1bb 34%,transparent 70%)}.hero>*{position:relative}.hero h1{max-width:10.5em;font-size:clamp(2.1rem,4.8vw,3.8rem);line-height:1.25;margin:.8rem 0}.hero p:last-child{max-width:31em}.toolbar{flex-wrap:wrap}.toolbar input{flex:1 1 420px}.view-switch{flex:0 0 auto}.toolbar #galleryMode,.toolbar #listMode{min-width:8rem;text-align:center}
@media(max-width:820px){.login-id-notice{margin:.8rem .75rem 0;align-items:flex-start;flex-direction:column}.login-id-notice .button{width:100%;text-align:center}.quota-status-banner{margin:.8rem .75rem 0;font-size:.84rem}.plan-status-panel dl{grid-template-columns:1fr}body{padding-bottom:78px}.site-header{min-height:54px;padding:.38rem .65rem}.brand{max-width:46vw}.brand span{width:32px;height:32px}.brand strong{font-size:1rem;overflow:hidden;text-overflow:ellipsis}.header-actions .button,.header-actions button{padding:.5rem .6rem;font-size:.82rem}.hero{min-height:310px;padding:2rem 7vw;background-position:center}.hero .eyebrow{font-size:.6rem}.hero h1{font-size:clamp(2rem,9vw,3rem);line-height:1.22}.hero p:last-child{font-size:.95rem;line-height:1.75}.toolbar{display:grid;grid-template-columns:1fr;gap:.7rem;margin:1.35rem 0}.toolbar input{width:100%;padding:.95rem}.view-switch{width:100%}.toolbar #galleryMode,.toolbar #listMode{width:100%;min-width:0;margin:0}.app-footer{gap:.45rem;padding:.48rem .65rem calc(.48rem + env(safe-area-inset-bottom))}.footer-nav{flex:1}.footer-nav button{flex:1;padding:.55rem .35rem;font-size:.86rem}.footer-version{font-size:.66rem;padding:.38rem .48rem}.app-shell{padding-bottom:6.5rem}}

.page-heading-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.kaiki-list{max-width:1120px;margin:1.5rem auto;display:grid;gap:.8rem}.kaiki-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;background:#fffdf8;border:1px solid var(--line);cursor:pointer}.kaiki-card h3{margin:.1rem 0;font-weight:400}.kaiki-card p{margin:.25rem 0;color:var(--muted)}.kaiki-card small{color:var(--muted);font-size:.75rem}.empty-state{max-width:1120px;margin:2rem auto;padding:1.4rem;background:#fffdf8;border:1px solid var(--line);color:var(--muted);text-align:center}.kaiki-rows-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem}.kaiki-add-row{margin:.4rem 0 1rem}.kaiki-rows{display:grid;gap:.55rem;margin:.8rem 0}.kaiki-row{display:grid;grid-template-columns:90px 1.2fr 1fr 1.4fr 1fr 42px;gap:.45rem;align-items:center}.kaiki-row input,.kaiki-row select{min-width:0;border:1px solid var(--line);background:#fff;padding:.65rem}.kaiki-row .k-remove{padding:.55rem}.association-panel{max-width:1120px;margin:1.4rem auto;padding:1rem;background:#fffdf8;border:1px solid var(--line)}.association-panel input{width:100%;padding:.9rem;border:1px solid var(--line);background:#fff}.association-tags section{padding:.8rem 0;border-bottom:1px solid var(--line)}.association-tags section:last-child{border-bottom:0}.association-tags h3{margin:.2rem 0 .6rem;font-weight:400;color:var(--moss)}
.page-actions{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}.kaiki-mode-tabs{max-width:1120px;margin:1rem auto;display:flex;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:#fffdf8}.kaiki-mode-tabs button{flex:1;border:0;border-radius:0;background:transparent}.kaiki-mode-tabs button+button{border-left:1px solid var(--line)}.kaiki-mode-tabs button.active{background:var(--moss);color:#fff}.record-card-main{display:flex;align-items:center;gap:.8rem}.record-card-thumb{width:82px;height:62px;object-fit:cover;background:#dedbd1}.large-textarea{min-height:180px}
.tag-toggle{width:100%;max-width:1120px;margin:0 auto;border-radius:8px;text-align:left;background:#fffdf8}.tag-toggle.active{background:var(--moss);color:#fff}.association-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;border:0;background:transparent;padding:.65rem 0;text-align:left;color:var(--moss)}.association-toggle span{font-size:1.05rem}.association-toggle small{color:var(--muted);font-family:Arial,sans-serif}.association-group.open .association-toggle small{color:var(--moss)}.association-group .chips{margin:.5rem 0 .8rem}
@media(max-width:820px){.page-heading-row{align-items:flex-start}.kaiki-card{align-items:flex-start}.kaiki-card button{flex:0 0 auto}.kaiki-row{grid-template-columns:1fr 1fr}.kaiki-row .k-kind{grid-column:1/2}.kaiki-row .k-item{grid-column:2/3}.kaiki-row .k-title,.kaiki-row .k-memo,.kaiki-row .k-author{grid-column:1/-1}.kaiki-row .k-remove{grid-column:2/3;justify-self:end}.kaiki-form.dialog-form{padding:1.2rem}.association-panel{margin:1rem 0}.association-tags .chips{margin:.6rem 0}.association-tags .chips button{font-size:.86rem}}

/* v5.00.16: kaiki rows return to compact v4-like fields */
.kaiki-row{grid-template-columns:90px minmax(210px,1fr) 72px 42px;align-items:center;border-bottom:1px solid var(--line);padding:.5rem 0}
.kaiki-row input,.kaiki-row select{height:44px}
.kaiki-row .k-title{grid-column:1/3}
.kaiki-row .k-poetic{grid-column:3/5}
.kaiki-row .k-box{grid-column:1/3}
.kaiki-row .k-appraisal{grid-column:3/5}
.kaiki-row .k-author{grid-column:1/3}
.kaiki-row .k-author-suffix{grid-column:3/5}
.k-selected-thumb{display:flex;align-items:center;justify-content:center;gap:.35rem;min-height:44px;color:var(--muted);font-size:.72rem}
.thumb-link{width:42px;height:34px;padding:0;overflow:hidden;background:#eee9dc;display:grid;place-items:center}
.thumb-link img{width:100%;height:100%;object-fit:cover;display:block}
.thumb-link.no-photo{font-size:.68rem;color:var(--muted)}
.thumb-detail{font-size:.72rem;color:var(--moss)}
.k-author-suffix{display:flex;gap:.25rem;align-items:center;justify-content:center;font-size:.8rem;color:var(--muted)}
.k-author-suffix label{display:flex;align-items:center;gap:.15rem;margin:0}
.k-author-suffix input{width:auto;height:auto}
@media(max-width:820px){.kaiki-row{grid-template-columns:72px 1fr 58px 42px}.kaiki-row .k-kind{grid-column:1/2}.kaiki-row .k-item{grid-column:2/3}.kaiki-row .k-selected-thumb{grid-column:3/4}.kaiki-row .k-remove{grid-column:4/5}.kaiki-row .k-title,.kaiki-row .k-poetic,.kaiki-row .k-box,.kaiki-row .k-appraisal,.kaiki-row .k-author{grid-column:1/-1}.kaiki-row .k-author-suffix{grid-column:1/-1;justify-content:flex-start}.kaiki-form.dialog-form{padding:1rem}}

/* v5.00.17: restore v4-like kaiki editor structure */
.draft-status{margin-right:auto;color:var(--muted);font-size:.82rem}
#kaikiDialog{width:min(1080px,98vw)}
.kaiki-row{display:grid;grid-template-columns:30px 44px 110px minmax(280px,1fr) 68px 38px;gap:.5rem;align-items:center;margin:.7rem 0;padding:.65rem 0;border-bottom:1px solid var(--line)}
.kaiki-row .k-title,.kaiki-row .k-poetic,.kaiki-row .k-box,.kaiki-row .k-appraisal,.kaiki-row .k-author{grid-column:auto}
.row-number{color:var(--muted);text-align:center;font-family:Arial,sans-serif}
.row-move{display:flex;gap:.16rem}.row-move button{width:20px;height:28px;padding:0;line-height:1;font-size:.78rem}
.kaiki-row .row-type{grid-column:3!important;grid-row:1!important}
.kaiki-row .row-item-picker{grid-column:4!important;grid-row:1!important}
.kaiki-row .row-suffix{grid-column:5!important;grid-row:1!important}
.kaiki-row .row-remove{grid-column:6!important;grid-row:1!important}
.row-item-picker{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:.4rem;min-width:0}
.row-item-button{width:100%;min-height:64px;display:grid;grid-template-columns:58px minmax(0,1fr);gap:.55rem;align-items:center;padding:.45rem .6rem;text-align:left;background:#fff}
.row-item-button .picker-thumb{width:58px;height:44px;object-fit:cover;background:#dedbd1;display:grid;place-items:center;color:var(--muted);font-size:.68rem}
.row-item-button span:last-child{min-width:0;display:grid;gap:.16rem}.row-item-button strong{font-size:1.02rem;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-item-button small{color:var(--ink);font-size:.92rem;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row-item-menu{position:absolute;left:0;right:0;top:calc(100% + .25rem);z-index:40;padding:.45rem;border:1px solid var(--line);background:#fffdf8;box-shadow:0 14px 34px #242a2026}
.row-item-search{width:100%;margin:0 0 .4rem;padding:.55rem;border:1px solid var(--line);background:#fff}
.row-item-options{max-height:300px;overflow:auto;display:grid;gap:.25rem}
.row-item-option{width:100%;display:grid;grid-template-columns:58px minmax(0,1fr);gap:.55rem;align-items:center;padding:.5rem;border:1px solid transparent;background:#fff;text-align:left}
.row-item-option.active{border-color:var(--moss);background:#f4f1e8}.row-item-option img,.row-item-option .preview-placeholder{width:58px;height:44px;object-fit:cover;background:#dedbd1}.row-item-option .preview-placeholder{display:grid;place-items:center;color:var(--muted);font-size:.68rem}.row-item-option span{min-width:0;display:grid;gap:.16rem}.row-item-option strong{font-size:1rem;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-item-option small{color:var(--ink);font-size:.9rem;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-item-empty{margin:.5rem;color:var(--muted);font-size:.82rem;text-align:center}
.row-item-preview{width:100%;display:grid;grid-template-columns:64px minmax(0,1fr);gap:.6rem;align-items:center;padding:.4rem;text-align:left;background:#f7f5ed}
.row-item-preview[hidden]{display:none}
.row-item-preview img,.row-item-preview .preview-placeholder{width:64px;height:48px;object-fit:cover;background:#dedbd1}
.row-item-preview .preview-placeholder{display:grid;place-items:center;color:var(--muted);font-size:.68rem}
.row-item-preview span{display:grid;gap:.15rem;min-width:0}.row-item-preview strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-item-preview small{color:var(--muted)}
.row-iemoto-label{display:flex!important;align-items:center;gap:.35rem!important;margin:0!important;white-space:nowrap;color:var(--muted)!important}
.category-edit-actions{display:flex;align-items:end;margin:.85rem 0}.category-edit-actions button{width:100%;padding:.78rem 1rem}
.row-iemoto-label input{width:auto!important;height:auto!important;margin:0}
.kaiki-row .row-type,.kaiki-row .row-fields{margin-left:.35rem}
.kaiki-row .row-fields{grid-column:3/6!important;grid-row:2!important;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.45rem}
.row-fields input{min-width:0;min-height:44px}
.kaiki-row .row-suffix{display:grid;grid-template-columns:1fr;gap:.18rem;color:var(--muted);font-size:.78rem;justify-content:flex-start;align-content:center;align-self:center}
.row-suffix label{display:flex!important;align-items:center;gap:.3rem!important;margin:0!important;color:var(--ink)!important;min-height:24px;cursor:pointer}
.row-suffix input{width:auto!important;height:auto!important;margin:0}
.row-fields-toggle{display:none}
@media(max-width:820px){.kaiki-row{grid-template-columns:30px 1fr 38px}.kaiki-row .row-move{grid-column:2/3}.kaiki-row .row-type,.kaiki-row .row-item-picker,.kaiki-row .row-iemoto-label,.kaiki-row .row-fields,.kaiki-row .row-suffix{grid-column:2/3}.kaiki-row .row-remove{grid-column:3;grid-row:1}.row-fields{grid-template-columns:1fr;width:100%}.row-item-preview{grid-template-columns:58px 1fr}.row-item-preview img,.row-item-preview .preview-placeholder{width:58px;height:44px}.dialog-form footer{flex-wrap:wrap}.draft-status{width:100%;order:-1}}

.photo-preview-tile{position:relative;flex:0 0 auto;width:104px;height:82px;border:1px solid transparent;background:#eee9dc;cursor:grab}.photo-preview-tile img{width:100%;height:100%;object-fit:cover;display:block}.photo-preview-tile.dragging{opacity:.55}.photo-preview-tile.drag-over{border-color:var(--moss);box-shadow:0 0 0 2px #596b4b33}.photo-preview-tile.is-primary{border-color:var(--moss)}.photo-remove{position:absolute;right:3px;top:3px;width:22px;height:22px;border:0;border-radius:50%;display:grid;place-items:center;background:#1d231dcc;color:#fff;font-size:16px;line-height:1;padding:0;cursor:pointer}.photo-remove:hover{background:#8f3e35}.photo-drag-handle{position:absolute;left:4px;top:3px;z-index:2;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#1d231dcc;color:#fff;font-size:.86rem;line-height:1}.photo-order-badge{position:absolute;left:4px;bottom:4px;z-index:2;padding:.22rem .42rem;border-radius:99px;background:#1d231dcc;color:#fff;font:700 .66rem/1 Arial,sans-serif}.photo-order-controls{position:absolute;right:3px;bottom:3px;z-index:2;display:flex;gap:2px}.photo-order-controls button{width:24px;height:24px;padding:0;border:0;border-radius:3px;background:#fffdf8e8;color:#292b25;font-size:1rem;line-height:1}.photo-order-controls button:disabled{opacity:.35}

/* v5.00.27: detail photo-only viewing */
.detail-photo-nav{width:34px;height:48px;background:transparent;color:#fffdf8cc;font-size:2rem;text-shadow:0 2px 8px #000;box-shadow:none}
.detail-photo-nav:hover{background:#17191555;color:#fffdf8}
.detail-photo-prev{left:8px}.detail-photo-next{right:8px}
.photo-only-close{display:none;position:absolute;right:10px;top:10px;z-index:6;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:#17191588;color:#fffdf8;font-size:1.25rem;line-height:1}
.detail-dialog.photo-only{width:min(var(--detail-photo-width,1280px),98vw);height:min(var(--detail-photo-height,860px),96vh)}
@media(min-width:821px){.detail-dialog.photo-only{width:var(--detail-photo-width,min(1280px,92vw));height:var(--detail-photo-height,min(860px,88vh));max-width:calc(100vw - 32px);max-height:calc(100vh - 32px)}}
.detail-dialog.photo-only[open]{display:grid;grid-template-columns:1fr}
.detail-dialog.photo-only .detail-photo{height:100%;min-height:0}
.detail-dialog.photo-only .detail-info,.detail-dialog.photo-only>.floating-close{display:none}
.detail-dialog.photo-only .photo-only-close{display:grid;place-items:center}
.detail-dialog:not(.photo-only) .detail-zoom-controls{display:none}
.detail-dialog.photo-only .detail-photo-count{bottom:12px}
.detail-dialog.photo-only .detail-zoom-controls{display:flex;right:12px;bottom:12px}
.detail-photo img.is-zoomed{cursor:grab}
.detail-photo img.is-zoomed:active{cursor:grabbing}
@media(max-width:820px){.detail-photo-nav{width:30px;height:44px;font-size:1.8rem}.detail-dialog.photo-only{width:min(var(--detail-photo-width,98vw),98vw);height:min(var(--detail-photo-height,96vh),96vh)}.detail-dialog.photo-only[open]{display:grid}.detail-dialog.photo-only .detail-photo{height:100%}}

/* v5.00.32: staged item rendering */
.loading-state,.load-more{grid-column:1/-1;justify-self:center;margin:1.5rem auto}
.loading-state{padding:1.2rem;color:var(--muted)}
.load-more{min-width:min(320px,80vw);background:#fffdf8}
.item-grid.list .load-more,.item-grid.list .loading-state{width:100%;text-align:center}
.offline-readonly-notice{grid-column:1/-1;margin:.2rem 0 .8rem;padding:.7rem .9rem;border:1px solid #d3b0aa;background:#fff8f6;color:#8f3e35;font:700 .86rem/1.6 "Yu Gothic","Meiryo",sans-serif;text-align:center}
#networkStatusBadge{position:fixed;right:calc(1.05rem + env(safe-area-inset-right));bottom:calc(-.75rem + env(safe-area-inset-bottom));z-index:260;padding:.14rem .38rem;border:1px solid #596b4b;border-radius:999px;background:#fffdf8f2;color:#3f6f35;font:700 .58rem/1.2 "Yu Gothic","Meiryo",sans-serif;box-shadow:0 4px 12px #242a2018;pointer-events:none;white-space:nowrap}#networkStatusBadge.offline{border-color:#b94b3f;color:#b94b3f;background:#fff8f6f2}
.dialog-form select{width:100%;border:1px solid var(--line);background:#fff;padding:.78rem}
.tag-field{margin:1rem 0}.tag-field h3{margin:.2rem 0 .6rem;color:var(--muted);font-size:.86rem;font-weight:400}.tag-field .chips{margin:0;max-width:none}.tag-field .chips button.selected{background:var(--moss);color:#fff}
.movement-history-field{margin:1rem 0}.movement-history-field h3{margin:.2rem 0 .6rem;color:var(--muted);font-size:.86rem;font-weight:400}.movement-history-field button{background:#fffdf8}.movement-history-summary{min-height:1.5rem;margin:.5rem 0 0;color:var(--muted);font-size:.86rem;white-space:pre-wrap}.movement-form select{width:100%;border:1px solid var(--line);background:#fff;padding:.78rem}.movement-history-field+.movement-history-field{margin-top:-.4rem}@media(min-width:821px){.movement-history-field{display:inline-block;width:calc(50% - .55rem);vertical-align:top}.movement-history-field+.movement-history-field{margin-left:1rem;margin-top:1rem}}
.master-toolbar{max-width:1120px;margin:1rem auto;display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}.master-toolbar select,.master-toolbar input{border:1px solid var(--line);background:#fffdf8;padding:.78rem}.master-toolbar input{flex:1 1 280px}.master-list{max-width:1120px;margin:1rem auto 5rem;display:grid;gap:.65rem}.master-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;border:1px solid var(--line);background:#fffdf8;cursor:pointer}.master-card h3{margin:.1rem 0;font-weight:500}.master-card p,.master-card small{display:block;margin:.15rem 0;color:var(--muted)}
.form-wide{grid-column:1/-1}
dialog{max-width:calc(100vw - 1rem)}.dialog-form,.form-grid,.dialog-form label{min-width:0}.dialog-form input,.dialog-form textarea,.dialog-form select{max-width:100%;min-width:0}.ledger-table tbody tr:nth-child(even){background:#fbf9f2}.ledger-table tbody tr:nth-child(even):hover{background:#f4f1e8}@media(max-width:820px){dialog{width:calc(100vw - .75rem);max-height:94vh}.dialog-form{padding:1rem}.dialog-form header{margin:-1rem -1rem 1rem;padding:1rem 3.4rem 1rem 1rem}.photo-drop{padding:1rem}.dialog-form footer{margin-left:-1rem;margin-right:-1rem;padding-left:1rem;padding-right:1rem}}
@media(max-width:820px){#itemDialog .dialog-form input,#itemDialog .dialog-form select,#itemDialog .dialog-form textarea{width:min(20em,100%);justify-self:start}#itemDialog .form-grid,#itemDialog .dialog-form label,#itemDialog .photo-drop,#itemDialog .tag-field{width:100%;max-width:100%;overflow:hidden}#itemDialog .photo-preview{max-width:100%}}
.brand-version{color:var(--muted);font:600 .68rem/1 Arial,sans-serif}.footer-version{display:none}.footer-nav{max-width:100%;overflow:auto;scrollbar-width:none}.footer-nav::-webkit-scrollbar{display:none}
@media(max-width:820px){.brand-version{display:none}.footer-nav button{min-width:max-content;font-size:.78rem}}
.dialog-form input,.dialog-form textarea,.dialog-form select,.detail-info dd,.item-card p,.kaiki-card p{font-family:"Yu Gothic","Meiryo",sans-serif;line-height:1.6}.dialog-form input,.dialog-form textarea,.dialog-form select{font-size:.95rem}.dialog-form header{position:sticky;top:0;z-index:10;background:var(--panel);padding-right:3.5rem}.dialog-form header .close-dialog{position:absolute;right:.75rem;top:.65rem;display:grid;place-items:center;width:38px;height:38px;padding:0;border-radius:50%;background:#fffdf8;border:1px solid var(--line);box-shadow:0 8px 22px #242a2018;line-height:1}.dialog-form header .close-dialog:hover{background:#f4f1e8}
.item-card p{color:var(--ink);font-size:1rem;font-weight:500;line-height:1.45;margin:.18rem 0 .35rem}
.list .item-card p{font-size:1rem;color:var(--ink)}
dialog[open]{position:fixed;top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);margin:0}.dialog-pin-close{position:absolute;right:14px;top:14px;z-index:30;display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid var(--line);border-radius:50%;background:#fffdf8;color:var(--ink);box-shadow:0 8px 24px #242a2022;font:400 1.35rem/1 Arial,sans-serif}.dialog-pin-close:hover{background:#f4f1e8}.dialog-form header .close-dialog{display:none}#kaikiDialog .dialog-form header .close-dialog{display:grid}
.brand[role="button"]{cursor:pointer}.brand[role="button"]:focus-visible{outline:2px solid var(--moss);outline-offset:4px}.brand .brand-version{display:inline;width:auto;height:auto;border:0;border-radius:0;background:transparent;color:var(--muted);padding:0;font:600 .68rem/1 Arial,sans-serif}.dialog-form input,.dialog-form textarea,.dialog-form select,.detail-info dd{color:#242821;font-weight:500}.dialog-form input::placeholder,.dialog-form textarea::placeholder{color:#9a9b92;font-weight:400}
.ledger-table{max-width:1120px;margin:1.5rem auto 0;overflow:auto;border:1px solid var(--line);background:#fffdf8}.ledger-table table{width:100%;border-collapse:collapse;min-width:760px}.ledger-table th,.ledger-table td{padding:.7rem .85rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.ledger-table th{position:sticky;top:0;z-index:1;background:#f4f1e8;color:var(--muted);font-size:.78rem;font-weight:600;white-space:nowrap}.ledger-table tbody tr{cursor:pointer}.ledger-table tbody tr:hover{background:#f7f5ed}.ledger-table td{font-family:"Yu Gothic","Meiryo",sans-serif;font-size:.88rem;line-height:1.55}.ledger-photo-cell{width:92px}.ledger-photo-cell img,.ledger-photo-placeholder{display:block;width:64px;height:48px;object-fit:cover;background:#dedbd1}.ledger-photo-placeholder{display:grid;place-items:center;color:var(--muted);font-size:.68rem}.ledger-long-cell{max-width:260px;white-space:pre-wrap}
.brand img{flex:0 0 auto;width:42px;height:42px;border-radius:10px;display:block}.header-actions #installApp{border-color:var(--moss);color:var(--moss);background:#fffdf8}.header-instruction-action{background:#6b7f52;color:#fff;border-color:#6b7f52}.header-actions #newInstructionHeader{font-size:inherit;line-height:normal;white-space:nowrap}.header-actions #newInstructionHeader br{display:none}.header-actions #installApp:hover{background:#f4f1e8}
.back-to-top{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:calc(5.2rem + env(safe-area-inset-bottom));z-index:95;display:grid;place-items:center;width:42px;height:42px;padding:0;border-radius:50%;border:1px solid var(--line);background:#fffdf8;color:var(--moss);box-shadow:0 10px 28px #242a2026;font:700 1.2rem/1 Arial,sans-serif;opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .18s ease,transform .18s ease}.back-to-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.back-to-top:hover{background:#f4f1e8}.page-back-float{position:fixed;left:max(1rem,env(safe-area-inset-left));bottom:calc(5.2rem + env(safe-area-inset-bottom));z-index:95;display:grid;place-items:center;width:42px;height:42px;padding:0;border-radius:50%;border:1px solid var(--line);background:#fffdf8;color:var(--moss);box-shadow:0 10px 28px #242a2026;font:700 1.2rem/1 Arial,sans-serif}.page-back-float:hover{background:#f4f1e8}
.settings-menu{position:relative}.settings-menu summary{list-style:none;cursor:pointer}.settings-menu summary::-webkit-details-marker{display:none}.settings-menu-panel{position:absolute;right:0;top:calc(100% + .45rem);z-index:120;display:grid;gap:.45rem;min-width:150px;padding:.55rem;border:1px solid var(--line);background:#fffdf8;box-shadow:0 12px 34px #242a2022}.settings-menu-panel .button,.settings-menu-panel button{width:100%;text-align:center;white-space:nowrap}.dialog-back-to-top{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:calc(1rem + env(safe-area-inset-bottom));z-index:35;display:none;place-items:center;width:42px;height:42px;padding:0;border-radius:50%;border:1px solid var(--line);background:#fffdf8;color:var(--moss);box-shadow:0 10px 28px #242a2026;font:700 1.2rem/1 Arial,sans-serif}#itemDialog[open] .dialog-back-to-top{display:grid}
@media(max-width:820px){body{padding-bottom:96px}.site-header{overflow:visible}.brand{max-width:50vw}.brand img{width:40px;height:40px}.header-actions{gap:.35rem}.header-actions #newItem,.header-actions #newInstructionHeader{padding:.52rem .65rem}.settings-menu-panel{right:0}.app-shell{padding-bottom:7.5rem}.app-footer{align-items:center;padding:.45rem .55rem calc(.45rem + env(safe-area-inset-bottom));min-height:78px}.footer-nav{display:flex;flex-wrap:nowrap;justify-content:center;gap:.25rem;overflow:visible}.footer-nav button{flex:1 1 0;min-width:0;min-height:42px;padding:.48rem .16rem;font-size:.76rem;line-height:1.15;white-space:normal}.back-to-top,.page-back-float{bottom:calc(5.8rem + env(safe-area-inset-bottom))}#managementLedger.ledger-table table{min-width:1860px;table-layout:fixed}#managementLedger th:nth-child(1),#managementLedger td:nth-child(1){width:96px}#managementLedger th:nth-child(2),#managementLedger td:nth-child(2){width:92px}#managementLedger th:nth-child(3),#managementLedger td:nth-child(3){width:220px}#managementLedger th:nth-child(4),#managementLedger td:nth-child(4){width:118px}#managementLedger th:nth-child(5),#managementLedger td:nth-child(5){width:190px}#managementLedger th:nth-child(6),#managementLedger td:nth-child(6){width:170px}#managementLedger th:nth-child(7),#managementLedger td:nth-child(7){width:250px}#managementLedger th:nth-child(8),#managementLedger td:nth-child(8){width:150px}#managementLedger th:nth-child(9),#managementLedger td:nth-child(9){width:270px}#managementLedger th:nth-child(10),#managementLedger td:nth-child(10){width:300px}#managementLedger .ledger-long-cell{max-width:none;white-space:pre-wrap}.dialog-pin-close{position:fixed;right:max(.75rem,env(safe-area-inset-right));top:calc(env(safe-area-inset-top) + .75rem);z-index:150;width:34px;height:34px;font-size:1.05rem}.dialog-back-to-top{right:max(.85rem,env(safe-area-inset-right));bottom:calc(5.6rem + env(safe-area-inset-bottom));z-index:150}}
@media(max-width:820px){.dialog-pin-close{right:calc(max(.75rem,env(safe-area-inset-right)) + .35rem);top:calc(env(safe-area-inset-top) + 1.05rem);width:36px;height:36px}.item-wizard header{padding-right:2.6rem}.item-wizard header button#closeItemWizard{position:absolute;right:.9rem;top:.9rem;width:36px;height:36px;z-index:90}}
@media(max-width:820px){#itemDialog[open]{top:calc(env(safe-area-inset-top) + .85rem);transform:translateX(-50%);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 1.7rem)}#itemDialog>.dialog-pin-close{position:absolute;right:.85rem;top:.85rem;z-index:260;width:38px;height:38px}#itemDialog .dialog-form{max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 1.7rem);padding-top:1.2rem}}
@media(max-width:820px){#itemDialog[open]{left:50%;width:calc(100vw - 1rem);max-width:calc(100vw - 1rem);overflow:hidden}#detailDialog[open]{left:0!important;width:100vw!important;max-width:100vw!important}#detailDialog .detail-info,#itemDialog .dialog-form{overscroll-behavior-x:none}}
@media(max-width:820px){#purchaseLedger.ledger-table table{min-width:720px;table-layout:fixed}#purchaseLedger th:nth-child(1),#purchaseLedger td:nth-child(1){width:92px}#purchaseLedger th:nth-child(2),#purchaseLedger td:nth-child(2){width:9em;white-space:normal;overflow-wrap:anywhere;word-break:break-word}#purchaseLedger th:nth-child(3),#purchaseLedger td:nth-child(3){width:118px}#purchaseLedger th:nth-child(4),#purchaseLedger td:nth-child(4){width:120px}#purchaseLedger th:nth-child(5),#purchaseLedger td:nth-child(5){width:150px}#managementLedger.ledger-table table{min-width:1180px;table-layout:fixed}#managementLedger th:nth-child(1),#managementLedger td:nth-child(1){width:96px}#managementLedger th:nth-child(2),#managementLedger td:nth-child(2){width:92px}#managementLedger th:nth-child(3),#managementLedger td:nth-child(3){width:9em}#managementLedger th:nth-child(4),#managementLedger td:nth-child(4){width:150px}#managementLedger th:nth-child(5),#managementLedger td:nth-child(5){width:130px}#managementLedger th:nth-child(6),#managementLedger td:nth-child(6){width:9em}#managementLedger th:nth-child(7),#managementLedger td:nth-child(7){width:9em}#managementLedger th:nth-child(8),#managementLedger td:nth-child(8){width:9em}#managementLedger th:nth-child(9),#managementLedger td:nth-child(9){width:180px}#purchaseLedger td:nth-child(2),#managementLedger td:nth-child(3),#managementLedger td:nth-child(6),#managementLedger td:nth-child(7),#managementLedger td:nth-child(8){white-space:normal;overflow-wrap:anywhere;word-break:break-word}#managementLedger .ledger-long-cell{max-width:none}}
@media(max-width:820px){.kaiki-row select.row-type,.kaiki-row select.row-item{height:52px;min-height:52px;padding:.35rem .6rem;font-size:1rem;line-height:1.25}.kaiki-row .row-item-picker select{width:100%;min-width:0}.row-item-preview{min-height:0;align-items:center}.row-item-preview strong,.row-item-preview small{display:none}}
@media(max-width:820px){.row-item-button{min-height:62px;grid-template-columns:64px minmax(0,1fr)}.row-item-button .picker-thumb{width:64px;height:48px}.row-item-menu{position:static;margin-top:.25rem;box-shadow:none}.row-item-options{max-height:360px}.row-item-option{grid-template-columns:64px minmax(0,1fr)}.row-item-option img,.row-item-option .preview-placeholder{width:64px;height:48px}}
@media(max-width:820px){#kaikiDialog,#kaikiDialog .kaiki-form{overflow-x:hidden;overscroll-behavior-x:none}#kaikiDialog .kaiki-form{width:100%;max-width:100%;touch-action:pan-y}#kaikiDialog .form-grid{grid-template-columns:1fr;gap:0}#kaikiDialog .form-grid label{width:100%}#kaikiDialog .form-grid label input{width:100%;max-width:100%}#kaikiDialog .kaiki-add-row{width:100%;padding:.8rem 1rem}#kaikiDialog .kaiki-rows,#kaikiDialog .kaiki-row,#kaikiDialog .row-item-picker,#kaikiDialog .row-fields,#kaikiDialog .row-suffix{width:100%;max-width:100%;min-width:0;box-sizing:border-box}#kaikiDialog .kaiki-row{grid-template-columns:minmax(0,1fr) 38px;gap:.5rem;justify-items:stretch}#kaikiDialog .kaiki-row .row-number,#kaikiDialog .kaiki-row .row-move,#kaikiDialog .kaiki-row .row-type,#kaikiDialog .kaiki-row .row-item-picker,#kaikiDialog .kaiki-row .row-iemoto-label,#kaikiDialog .kaiki-row .row-fields,#kaikiDialog .kaiki-row .row-suffix{grid-column:1/2}#kaikiDialog .kaiki-row .row-remove{grid-column:2/3;grid-row:1;justify-self:end}#kaikiDialog .row-move{justify-self:start}#kaikiDialog .row-type,#kaikiDialog .row-item,#kaikiDialog .row-fields input,#kaikiDialog #kNotes{width:100%;max-width:100%;min-width:0}#kaikiDialog .row-fields{grid-template-columns:1fr}#kaikiDialog .row-item-preview{grid-template-columns:1fr;width:92px;min-height:72px;padding:.25rem;overflow:hidden;justify-self:start}#kaikiDialog .row-item-preview img,#kaikiDialog .row-item-preview .preview-placeholder{width:100%;height:64px}#kaikiDialog .row-suffix{flex-wrap:wrap}}
@media(max-width:820px){#kaikiDialog .kaiki-row .row-type,#kaikiDialog .kaiki-row .row-item-picker,#kaikiDialog .kaiki-row .row-iemoto-label,#kaikiDialog .kaiki-row .row-fields,#kaikiDialog .kaiki-row .row-suffix{grid-column:1/3}#kaikiDialog .row-fields input{width:100%}}
@media(max-width:820px){#kaikiDialog .form-grid label.kaiki-date-field{width:auto;justify-self:start}#kaikiDialog .form-grid label.kaiki-date-field input{width:11.5em;max-width:calc(100vw - 4rem);min-width:0}}
.item-photo{position:relative}.item-status-overlay{position:absolute;inset:0;display:grid;place-items:center;background:#1d231d66;color:#fffdf8;font:700 clamp(1rem,2.6vw,1.7rem)/1.2 "Yu Gothic","Meiryo",sans-serif;text-align:center;text-shadow:0 2px 10px #0009;letter-spacing:0;pointer-events:none}.list .item-status-overlay{font-size:.86rem}
.save-toast{position:fixed;top:calc(env(safe-area-inset-top) + 16px);left:50%;z-index:3000;min-width:9em;padding:.72rem 1.15rem;border:1px solid #fffdf866;border-radius:999px;background:#1d231dcc;color:#fffdf8;box-shadow:0 14px 34px #242a2033;font:700 .92rem/1 "Yu Gothic","Meiryo",sans-serif;text-align:center;opacity:0;pointer-events:none;transform:translate(-50%,-8px);transition:opacity .18s ease,transform .18s ease}.save-toast.visible{opacity:1;transform:translate(-50%,0)}
.kaiki-list[hidden]{display:none!important}.save-toast{top:50%;transform:translate(-50%,-50%) scale(.96)}.save-toast.visible{transform:translate(-50%,-50%) scale(1)}
.upload-overlay{position:fixed;inset:0;z-index:4200;display:grid;place-items:center;padding:1.5rem;background:#1d231d88;backdrop-filter:blur(3px)}.upload-overlay[hidden]{display:none!important}.upload-overlay-box{display:grid;justify-items:center;gap:.85rem;width:min(360px,calc(100vw - 3rem));padding:1.6rem 1.4rem;border:1px solid #fffdf866;background:#fffdf8;color:var(--ink);box-shadow:0 24px 80px #1118;text-align:center}.upload-overlay-box p{margin:0;font:700 .98rem/1.7 "Yu Gothic","Meiryo",sans-serif}.upload-spinner{width:42px;height:42px;border:4px solid #d8d3c6;border-top-color:var(--moss);border-radius:50%;animation:upload-spin .8s linear infinite}@keyframes upload-spin{to{transform:rotate(360deg)}}body.is-uploading{cursor:progress}
.sub-page-heading{max-width:1120px;margin:3rem auto 1rem;padding-top:1.4rem;border-top:1px solid var(--line)}.sub-page-heading h1{font-size:1.7rem}.user-mode-panel{max-width:760px;margin:1.4rem auto .8rem;padding:1rem 1.1rem;border:1px solid var(--line);background:#fffdf8}.user-mode-panel h2{margin:0 0 .75rem;font-size:1.05rem}.user-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.user-mode-switch button{border:1px solid var(--line);background:#fff;color:var(--ink);min-height:42px}.user-mode-switch button.active{border-color:var(--moss);background:var(--moss);color:#fff}.user-mode-status{margin:.7rem 0 0;color:var(--muted);font:500 .82rem/1.5 "Yu Gothic","Meiryo",sans-serif}.other-menu{max-width:760px;margin:1.5rem auto 1rem;display:grid;gap:.75rem}.other-menu button,.other-menu-link,.other-menu-file{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:4px;background:#fffdf8;color:var(--ink);text-align:left;text-decoration:none;cursor:pointer}.other-menu button small,.other-menu-link small,.other-menu-file small{color:var(--muted);font:500 .82rem/1.4 "Yu Gothic","Meiryo",sans-serif}.other-menu-file input{display:none}.other-menu button.active{border-color:var(--moss);background:#f4f1e8}.other-menu .is-disabled{opacity:.55;cursor:not-allowed}.backup-status{max-width:760px;margin:0 auto 5rem;padding:.8rem 1rem;border:1px solid var(--line);background:#fffdf8;color:var(--muted)}
.verification-mode-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.verification-mode-row .user-mode-status{margin:0}.verification-mode-row button{white-space:nowrap}
.account-fieldset{display:grid;gap:.55rem;margin:.85rem 0;padding:.85rem;border:1px solid var(--line);background:#fffdf8}.account-fieldset legend{color:var(--muted);font-size:.86rem}.account-fieldset select{width:100%;border:1px solid var(--line);background:#fff;padding:.78rem}
.settings-dialog{width:min(680px,calc(100vw - 1rem))}.settings-account-form{display:grid;gap:.75rem;margin:1rem 0}.settings-account-form h3{margin:.2rem 0;font-size:1.15rem;font-weight:500}.settings-account-form label{display:grid;gap:.35rem;color:var(--muted);font-size:.86rem}.settings-account-form input,.settings-account-form textarea{width:100%;border:1px solid var(--line);background:#fff;padding:.78rem}.settings-menu{display:grid;gap:.75rem;margin:1rem 0}.danger-data-button{background:#f7f3ed!important;border-color:#cdb7a4!important;color:#6f4532!important}.danger-data-actions{display:grid;gap:.65rem;margin:.8rem 0}.danger-data-actions button,.danger-data-actions .button{width:100%;text-align:center}.danger-data-import{position:relative;overflow:hidden}.danger-data-import input{position:absolute;inset:0;opacity:0;cursor:pointer}.confirm-box{position:relative}.confirm-box .dialog-pin-close{position:absolute;right:.65rem;top:.55rem;border:0;background:transparent;font-size:1.45rem;line-height:1}
.kaiki-planning-panel{max-width:1120px;margin:1.5rem auto 5rem}.planning-toolbar{display:grid;grid-template-columns:160px 1fr 1fr auto;gap:.6rem;margin:1rem 0}.planning-toolbar input{min-width:0;border:1px solid var(--line);background:#fffdf8;padding:.78rem}.planning-table{overflow:auto;border:1px solid var(--line);background:#fffdf8}.planning-table table{width:100%;border-collapse:collapse;min-width:680px}.planning-table th,.planning-table td{padding:.75rem .85rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.planning-table th{background:#f4f1e8;color:var(--muted);font-size:.78rem;font-weight:600}.planning-table td{font-family:"Yu Gothic","Meiryo",sans-serif;font-size:.9rem}.planning-table td:last-child{width:52px;text-align:right}.planning-table button,.planning-check-row button{display:grid;place-items:center;width:32px;height:32px;padding:0;border-radius:50%;background:#fffdf8;color:var(--muted)}.planning-checklist{display:grid;gap:.55rem}.planning-check-row{display:grid;grid-template-columns:28px minmax(0,1fr) 38px;gap:.65rem;align-items:center;padding:.85rem 1rem;border:1px solid var(--line);background:#fffdf8}.planning-check-row input{width:18px;height:18px}.planning-check-row strong{display:block;font-weight:500}.planning-check-row small{display:block;margin-top:.2rem;color:var(--muted);font-size:.82rem;line-height:1.5}.planning-check-row:has(input:checked) strong{text-decoration:line-through;color:var(--muted)}
.form-tabs{position:sticky;top:65px;z-index:9;display:flex;gap:0;margin:1rem 0;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:#fffdf8}.form-tabs button{flex:1;border:0;border-radius:0;background:transparent;padding:.75rem .6rem}.form-tabs button+button{border-left:1px solid var(--line)}.form-tabs button.active{background:var(--moss);color:#fff}.form-tabs-bottom{display:none}.item-tab-panel{padding:.2rem 0}.item-tab-panel[hidden]{display:none!important}#fAutoId{background:#f4f1e8;color:var(--muted)}
.item-primary-row{display:flex;flex-direction:column;align-items:flex-start;gap:.7rem;margin:1rem 0 1.25rem}.tab-primary-thumb{margin:0;width:min(360px,100%);aspect-ratio:4/3;background:#dedbd1;overflow:hidden;border:0}.tab-primary-thumb img,.tab-primary-thumb .placeholder{width:100%;height:100%;object-fit:cover;display:grid;place-items:center;color:var(--muted);font-size:.95rem}.shared-visibility-row{display:inline-flex;align-items:center;gap:.5rem;max-width:100%;color:var(--muted);font-size:.82rem;line-height:1.4;white-space:nowrap}.shared-visibility-row input[type="checkbox"]{width:16px;height:16px;min-width:16px;flex:0 0 16px;margin:0;padding:0}#itemDialog .dialog-form header{border-bottom:0}
@media(max-width:820px){.form-tabs{top:0;margin:.7rem 0}.form-tabs button{font-size:.88rem;padding:.7rem .25rem}.form-tabs-bottom{position:static;display:flex;margin:1rem 0 0}#itemDialog .item-tab-panel{width:100%;max-width:100%;overflow:hidden}}

/* v5.01.12: tea gathering planning */
.planning-panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0}.planning-panel-head h2{margin:0;font-size:1.35rem;font-weight:400}.planning-task-dialog{width:min(520px,calc(100vw - 2rem));border:0;padding:0;background:transparent}.planning-task-dialog::backdrop{background:#1d231d88}.planning-add-form{display:grid;grid-template-columns:1fr;gap:.8rem;margin:0;padding:1.2rem;border:1px solid var(--line);background:#fffdf8;box-shadow:0 24px 80px #1116}.planning-add-form header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 .2rem}.planning-add-form header h2{margin:0;font-size:1.2rem;font-weight:500}.planning-add-form header button{display:grid;place-items:center;width:34px;height:34px;padding:0;border-radius:50%;background:#fffdf8}.planning-add-form input,.planning-add-form textarea{width:100%;border:1px solid var(--line);background:#fff;padding:.78rem}.planning-add-form textarea{min-height:86px;resize:vertical}.planning-add-form label{display:grid;gap:.35rem;color:var(--muted);font-size:.82rem}.planning-checklist{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.planning-check-row{min-height:104px;align-items:start}.planning-check-main{min-width:0;cursor:pointer;border-radius:4px}.planning-check-main:focus-visible{outline:2px solid #596b4b66;outline-offset:3px}.planning-check-main strong{display:flex;gap:.45rem;align-items:baseline}.status-dot{font-size:.9rem;line-height:1;color:#4f7fb7}.planning-check-row.status-yellow .status-dot{color:#d3a82f}.planning-check-row.status-red .status-dot{color:#b94b3f}.planning-check-row.status-yellow{border-color:#d3a82f66}.planning-check-row.status-red{border-color:#b94b3f66}.planning-check-row em{display:block;margin-top:.35rem;color:var(--ink);font-style:normal;font-size:.86rem;line-height:1.55;white-space:pre-wrap}.confirm-dialog{width:min(420px,calc(100vw - 2rem));border:0;padding:0;background:transparent}.confirm-dialog::backdrop{background:#1d231d88}.confirm-box{padding:1.4rem;border:1px solid var(--line);background:#fffdf8;box-shadow:0 24px 80px #1116}.confirm-box h2{margin:0 0 .6rem;font-size:1.2rem;font-weight:500}.confirm-box p{margin:.2rem 0 1.2rem;color:var(--muted);line-height:1.7}.confirm-box footer{display:flex;justify-content:flex-end;gap:.6rem}.danger-button{background:#8f3e35!important;color:#fff!important;border-color:#8f3e35!important}button[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
.planning-head-actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.planning-head-actions select{border:1px solid var(--line);background:#fffdf8;padding:.65rem}.tool-list-tabs{display:flex;margin:1rem 0;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:#fffdf8}.tool-list-tabs button{flex:1;border:0;border-radius:0;background:transparent}.tool-list-tabs button+button{border-left:1px solid var(--line)}.tool-list-tabs button.active{background:var(--moss);color:#fff}.tool-variable-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:1rem 0}.tool-variable-grid label{display:grid;gap:.35rem;padding:.75rem;border:1px solid var(--line);background:#fffdf8;color:var(--muted);font-size:.82rem}.tool-variable-grid input{width:100%;border:1px solid var(--line);background:#fff;padding:.65rem}.tool-qty{margin-left:auto;color:var(--muted);font-size:.82rem}
.tool-master-list{display:grid;gap:.65rem;margin:1rem 0 5rem}.tool-master-card{display:grid;grid-template-columns:34px minmax(0,1fr);gap:.55rem;align-items:center;padding:.55rem .7rem;border:1px solid var(--line);background:#fffdf8}.tool-master-card[draggable=true]{cursor:grab}.tool-master-card.dragging,.tool-checklist-edit-row.dragging{opacity:.55;border-color:var(--moss)}.tool-master-order{display:grid;gap:.18rem}.tool-master-order button{width:26px;height:22px;padding:0;border-radius:4px;background:#fffdf8}.tool-master-order button:disabled{opacity:.35}.tool-master-main{min-width:0;cursor:pointer}.tool-master-main h3{margin:.1rem 0;font-size:1rem;font-weight:500}.tool-master-main p,.tool-master-main small{display:block;margin:.15rem 0;color:var(--muted);line-height:1.5}.planning-add-form footer{display:flex;justify-content:space-between;gap:.7rem;align-items:center}
@media (min-width: 900px){.tool-master-list{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start}}
.tool-generated-group{display:grid;gap:.55rem}.tool-generated-group h3{margin:1rem 0 .2rem;color:var(--moss);font-size:1rem;font-weight:500}.tool-generated-group+.tool-generated-group{margin-top:.8rem}
.tool-tag-section{display:grid;gap:.35rem;margin:.35rem 0 .65rem}.tool-tag-section h4{margin:0;color:var(--muted);font-size:.86rem;font-weight:500}.tool-tag-section>div{display:flex;flex-wrap:wrap;gap:.45rem}
.tool-checklist-list{display:grid;gap:1rem}.tool-checklist-card{border:1px solid var(--line);background:#fffdf8;padding:1rem;cursor:pointer}.tool-checklist-card header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:.75rem}.tool-checklist-card h3{margin:0;font-size:1.1rem;font-weight:500}.tool-checklist-card p{margin:.25rem 0 0;color:var(--muted)}.tool-checklist-card small{color:var(--muted)}.tool-checklist-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.12rem .7rem}.tool-checklist-item{display:flex;align-items:center;gap:.35rem;min-width:0;min-height:0;font-size:.9rem;line-height:1.22}.tool-checklist-item input{width:13px;height:13px;margin:0;flex:0 0 auto}.tool-checklist-item span{min-width:0;overflow-wrap:anywhere}.tool-checklist-item span small{margin-left:.35rem;font-size:.75rem}.tool-builder-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;margin:1rem 0}.tool-builder-meta label{display:grid;gap:.35rem;color:var(--muted);font-size:.82rem}.tool-builder-meta input{width:100%;border:1px solid var(--line);background:#fffdf8;padding:.72rem}#teaToolChecklistDialog{width:min(860px,calc(100vw - 2rem))}.tool-checklist-edit-section{display:grid;gap:.45rem;margin:.2rem 0}.tool-checklist-edit-section h3{margin:.2rem 0 0;font-size:1rem;font-weight:500}.tool-checklist-edit-items{display:grid;gap:.45rem;max-height:52vh;overflow:auto}.tool-checklist-edit-row{display:grid;grid-template-columns:44px 28px minmax(0,1fr) 82px minmax(0,1fr) 34px;gap:.45rem;align-items:center;padding:.45rem;border:1px solid var(--line);background:#fffdf8;cursor:grab}.tool-checklist-row-actions{display:grid;grid-template-columns:1fr;gap:.2rem}.tool-checklist-row-actions button,.tool-checklist-edit-row [data-remove-checklist-row]{display:grid;place-items:center;width:32px;height:28px;padding:0;border-radius:4px;background:#fffdf8}.tool-checklist-row-actions button:disabled{opacity:.35}.tool-checklist-edit-row input{width:100%;border:1px solid var(--line);background:#fff;padding:.55rem}.tool-checklist-edit-row input[type=checkbox]{width:18px;height:18px}
.item-wizard-dialog{width:min(720px,calc(100vw - 1.5rem));border:0;padding:0;background:transparent}.item-wizard-dialog::backdrop{background:#1d231d99}.item-wizard{position:relative;display:grid;gap:1rem;padding:1.4rem;border:1px solid var(--line);background:#fffdf8;box-shadow:0 24px 80px #1116;overflow:hidden}.item-wizard [hidden]{display:none!important}.wizard-upload-overlay{position:absolute;inset:0;z-index:80;display:grid;place-items:center;padding:1rem;background:#fffdf8dd;backdrop-filter:blur(2px);cursor:progress}.item-wizard header,.item-wizard footer{display:flex;align-items:center;justify-content:space-between;gap:.7rem;flex-wrap:wrap}.item-wizard header h2{margin:0;font-size:1.2rem;font-weight:500}.item-wizard header button{display:grid;place-items:center;width:34px;height:34px;padding:0;border-radius:50%;background:#fffdf8}.wizard-progress{height:4px;background:#e5e1d6}.wizard-progress span{display:block;padding-top:.45rem;color:var(--muted);font:600 .78rem/1 Arial,sans-serif}.wizard-step{display:grid;gap:1rem;min-height:220px;align-content:start;padding-top:1rem}.wizard-step h3{margin:.4rem 0 0;font-size:1.55rem;font-weight:400}.wizard-step h4{margin:.35rem 0 -.35rem;color:var(--muted);font-size:.9rem;font-weight:500}.wizard-step input,.wizard-step select,.wizard-step textarea{width:100%;border:1px solid var(--line);background:#fff;padding:.86rem;font-size:1rem}.wizard-step textarea{min-height:96px;resize:vertical}.wizard-optional-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.wizard-optional-field{display:grid;gap:.55rem;padding:.8rem;border:1px solid var(--line);background:#fffdf8}.wizard-optional-field strong{font-weight:500}.wizard-radio{display:flex;gap:.45rem;flex-wrap:wrap}.wizard-radio label{display:flex;align-items:center;gap:.35rem;padding:.55rem .75rem;border:1px solid var(--line);background:#fff}.wizard-radio input{width:auto}.wizard-photo-drop{display:grid;gap:.4rem;padding:1rem;border:1px dashed #9ea795;background:#f7f7f0;text-align:center;cursor:pointer}.wizard-drop-hint{display:none;color:var(--muted);font-size:.88rem;line-height:1.5}.wizard-photo-drop input{border:0;background:transparent;padding:.4rem}.item-wizard footer button{min-width:7rem}@media(min-width:821px){.wizard-drop-hint{display:block}}

/* v5.01.02: mobile dialog refinements */
@media(max-width:820px){
  #itemDialog .form-tabs-bottom{margin-top:2.4rem;padding-top:0;border-top:0}
  #newTeaRecord{white-space:nowrap;min-width:max-content}
  .item-wizard{padding:1rem}.wizard-step{min-height:190px}.wizard-step h3{font-size:1.35rem}.wizard-optional-grid{grid-template-columns:1fr}
  .tool-checklist-card header{display:grid;gap:.35rem}.tool-checklist-items{grid-template-columns:1fr}.tool-builder-meta{grid-template-columns:1fr}.tool-checklist-edit-row{grid-template-columns:38px 24px minmax(0,1fr) 64px 32px}.tool-checklist-edit-row [data-edit-checklist-notes]{grid-column:3/6}.tool-checklist-edit-row [data-remove-checklist-row]{grid-column:5;grid-row:1}
  #kaikiPage .page-actions{align-items:flex-start}
  .planning-toolbar{grid-template-columns:1fr}.planning-table table{min-width:560px}.planning-panel-head{align-items:flex-start}.planning-head-actions{width:100%;justify-content:space-between}.planning-head-actions select{max-width:100%;flex:1}.planning-task-dialog{width:calc(100vw - 1.5rem)}.planning-add-form{grid-template-columns:1fr}.planning-checklist{grid-template-columns:1fr}.planning-check-row{grid-template-columns:28px minmax(0,1fr) 34px;min-height:0;padding:.75rem}.tool-variable-grid{grid-template-columns:1fr}.tool-list-tabs button{font-size:.88rem;padding:.7rem .3rem}
  #kaikiDialog>.dialog-pin-close{display:grid}
  #detailDialog[open]{top:0;left:2.5vw;right:auto;bottom:auto;transform:none;width:95vw;height:100dvh;max-height:100dvh}
  #detailClose,.detail-dialog.photo-only .photo-only-close{position:fixed;right:max(.75rem,env(safe-area-inset-right));top:calc(env(safe-area-inset-top) + .75rem);z-index:220;display:grid;place-items:center;width:34px;height:34px;min-width:0;min-height:0;padding:0;border:1px solid var(--line);border-radius:50%;background:#fffdf8;color:var(--ink);box-shadow:0 8px 24px #242a2022;font:400 1.05rem/1 Arial,sans-serif;text-shadow:none}
  .detail-dialog:not(.photo-only) .photo-only-close{display:none!important}
  #itemDialog[open] .dialog-back-to-top,#detailDialog[open] .dialog-back-to-top,#kaikiDialog[open] .dialog-back-to-top,#teaRecordDialog[open] .dialog-back-to-top{display:grid;right:max(.75rem,env(safe-area-inset-right));bottom:calc(.85rem + env(safe-area-inset-bottom));z-index:220;width:34px;height:34px;font-size:1.05rem}
  #teaRecordDialog,#teaRecordDialog .dialog-form{overflow-x:hidden;overscroll-behavior-x:none}
  #teaRecordDialog .dialog-form{width:100%;max-width:100%;touch-action:pan-y}
  #teaRecordDialog .form-grid{grid-template-columns:1fr;gap:0}
  #teaRecordDialog .form-grid label,#teaRecordDialog label,#teaRecordDialog .photo-drop{width:100%;max-width:100%;overflow:hidden}
  #teaRecordDialog .form-grid label input,#teaRecordDialog textarea{width:100%;max-width:100%;min-width:0}
  #teaRecordDialog #rDate{width:11.5em;max-width:calc(100vw - 4rem);min-width:0}
}

/* v5.01.33: practice records */
#practiceDialog{position:relative}.dialog-upload-overlay{position:absolute;inset:0;z-index:90;display:grid;place-items:center;padding:1rem;background:#fffdf8dd;backdrop-filter:blur(2px);cursor:progress}.dialog-upload-overlay[hidden]{display:none!important}.practice-gallery{max-width:1120px;margin:1.5rem auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.practice-gallery-card{min-width:0;cursor:pointer;background:#fffdf8;border:1px solid var(--line);padding:.65rem}.practice-gallery-card img,.practice-gallery-placeholder{width:100%;aspect-ratio:4/3;display:grid;place-items:center;background:#dedbd1;object-fit:cover;color:var(--muted)}.practice-gallery-card h3{margin:.6rem 0 .2rem;font-weight:400}.practice-gallery-card p{margin:0;color:var(--muted);font-family:"Yu Gothic","Meiryo",sans-serif;font-size:.86rem;line-height:1.55}.practice-view-photos{display:flex;gap:.6rem;overflow:auto;margin:1rem 0}.practice-view-photos img{width:132px;height:96px;object-fit:cover;background:#dedbd1}.practice-view-photos p{margin:0;color:var(--muted)}.practice-view-list{display:grid;grid-template-columns:150px 1fr;gap:0;margin:1rem 0}.practice-view-list dt,.practice-view-list dd{margin:0;padding:.75rem 0;border-bottom:1px solid var(--line);white-space:pre-wrap}.practice-view-list dt{color:var(--muted)}.practice-form label{display:grid;gap:.4rem;margin:.85rem 0;color:var(--muted);font-size:.86rem}.practice-form input,.practice-form textarea{width:100%;border:1px solid var(--line);background:#fff;padding:.78rem}.form-wide{grid-column:1/-1}@media(max-width:820px){.practice-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.practice-gallery-card{padding:.5rem}.practice-view-list{grid-template-columns:1fr}.practice-view-list dt{padding-bottom:.15rem;border-bottom:0}.practice-view-list dd{padding-top:0}#practiceDialog,#practiceDialog .dialog-form{overflow-x:hidden;overscroll-behavior-x:none}#practiceDialog .form-grid{grid-template-columns:1fr;gap:0}#practiceDialog .form-grid label,#practiceDialog label,#practiceDialog .photo-drop{width:100%;max-width:100%;overflow:hidden}#practiceDialog .form-grid label input,#practiceDialog textarea{width:100%;max-width:100%;min-width:0}#practiceDialog #pDate{width:11.5em;max-width:calc(100vw - 4rem);min-width:0}}

/* v5.01.34: collection tabs */
.collection-tabs{max-width:1120px;margin:1rem auto;display:flex;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:#fffdf8}.collection-tabs button{flex:1;border:0;border-radius:0;background:transparent}.collection-tabs button+button{border-left:1px solid var(--line)}.collection-tabs button.active{background:var(--moss);color:#fff}.collection-tab-panel{max-width:1120px;margin:0 auto}.collection-tab-panel .toolbar,.collection-tab-panel .section-heading,.collection-tab-panel .chips{max-width:1120px}@media(max-width:820px){.collection-tabs{margin:.85rem auto}.collection-tabs button{padding:.65rem .4rem;font-size:.86rem}}

/* v5.01.35: practice option notice */
.practice-option-notice{max-width:1120px;margin:1rem auto 1.2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border:1px solid var(--line);background:#fffdf8}.practice-option-notice h2{margin:0 0 .35rem;font-size:1rem;font-weight:500}.practice-option-notice p{margin:0;color:var(--muted);font-family:"Yu Gothic","Meiryo",sans-serif;font-size:.88rem;line-height:1.7}.practice-option-notice span{flex:0 0 auto;border:1px solid var(--line);border-radius:99px;padding:.35rem .65rem;color:var(--moss);font:700 .76rem/1 "Yu Gothic","Meiryo",sans-serif;background:#f7f7f0}@media(max-width:820px){.practice-option-notice{align-items:flex-start;flex-direction:column}.practice-option-notice span{align-self:flex-start}}

/* v5.01.36: shachu */
.shachu-tabs{max-width:1120px;margin:1rem auto;display:flex;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:#fffdf8}.shachu-tabs button{flex:1;border:0;border-radius:0;background:transparent}.shachu-tabs button+button{border-left:1px solid var(--line)}.shachu-tabs button.active{background:var(--moss);color:#fff}.shachu-tab-actions{max-width:1120px;margin:-.35rem auto 1rem;display:flex;justify-content:flex-end}.shachu-tab-actions button{white-space:nowrap}.shachu-panel{max-width:1120px;margin:0 auto 5rem}.shachu-section-heading{align-items:center}.section-heading-action{margin-left:auto;white-space:nowrap;padding:.58rem .9rem}.shachu-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem}.shachu-card{min-height:132px;padding:1rem 1.1rem;border:1px solid var(--line);background:#fffdf8;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between}.shachu-card h3{margin:.1rem 0 .5rem;font-weight:500}.shachu-card p{margin:0;color:var(--muted);font-family:"Yu Gothic","Meiryo",sans-serif;line-height:1.65}.shachu-card small{display:block;margin-top:.8rem;color:var(--muted);font-size:.76rem;line-height:1.5}.shachu-form select{width:100%;border:1px solid var(--line);background:#fff;padding:.78rem;font-size:.95rem}.shachu-actions button[hidden],.section-heading-action[hidden],.shachu-tab-actions button[hidden]{display:none!important}@media(max-width:820px){.user-mode-panel{margin:1rem 0 .7rem;padding:.85rem}.user-mode-switch button{font-size:.86rem;min-height:38px}.shachu-tabs{margin:.8rem 0 .45rem}.shachu-tabs button{font-size:.86rem;padding:.7rem .3rem}.shachu-tab-actions{margin:0 0 1rem;justify-content:flex-end}.shachu-tab-actions button{font-size:.86rem;padding:.58rem .8rem;min-height:38px}.shachu-panel{margin-bottom:4rem}.shachu-section-heading{gap:.55rem}.shachu-section-heading h2{font-size:1.05rem;white-space:nowrap}.shachu-section-heading span{white-space:nowrap}.section-heading-action{font-size:.82rem;padding:.45rem .62rem;min-height:36px}.shachu-card-grid{grid-template-columns:1fr}.shachu-card{min-height:108px}}


/* v5.01.56: student place and status filters */
.shachu-filter-tags{max-width:1120px;margin:.6rem auto .55rem;display:flex;gap:.4rem;flex-wrap:wrap}.shachu-filter-tags-secondary{margin-top:0;margin-bottom:1rem}.shachu-filter-tags button{border:1px solid var(--line);background:#fffdf8;color:var(--ink);border-radius:99px;padding:.45rem .8rem}.shachu-filter-tags button.active{background:var(--moss);color:#fff;border-color:var(--moss)}

.student-place-tools{max-width:1120px;margin:.7rem auto .45rem;display:flex;gap:.5rem;align-items:center}.student-place-tools input{flex:1 1 260px;border:1px solid var(--line);background:#fffdf8;padding:.72rem}.student-place-tools button{flex:0 0 auto}.shachu-search{max-width:1120px;margin:.45rem auto 0}.shachu-search input{width:min(520px,100%);border:1px solid var(--line);background:#fffdf8;padding:.76rem .9rem}.filter-title{display:inline-flex;align-items:center;color:var(--muted);font-size:.82rem;font-weight:600;white-space:nowrap;margin-right:.15rem}.record-place-tag{align-self:flex-start;display:inline-flex;margin-bottom:.45rem;padding:.18rem .48rem;border:1px solid var(--line);border-radius:99px;color:var(--moss);background:#f4f1e8;font-size:.74rem;line-height:1.35}@media(max-width:820px){.student-place-tools{align-items:stretch;flex-direction:column}.student-place-tools button{width:100%}.shachu-search input{width:100%}.shachu-filter-tags{align-items:center}.filter-title{width:100%;margin:.1rem 0 -.15rem}}

.student-place-tools-bottom{margin-top:1.4rem;padding-top:1rem;border-top:1px solid var(--line)}

.lesson-place-manager-list{display:grid;gap:.45rem;margin-top:1rem}.lesson-place-manager-row{display:grid;grid-template-columns:minmax(0,1fr) 4.5rem 4.5rem;gap:.5rem;align-items:center;padding:.75rem;border:1px solid var(--line);background:#fffdf8}.lesson-place-manager-row span{color:var(--muted);font-size:.86rem}.lesson-place-manager-row button{padding:.45rem .65rem}.student-place-tools-bottom{justify-content:flex-start}
.instruction-date-group{grid-column:1/-1;display:grid;gap:.55rem;margin-bottom:.55rem}.instruction-date-group>h3{margin:.2rem 0 0;color:var(--moss);font-size:1rem;font-weight:600}.instruction-date-records{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.65rem}.instruction-record-card{min-height:112px}.instruction-record-card h4{margin:.1rem 0 .45rem;font-size:1rem;font-weight:500}.instruction-view .practice-view-list dd{white-space:pre-wrap}@media(max-width:820px){.instruction-date-records{grid-template-columns:repeat(auto-fill,minmax(136px,1fr));gap:.5rem}.instruction-record-card{min-height:96px;padding:.72rem}.instruction-record-card h4{font-size:.9rem;margin-bottom:.35rem}.instruction-record-card p{font-size:.82rem;line-height:1.45}.instruction-record-card .record-place-tag{font-size:.68rem;margin-bottom:.35rem;padding:.14rem .38rem}}
.startup-splash{position:fixed;inset:0;z-index:300;display:grid;place-items:center;background:#c9c9ba;opacity:1;transition:opacity .5s ease;pointer-events:auto}.startup-splash img{width:min(72vw,520px);height:auto;border-radius:44px;display:block}.startup-splash.fade-out{opacity:0}.startup-splash[hidden]{display:none}.loading-state{grid-column:1/-1;color:var(--muted);text-align:center;padding:2rem 1rem}@media(max-width:820px){.startup-splash img{width:min(82vw,420px);border-radius:34px}.header-instruction-action{max-width:7.5em;overflow:hidden;text-overflow:ellipsis}}/* mobile-shell-lock: keep fixed header/footer aligned with the viewport */
@media(max-width:820px){html,body{width:100%;max-width:100%;overflow-x:hidden}.site-header,.app-footer{left:0;right:0;width:100%;max-width:100vw;transform:none}.site-header{position:sticky;top:0}.app-footer{position:fixed}.app-shell{width:100%;max-width:100%;overflow-x:hidden}.footer-nav{min-width:0;width:100%;max-width:100%;overflow:hidden}.footer-nav button{min-width:0!important;max-width:100%;overflow:hidden;text-overflow:ellipsis}.header-actions{min-width:0;flex-shrink:1}.header-actions button{min-width:0}.brand{min-width:0}.brand strong{min-width:0}}.sort-control{display:flex;align-items:center;gap:.45rem;color:var(--muted);font-family:"Yu Gothic","Meiryo",sans-serif;font-size:.86rem}.sort-control span{white-space:nowrap}.sort-control select{min-width:12.5em;border:1px solid var(--line);background:#fffdf8;padding:.82rem .9rem;color:var(--ink)}@media(max-width:820px){.sort-control{width:100%;justify-content:space-between}.sort-control select{flex:1;min-width:0;width:100%}}/* mobile-header-instruction-wrap: keep the instruction action readable in the compact header */
@media(max-width:820px){.header-actions #newInstructionHeader{display:inline-flex;align-items:center;justify-content:flex-end;text-align:right;white-space:normal;line-height:1.08;font-size:.78rem;max-width:5.2em;min-height:44px;padding:.45rem .5rem}.header-actions #newInstructionHeader br{display:block}.header-actions #newInstructionHeader::first-line{font-size:.82rem}.header-actions #newItem{font-size:.88rem;min-height:44px}.header-actions{justify-content:flex-end}}
.tool-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem}.tool-card-actions button{padding:.45rem .7rem;font-size:.82rem}

.tool-generated-draft{display:grid;gap:.45rem;width:100%}#toolGeneratedList.planning-checklist{grid-template-columns:1fr}

/* v5.02.24: association search to kaiki draft drop table */
.association-kaiki-drop{position:fixed;right:1rem;bottom:5.8rem;z-index:120;width:min(500px,calc(100vw - 1.5rem));max-height:270px;display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid var(--line);background:#fffdf8;box-shadow:0 18px 60px #242a2030}.association-kaiki-drop[hidden]{display:none!important}.association-kaiki-drop header{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.85rem 1rem;border-bottom:1px solid var(--line)}.association-kaiki-drop strong{font-weight:500;color:var(--moss)}.association-kaiki-drop small{display:block;margin-top:.2rem;color:var(--muted);font-family:"Yu Gothic","Meiryo",sans-serif}.association-drop-actions{display:flex;align-items:center;gap:.35rem}.association-kaiki-drop button{padding:.5rem .8rem}.association-drop-clear{width:36px;height:36px;padding:0!important;display:grid;place-items:center;font-size:1.3rem;line-height:1}.association-drop-item{display:grid;grid-template-columns:46px minmax(0,1fr) 32px;gap:.55rem;align-items:start}.association-drop-item span{min-width:0}.association-drop-thumb{width:46px;height:38px;background:#dedbd1;display:grid;place-items:center;overflow:hidden;color:var(--muted);font-size:.68rem}.association-drop-thumb img{width:100%;height:100%;object-fit:cover;display:block}.association-drop-item button{width:30px;height:30px;padding:0!important;display:grid;place-items:center;font-size:1.1rem;line-height:1}.association-drop-zone{min-height:120px;max-height:165px;overflow:auto}.association-kaiki-drop table{width:100%;border-collapse:collapse;font-family:"Yu Gothic","Meiryo",sans-serif}.association-kaiki-drop th,.association-kaiki-drop td{padding:.55rem .7rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:.86rem}.association-kaiki-drop td:first-child{width:7em;color:var(--muted)}.association-kaiki-drop td[colspan="2"]{height:86px;text-align:center;vertical-align:middle;color:var(--muted);border:1px dashed #9ea795;background:#f7f7f0}.association-kaiki-drop td strong{display:block;color:var(--ink);font-weight:500}.association-kaiki-drop.drag-over{border-color:var(--moss);box-shadow:0 0 0 3px #58665033,0 18px 60px #242a2030}.item-card[draggable="true"].dragging{opacity:.55}.association-draft-toggle[hidden]{display:none!important}.association-draft-toggle{position:fixed;right:1rem;bottom:5.35rem;z-index:119;border-color:var(--moss);background:var(--moss);color:#fff;padding:.6rem .9rem;font-size:.9rem;line-height:1.1;min-height:38px;box-shadow:0 10px 28px #242a2028}@media(max-width:820px){.association-draft-toggle{right:.7rem;bottom:5.05rem;padding:.46rem .68rem;font-size:.8rem;min-height:34px}.association-draft-toggle[hidden]{display:none!important}.association-kaiki-drop{left:.75rem;right:.75rem;bottom:5.2rem;width:auto;max-height:248px}.association-kaiki-drop header{padding:.7rem .75rem}.association-drop-zone{max-height:140px}.association-kaiki-drop th,.association-kaiki-drop td{font-size:.82rem;padding:.42rem}}

/* v5.02.24: stabilize mobile kaiki editor rows */
@media(max-width:820px){
  #kaikiDialog{width:calc(100vw - 1rem);height:auto;max-height:94vh;overflow:hidden}
  #kaikiDialog .kaiki-form{padding:.9rem;max-height:94vh;overflow-y:auto;overflow-x:hidden}
  #kaikiDialog .dialog-form header{min-height:auto;padding:1rem 3rem 1rem 1rem;margin:-.9rem -.9rem .9rem}
  #kaikiDialog .dialog-form header h2{font-size:clamp(1.8rem,9vw,2.6rem);line-height:1.18;margin:.6rem 0}
  #kaikiDialog .kaiki-rows{gap:.85rem;margin:.7rem 0 1rem}
  #kaikiDialog .kaiki-row{display:grid!important;grid-template-columns:2.1rem minmax(0,1fr) 2.4rem!important;gap:.45rem .55rem!important;align-items:start!important;padding:.75rem 0!important;margin:0!important}
  #kaikiDialog .kaiki-row .row-number{grid-column:1!important;grid-row:1!important;align-self:center;text-align:left;font-size:.9rem;line-height:1;color:var(--muted)}
  #kaikiDialog .kaiki-row .row-type{grid-column:2!important;grid-row:1!important;width:100%!important;min-width:0!important;height:48px!important;margin:0!important}
  #kaikiDialog .kaiki-row .row-remove{grid-column:3!important;grid-row:1!important;justify-self:end!important;width:38px!important;height:48px!important;padding:0!important;margin:0!important}
  #kaikiDialog .kaiki-row .row-item-picker{grid-column:2/4!important;grid-row:2!important;width:100%!important;min-width:0!important;margin:0!important}
  #kaikiDialog .row-item-button{min-height:58px!important;grid-template-columns:58px minmax(0,1fr)!important;padding:.4rem .5rem!important;gap:.5rem!important}
  #kaikiDialog .row-item-button .picker-thumb{width:58px!important;height:44px!important}
  #kaikiDialog .row-item-button strong{font-size:.95rem!important;line-height:1.25!important}
  #kaikiDialog .row-item-button small{font-size:.78rem!important;line-height:1.35!important}
  #kaikiDialog .kaiki-row .row-suffix{grid-column:2/4!important;grid-row:3!important;display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:.45rem .8rem!important;margin:.05rem 0 0!important;font-size:.86rem!important;line-height:1.2!important}
  #kaikiDialog .row-suffix label{min-height:28px!important;white-space:nowrap!important}
  #kaikiDialog .row-suffix input{width:20px!important;height:20px!important;flex:0 0 auto!important}
  #kaikiDialog .kaiki-row .row-fields-toggle{grid-column:2/4!important;grid-row:4!important;display:block!important;width:100%!important;height:38px!important;padding:.35rem .8rem!important;margin:.15rem 0 0!important;background:#fffdf8!important;text-align:right!important;line-height:1!important}
  #kaikiDialog .kaiki-row .row-fields{grid-column:2/4!important;grid-row:5!important;display:grid!important;grid-template-columns:1fr!important;gap:.45rem!important;width:100%!important;margin:0!important}
  #kaikiDialog .kaiki-row .row-fields.is-collapsed{display:none!important}
  #kaikiDialog .row-fields input{width:100%!important;height:48px!important;min-height:48px!important;padding:.65rem .75rem!important;font-size:.95rem!important}
  #kaikiDialog .kaiki-row .row-move{grid-column:1!important;grid-row:2/5!important;align-self:start;display:grid!important;gap:.28rem!important;margin-top:.15rem!important}
  #kaikiDialog .row-move button{width:28px!important;height:28px!important;padding:0!important;font-size:1rem!important;line-height:1!important}
}

/* v5.02.25: first-run onboarding */
.onboarding-dialog{width:min(560px,calc(100vw - 1.5rem));border:0;padding:0;background:transparent}.onboarding-dialog::backdrop{background:#1d231d88}.onboarding-form{display:grid;gap:.9rem;padding:1.25rem;border:1px solid var(--line);background:#fffdf8;box-shadow:0 24px 80px #1116}.onboarding-form header{display:grid;gap:.15rem;margin:0 0 .15rem}.onboarding-form header p{margin:0;color:var(--moss);font:700 .72rem/1 Arial,sans-serif;letter-spacing:.08em}.onboarding-form h2{margin:0;font-size:1.7rem;font-weight:500}.onboarding-form label{display:grid;gap:.4rem;color:var(--muted);font-size:.86rem}.onboarding-form input,.onboarding-form textarea,.onboarding-form select{width:100%;border:1px solid var(--line);background:#fff;padding:.78rem;color:var(--ink);font-family:"Yu Gothic","Meiryo",sans-serif;font-size:.95rem;line-height:1.55}.onboarding-tools{display:grid;gap:.55rem;padding-top:.2rem}.onboarding-tools h3{margin:0;color:var(--muted);font-size:.9rem;font-weight:600}.onboarding-tools p{margin:0;color:var(--muted);font-family:"Yu Gothic","Meiryo",sans-serif;font-size:.8rem;line-height:1.6}.onboarding-form footer{display:flex;justify-content:flex-end;gap:.65rem;margin-top:.2rem}.form-message{margin:0;color:#9b3f35;font-family:"Yu Gothic","Meiryo",sans-serif;font-size:.86rem;line-height:1.6}@media(max-width:820px){.onboarding-dialog{width:calc(100vw - 1rem);max-height:92vh}.onboarding-form{max-height:92vh;overflow:auto;padding:1rem}.onboarding-form h2{font-size:1.45rem}.onboarding-form footer{position:sticky;bottom:0;margin:.2rem -1rem -1rem;padding:.75rem 1rem;background:#fffdf8;border-top:1px solid var(--line)}.onboarding-form footer button{flex:1;min-width:0;padding:.75rem .5rem}}
.onboarding-progress{display:grid;gap:.35rem;margin:.1rem 0 .45rem;color:var(--muted);font:700 .78rem/1 Arial,sans-serif}.onboarding-progress meter{width:100%;height:10px}.onboarding-step{min-height:150px;display:grid;align-content:center}.onboarding-step[hidden]{display:none}.onboarding-step label,.onboarding-step fieldset{font-size:1rem}.onboarding-step input,.onboarding-step select{min-height:48px;font-size:1.05rem}


/* v5.02.27: recovery tools */
.recovery-item-panel{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin:.8rem 0 1rem;padding:.8rem 1rem;border:1px solid var(--line);background:#f7f7f0}.recovery-item-panel strong{display:block;font-weight:600;color:var(--moss)}.recovery-item-panel small{display:block;margin-top:.15rem;color:var(--muted);font-family:"Yu Gothic","Meiryo",sans-serif;font-size:.82rem}.recovery-item-panel button{white-space:nowrap}.recovery-password-label{display:grid;gap:.35rem;margin:.7rem 0;color:var(--muted);font-size:.86rem}.recovery-password-label input{width:100%;border:1px solid var(--line);background:#fff;padding:.78rem;color:var(--ink)}.account-recovery-tools{margin-top:1.4rem;padding-top:1rem;border-top:1px solid var(--line)}.account-recovery-tools h2{font-size:1.15rem;font-weight:500;margin:.2rem 0 .4rem}.account-recovery-list{display:grid;gap:.5rem;margin:.8rem 0}.account-recovery-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.75rem;border:1px solid var(--line);background:#fffdf8}.account-recovery-row strong{display:block;font-weight:500}.account-recovery-row small{display:block;margin-top:.15rem;color:var(--muted);font-family:"Yu Gothic","Meiryo",sans-serif;font-size:.82rem}.account-recovery-row button{white-space:nowrap}@media(max-width:820px){.recovery-item-panel,.account-recovery-row{align-items:stretch;flex-direction:column}.recovery-item-panel button,.account-recovery-row button{width:100%}}

/* v5.02.28: association draft toggle sizing */
.association-draft-toggle{border-radius:999px}


/* v5.02.31: user mode */
.student-license-field{grid-column:1/-1;display:grid;gap:.5rem;margin:.45rem 0 .65rem;padding:.7rem .8rem;border:1px solid var(--line);background:#fffdf8}.student-license-heading{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.student-license-field h3{margin:0;color:var(--moss);font-size:.95rem;font-weight:600}.student-license-heading .helper{margin:0;text-align:right;font-size:.8rem;line-height:1.35}.student-license-selects{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.65rem}.student-license-field label{display:grid;gap:.25rem;margin:0;color:var(--muted);font-size:.8rem}.student-license-field select{width:100%;min-width:0;height:38px;border:1px solid var(--line);background:#fff;padding:.4rem .55rem;color:var(--ink)}.student-license-choices{justify-content:flex-start}.student-license-choices .empty-state{margin:0;color:var(--muted);font-size:.86rem}@media(max-width:520px){.student-license-field{padding:.65rem}.student-license-heading{align-items:flex-start;flex-direction:column;gap:.2rem}.student-license-heading .helper{text-align:left}.student-license-selects{gap:.4rem}.student-license-field label{font-size:.74rem}.student-license-field select{padding:.35rem .4rem;font-size:.82rem}}

/* v5.02.33: student mode visibility */
body[data-user-mode="student"] [data-shachu-tab="instruction"],body[data-user-mode="student"] [data-shachu-tab="students"],body[data-user-mode="student"] [data-shachu-action="instruction"],body[data-user-mode="student"] [data-shachu-action="students"],body[data-user-mode="student"] #shachuInstructionPanel,body[data-user-mode="student"] #shachuStudentsPanel{display:none!important}

/* v5.02.35: compact student editor and practice history */
#studentDialog .form-grid{row-gap:.2rem}#studentDialog .form-grid label{margin:.4rem 0}.student-practice-history{display:grid;gap:.5rem;margin:.45rem 0 .55rem;padding:.7rem .8rem;border:1px solid var(--line);background:#fffdf8}.student-practice-history-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.student-practice-history-heading h3{margin:0;color:var(--moss);font-size:.95rem;font-weight:600}.student-practice-history-heading select{width:auto;max-width:15rem;height:36px;border:1px solid var(--line);background:#fff;padding:.35rem .55rem;color:var(--ink);font-size:.8rem}.student-practice-history-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:58px;gap:.4rem;max-height:calc(116px + .4rem);overflow-y:auto;overscroll-behavior:contain}.student-practice-history-item{min-width:0;display:grid;align-content:center;gap:.15rem;padding:.45rem .55rem;border:1px solid var(--line);background:#fff}.student-practice-history-item time{color:var(--muted);font:400 .72rem/1.2 "Yu Gothic","Meiryo",sans-serif}.student-practice-history-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:500}.student-practice-history-list>.empty-state{grid-column:1/-1;margin:0;padding:.85rem;text-align:center}@media(max-width:520px){#studentDialog .form-grid label{margin:.25rem 0}.student-practice-history{padding:.65rem}.student-practice-history-heading{align-items:stretch;gap:.4rem}.student-practice-history-heading select{min-width:0;max-width:68%;font-size:.74rem}.student-practice-history-list{grid-template-columns:repeat(2,minmax(0,1fr))}.student-practice-history-item{padding:.4rem}.student-practice-history-item strong{font-size:.82rem}}

/* v5.02.36: instruction action in student editor */
#studentDialog footer #addInstructionFromStudent{white-space:nowrap}@media(max-width:620px){#studentDialog footer{flex-wrap:wrap}#studentDialog footer span{display:none}#studentDialog footer button{flex:1 1 auto}#studentDialog footer #addInstructionFromStudent{flex-basis:100%}}

/* v5.02.37: student editor information order */
#studentDialog .student-name-grid{grid-template-columns:1fr}#studentDialog .student-membership-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:.15rem}@media(max-width:520px){#studentDialog .student-membership-grid{gap:.4rem}}

/* v5.02.38: student view before editing */
#studentDialog .student-view-header{padding-right:3.5rem}.student-view-header #addInstructionFromStudent{flex:0 0 auto;white-space:nowrap}.student-view-list{margin:.45rem 0}.student-view-list dt,.student-view-list dd{padding:.55rem 0}.student-view-list dd{white-space:pre-wrap}@media(max-width:520px){#studentDialog .student-view-header{align-items:center;gap:.5rem;padding-right:2.8rem}#studentDialog .student-view-header h2{font-size:1.3rem}.student-view-header #addInstructionFromStudent{padding:.55rem .65rem;font-size:.78rem}.student-view-list{grid-template-columns:1fr}.student-view-list dt{padding-bottom:.1rem}.student-view-list dd{padding-top:0}}

/* v5.02.40: tea record view and photo deduplication */
.tea-record-view .practice-view-list dd{white-space:pre-wrap}.tea-record-view-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;overflow:visible}.tea-record-view-photos img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.tea-record-view-photos p{grid-column:1/-1}@media(max-width:520px){.tea-record-view-photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.tea-record-view .practice-view-list{grid-template-columns:1fr}.tea-record-view .practice-view-list dt{padding-bottom:.1rem}.tea-record-view .practice-view-list dd{padding-top:0}}

/* v5.02.41: compact mobile footer */
@media(max-width:820px){body{padding-bottom:64px}.app-shell{padding-bottom:5rem}.app-footer{min-height:52px;gap:.25rem;padding:.22rem .45rem calc(.22rem + env(safe-area-inset-bottom))}.footer-nav{gap:.15rem}.footer-nav button{min-height:34px;padding:.28rem .12rem;font-size:.72rem;line-height:1.08}.back-to-top,.page-back-float{bottom:calc(4.1rem + env(safe-area-inset-bottom))}}

/* v5.02.42: platform-aware PWA installation */
.ledger-shortcuts{margin-top:.85rem;margin-bottom:.85rem}.detail-actions{display:flex;gap:.55rem;flex-wrap:wrap;margin:.65rem 0 1rem}.detail-actions button{white-space:nowrap}
#installApp{border-color:var(--moss);background:#f4f1e8}#installApp:disabled{opacity:.65;cursor:default}.install-guide-dialog{width:min(540px,calc(100vw - 1rem))}.install-guide-body{font-family:"Yu Gothic","Meiryo",sans-serif;line-height:1.8}.install-guide-body p{margin:.7rem 0}.install-guide-body ol{display:grid;gap:.7rem;margin:1rem 0;padding-left:1.6rem}.install-guide-body li{padding-left:.2rem}@media(max-width:520px){.install-guide-dialog .dialog-form{padding:1.1rem}.install-guide-dialog .dialog-form header{padding-right:2.8rem}.install-guide-dialog .dialog-form h2{font-size:1.35rem}}

/* v5.02.43: mobile draft position and touch drag */
.association-touch-ghost{position:fixed;z-index:5000;max-width:12rem;padding:.5rem .7rem;border:1px solid var(--moss);border-radius:4px;background:#fffdf8ee;color:var(--ink);box-shadow:0 10px 28px #242a2040;pointer-events:none;font:600 .82rem/1.3 "Yu Gothic","Meiryo",sans-serif;transform:translateY(-50%)}@media(max-width:820px){.association-draft-toggle{top:calc(4rem + env(safe-area-inset-top));right:.55rem;bottom:auto;z-index:121}.item-card[data-association-item-id]{touch-action:pan-y}.association-kaiki-drop{bottom:calc(3.7rem + env(safe-area-inset-bottom))}}

/* v5.02.44: kaiki close and compact student details */
.student-view-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin:.7rem 0}.student-view-details dl{min-width:0;margin:0;padding:.65rem .7rem;border:1px solid var(--line);background:#fffdf8}.student-view-details dt{margin:0 0 .2rem;color:var(--muted);font-size:.8rem}.student-view-details dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.student-view-details .student-view-notes{grid-column:1/-1}.student-practice-history-item{cursor:pointer}.student-practice-history-item:hover,.student-practice-history-item:focus-visible{border-color:var(--moss);background:#f4f1e8;outline:none}@media(max-width:820px){#kaikiDialog>.dialog-pin-close{position:fixed;right:max(.75rem,env(safe-area-inset-right));top:calc(env(safe-area-inset-top) + .75rem);z-index:220}.student-view-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.student-view-details dl{padding:.55rem}.student-view-details dt{font-size:.74rem}.student-view-details dd{font-size:.86rem}}

/* v5.02.45: wrap long practice names */
.student-practice-history-list{grid-auto-rows:70px;max-height:calc(140px + .4rem)}.student-practice-history-item strong{display:-webkit-box;overflow:hidden;white-space:normal;overflow-wrap:anywhere;word-break:break-word;text-overflow:clip;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}

/* v5.02.46: onboarding user mode */
.onboarding-mode-field{display:grid;gap:.5rem;margin:0;padding:0;border:0}.onboarding-mode-field legend{margin-bottom:.4rem;color:var(--muted);font-size:.86rem}.onboarding-mode-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.onboarding-mode-options label{margin:0}.onboarding-mode-options input{position:absolute;opacity:0;pointer-events:none}.onboarding-mode-options span{display:grid;place-items:center;min-height:44px;padding:.65rem .5rem;border:1px solid var(--line);background:#fff;color:var(--ink);text-align:center;cursor:pointer}.onboarding-mode-options input:checked+span{border-color:var(--moss);background:var(--moss);color:#fff}.onboarding-mode-options input:focus-visible+span{outline:2px solid #596b4b66;outline-offset:2px}.onboarding-mode-field>p{margin:0;color:var(--muted);font:500 .78rem/1.5 "Yu Gothic","Meiryo",sans-serif}@media(max-width:420px){.onboarding-mode-options{gap:.35rem}.onboarding-mode-options span{padding:.55rem .3rem;font-size:.82rem}}

/* v5.02.67.012: prevent mobile viewport drift after print/detail dialogs */
@media(max-width:820px){#detailDialog[open]{left:0!important;width:100vw!important;max-width:100vw!important}#itemDialog[open]{left:50%!important;width:calc(100vw - 1rem)!important;max-width:calc(100vw - 1rem)!important}}

/* v5.02.67.012: keep floating controls anchored during mobile pinch zoom */
:root{--vv-scale-inv:1;--vv-shift-left:0px;--vv-shift-right:0px;--vv-shift-top:0px;--vv-shift-bottom:0px}
@media(max-width:820px){
  .dialog-pin-close,#detailClose,.detail-dialog.photo-only .photo-only-close{transform:translate(var(--vv-shift-right),var(--vv-shift-top)) scale(var(--vv-scale-inv))!important;transform-origin:top right!important}
  #itemDialog>.dialog-pin-close{position:fixed!important;right:calc(max(.75rem,env(safe-area-inset-right)) + .35rem)!important;top:calc(env(safe-area-inset-top) + 1.05rem)!important}
  .back-to-top,.dialog-back-to-top{transform:translate(var(--vv-shift-right),var(--vv-shift-bottom)) scale(var(--vv-scale-inv))!important;transform-origin:bottom right!important}
  .back-to-top.visible{transform:translate(var(--vv-shift-right),var(--vv-shift-bottom)) scale(var(--vv-scale-inv))!important}
  .page-back-float{transform:translate(var(--vv-shift-left),var(--vv-shift-bottom)) scale(var(--vv-scale-inv))!important;transform-origin:bottom left!important}
  .association-draft-toggle{transform:translate(var(--vv-shift-right),var(--vv-shift-top)) scale(var(--vv-scale-inv))!important;transform-origin:top right!important}
  .save-toast{transform:translate(-50%,-50%) scale(var(--vv-scale-inv))!important;transform-origin:center!important}
  .save-toast.visible{transform:translate(-50%,-50%) scale(var(--vv-scale-inv))!important}
}

/* v5.02.67.012: pin close buttons to the visual viewport, not layout viewport */
:root{--vv-close-left:calc(100vw - 50px);--vv-close-top:14px}
@media(max-width:820px){
  .dialog-pin-close,#detailClose,.detail-dialog.photo-only .photo-only-close{
    position:fixed!important;
    left:var(--vv-close-left)!important;
    right:auto!important;
    top:var(--vv-close-top)!important;
    width:36px!important;
    height:36px!important;
    transform:scale(var(--vv-scale-inv))!important;
    transform-origin:top left!important;
    z-index:2147483000!important;
  }
}

.wizard-camera-action{
  display:none;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  margin:.65rem auto 0;
  min-height:44px;
  padding:.65rem 1.15rem;
  border:1px solid #d9d5c9;
  border-radius:999px;
  background:#fffdf8;
  color:#2f3a2f;
  font-weight:700;
  box-shadow:0 8px 20px rgba(65,55,40,.08);
}
.wizard-camera-action span{font-size:1.05em;line-height:1}
@media(max-width:820px){.wizard-camera-action{display:inline-flex}}

.settings-backup-panel{
  max-width:760px;
  margin:1.5rem auto;
  padding:1rem;
  border:1px solid #ded8cc;
  background:#fffdf8;
}
.settings-trash-panel{max-width:760px;margin:1.5rem auto;padding:1rem;border:1px solid #ded8cc;background:#fffdf8}.settings-trash-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.settings-trash-head h3{margin:0}.settings-trash-head button{white-space:nowrap}.trash-item-list{display:grid;gap:.6rem;margin:.8rem 0}.trash-item-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.75rem;border:1px solid var(--line);background:#faf8f1}.trash-item-thumb{width:72px;aspect-ratio:4/3;background:#dedbd1;display:grid;place-items:center;overflow:hidden;color:var(--muted);font-size:.76rem}.trash-item-thumb img{width:100%;height:100%;object-fit:cover}.trash-item-main{min-width:0}.trash-item-row strong{display:block;font-weight:500;overflow-wrap:anywhere}.trash-item-row dl{display:grid;grid-template-columns:3.4em minmax(0,1fr);gap:.16rem .45rem;margin:.35rem 0 0;color:var(--muted);font:500 .78rem/1.5 "Yu Gothic","Meiryo",sans-serif}.trash-item-row dt,.trash-item-row dd{margin:0;min-width:0;overflow-wrap:anywhere}.trash-item-actions{display:flex;gap:.45rem;align-items:center}.trash-item-actions button{padding:.5rem .65rem;font-size:.82rem}.trash-item-actions .danger{background:#8f3e35;color:#fff;border-color:#8f3e35}@media(max-width:620px){.trash-item-row{grid-template-columns:64px minmax(0,1fr)}.trash-item-actions{grid-column:1/-1;justify-content:stretch}.trash-item-actions button{flex:1}}
.settings-backup-panel h3{margin-top:0}
.settings-backup-panel label{display:block;margin:.85rem 0}
.backup-action-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:.75rem;
}
.backup-action-grid button{
  min-height:72px;
  text-align:left;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:.25rem;
}
.backup-action-grid small{
  display:block;
  color:#5f6359;
  font-size:.82rem;
  line-height:1.35;
}
.backup-targets{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.45rem 1rem;
  margin:1rem 0;
  padding:.85rem;
  border:1px solid #e3ded2;
}
.backup-targets legend{font-weight:700;color:#555a50}
.settings-backup-panel .backup-targets label{
  margin:0;
  display:inline-grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  justify-content:start;
  column-gap:.5ch;
  min-width:0;
  line-height:1.35;
}
.backup-targets input[type="checkbox"]{
  margin:0;
  inline-size:1rem;
  block-size:1rem;
}
.backup-target-csv-action{
  grid-column:1/-1;
  margin-top:.35rem;
}
.backup-target-csv-action button{
  width:100%;
  min-height:72px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:.25rem;
  text-align:left;
}
.backup-target-csv-action small{
  display:block;
  color:#5f6359;
  font-size:.82rem;
  line-height:1.35;
}
.helper,
.dialog-form label,
.item-card p,
.kaiki-card p,
.kaiki-card small,
.master-card p,
.master-card small,
.movement-history-summary,
.tag-field h3,
.movement-history-field h3{
  color:#5f6359;
}
@media(max-width:640px){
  .backup-targets{
    grid-template-columns:1fr;
    gap:.55rem;
  }
}
.backup-import-row{
  margin-top:1rem;
  padding-top:1rem;
  border-top:1px solid #e3ded2;
}


.tea-usage-history-field{margin:.85rem 0}.tea-usage-history-field h3{margin:.2rem 0 .6rem;color:var(--muted);font-size:.86rem;font-weight:400}.tea-usage-history-form{display:grid;grid-template-columns:minmax(0,1fr) 12rem auto;gap:.65rem;align-items:end}.tea-usage-history-form label{margin:0}.tea-usage-history-form button{height:42px;padding:.55rem 1rem}.tea-usage-history-list{display:grid;gap:.4rem;margin-top:.7rem}.tea-usage-history-item{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.55rem .7rem;border:1px solid var(--line);background:#fffdf8}.tea-usage-history-item span{white-space:pre-wrap}.tea-usage-history-item button{flex:0 0 auto;padding:.25rem .55rem;background:#fffdf8}@media(max-width:820px){.tea-usage-history-form{grid-template-columns:1fr}.tea-usage-history-form button{width:min(12em,100%)} }

/* v5.03.01.034: restore PC other-page panels and compact recorder storage checkbox */
#otherPage .settings-trash-panel,
#otherPage .settings-backup-panel{
  box-sizing:border-box;
  width:min(760px,calc(100vw - 2rem));
  max-width:760px;
  margin:1.5rem auto;
  padding:1rem;
  border:1px solid var(--line);
  background:#fffdf8;
}
#otherPage .settings-trash-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
#otherPage .trash-item-list{
  display:grid;
  gap:.6rem;
  margin:.8rem 0;
}
#otherPage .trash-item-row{
  display:grid;
  grid-template-columns:72px minmax(0,1fr) auto;
  gap:.75rem;
  align-items:center;
  padding:.75rem;
  border:1px solid var(--line);
  background:#faf8f1;
}
#otherPage .trash-item-thumb{
  width:72px;
  aspect-ratio:4/3;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:#dedbd1;
  color:var(--muted);
  font-size:.76rem;
}
#otherPage .trash-item-thumb img{width:100%;height:100%;object-fit:cover}
#otherPage .trash-item-row dl{
  display:grid;
  grid-template-columns:3.4em minmax(0,1fr);
  gap:.16rem .45rem;
  margin:.35rem 0 0;
  color:var(--muted);
  font:500 .78rem/1.5 "Yu Gothic","Meiryo",sans-serif;
}
#otherPage .trash-item-row dt,#otherPage .trash-item-row dd{margin:0;min-width:0;overflow-wrap:anywhere}
#otherPage .trash-item-actions{display:flex;gap:.45rem;align-items:center}
#otherPage .trash-item-actions button{padding:.5rem .65rem;font-size:.82rem}
#otherPage .settings-backup-panel .backup-targets label{display:flex;align-items:center;gap:.35rem;margin:.25rem 0}
#itemDialog .storage-permission-row{
  grid-column:2;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:.45rem;
  margin:-.35rem 0 .4rem;
  color:var(--muted);
  font-size:.78rem;
}
#itemDialog .storage-permission-row input[type="checkbox"]{
  width:14px;
  height:14px;
  min-width:14px;
  flex:0 0 14px;
  margin:0;
  padding:0;
}
#itemDialog .storage-permission-row span{line-height:1.45}
@media(max-width:820px){
  #otherPage .settings-trash-panel,
  #otherPage .settings-backup-panel{width:100%;margin:1rem 0;padding:.85rem}
  #otherPage .trash-item-row{grid-template-columns:64px minmax(0,1fr)}
  #otherPage .trash-item-actions{grid-column:1/-1;justify-content:stretch}
  #otherPage .trash-item-actions button{flex:1}
  #itemDialog .storage-permission-row{grid-column:1;margin:-.2rem 0 .45rem}
}


#otherPage .account-users-panel{
  max-width:760px;
  margin:1.2rem auto;
  padding:1rem;
  border:1px solid var(--line);
  background:#fffdf8;
}
#otherPage .account-user-form{
  display:grid;
  grid-template-columns:minmax(112px,.65fr) minmax(150px,1fr) minmax(8em,.75fr) minmax(180px,1.15fr) 56px;
  gap:.7rem;
  align-items:end;
  margin-top:.9rem;
}
#otherPage .account-user-form label,
#otherPage .account-user-row label{display:grid;gap:.35rem}
#otherPage .account-user-form label{min-width:0}
#otherPage .account-user-form input,
#otherPage .account-user-form select{box-sizing:border-box;width:100%;min-width:0}
#otherPage .account-user-form button{box-sizing:border-box;width:56px;padding-left:0;padding-right:0}
#otherPage .account-user-list{display:grid;gap:.7rem;margin-top:1rem}
#otherPage .account-user-row{
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(130px,.7fr) auto auto;
  gap:.7rem;
  align-items:center;
  padding:.75rem;
  border:1px solid var(--line);
  background:#fffefa;
}
#otherPage .account-user-main{display:grid;gap:.2rem;min-width:0}
#otherPage .account-user-main small{color:var(--muted);font:500 .82rem/1.4 "Yu Gothic","Meiryo",sans-serif;overflow-wrap:anywhere}
@media (max-width:760px){
  #otherPage .account-users-panel{width:100%;margin:1rem 0;padding:.85rem}
  #otherPage .account-user-form,
  #otherPage .account-user-row{grid-template-columns:1fr}
}


/* v5.03.01.052: hard permission visibility guards */
[hidden]{display:none!important}
body:not([data-account-role="owner"]) [data-owner-only],
body:not([data-account-role="owner"]) [data-owner-only-field],
body:not([data-account-role="owner"]) [data-page="purchaseLedger"],
body[data-account-role="viewer"] [data-editor-only],
body[data-account-role="viewer"] [data-page="managementLedger"]{
  display:none!important;
}
body[data-account-role="viewer"] #newItem,
body[data-account-role="viewer"] #newTeaRecordHeader,
body[data-account-role="viewer"] #openDangerDataDialog,
body[data-account-role="viewer"] #openAccountDeleteDialog,
body[data-account-role="recorder"] #openDangerDataDialog,
body[data-account-role="recorder"] #openAccountDeleteDialog{
  display:none!important;
}
#itemDialog .shared-visibility-row{display:inline-flex!important;align-items:center;gap:.5rem;max-width:100%;margin:.85rem 0;color:var(--muted);font-size:.82rem;line-height:1.4;white-space:nowrap}#itemDialog .shared-visibility-row input[type="checkbox"]{width:16px;height:16px;min-width:16px;flex:0 0 16px;margin:0;padding:0}
.shared-visibility-options{display:flex;flex-wrap:wrap;gap:.1rem 1.2rem}.ledger-visibility-cell{text-align:center}.ledger-visibility-check{width:18px;height:18px;margin:0;cursor:pointer}.ledger-visibility-check:disabled{cursor:default;opacity:.72}
@media(max-width:820px){#managementLedger.ledger-table table{min-width:2080px}#managementLedger th:nth-child(8),#managementLedger td:nth-child(8){width:250px}#managementLedger th:nth-child(9),#managementLedger td:nth-child(9){width:270px}#managementLedger th:nth-child(10),#managementLedger td:nth-child(10),#managementLedger th:nth-child(11),#managementLedger td:nth-child(11){width:110px}#managementLedger th:nth-child(12),#managementLedger td:nth-child(12){width:300px}}
