:root{--ink:#142018;--muted:#6e7a71;--line:#dce5de;--paper:#f4f7f4;--green:#176b46;--deep:#123c2b;--soft:#e7f3ec;--amber:#a96b13;--power:#9a6221;--power-soft:#fff4e4;--red:#ad4545}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink);font-family:Inter,"Noto Sans SC","Noto Sans JP",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.loading{min-height:100vh;display:grid;place-items:center;color:var(--green)}.brand{display:flex;align-items:center;gap:10px}.brand-logo{width:38px;height:38px;object-fit:cover;border-radius:5px;box-shadow:0 2px 8px #0003}.brand span:last-child{display:flex;flex-direction:column}.brand b{font:700 15px Georgia,serif;letter-spacing:.12em}.brand small{font-size:7px;letter-spacing:.24em;color:#829087}.eyebrow{font-size:10px;letter-spacing:.17em;color:var(--green);font-weight:800}.primary{border:0;background:var(--green);color:#fff;border-radius:8px;padding:12px 17px;font-weight:750}.secondary{border:1px solid var(--line);background:#fff;color:#465449;border-radius:8px;padding:11px 15px}.danger{border:1px solid #e3b5b5;background:#fff;color:var(--red);border-radius:8px;padding:10px 14px}.notice{padding:11px 13px;border-radius:7px;background:#fff5df;color:#745526;font-size:11px}.error{padding:11px 13px;border-radius:7px;background:#faeaea;color:#943d3d;font-size:11px}.success-note{padding:11px 13px;border-radius:7px;background:#e5f3eb;color:var(--green);font-size:11px}

.login{min-height:100vh;display:grid;grid-template-columns:56% 44%;background:#fff}.login-art{background:linear-gradient(135deg,#0e3928f5,#176b46d9),radial-gradient(circle at 80% 15%,#91a599,#184c35);color:#fff;padding:48px 58px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative}.login-art:after{content:"";position:absolute;width:70%;aspect-ratio:1;border:1px solid #ffffff1f;border-radius:50%;right:-25%;top:5%;box-shadow:0 0 0 75px #ffffff08,0 0 0 150px #ffffff08}.login-art>*{position:relative;z-index:1}.login-copy{margin-top:auto;margin-bottom:70px}.login-copy h1{font:500 clamp(38px,4vw,60px)/1.25 Georgia,"Noto Serif SC",serif;letter-spacing:-.04em;margin:18px 0}.login-copy p{color:#ffffffad}.login-stats{display:flex;gap:50px;border-top:1px solid #ffffff30;padding-top:23px}.login-stats b{font:600 24px Georgia}.login-stats small{display:block;font:400 9px sans-serif;color:#ffffff90;margin-top:4px}.login-panel{display:grid;place-items:center;padding:35px;position:relative}.login-panel form{width:min(380px,100%)}.login-panel h2{font:600 38px Georgia,"Noto Serif SC",serif;margin:11px 0 5px}.login-panel p{font-size:13px;color:var(--muted);margin:0 0 25px}.form-label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:700;margin:15px 0}.form-label input,.form-label select,.form-label textarea{width:100%;border:1px solid #d5dfd7;background:#fff;border-radius:8px;padding:12px;outline:none}.form-label input:focus,.form-label select:focus,.form-label textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--soft)}.login-panel .primary{width:100%;margin-top:9px;display:flex;justify-content:space-between;padding:14px}.login-foot{position:absolute;bottom:24px;color:#9ba49e;font-size:9px}

.app-shell{min-height:100vh;display:flex}.side{position:fixed;inset:0 auto 0 0;width:235px;background:var(--deep);color:#fff;padding:26px 19px;display:flex;flex-direction:column}.side .brand{padding:0 9px 28px;border-bottom:1px solid #ffffff20}.side .brand small{color:#ffffff80}.side nav{display:flex;flex-direction:column;gap:5px;margin-top:25px}.side nav button{border:0;background:transparent;color:#ffffffa5;text-align:left;padding:12px;border-radius:7px;font-size:12px}.side nav button.on{background:#ffffff17;color:#fff;font-weight:700}.side footer{margin-top:auto;border-top:1px solid #ffffff20;padding-top:16px;display:flex;align-items:center;justify-content:space-between}.side footer span{display:flex;flex-direction:column;font-size:10px}.side footer small{font-size:8px;color:#ffffff80}.side footer button{border:0;background:transparent;color:#ffffff90}.main{margin-left:235px;width:calc(100% - 235px)}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;font-size:11px;color:var(--muted)}.topbar b{background:var(--soft);color:var(--green);padding:7px 11px;border-radius:15px}.content{max-width:1450px;margin:auto;padding:29px 32px 50px}.heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:23px}.heading h1{font:600 29px Georgia,"Noto Serif SC",serif;margin:6px 0 4px}.heading p{font-size:11px;color:var(--muted);margin:0}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.panel-title{display:flex;justify-content:space-between;align-items:start;padding:17px 19px;border-bottom:1px solid #edf1ee}.panel-title h2{font-size:14px;margin:0 0 3px}.panel-title p{font-size:9px;color:#879289;margin:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:14px}.stat{background:#fff;border:1px solid var(--line);border-left:3px solid var(--green);border-radius:9px;padding:17px;display:flex;flex-direction:column}.stat span{font-size:9px;color:#7e8981}.stat b{font:600 26px Georgia;margin:7px 0 3px}.stat small{font-size:8px;color:#929c94}.grid2{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:9px}th,td{text-align:left;padding:11px 13px;border-bottom:1px solid #edf0ed}th{background:#f8faf8;color:#829087;font-size:7px;letter-spacing:.06em}tr.click{cursor:pointer}tr.click:hover{background:#f3f8f5}.pill{display:inline-block;padding:4px 7px;border-radius:12px;font-size:7px;font-weight:700}.pending{background:#fff0d8;color:#986215}.valid{background:#e3f2e9;color:var(--green)}.supplement{background:#efe9f8;color:#775ca0}.invalid{background:#f8e6e6;color:#a34545}.actions{display:flex;gap:7px;flex-wrap:wrap}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:13px}.toolbar input,.toolbar select{border:1px solid var(--line);border-radius:7px;background:#fff;padding:9px 10px;font-size:10px}.empty{padding:45px;text-align:center;color:#829087;font-size:11px}.detail{padding:18px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:13px 0}.photo-grid img{width:100%;aspect-ratio:1.35;object-fit:cover;border-radius:6px;background:#edf1ee}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.detail-grid div{padding:9px 0;border-bottom:1px solid #edf0ed}.detail-grid dt{font-size:8px;color:#869188}.detail-grid dd{font-size:10px;font-weight:650;margin:3px 0 0}.modal-wrap{position:fixed;inset:0;background:#0b1e14a8;z-index:20;display:grid;place-items:center;padding:20px}.modal{width:min(640px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:12px;padding:21px}.modal header{display:flex;justify-content:space-between;align-items:center}.modal header h2{margin:0}.modal header button{border:0;background:transparent;font-size:20px}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rules{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:18px}.rule{display:flex;flex-direction:column}.rule span{font-size:8px;color:#829087}.rule b{font:600 19px Georgia;margin-top:5px}.map-box{height:210px;background:#e7ede8;border-radius:7px;position:relative;overflow:hidden;background-image:linear-gradient(30deg,transparent 48%,#fff 49% 51%,transparent 52%),linear-gradient(-25deg,transparent 48%,#ffffffc7 49% 51%,transparent 52%);background-size:90px 62px,120px 80px}.route-svg{width:100%;height:100%}

.field{min-height:100vh;padding-bottom:67px}.field-head{height:63px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(19px,calc((100vw - 560px)/2));position:sticky;top:0;z-index:5}.field-head .brand b{font-size:12px}.field-head button{border:0;background:transparent;color:var(--muted);font-size:9px}.field-main{width:min(100%,560px);margin:auto;padding:25px 19px}.field-main h1{font:600 28px Georgia,"Noto Serif SC",serif;margin:6px 0}.field-main>p{font-size:11px;color:var(--muted);margin:0 0 18px}.work-card{background:var(--deep);color:#fff;border-radius:11px;padding:17px;box-shadow:0 8px 20px #123c2b25}.work-card header{display:flex;justify-content:space-between;font-size:9px}.work-card header span:last-child{background:#ffffff18;padding:4px 7px;border-radius:12px}.work-card .timer{font:500 34px Georgia;margin:14px 0 8px}.work-card small{color:#ffffff90;font:400 9px sans-serif}.track-card,.target-card,.survey-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:15px;margin-top:10px}.track-card header,.target-card header{display:flex;justify-content:space-between;align-items:start}.track-card header div{display:flex;flex-direction:column}.track-card header b,.target-card header b{font-size:10px}.track-card header small{font-size:7px;color:#89948c;margin-top:3px}.track-card header>span{font-size:7px;border-radius:12px;background:#edf0ed;color:#758179;padding:5px 8px}.track-card header>span.live{background:#e4f3ea;color:var(--green)}.route-stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:7px;margin:10px 0}.route-stats div{display:flex;flex-direction:column;align-items:center;padding:8px;border-right:1px solid var(--line)}.route-stats div:last-child{border:0}.route-stats span{font-size:7px;color:#849087}.route-stats b{font:600 13px Georgia;margin-top:3px}.track-card>button{width:100%}.track-card>p{font-size:7px;color:#879289;text-align:center;margin:7px 0 0}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:1px solid var(--line);border-radius:9px;margin-top:10px}.mini-stats div{padding:12px;display:flex;flex-direction:column;align-items:center;border-right:1px solid var(--line)}.mini-stats div:last-child{border:0}.mini-stats span{font-size:8px;color:#849087}.mini-stats b{font:600 19px Georgia;margin-top:4px}.big-action{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;background:var(--green);color:#fff;border-radius:9px;padding:15px;margin-top:11px;text-align:left}.big-action span{display:flex;flex-direction:column}.big-action strong{font-size:11px}.big-action small{font-size:7px;color:#ffffffa0;margin-top:3px}.field-nav{position:fixed;bottom:0;left:0;right:0;height:61px;background:#fff;border-top:1px solid var(--line);display:flex;justify-content:center;z-index:6}.field-nav button{width:min(33.333%,186px);border:0;background:transparent;color:#89948c;font-size:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.field-nav button b{font-size:16px}.field-nav button.on{color:var(--green)}.form-section{background:#fff;border:1px solid var(--line);border-radius:9px;padding:17px;margin-bottom:10px}.form-section h2{font-size:12px;margin:0 0 13px}.form-section h2 b{color:var(--green);font:600 11px Georgia;margin-right:6px}.photos{display:grid;grid-template-columns:1fr 1fr;gap:7px}.filebox{min-height:100px!important;border:1px dashed #a8b7ac;border-radius:7px;display:flex!important;align-items:center;justify-content:center;text-align:center;background:#f8faf8;cursor:pointer;margin:0!important}.filebox input{display:none}.filebox strong{font-size:8px}.filebox small{font-size:7px;color:#89948c}.record-card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:14px;margin-bottom:9px}.record-card header{display:flex;justify-content:space-between}.record-card h2{font-size:11px;margin:9px 0 4px}.record-card p{font-size:8px!important;margin:0!important}.record-card footer{border-top:1px solid #edf0ed;margin-top:10px;padding-top:9px;display:flex;justify-content:space-between;font-size:8px;color:#859087}
.type-grid{display:grid;gap:11px}.type-card{border:0;border-radius:12px;padding:18px;display:grid;grid-template-columns:46px 1fr auto;align-items:center;text-align:left;color:#fff;box-shadow:0 8px 20px #123c2b1d}.type-card.carport{background:linear-gradient(135deg,#123c2b,#1d8055)}.type-card.power{background:linear-gradient(135deg,#6c4216,#b97a31)}.type-card>span{font-size:28px}.type-card div{display:flex;flex-direction:column}.type-card b{font:600 17px Georgia}.type-card small{font-size:9px;color:#ffffffbd;margin-top:4px}.type-card strong{font-size:20px}.skip-action{width:100%;margin-top:13px;border:1px dashed #aeb8b1;background:transparent;color:#6d786f;border-radius:9px;padding:12px;font-size:9px}.back-link{border:0;background:transparent;color:var(--muted);padding:0 0 12px;font-size:9px}.submit-wide{width:100%;margin-top:12px}.form-help{font-size:8px;color:var(--muted)}.power-text{color:var(--power)}.grade-grid{display:grid;gap:7px}.grade-grid label{display:grid;grid-template-columns:20px 35px 1fr;align-items:center;border:1px solid var(--line);border-radius:8px;padding:10px;cursor:pointer}.grade-grid label:has(input:checked){border-color:var(--power);background:var(--power-soft)}.grade-grid b{font:700 18px Georgia;color:var(--power)}.grade-grid span{font-size:9px;color:var(--muted)}.record-type{display:inline-block;margin-top:7px;font-size:7px;font-weight:800;color:var(--green);letter-spacing:.06em}.power-record{border-left:3px solid var(--power)}.power-record .record-type{color:var(--power)}.power-stat{border-left-color:var(--power)!important}.photo-grid figure{margin:0}.photo-grid figcaption{font-size:8px;color:var(--muted);margin-top:3px}

@media(max-width:900px){.login{grid-template-columns:1fr}.login-art{display:none}.login-panel{min-height:100vh}.side{width:72px;padding:21px 10px}.side .brand span:last-child,.side nav button{font-size:0}.side nav button{text-align:center}.side footer span{display:none}.main{margin-left:72px;width:calc(100% - 72px)}.stats{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.rules{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.side{display:none}.main{margin:0;width:100%}.topbar{padding:0 14px}.content{padding:20px 13px}.heading h1{font-size:24px}.stats{gap:7px}.stat{padding:13px}.stat b{font-size:21px}.photo-grid{grid-template-columns:1fr 1fr}.rules{grid-template-columns:1fr 1fr}}

.language-select{display:flex;justify-content:flex-end;gap:5px;margin-bottom:12px}
.language-select button{border:1px solid var(--line);border-radius:15px;background:#fff;color:var(--muted);padding:5px 9px;font-size:9px}
.language-select button.on{border-color:var(--green);background:var(--soft);color:var(--green);font-weight:800}
