:root{--forest:#17332f;--green:#2e6a59;--gold:#c49b54;--paper:#f2efe7;--panel:#fffdf8;--line:#ddd8cd;--ink:#18231f;--muted:#6f7b75;--red:#a6463b}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Yu Gothic UI","Hiragino Kaku Gothic ProN",sans-serif}.hidden{display:none!important}button,input,select{font:inherit}button{border:0;border-radius:12px;background:var(--green);color:#fff;font-weight:750}input,select{width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:16px}label{display:grid;gap:6px;margin-bottom:14px;color:var(--muted);font-size:12px}#gate{min-height:100vh;padding:max(64px,env(safe-area-inset-top)) 26px 36px;background:radial-gradient(circle at 80% 10%,#3d7665,transparent 32%),var(--forest);color:#fff}.mark{display:grid;width:66px;height:66px;place-items:center;border:1px solid #ffffff55;border-radius:20px;background:#ffffff12;font:36px "Yu Mincho",serif}.eyebrow{margin-top:28px;color:#d7b36b;font-size:10px;letter-spacing:.18em}#gate h1{margin:14px 0 7px;white-space:nowrap;font:500 clamp(34px,10vw,44px)/1.2 "Yu Mincho",serif}.gate-company{margin:0 0 24px;color:#d7b36b;font-size:10px;font-weight:700;letter-spacing:.1em}#login{padding:22px;border-radius:22px;background:var(--panel);color:var(--ink)}#login button,form>button{width:100%;min-height:50px}#error{min-height:18px;color:var(--red);font-size:12px}header{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:max(18px,env(safe-area-inset-top)) 20px 14px;background:#f2efe7eF;backdrop-filter:blur(16px)}header small{color:var(--muted);font-size:10px}header h2{margin:4px 0 0;font:500 27px "Yu Mincho",serif}header button{padding:8px 12px;background:transparent;color:var(--green)}.content{padding:8px 16px calc(92px + env(safe-area-inset-bottom))}.view{display:none}.view.active{display:block}.hero{padding:24px;border-radius:22px;background:radial-gradient(circle at 90% 5%,#4d8a76,transparent 38%),var(--forest);color:#fff}.hero span,.hero strong,.hero small{display:block}.hero span{color:#b8cec7;font-size:12px}.hero strong{margin:30px 0 12px;font:500 35px "Yu Mincho",serif}.hero small{color:#90aaa2;font-size:9px;letter-spacing:.14em}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 24px}.cards article{padding:14px 11px;border:1px solid var(--line);border-radius:15px;background:var(--panel)}.cards span,.cards strong{display:block}.cards span{color:var(--muted);font-size:9px}.cards strong{margin-top:12px;font:500 14px "Yu Mincho",serif}.section-head{display:flex;align-items:center;justify-content:space-between}.section-head button{padding:9px 13px}.list{display:grid;gap:8px}.row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.row strong,.row small{display:block}.row small{margin-top:4px;color:var(--muted);font-size:10px}.row .amount{text-align:right}.hint{color:var(--muted);font-size:12px;line-height:1.7}form:not(#login){padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--panel)}.file{padding:18px;border:1px dashed var(--green);border-radius:12px;color:var(--green);text-align:center}.file input{border:0;padding:4px;font-size:12px}.range{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}.range button{grid-column:1/-1}nav{position:fixed;right:0;bottom:0;left:0;z-index:10;display:grid;grid-template-columns:repeat(4,1fr);padding:9px 10px calc(9px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fffdf8ee;backdrop-filter:blur(18px)}nav button{padding:11px 3px;background:transparent;color:var(--muted);font-size:11px}nav button.active{color:var(--green);background:#dce9e3}dialog{width:min(92vw,500px);max-height:90vh;padding:0;border:0;border-radius:22px;background:var(--panel)}dialog form{border:0!important}dialog::backdrop{background:#102823bb}#toast{position:fixed;right:20px;bottom:90px;left:20px;z-index:30;padding:13px;border-radius:12px;background:var(--forest);color:#fff;text-align:center;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1}#toast.error{background:var(--red)}
.gate-top{display:flex;align-items:center;justify-content:space-between}.quiet{padding:10px 12px;border:1px solid #ffffff44;background:#ffffff12}.gate-note{margin:0 0 22px;color:#bfd0cb;font-size:12px;line-height:1.7}.install-card{padding:22px}.install-card ol{padding-left:22px;color:var(--muted);line-height:1.8}.install-card>button{width:100%;min-height:48px}@media(min-width:720px){#gate{display:grid;align-content:center;max-width:720px;margin:auto}body{background:#dbe4df}.content,header,nav{max-width:720px;margin-inline:auto}nav{left:50%;transform:translateX(-50%);width:720px}.cards strong{font-size:18px}}
nav.six{grid-template-columns:repeat(6,1fr)!important}.badge{padding:6px 9px;border-radius:999px;background:#dce9e3;color:var(--green);font-size:10px}.admin-tabs{display:flex;gap:7px;overflow-x:auto;margin:10px 0 14px}.admin-tabs button{flex:0 0 auto;padding:9px 12px;background:#e5e1d8;color:var(--muted)}.admin-tabs button.active{background:var(--forest);color:#fff}.admin-panel{display:none}.admin-panel.active{display:block}.locked{opacity:.45;pointer-events:none}.user-actions{display:flex;align-items:center;gap:5px}.user-actions button{padding:7px;font-size:10px}.user-actions .danger{background:var(--red)}.annual-card{padding:20px;border-radius:20px;background:var(--forest);color:#fff}.annual-card>small{color:#b8cec7}.annual-card h3{font:500 25px "Yu Mincho",serif}.check-grid{display:grid;gap:7px}.check-grid span{padding:9px;border-radius:10px;font-size:11px}.check-grid .ok{background:#2f6a59}.check-grid .warn{background:#795c2d}.annual-card dl{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.annual-card dl div{padding:9px;border:1px solid #ffffff22;border-radius:10px}.annual-card dt{font-size:9px;color:#b8cec7}.annual-card dd{margin:5px 0 0;font-size:18px}.export-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.export-actions button{padding:10px;background:#fff;color:var(--forest);font-size:11px}

/* Mobile top toolbar and collapsible navigation */
#app>header{z-index:40;gap:10px;padding-right:12px}
.mobile-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex:0 0 auto}
#mobileMenuToggle{display:inline-flex;align-items:center;gap:5px;min-height:36px;padding:7px 9px;border:1px solid #cbd7d2;border-radius:10px;background:#fff;color:var(--green);font-size:11px;box-shadow:0 3px 12px rgba(23,51,47,.07)}
#mobileMenuToggle .menu-chevron{font-size:15px;transition:transform .18s}
#app.menu-open #mobileMenuToggle .menu-chevron{transform:rotate(180deg)}
#app>nav{position:fixed;top:calc(max(18px,env(safe-area-inset-top)) + 61px);right:12px;bottom:auto;left:12px;z-index:35;display:none;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px;max-height:min(68vh,520px);padding:10px;border:1px solid var(--line);border-radius:16px;background:#fffdf8f7;box-shadow:0 20px 55px rgba(16,40,34,.22);backdrop-filter:blur(18px);overflow-y:auto}
#app.menu-open>nav{display:grid;animation:mobileMenuIn .18s ease-out}
#app>nav button{min-height:43px;padding:10px 11px;border-radius:10px;background:#f0eee7;color:#51615b;text-align:left;font-size:12px}
#app>nav button.active{background:var(--forest);color:#fff}
#app .content{padding-bottom:calc(28px + env(safe-area-inset-bottom))}
#app #logout{min-height:36px;padding:7px 8px;font-size:10px}
@keyframes mobileMenuIn{from{opacity:0;transform:translateY(-7px)}}
@media(min-width:720px){#app>nav{right:max(12px,calc((100vw - 696px)/2));left:max(12px,calc((100vw - 696px)/2));width:auto;transform:none}.content,header{max-width:720px;margin-inline:auto}}

/* 2026 mobile workspace redesign */
:root{--paper:#f4f1e9;--panel:#fffefa;--line:#ded9ce;--shadow:0 12px 34px rgba(20,48,41,.08)}
body{min-height:100vh;background:radial-gradient(circle at 10% 0,#fff9e9 0,transparent 33%),linear-gradient(180deg,#f7f4ec 0,#f1eee6 100%);line-height:1.5}#app{min-height:100vh}
#app>header{position:sticky;top:0;z-index:50;min-height:116px;align-items:flex-end;padding:max(18px,env(safe-area-inset-top)) 18px 16px;background:linear-gradient(180deg,rgba(247,244,236,.98),rgba(247,244,236,.9));border-bottom:1px solid rgba(23,51,47,.06);box-shadow:0 8px 28px rgba(23,51,47,.04);backdrop-filter:blur(22px)}
#app>header>div:first-child{min-width:0;flex:1}#app>header small{display:block;overflow:hidden;color:#79827d;font-size:11px;font-weight:700;letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap}#app>header h2{margin:7px 0 0;font:600 30px/1.08 "Yu Mincho","Hiragino Mincho ProN",serif;letter-spacing:.01em}
.mobile-header-actions{align-items:center;gap:7px;margin-bottom:1px}#mobileMenuToggle{min-width:86px;height:42px;padding:7px 10px;border-color:#d4d9d5;border-radius:13px;box-shadow:0 7px 20px rgba(23,51,47,.08);font-size:11px}#mobileMenuToggle .menu-icon{display:grid;width:15px;gap:3px}#mobileMenuToggle .menu-icon i{display:block;width:15px;height:1.5px;border-radius:2px;background:currentColor}#mobileMenuToggle .menu-chevron{margin-left:auto;font-size:14px}
body #systemLanguageControl{align-self:center!important;min-width:86px!important;height:42px!important;margin:0!important;padding:5px 7px!important;border-color:#d4d9d5!important;border-radius:13px!important;box-shadow:0 7px 20px rgba(23,51,47,.08)!important}body #systemLanguageControl span{display:none!important}body #systemLanguageControl select{width:70px!important;height:30px!important;font-size:11px!important}
#app .content{max-width:680px;padding:18px 18px calc(36px + env(safe-area-inset-bottom));margin-inline:auto}.view.active{animation:viewReveal .28s ease both}
.hero{position:relative;min-height:164px;padding:25px 26px;overflow:hidden;border-radius:27px;background:radial-gradient(circle at 90% 0,#4b8573 0,transparent 42%),linear-gradient(145deg,#193b34,#0f2e29);box-shadow:0 20px 40px rgba(15,46,41,.18)}.hero::after{content:"";position:absolute;right:-34px;bottom:-70px;width:180px;height:180px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 26px rgba(255,255,255,.025),0 0 0 54px rgba(255,255,255,.02)}.hero span,.hero strong,.hero small{position:relative;z-index:1}.hero span{color:#b9d0c8;font-size:12px;font-weight:700;letter-spacing:.05em}.hero strong{margin:24px 0 12px;font:500 43px/1 "Yu Mincho","Hiragino Mincho ProN",serif;letter-spacing:-.03em}.hero small{color:#8eaaa1;font-size:9px;letter-spacing:.18em}
.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 34px}.cards article{min-height:108px;padding:17px;border:1px solid rgba(45,76,66,.13);border-radius:19px;background:rgba(255,254,250,.88);box-shadow:0 9px 26px rgba(31,55,48,.055)}.cards article:last-child{grid-column:1/-1;display:flex;min-height:76px;align-items:center;justify-content:space-between;background:linear-gradient(115deg,#f2e8d4,#fffaf0)}.cards span{font-size:11px;font-weight:650}.cards strong{margin-top:17px;font-size:20px}.cards article:last-child strong{margin:0;font-size:23px}
.view>h3,.section-head h3{margin:0 0 16px;font:700 23px/1.25 "Yu Mincho","Hiragino Mincho ProN",serif}.section-head{margin-bottom:14px}.section-head h3{margin:0}.section-head button{min-height:40px;padding:9px 15px;border-radius:12px}.list{gap:10px}.row{padding:16px;border-color:rgba(45,76,66,.13);border-radius:17px;background:rgba(255,254,250,.9);box-shadow:0 8px 22px rgba(31,55,48,.045)}.row strong{font-size:14px}.row small{font-size:11px;line-height:1.55}
.empty-state{display:grid;min-height:150px;place-items:center;align-content:center;gap:13px;border:1px dashed #ccd4cf;border-radius:22px;background:rgba(255,254,250,.58);color:#7b8781;text-align:center}.empty-state .empty-symbol{display:grid;width:46px;height:46px;place-items:center;border:1px solid #c8d3ce;border-radius:15px;color:var(--green);font:24px "Yu Mincho",serif}.empty-state strong{font-size:14px;font-weight:650}
form:not(#login){padding:19px;border-color:rgba(45,76,66,.13);border-radius:21px;background:rgba(255,254,250,.92);box-shadow:var(--shadow)}input,select{border-color:#d8d8d1;border-radius:13px;background:#fffefa}
#app>nav{top:calc(max(18px,env(safe-area-inset-top)) + 103px);right:14px;left:14px;z-index:48;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px;max-height:calc(100vh - 142px - env(safe-area-inset-bottom));padding:14px;border-color:rgba(45,76,66,.14);border-radius:23px;background:rgba(255,254,250,.985);box-shadow:0 26px 70px rgba(15,40,34,.26);backdrop-filter:blur(24px);counter-reset:module;overscroll-behavior:contain}#app>nav button{position:relative;min-height:62px;padding:13px 14px 12px 42px;border:1px solid transparent;border-radius:15px;background:#f3f1ea;color:#53635d;font-size:13px;font-weight:750;text-align:left}#app>nav button:not(#logout){counter-increment:module}#app>nav button::before{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#9aa59f;font:600 9px/1 sans-serif;letter-spacing:.08em}#app>nav button:not(#logout)::before{content:counter(module,decimal-leading-zero)!important}
#app>nav button:nth-child(1)::before{content:"01"}#app>nav button:nth-child(2)::before{content:"02"}#app>nav button:nth-child(3)::before{content:"03"}#app>nav button:nth-child(4)::before{content:"04"}#app>nav button:nth-child(5)::before{content:"05"}#app>nav button:nth-child(6)::before{content:"06"}#app>nav button:nth-child(7)::before{content:"07"}#app>nav button:nth-child(8)::before{content:"08"}#app>nav button:nth-child(9)::before{content:"09"}#app>nav button:nth-child(10)::before{content:"10"}#app>nav button.active{border-color:#214a40;background:linear-gradient(145deg,#193b34,#113029);color:#fff;box-shadow:0 8px 18px rgba(17,48,41,.16)}#app>nav button.active::before{color:#b9d0c8}#app>nav #logout{grid-column:1/-1;min-height:48px;padding-left:14px;border:1px solid #ead5d0;background:#fff6f3;color:#9b4138;text-align:center}#app>nav #logout::before{content:none}
.mobile-menu-backdrop{position:fixed;inset:0;z-index:45;display:none;border-radius:0;background:rgba(12,31,27,.33);backdrop-filter:blur(2px)}#app.menu-open .mobile-menu-backdrop{display:block;animation:backdropIn .18s ease-out}#app.menu-open>nav{display:grid;animation:menuSheetIn .22s cubic-bezier(.2,.8,.2,1)}
#toast{right:18px;bottom:calc(24px + env(safe-area-inset-bottom));left:18px;padding:15px;border-radius:15px;box-shadow:0 14px 35px rgba(15,40,34,.25)}@keyframes viewReveal{from{opacity:.25;transform:translateY(5px)}}@keyframes backdropIn{from{opacity:0}}@keyframes menuSheetIn{from{opacity:0;transform:translateY(-10px) scale(.985)}}
.mobile-module-view .module-summary{margin-top:4px}.mobile-module-view .row>button{align-self:center;padding:9px 12px}.module-metric{display:flex;align-items:center;justify-content:space-between;padding:18px;border-radius:18px;background:var(--forest);color:#fff}.module-metric span{font-size:12px;color:#b9d0c8}.module-metric strong{font:500 30px "Yu Mincho",serif}
.capture-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:4px 0 14px}.capture-action{position:relative;display:flex;min-height:126px;align-items:center;justify-content:center;gap:7px;margin:0;padding:17px 12px;overflow:hidden;border:1px solid #c7d5cf;border-radius:19px;background:linear-gradient(145deg,#e4f0eb,#f8fbf8);color:var(--forest);text-align:center;cursor:pointer}.capture-action.secondary{border-color:#d8d4ca;background:linear-gradient(145deg,#f4f1e9,#fffefa);color:#55625d}.capture-action input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.capture-action strong,.capture-action small{display:block}.capture-action strong{font-size:14px}.capture-action small{max-width:130px;color:#78857f;font-size:10px;line-height:1.45}.camera-symbol{position:relative;display:block;width:36px;height:28px;margin:0 auto 8px;border:2px solid currentColor;border-radius:9px}.camera-symbol::before{content:"";position:absolute;left:50%;top:50%;width:11px;height:11px;border:2px solid currentColor;border-radius:50%;transform:translate(-50%,-50%)}.camera-symbol::after{content:"";position:absolute;left:7px;top:-6px;width:13px;height:6px;border-radius:4px 4px 0 0;background:currentColor}.files-symbol{display:grid;width:34px;height:34px;margin:0 auto 7px;place-items:center;border:2px solid currentColor;border-radius:9px;font-size:10px;font-weight:800}.capture-preview{margin:0 0 14px}.capture-empty{margin:0;padding:15px;border:1px dashed #cdd5d1;border-radius:14px;color:#87918c;font-size:11px;text-align:center}.capture-count{margin:0 0 8px;color:var(--green);font-size:11px;font-weight:750}.capture-grid{display:grid;gap:8px}.capture-item{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:10px;padding:9px;border:1px solid var(--line);border-radius:14px;background:#fff}.capture-item img,.pdf-mark{width:48px;height:48px;border-radius:10px;object-fit:cover}.pdf-mark{display:grid;place-items:center;background:#f4e7e3;color:#9b4138;font-size:10px;font-weight:800}.capture-item strong,.capture-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.capture-item strong{font-size:11px}.capture-item small{color:var(--muted);font-size:9px}.capture-item button{padding:7px 8px;background:#f5e9e5;color:#9b4138;font-size:10px}#documentForm>button[type="submit"]{background:linear-gradient(135deg,#2d735f,#205747);box-shadow:0 10px 22px rgba(32,87,71,.18)}#documentForm>button:disabled{opacity:.6}@media(max-width:370px){.capture-choices{grid-template-columns:1fr}.capture-action{min-height:104px;flex-direction:row}.capture-action>span{margin:0}}
@media(max-width:370px){#app>header{padding-inline:14px}.mobile-header-actions{gap:5px}#mobileMenuToggle{min-width:75px;padding-inline:8px}.menu-chevron{display:none}body #systemLanguageControl{min-width:65px!important}.cards article{padding:14px}}@media(min-width:720px){#app>nav{right:max(14px,calc((100vw - 680px)/2));left:max(14px,calc((100vw - 680px)/2));width:auto}.content,#app>header{max-width:720px;margin-inline:auto}}
