@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/jetbrains-mono-cyrillic-ext-400-normal.6f9993c7.woff2)format("woff2"),url(../media/jetbrains-mono-cyrillic-ext-400-normal.69fafd92.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/jetbrains-mono-cyrillic-400-normal.6948140b.woff2)format("woff2"),url(../media/jetbrains-mono-cyrillic-400-normal.60cea313.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/jetbrains-mono-greek-400-normal.9f68a1db.woff2)format("woff2"),url(../media/jetbrains-mono-greek-400-normal.c26df111.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/jetbrains-mono-vietnamese-400-normal.b1a6308d.woff2)format("woff2"),url(../media/jetbrains-mono-vietnamese-400-normal.b3c2ab27.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/jetbrains-mono-latin-ext-400-normal.59050454.woff2)format("woff2"),url(../media/jetbrains-mono-latin-ext-400-normal.6ced78ab.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/jetbrains-mono-latin-400-normal.7d81c911.woff2)format("woff2"),url(../media/jetbrains-mono-latin-400-normal.6c85c018.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/jetbrains-mono-cyrillic-ext-500-normal.b11feff1.woff2)format("woff2"),url(../media/jetbrains-mono-cyrillic-ext-500-normal.5aec284f.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/jetbrains-mono-cyrillic-500-normal.d81abe7a.woff2)format("woff2"),url(../media/jetbrains-mono-cyrillic-500-normal.edaa4566.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/jetbrains-mono-greek-500-normal.a2e1a924.woff2)format("woff2"),url(../media/jetbrains-mono-greek-500-normal.74544975.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/jetbrains-mono-vietnamese-500-normal.5d5c4800.woff2)format("woff2"),url(../media/jetbrains-mono-vietnamese-500-normal.28011dde.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/jetbrains-mono-latin-ext-500-normal.a5021e3f.woff2)format("woff2"),url(../media/jetbrains-mono-latin-ext-500-normal.ae81f3bd.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/jetbrains-mono-latin-500-normal.0b0311a6.woff2)format("woff2"),url(../media/jetbrains-mono-latin-500-normal.dbb47f19.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(../media/jetbrains-mono-cyrillic-ext-700-normal.9ffaf9af.woff2)format("woff2"),url(../media/jetbrains-mono-cyrillic-ext-700-normal.711863c0.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(../media/jetbrains-mono-cyrillic-700-normal.6de66877.woff2)format("woff2"),url(../media/jetbrains-mono-cyrillic-700-normal.05b3ec38.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(../media/jetbrains-mono-greek-700-normal.71bd605f.woff2)format("woff2"),url(../media/jetbrains-mono-greek-700-normal.3df8e43b.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(../media/jetbrains-mono-vietnamese-700-normal.62744cd8.woff2)format("woff2"),url(../media/jetbrains-mono-vietnamese-700-normal.2ddb74ca.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(../media/jetbrains-mono-latin-ext-700-normal.ebea5881.woff2)format("woff2"),url(../media/jetbrains-mono-latin-ext-700-normal.d124a496.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(../media/jetbrains-mono-latin-700-normal.ba0a2a55.woff2)format("woff2"),url(../media/jetbrains-mono-latin-700-normal.afd8f8eb.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Noto Sans JP;font-style:normal;font-display:swap;font-weight:400;src:url(../media/noto-sans-jp-japanese-400-normal.699d9d0a.woff2)format("woff2"),url(../media/noto-sans-jp-japanese-400-normal.a1eb39e6.woff)format("woff")}
@font-face{font-family:Noto Sans JP;font-style:normal;font-display:swap;font-weight:500;src:url(../media/noto-sans-jp-japanese-500-normal.3c618ddf.woff2)format("woff2"),url(../media/noto-sans-jp-japanese-500-normal.947d0fb3.woff)format("woff")}
@font-face{font-family:Noto Sans JP;font-style:normal;font-display:swap;font-weight:700;src:url(../media/noto-sans-jp-japanese-700-normal.034b0617.woff2)format("woff2"),url(../media/noto-sans-jp-japanese-700-normal.00d72913.woff)format("woff")}
:root{--primary:#08f;--primary-hover:#0079e3;--secondary:#009151;--secondary-hover:#074;--danger:#ff2323;--panel:#efefef;--bg:var(--panel);--surface:#fff;--text:#1b1f24;--muted:#64748b;--line:#d9e0e8;--success:var(--secondary);--font-app-sans:"Noto Sans JP";--font-app-mono:"JetBrains Mono"}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-app-sans),sans-serif;font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}input,textarea,select,button{font:inherit}button{cursor:pointer}.page{min-height:100dvh;padding:1rem}.page.with-footer{padding-bottom:calc(60px + 1.5rem + env(safe-area-inset-bottom,0px))}.auth-page{place-items:center;min-height:100vh;padding:1rem;display:grid}.stack{gap:.75rem;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1rem}.grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;display:grid}.tile{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:12px;place-items:center;min-height:80px;padding:1rem;display:grid}.form{gap:.75rem;display:grid}.form label{gap:.25rem;display:grid}.form input,.form textarea,.form select{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;padding:.6rem .7rem}.form button:not(.MuiButton-root),.row button:not(.MuiButton-root){border:1px solid var(--line);background:#fff;border-radius:8px;padding:.55rem .8rem}.row{flex-wrap:wrap;gap:.5rem;display:flex}.muted{color:var(--muted)}.error{color:var(--danger)}.success{color:var(--success)}.list{gap:.5rem;list-style:none;display:grid}.list-item{border:1px solid var(--line);background:var(--surface);border-radius:8px;justify-content:space-between;gap:1rem;padding:.75rem;display:flex}.top-header{z-index:5;background:var(--panel);border-bottom:1px solid #000;justify-content:space-between;align-items:center;gap:.75rem;height:60px;padding:.5rem 1rem;display:flex;position:sticky;top:0}.header-brand{flex:auto;align-items:center;gap:.45rem;min-width:0;display:inline-flex}.header-brand strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.header-right{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:.75rem;min-width:0;display:flex}.header-user-name{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;overflow:hidden}.header-right .header-logout-button{white-space:normal;justify-content:center;align-items:center;gap:.35rem;max-width:8.5rem;min-height:34px;padding:.2rem .55rem;font-size:.9rem;line-height:1.2;display:inline-flex}.footer-nav{z-index:10;background:var(--panel);padding:.2rem .3rem .1rem;padding-bottom:env(safe-area-inset-bottom,0px);border-top:1px solid #000;grid-template-columns:repeat(5,1fr);gap:.1rem;height:60px;display:grid;position:fixed;bottom:0;left:0;right:0}.footer-link{color:#111827;grid-template-rows:auto 1fr 4px;place-items:center;height:100%;padding:.25rem .15rem .1rem;font-size:.86rem;font-weight:500;display:grid}.footer-label{white-space:nowrap;line-height:1.1}.footer-icon{place-items:center;line-height:1;display:grid}.footer-icon svg{font-size:1.85rem}.footer-underline{background:0 0;border-radius:4px;width:70%;height:3px}.footer-link.active .footer-underline{background:var(--primary)}.footer-link.active .footer-label,.footer-link.active .footer-icon{color:#111827}.home-history-list{gap:.5rem;display:grid}.home-history-item{background:#f8f8f8;border:1px solid #000;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:.5rem;padding:.6rem .75rem;display:flex}.home-history-date{font-family:Inter,sans-serif;font-size:1rem;font-weight:400;line-height:1.3}.home-history-label{color:var(--text);text-align:right;font-size:.875rem}.screen-shell{gap:.9rem;width:100%;max-width:420px;margin:0 auto;padding:.75rem 0 1rem;display:grid}.screen-form{gap:.95rem;display:grid}.screen-title-row{align-items:center;gap:.45rem;display:flex}.screen-title-row svg{font-size:1.35rem}.screen-title-text{font-size:1rem;font-weight:700;line-height:1.3}.screen-line-section{border-bottom:1px solid #000;gap:.8rem;padding:0 0 1rem;display:grid}.screen-field-static{gap:.35rem;display:grid}.screen-field-label{color:#475569;font-size:.8rem;line-height:1.3}.screen-field-value{color:var(--text);font-size:.95rem;line-height:1.5}.screen-button-stack{gap:.55rem;display:grid}.screen-action-button,.screen-submit-button{width:100%}.tab-card{background:#fff;border:1px solid #000;border-radius:10px;overflow:hidden}.tab-card-header{background:#d9d9d9;border-bottom:1px solid #000;align-items:center;min-height:42px;padding:.65rem .9rem;font-size:.95rem;font-weight:700;line-height:1.3;display:flex}.tab-card-body{background:#efefef;gap:.8rem;padding:.9rem;display:grid}.section-title{padding:.25rem 0;font-size:1rem;font-weight:600}.process-card{background:#fff;border:1px solid #000;border-radius:10px;gap:.2rem;padding:.75rem .9rem;display:grid}.process-card-row{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.process-card-date{color:var(--text);font-family:Inter,sans-serif;font-size:.875rem}.process-card-type{color:var(--text);white-space:nowrap;font-size:.875rem}.process-card-project{color:var(--text);font-size:.875rem}.process-card-actions{justify-content:flex-end;padding-top:.35rem;display:flex}.photo-preview-large{aspect-ratio:3/2;border:1px solid var(--line);background:#f8fafc;border-radius:10px;width:100%;position:relative;overflow:hidden}.photo-placeholder{height:100%;color:var(--muted);place-items:center;gap:.35rem;font-size:.875rem;display:grid}.photo-placeholder svg{font-size:2.5rem}.admin-layout{width:100%;max-width:1080px;margin:0 auto}.admin-layout .card{border-radius:14px}.admin-layout .list-item{align-items:center}.admin-layout .form{grid-template-columns:1fr}.photo-slots-row{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.photo-slots-row-compact .photo-slot{aspect-ratio:1}.photo-slot{aspect-ratio:3/2;cursor:pointer;background:#fff;border:1px solid #000;border-radius:5px;justify-content:center;align-items:center;padding:0;display:flex;position:relative;overflow:hidden}.photo-slot.selected{border:2px solid var(--primary);box-shadow:inset 0 0 0 1px #0088ff29}.photo-slot.has-image:not(.selected){opacity:.58}.photo-slot svg{color:var(--muted);font-size:2rem}.photo-slot-empty-text{color:#64748b;font-size:.75rem}.process-preview-box{border:1px solid var(--line);background:#f8fafc;border-radius:8px;min-height:112px;padding:.45rem}.process-empty-preview{text-align:center;color:#4b5563;place-items:center;gap:.35rem;min-height:102px;display:grid}.process-empty-preview svg{font-size:2rem}.process-preview-list{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.process-preview-item{align-content:start;gap:.35rem;display:grid}.process-preview-image-frame{aspect-ratio:1;border:1px solid #cdd7e3;border-radius:6px;width:100%;position:relative;overflow:hidden}.process-preview-image{object-fit:cover;width:100%;height:100%;display:block}.process-preview-item button{width:100%}.process-location-panel{gap:.55rem;display:grid}.process-latlon-row{grid-template-columns:1fr 1fr;gap:.45rem;display:grid}.process-latlon-col{gap:.2rem;display:grid}.process-latlon-label{font-size:.875rem}.process-latlon-input{background:#fff;border:1px solid #000;border-radius:5px;width:100%;padding:.5rem;font-size:.75rem}.process-location-map-shell{gap:.3rem;display:grid}.process-location-map{background:#dbeafe;border:1px solid #000;border-radius:5px;width:100%;height:200px;overflow:hidden}.process-location-map-shell .maplibregl-ctrl-bottom-right,.process-location-map-shell .maplibregl-ctrl-bottom-left{bottom:0}.process-location-map-shell .maplibregl-ctrl-attrib{box-shadow:none;color:#475569;background:0 0;border-radius:0;margin:0;font-size:.62rem;line-height:1.2}.process-location-map-shell .maplibregl-ctrl-attrib a{color:inherit}.process-location-license{color:#475569;text-align:right;font-size:.62rem;line-height:1.2}.process-location-license a{color:inherit;text-decoration:underline}.company-user-list{gap:.6rem;display:grid}.company-user-card{background:#fff;border:1px solid #000;border-radius:8px;gap:.2rem;padding:.7rem .75rem;display:grid}.company-user-name{font-size:.95rem;font-weight:700;line-height:1.35}.company-user-email{color:#475569;word-break:break-all;font-size:.82rem}.company-user-add-button{width:100%;margin-top:.2rem}.process-location-pin{background:radial-gradient(circle at 35% 35%,#fca5a5 0%,#ef4444 45%,#991b1b 100%);border:2px solid #fff;border-radius:999px;width:22px;height:22px;animation:1.9s ease-in-out infinite location-pin-pulse;box-shadow:0 0 0 3px #0f172a73,0 6px 12px #0f172a73}.public-location-pin{background:radial-gradient(circle at 35% 35%,#fca5a5 0%,#ef4444 45%,#991b1b 100%);border:2px solid #fff;border-radius:999px;width:18px;height:18px;box-shadow:0 0 0 2px #0f172a66,0 4px 8px #0f172a59}.maplibregl-marker{will-change:transform;position:absolute;top:0;left:0}@keyframes location-pin-pulse{0%,to{box-shadow:0 0 0 3px #0f172a73,0 6px 12px #0f172a73}50%{box-shadow:0 0 0 5px #0f172a47,0 8px 14px #0f172a85}}.scanner-modal{z-index:30;background:#0f172abf;place-items:center;padding:.75rem;display:grid;position:fixed;inset:0}.scanner-panel{background:#fff;border-radius:14px;gap:.65rem;width:100%;max-width:420px;max-height:95vh;padding:.85rem;display:grid;overflow:auto}.scanner-header{justify-content:space-between;align-items:center;display:flex}.scanner-header h2{font-size:1rem}.scanner-header button{background:#fff;border:1px solid #cdd7e3;border-radius:8px;place-items:center;width:34px;height:34px;display:grid}.scanner-video-wrap{aspect-ratio:3/4;background:#111827;border:1px solid #d9e0e8;border-radius:10px;width:100%;position:relative;overflow:hidden}.scanner-video{object-fit:cover;width:100%;height:100%}.scanner-frame{aspect-ratio:1;pointer-events:none;border:3px solid #60a5fa;border-radius:14px;width:70%;max-width:250px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.scanner-fallback{border-top:1px solid #e2e8f0;gap:.6rem;padding-top:.65rem;display:grid}.scanner-search-body{border-top:none;padding-top:0}.scanner-inline-row{align-items:center;gap:.5rem;display:flex}.scanner-inline-row .MuiFormControl-root{flex:1}.scanner-inline-row button{background:#fff;border:1px solid #cdd7e3;border-radius:8px;padding:.5rem .7rem}.scanner-search-results{gap:.35rem;max-height:160px;list-style:none;display:grid;overflow:auto}.scanner-search-results .MuiButton-root{text-align:left;justify-content:flex-start;width:100%}.scanner-actions{gap:.5rem;display:grid}.scanner-actions .MuiButton-root{width:100%}@media (max-width:768px){.page{padding:.75rem}.top-header{padding:.5rem .75rem}.header-brand strong{font-size:.9rem}.header-right{gap:.5rem;font-size:.85rem}.header-user-name{max-width:6rem}.list-item{flex-direction:column;gap:.35rem}.home-history-date{font-size:1.02rem}.home-history-label{font-size:.94rem}.admin-layout{max-width:100%}}@media (max-width:480px){.footer-link{padding:.18rem .1rem .08rem;font-size:.8rem}.footer-icon svg{font-size:1.7rem}.footer-underline{width:78%}.process-location-map{height:180px}}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
