:root{--ink:#183444;--muted:#71828a;--line:#e6eceb;--navy:#0d3040;--mint:#e9f5ee;--green:#26946d;--coral:#e2574c;--paper:#f7f9f8}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans JP',sans-serif;font-size:14px}#app{min-height:100vh;display:flex}aside{width:248px;flex:none;background:var(--navy);color:#d9e7e9;padding:28px 16px;display:flex;flex-direction:column;min-height:100vh}.brand{display:flex;align-items:center;gap:11px;font-weight:800;color:#fff;font-size:16px;padding:0 10px 34px}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#4fc19a;color:var(--navy);font:bold 19px Georgia}.brand small,.user small{display:block;font:9px 'DM Mono';letter-spacing:1px;color:#8fa8b2;margin-top:2px}nav{display:grid;gap:5px}.nav-item{color:#b6cbd1;border:0;background:transparent;text-align:left;padding:12px 11px;border-radius:8px;font:500 14px inherit;cursor:pointer}.nav-item b{font-size:17px;display:inline-block;width:28px;color:#91abb3}.nav-item.active,.nav-item:hover{background:#214757;color:white}.nav-item.active b{color:#5fd6ac}.side-bottom{margin-top:auto}.safe-dot{font-size:10px;color:#8cabb1;border-top:1px solid #315461;padding:18px 10px}.safe-dot:first-letter{color:#61d9a9}.user{display:flex;gap:10px;align-items:center;padding:12px 8px}.user>span{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#d5e6d5;color:#275c4d;font-weight:bold}main{width:calc(100% - 248px);max-width:1500px;padding:44px 56px 70px;margin:auto}header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:31px}.eyebrow{font:500 10px 'DM Mono';letter-spacing:1.3px;color:#59a985;margin:0 0 8px}h1{font-size:27px;letter-spacing:-.7px;margin:0 0 7px}h2{font-size:18px;margin:0}h3{margin-top:0}.muted{color:var(--muted);margin:0}.primary,.outline,.text-btn{border:0;cursor:pointer;font:600 13px inherit;border-radius:7px;padding:12px 17px}.primary{background:#238762;color:white;box-shadow:0 3px 8px #23876226}.primary i{font-style:normal;margin-left:15px}.outline{background:white;border:1px solid #cddbd6;color:#294957}.text-btn{padding:4px;background:none;color:#238762}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-bottom:20px}.stat-grid article,.panel{background:#fff;border:1px solid var(--line);border-radius:11px}.stat-grid article{padding:20px 22px}.stat-grid p{font-size:12px;color:var(--muted);margin:0 0 9px}.stat-grid strong{font:700 29px 'DM Mono';letter-spacing:-2px}.stat-grid em{font:500 12px 'Noto Sans JP';letter-spacing:0;margin-left:4px}.stat-grid span{display:block;color:#8b999e;font-size:11px;margin-top:8px}.stat-grid .danger{color:var(--coral)}.stat-grid .date{font:600 19px 'Noto Sans JP';letter-spacing:-1px}.quick{min-height:243px;padding:35px 39px;display:flex;justify-content:space-between;overflow:hidden;margin-bottom:20px}.quick h2{font-size:21px;margin-bottom:11px}.quick p:not(.eyebrow){line-height:1.8;color:var(--muted);margin:0 0 18px}.quick-art{width:38%;position:relative;background:linear-gradient(135deg,#f1faf4,#e8f4ef);margin:-35px -39px -35px 30px;padding:88px 45px;color:#447766;font-weight:700;font-size:15px}.chart-icon{font:70px Georgia;color:#35a078;position:absolute;top:34px;right:51px}.line{position:absolute;height:1px;background:#b9dbcc;width:120%;transform:rotate(-26deg)}.l1{top:65px;left:-50px}.l2{top:164px;left:-12px}.recent{padding:24px}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.mini-table>div{display:grid;grid-template-columns:35px 1fr 70px 70px;align-items:center;border-top:1px solid var(--line);padding:12px 4px}.rank{display:inline-grid;place-items:center;border-radius:50%;width:23px;height:23px;background:#edf3f1;color:#47716a;font:500 11px 'DM Mono'}.rank.r1{background:#fae3df;color:#b9433a}.rank.r2{background:#fbedcf;color:#a87628}.rank.r3{background:#e2f0e7;color:#398668}.tag{display:inline-block;border-radius:20px;text-align:center;padding:4px 8px;font-size:10px;font-weight:700}.tag.warn{color:#c65a45;background:#fce9e4}.tag.good{color:#398668;background:#e6f4eb}.upload-card{text-align:center;background:#fff;border:2px dashed #b9d5c9;border-radius:12px;padding:58px 20px 25px;max-width:850px}.upload-icon{margin:auto auto 14px;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#e7f5ee;color:#249469;font-size:29px}.upload-card h2{font-size:18px}.upload-card>p{color:var(--muted);font-size:12px;margin:9px 0 21px}.upload-card label{display:inline-block}.privacy{font-size:10px;color:#73878a;margin-top:35px;padding-top:16px;border-top:1px solid #e9efec}.paste{max-width:850px;margin-top:18px;padding:22px}.paste textarea{display:block;width:100%;height:100px;border:1px solid #d5e1dd;border-radius:6px;padding:10px;font:12px 'DM Mono';margin:12px 0}.mapping{max-width:750px;padding:26px}.mapping-note{background:#f0f8f3;color:#33765c;border-radius:6px;padding:12px;font-size:12px;margin-bottom:20px}.map-row{display:grid;grid-template-columns:200px 1fr;align-items:center;border-bottom:1px solid var(--line);padding:13px 5px}.map-row b,.map-row i{font-size:9px;margin-left:9px;padding:2px 5px;border-radius:3px;font-style:normal}.map-row b{color:#c8544d;background:#fde9e6}.map-row i{color:#71828a;background:#edf1f0}.map-row select{border:1px solid #d5e1dd;border-radius:5px;padding:9px;background:white;color:var(--ink)}.mapping-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.tabs{border-bottom:1px solid var(--line);margin-bottom:21px}.tabs button{background:transparent;border:0;padding:10px 18px;color:#74868c;cursor:pointer}.tabs .selected{color:#21835f;border-bottom:2px solid #21835f;font-weight:700}.result-grid{display:grid;grid-template-columns:1.45fr .85fr;gap:18px;margin-bottom:19px}.chart-panel,.insight{padding:24px}.legend{font-size:10px;color:var(--muted)}.legend i{width:8px;height:8px;border-radius:50%;background:#e2574c;display:inline-block}.bar-chart{display:grid;gap:12px}.bar-row{display:grid;grid-template-columns:108px 1fr 38px;align-items:center;gap:10px;font-size:10px}.bar-row label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-row b{font:500 10px 'DM Mono';text-align:right}.bar-track{height:10px;background:linear-gradient(90deg,#f4f7f6 49.5%,#aebdb8 49.5%,#aebdb8 50.5%,#f4f7f6 50.5%);border-radius:10px}.bar-track span{height:100%;display:block;border-radius:10px}.insight{background:#fcfdfb}.insight .eyebrow span{color:#ca7651;background:#fef0e7;padding:2px 5px;border-radius:3px}.insight>p:not(.eyebrow){font-size:12px;line-height:1.9;color:#4c6269}.notice{font-size:10px;line-height:1.6;background:#f1f6f4;padding:10px;border-radius:5px;color:#71828a;margin-top:18px}.actions{display:flex;gap:9px}.result-table{padding:24px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:left;color:#7a8b90;font-size:10px;font-weight:600;background:#f6f8f7;padding:10px}td{border-bottom:1px solid var(--line);padding:12px 10px;font-size:12px}td:first-child,th:first-child{padding-left:4px}.mono{font-family:'DM Mono'}.history>div{display:flex;align-items:center;gap:14px;padding:17px;border-bottom:1px solid var(--line)}.history>div:last-child{border-bottom:0}.history p{font-size:11px;color:var(--muted);margin:3px 0}.history .small{margin-left:auto;padding:7px 10px}.history-icon{display:grid;place-items:center;background:#e7f4ec;color:#26946d;width:33px;height:33px;border-radius:7px}.empty{color:var(--muted);padding:40px!important;justify-content:center}.settings{max-width:700px;padding:28px}.settings p{line-height:1.9;color:#60747b}.settings .outline{color:#bd564a;border-color:#edc7c1;margin-top:12px}@media(max-width:850px){aside{width:65px;padding:22px 8px}.brand{padding:0 7px 30px}.brand>div,.nav-item:not(.active)::after,.nav-item{font-size:0}.brand small,.side-bottom{display:none}.nav-item{padding:12px;text-align:center}.nav-item b{font-size:17px;width:auto}main{width:calc(100% - 65px);padding:30px 22px}.quick-art{display:none}.result-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr}.map-row{grid-template-columns:1fr;gap:7px}}@media print{aside,.actions,.tabs{display:none}main{width:100%;padding:0}.panel{break-inside:avoid}.result-grid{grid-template-columns:1fr}}
