*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Hiragino Sans","Noto Sans JP",sans-serif;font-size:16px;line-height:1.6;color:#1a1a1a;background:#f6f5f2}
header{background:#24323f;color:#fff;padding:0 16px 8px}
h1{font-size:1.2rem;margin:8px 0}
.proto{margin:0 -16px;padding:8px 16px;background:#fff3c4;color:#3d2e00;font-weight:bold;font-size:.9rem}
nav{display:flex;gap:4px;flex-wrap:wrap}
nav a{color:#fff;min-height:44px;display:inline-flex;align-items:center;padding:0 12px;border-radius:6px}
nav a:focus,nav a:hover{background:#3b5163}
main{max-width:640px;margin:0 auto;padding:16px}
main h2{font-size:1.25rem;margin:8px 0}
h3{font-size:1.05rem;margin:12px 0 6px}
a{color:#0b4f8a}
footer{font-size:.85rem;color:#444;text-align:center;padding:16px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;color:#000;padding:8px;z-index:9}
:focus-visible{outline:3px solid #e07b00;outline-offset:2px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:8px 16px;margin:4px 8px 4px 0;border:2px solid #24323f;border-radius:8px;background:#fff;color:#24323f;font:inherit;font-weight:bold;text-decoration:none;cursor:pointer}
.btn.primary{background:#0b5c3b;border-color:#0b5c3b;color:#fff}
.btn.danger{border-color:#a1131a;color:#a1131a}
.small-btn{font-size:.9rem}
.plain{list-style:none;padding:0;margin:0}
.card{background:#fff;border:1px solid #ccc;border-left:6px solid #8a8a8a;border-radius:8px;margin:8px 0;padding:8px 12px}
.card.attention{border-left-color:#b45309}
.cardlink{display:flex;flex-direction:column;min-height:44px;text-decoration:none;color:inherit}
.sub{color:#4a4a4a;font-size:.9rem}
.tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.85rem;font-weight:bold;border:1px solid}
.b-active,.b-future{background:#dff3e6;color:#0b4a2c;border-color:#0b4a2c}
.b-soon{background:#ffe6c7;color:#6b3300;border-color:#6b3300}
.b-soon::before{content:"⚠ "}
.b-revoked{background:#fde0e0;color:#8a0f14;border-color:#8a0f14}
.b-revoked::before{content:"✕ "}
.b-expired{background:#e8e0f5;color:#47237a;border-color:#47237a}
.b-none,.b-excluded{background:#eee;color:#333;border-color:#555}
.photo{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid #ccc;border-radius:8px;padding:8px;margin:8px 0}
.photo.st-revoked{border:2px solid #8a0f14;background:#fff7f7}
.photo.st-soon{border:2px solid #b45309;background:#fffaf2}
.thumb{width:72px;height:54px;flex:none;border-radius:4px}
.box{background:#fff;border:1px solid #bbb;border-radius:8px;padding:8px 12px;margin:12px 0}
.alert{border-radius:8px;padding:8px 12px;margin:12px 0}
.alert.error{background:#fde0e0;color:#5c0a0d;border:2px solid #a1131a}
.alert.warn{background:#fff3c4;color:#3d2e00;border:1px solid #8a6d00}
.alert ul{margin:4px 0;padding-left:20px}
.ok:empty{display:none}.ok{background:#dff3e6;color:#0b4a2c;padding:8px 12px;border-radius:8px;font-weight:bold}
.small,.hint{font-size:.88rem;color:#3d3d3d;margin:4px 0}
.field{margin:12px 0}
.field label{display:block;font-weight:bold;margin-bottom:4px}
input[type=text],input[type=date],textarea{width:100%;min-height:44px;padding:8px;font:inherit;border:2px solid #666;border-radius:6px;background:#fff;color:#1a1a1a}
[aria-invalid=true]{border-color:#a1131a;background:#fff7f7}
fieldset{border:1px solid #bbb;border-radius:8px;margin:12px 0;padding:8px 12px;background:#fff}
legend{font-weight:bold;padding:0 4px}
.check{display:flex;align-items:center;min-height:44px;gap:8px}
.check input{width:24px;height:24px;flex:none}
.check label{flex:1;padding:8px 0;cursor:pointer}
.consent-text{white-space:pre-wrap;background:#f6f5f2;padding:8px;border-radius:6px}
.history li{background:#fff;border-bottom:1px solid #ddd;padding:8px}
.history time{font-variant-numeric:tabular-nums;color:#333;font-size:.9rem}
.empty{color:#444}
details summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:bold}
.tools{margin-top:24px;border-top:1px solid #ccc;padding-top:8px}
