:root { color-scheme:light; --ink:#382719; --muted:#806b57; --line:#e5d3ad; --paper:#fffaf0; --gold:#a76720; }
* { box-sizing:border-box }
body { margin:0; min-height:100vh; color:var(--ink); font-family:"Yu Gothic UI","Meiryo",sans-serif; background:radial-gradient(ellipse at 50% 0,#fff9df 0,#e9c98d 48%,#8c572e 100%); }
a { color:#743719 }
.wrap { width:min(100% - 32px,980px); margin:38px auto }
.wrap.narrow { max-width:640px; margin-top:48px }
.brand { text-align:center; margin:0 0 18px; color:#70221a; font-family:Georgia,"Yu Mincho",serif; font-size:clamp(27px,5vw,42px); letter-spacing:.08em; text-shadow:0 1px #fff2c7,0 2px 2px #9b6c33 }
.brand small { display:block; margin-top:7px; color:#6a4b2e; font:600 13px "Yu Gothic UI",sans-serif; letter-spacing:.24em }
.card { overflow:hidden; border:1px solid #d7b674; border-radius:14px; background:rgba(255,250,240,.97); box-shadow:0 18px 45px #57321642 }
.card-head { padding:23px 30px 19px; background:linear-gradient(115deg,#7a281a,#aa5b21 55%,#d09542); color:#fff7df }
.card-head h1 { margin:0; font-size:22px; letter-spacing:.06em }
.card-head p { margin:8px 0 0; color:#ffebca; font-size:13px; line-height:1.7 }
form { padding:26px 30px 30px }
.field { margin:0 0 20px }
label { display:block; margin-bottom:7px; font-size:14px; font-weight:700 }
.hint,.foot { color:var(--muted); font-size:12px; line-height:1.7 }
.hint { display:block; margin-top:6px }
input { width:100%; min-height:46px; padding:10px 12px; border:1px solid #cbb895; border-radius:7px; background:#fff; color:#2f241a; font:inherit }
input:focus { outline:3px solid #d7a84b55; border-color:#a76720 }
button,.primary-button,.secondary-button { display:flex; width:100%; min-height:47px; align-items:center; justify-content:center; border:1px solid #743419; border-radius:8px; background:linear-gradient(#a95f26,#7f321b); color:#fff8e9; font:700 15px "Yu Gothic UI","Meiryo",sans-serif; text-decoration:none; cursor:pointer; box-shadow:0 3px 0 #592210 }
button:hover,.primary-button:hover,.secondary-button:hover { filter:brightness(1.08) }
button:disabled { opacity:.62; cursor:wait }
.secondary-button { margin-top:13px; border-color:#b68c54; background:linear-gradient(#fffaf0,#f3e3c2); color:#60391e; box-shadow:none }
#message { display:none; margin:0 0 18px; padding:12px 14px; border-radius:7px; line-height:1.65; font-size:14px }
#message.error { display:block; color:#74231b; background:#fbe7df; border:1px solid #e5b2a4 }
#message.success { display:block; color:#245232; background:#e9f4e8; border:1px solid #b7d5b9 }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 22px; border:1px solid #d7b674; border-radius:14px; background:#fffaf0ed; box-shadow:0 10px 30px #57321624 }
.topbar .brand { margin:0; font-size:25px; text-align:left }
.topbar .brand small { font-size:10px }
.top-actions { display:flex; align-items:center; gap:14px }
.top-actions form { padding:0 }
.top-actions button { width:auto; min-height:38px; padding:0 16px; font-size:13px; box-shadow:none }
.welcome { margin:28px 3px 18px }
.welcome h1 { margin:0 0 6px; font-size:25px }
.welcome p { margin:0; color:var(--muted) }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px }
.tile { display:block; min-height:158px; padding:23px; border:1px solid #d7b674; border-radius:12px; background:#fffaf0f2; color:var(--ink); text-decoration:none; box-shadow:0 8px 22px #5732161c; transition:transform .15s,box-shadow .15s }
.tile:hover { transform:translateY(-2px); box-shadow:0 12px 28px #57321632 }
.tile .eyebrow { color:#9a5c24; font-size:11px; font-weight:700; letter-spacing:.12em }
.tile h2 { margin:11px 0 8px; font-size:19px }
.tile p { margin:0; color:var(--muted); font-size:13px; line-height:1.7 }
.section { margin-top:20px; padding:22px 24px; border:1px solid #d7b674; border-radius:12px; background:#fffaf0f2 }
.section h2 { margin:0 0 12px; font-size:18px }
.report-list { display:grid; gap:9px; margin:0; padding:0; list-style:none }
.report-list a { display:block; padding:12px 14px; border:1px solid #e8d8b8; border-radius:8px; background:#fff; text-decoration:none }
.report-list a:hover { border-color:#bd8b49; background:#fff8e7 }
.report-list small { display:block; margin-top:4px; color:var(--muted) }
.report-body { overflow:auto; padding:20px; border:1px solid #e8d8b8; border-radius:8px; background:#fff; font:13px/1.75 Consolas,"Yu Gothic UI",monospace; white-space:pre-wrap; overflow-wrap:anywhere }
.back-link { display:inline-block; margin:0 0 16px; font-size:14px }
.foot { margin:16px 0 0; text-align:center }
@media(max-width:560px) { .wrap,.wrap.narrow{margin:20px auto}.card-head,form{padding-left:20px;padding-right:20px}.topbar{align-items:flex-start}.top-actions{align-items:flex-end;flex-direction:column;gap:8px}.topbar .brand{font-size:20px}.welcome h1{font-size:22px} }
