:root{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;background:#f5f0e7;color:#293a30}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}.shell{max-width:820px;padding:28px 18px 52px;margin:auto}header{text-align:center;padding:16px 0 25px}header .tag{font-size:.72rem;letter-spacing:.21em;color:#6b7c65;font-weight:800}header h1{font-size:clamp(2rem,6vw,3.3rem);margin:6px 0;color:#264e3f;letter-spacing:-.055em}header h1 span{color:#b96e46}header>p:not(.tag){color:#758073}header .demo{display:inline-block;background:#fce9d0;color:#855c25;border-radius:999px;padding:7px 12px;font-size:.85rem}.progressdots{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:0 0 18px}.progressdots span{padding:12px 4px;border-radius:12px;background:#e6e7dc;text-align:center;color:#69756a;font-size:.82rem;font-weight:800}.progressdots .current{background:#416e57;color:white}.panel{background:#fffdf8;border:1px solid #e6e3d7;border-radius:25px;padding:clamp(22px,5vw,38px);box-shadow:0 12px 35px #4c5e4617}.panel h2{font-size:clamp(1.4rem,4vw,1.85rem);line-height:1.45;margin:0 0 24px}.field{margin:18px 0}.field label{font-weight:800;display:block;margin-bottom:8px}.field select,.other{border:2px solid #dfdfd2;background:white;border-radius:12px;padding:14px;min-height:53px;width:100%;max-width:400px}.question{border-top:1px solid #eceadf;margin-top:25px;padding-top:19px}.question h3{font-size:1.1rem;margin:0 0 12px}.choices{display:flex;gap:9px;flex-wrap:wrap}.choices button,.secondary{padding:12px 16px;border-radius:14px;border:2px solid #d6ded5;background:#f9fcf7;color:#37624a;font-weight:700;min-height:52px}.choices button.chosen{border-color:#37684f;background:#d5efdd;color:#214e32;box-shadow:inset 0 0 0 1px #37684f}.other{margin-top:14px}.primary{background:#416e57;color:white;border:2px solid #416e57;padding:16px 22px;font-weight:800;border-radius:15px;min-height:57px;display:inline-flex;justify-content:center;align-items:center}.wide{width:100%;margin-top:30px}.primary:disabled{opacity:.45;cursor:wait}.note{color:#788579;font-size:.88rem;line-height:1.7}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.result{background:#f2efe5;border-radius:19px;overflow:hidden;display:grid;place-items:center}.result img{width:100%;max-height:540px;object-fit:contain}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.upload{border:2px dashed #a7baa7;border-radius:17px;min-height:167px;padding:15px 10px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#f8faf4;cursor:pointer}.upload strong{font-size:1rem}.upload span{font-size:.8rem;color:#7c8b7b}.upload input{width:100%;max-width:130px;font-size:.75rem;overflow:hidden}.upload img{width:100%;max-height:180px;object-fit:contain;border-radius:10px}.alert{border:1px solid #e8ba90;background:#fff0e3;color:#92522e;border-radius:15px;padding:15px;margin-bottom:15px}.spinner{height:60px;width:60px;border-radius:50%;border:7px solid #dcebdd;border-top-color:#376a51;animation:spin 1s linear infinite;margin:30px auto}.meter{height:14px;border-radius:999px;background:#e8e9df;overflow:hidden;margin:15px 0 24px}#meterFill{height:100%;width:0;background:#659d78;transition:width .3s}.success{font-size:1.3rem;color:#37684f;font-weight:800}@keyframes spin{to{transform:rotate(360deg)}}footer{text-align:center;padding:22px 8px;color:#829084;font-size:.78rem;line-height:1.7}[hidden]{display:none!important}@media(max-width:570px){.photo-grid{grid-template-columns:1fr}.upload{min-height:140px}.progressdots span{font-size:.65rem}.panel{border-radius:18px}.actions>*{flex:1;text-align:center}}

/* v0.2: staff-only Meshy balance panel */
.balance-section{margin:25px 0;padding:22px;border:1px solid #d9e3d6;border-radius:18px;background:#f7faf4}
.balance-section h2{margin:0 0 16px;font-size:1.28rem}
.balance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.balance-grid>div{background:#fff;border:1px solid #e0e9dc;padding:14px;border-radius:12px;min-width:0}
.balance-grid span{display:block;font-size:.78rem;color:#69776a;margin-bottom:7px}
.balance-grid strong{display:block;font-size:clamp(1.6rem,4vw,2.4rem);font-variant-numeric:tabular-nums}
.balance-grid strong small{font-size:.76rem;font-weight:600;color:#758477}
.balance-grid b{font-size:1.2rem}
.balance-warning{color:#7e471c;background:#fff1db;border:1px solid #f0ce98;border-radius:12px;padding:12px 14px;font-weight:700}
.balance-ok{color:#245539;font-weight:700}
.balance-meta{color:#607467;font-size:.83rem;line-height:1.8}
.balance-demo{font-weight:800;background:#fff2d8;border-radius:10px;padding:10px 12px;color:#875921}
@media(max-width:480px){.balance-grid{grid-template-columns:1fr 1fr}.balance-grid>div{padding:10px}.balance-grid strong{font-size:1.5rem}}

/* v0.3: OpenAI admin cost and manually entered prepaid snapshot */
.manual-balance{margin-top:18px;background:#fff;border:1px solid #e0e9dc;border-radius:14px;padding:14px}
.manual-balance p{margin:8px 0 12px}
.manual-balance strong{font-size:1.65rem;font-variant-numeric:tabular-nums}
.manual-balance input{display:block;margin-top:8px;max-width:230px;width:100%;padding:12px;border:1px solid #cfd9cc;border-radius:10px}
.balance-section .actions a{display:inline-flex;align-items:center}
