:root{font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;color:#172033;background:#f4f6f8;line-height:1.55}*{box-sizing:border-box}body{margin:0}header{background:#103b66;color:#fff;padding:16px max(20px,5vw);display:flex;justify-content:space-between;align-items:center}h1,h2,h3,p{margin-top:0}h1{font-size:1.35rem;margin-bottom:0}.eyebrow{font-size:.7rem;letter-spacing:.12em;color:#a9d4fb}main{width:min(1100px,92vw);margin:28px auto}.card{background:#fff;border:1px solid #dbe2ea;border-radius:14px;padding:22px;box-shadow:0 4px 16px #183b5d12}.narrow{max-width:520px;margin:10vh auto}label{display:grid;gap:6px;font-weight:650}input,select,textarea,button{font:inherit}input,select,textarea{width:100%;padding:10px;border:1px solid #bcc8d5;border-radius:8px}button{border:0;border-radius:8px;padding:9px 14px;background:#1367a9;color:#fff;cursor:pointer}button.secondary,nav button{background:#e9eff5;color:#173d60}button:disabled{opacity:.55;cursor:not-allowed}form{display:grid;gap:14px}.identity{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:22px}.identity nav{display:grid;grid-template-columns:repeat(5,minmax(7rem,auto));gap:7px}.identity nav button.active{background:#1367a9;color:#fff}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}.session{display:grid;gap:8px}.session time{font-weight:750;color:#0c5b96}.meta{color:#5b6877;font-size:.9rem}.status{display:inline-block;padding:2px 8px;border-radius:999px;background:#e9eff5;font-size:.78rem}.status.submitted{background:#fff2c9}.status.returned{background:#fee0df}.status.approved,.status.month_closed{background:#dcf5e7}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.money{text-align:right;font-variant-numeric:tabular-nums}.warning{color:#9b3c00}.manager-panel{border-left:4px solid #d38b00}table{width:100%;border-collapse:collapse}th,td{padding:8px;border-bottom:1px solid #e2e8ef;text-align:left}#message{position:fixed;right:18px;bottom:18px;background:#172033;color:white;padding:12px 16px;border-radius:8px;max-width:420px}#message:empty{display:none}@media(max-width:900px){.identity{display:block}.identity nav{margin-top:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.identity nav button{min-width:0;white-space:nowrap}.grid{grid-template-columns:1fr}}
