:root{--bg:#f7f8fa;--card:#fff;--border:#e2e5ea;--text:#1c2430;--text-muted:#6b7280;--accent:#2f5496;--accent-soft:#eaf0fb;--danger:#c0392b;--ok:#1f8a4c;--warn:#b8860b}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Segoe UI,Hiragino Kaku Gothic ProN,Meiryo,sans-serif;font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.nav{background:var(--card);border-bottom:1px solid var(--border);align-items:center;gap:24px;padding:12px 24px;display:flex;overflow-x:auto}.nav .brand{color:var(--accent);white-space:nowrap;flex-shrink:0;font-size:18px;font-weight:700}.nav .brand small{color:var(--text-muted);letter-spacing:.05em;font-size:10px;font-weight:500;display:block}.nav a{color:var(--text);white-space:nowrap;flex-shrink:0;font-weight:500}.nav a.active{color:var(--accent)}.nav .nav-user{white-space:nowrap;color:var(--text-muted);flex-shrink:0;align-items:center;gap:12px;margin-left:auto;font-size:13px;display:flex}.container{max-width:1200px;margin:0 auto;padding:24px}.site-footer{text-align:center;color:var(--text-muted);padding:16px 8px;font-size:11px}.site-footer a{color:inherit}@media (max-width:640px){.nav{gap:16px;padding:10px 14px}.container{padding:14px}}h1{margin:0 0 16px;font-size:20px}h2{margin:24px 0 10px;font-size:16px}h3{margin:0 0 8px;font-size:14px}.card{background:var(--card);border:1px solid var(--border);border-radius:8px;margin-bottom:20px;padding:20px}.card.compact{padding:14px 16px}table{border-collapse:collapse;width:100%}th,td{border:1px solid var(--border);text-align:center;padding:6px 8px;font-size:13px}th{white-space:nowrap;background:#f0f2f5;font-weight:600}td.name-cell,th.name-cell{text-align:left;white-space:nowrap;font-weight:600}td.left{text-align:left}.grid-scroll{border:1px solid var(--border);border-radius:6px;overflow-x:auto}.grid-scroll table{width:max-content;min-width:100%}.grid-scroll th.name-cell,.grid-scroll td.name-cell{background:var(--card);z-index:1;position:sticky;left:0}.grid-scroll th.name-cell{background:#f0f2f5}.grid-scroll tr:hover td,.grid-scroll tr:hover td.name-cell{background:#fafbfd}.btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;line-height:1.4;display:inline-block}.btn:hover{background:#24406f;text-decoration:none}.btn:disabled{opacity:.6;cursor:default}.btn.secondary{color:var(--accent);border:1px solid var(--accent);background:#fff}.btn.danger{color:var(--danger);border:1px solid var(--danger);background:#fff}.btn.small{padding:4px 10px;font-size:12px}.btn-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.form-row{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:12px;display:flex}.field{flex-direction:column;gap:4px;display:flex}.field label{color:var(--text-muted);font-size:12px}.field input,.field select,.field textarea{border:1px solid var(--border);border-radius:4px;padding:6px 8px;font-family:inherit;font-size:14px}.field .hint{color:var(--text-muted);font-size:11px}.field.w-sm input{width:110px}.field.w-md input{width:180px}.field.w-lg input{width:260px}.notice{border-radius:6px;margin-bottom:10px;padding:10px 14px;font-size:13px}.notice.warn{color:#7a5b00;background:#fff7e6;border:1px solid #f0d78c}.notice.ok{color:var(--ok);background:#eafaf0;border:1px solid #b6e6c8}.notice.danger{color:var(--danger);background:#fdeeee;border:1px solid #f0b8b3}.exp{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:12px;display:inline-block}.exp.ok{color:var(--text)}.exp.warn{color:#7a5b00;background:#fff7e6;font-weight:600}.exp.danger{color:var(--danger);background:#fdeeee;font-weight:700}.exp.expired{color:#555;background:#e9ebef;text-decoration:line-through}.exp.none{color:var(--text-muted)}.tag{border-radius:10px;margin:2px;padding:2px 8px;font-size:12px;display:inline-block}.tag.on{background:var(--accent-soft);color:var(--accent)}.tag.off{color:var(--text-muted);background:#f0f2f5}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.filter-bar .seg{border:1px solid var(--accent);border-radius:6px;display:inline-flex;overflow:hidden}.filter-bar .seg a{color:var(--accent);padding:6px 12px;font-size:13px}.filter-bar .seg a.active{background:var(--accent);color:#fff}.filter-bar .seg a:hover{text-decoration:none}.cert-block{border:1px solid var(--border);background:var(--card);border-radius:8px;margin-bottom:12px;padding:14px 16px}.cert-block .cert-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.cert-block .cert-head h3{margin:0}.cert-block .cert-head .meta{color:var(--text-muted);font-size:12px}.cert-block .cert-head .spacer{flex:1}.cert-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 16px;display:grid}.cert-grid .kv label{color:var(--text-muted);font-size:11px;display:block}.cert-grid .kv div{font-size:14px}.cert-grid .kv .empty{color:#bbb}.history{color:var(--text-muted);margin-top:8px;font-size:12px}.history summary{cursor:pointer}.history table td,.history table th{padding:3px 6px;font-size:12px}.check-ok{color:var(--ok);font-size:11px}.check-ng{color:var(--danger);font-size:11px;font-weight:600}.modal-backdrop{z-index:1000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:var(--card);border-radius:8px;min-width:280px;max-width:520px;padding:24px 28px;box-shadow:0 8px 30px #00000040}.modal-box p{margin:0 0 18px;font-size:15px}.modal-actions{justify-content:flex-end;gap:10px;display:flex}@media print{.nav,.site-footer,.no-print{display:none!important}.container{max-width:none;padding:0}.card{border:none;padding:0}}.dropzone{border:2px dashed var(--accent);text-align:center;background:var(--accent-soft);cursor:pointer;border-radius:8px;padding:28px 16px}.dropzone:hover{background:#dfe8f9}.seg-btn{color:var(--accent);cursor:pointer;background:#fff;border:none;padding:6px 12px;font-size:13px}.seg-btn.active{background:var(--accent);color:#fff}
