:root{--bg:#ffffff;--bg2:#ffffff;--bg3:#f7f8fa;--bg-hover:#f0f2f5;--border:#e2e8f0;--text:#1a1a2e;--muted:#64748b;--dim:#94a3b8;--accent:#059669;--accent-s:rgba(5,150,105,.1);--accent-hover:#047857;--success:#10b981;--success-s:rgba(16,185,129,.1);--warn:#f59e0b;--warn-s:rgba(245,158,11,.1);--danger:#ef4444;--danger-s:rgba(239,68,68,.1);--purple:#7c3aed;--purple-s:rgba(124,58,237,.1);--cyan:#0891b2}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Noto Sans JP,Inter,system-ui,sans-serif;background:#f9fafb;color:var(--text);line-height:1.6}a{color:var(--accent);text-decoration:none}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit;background:#fff;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:14px}input:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-s)}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.layout{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--bg3);border-right:1px solid var(--border);padding:16px 0;position:fixed;height:100vh;overflow-y:auto;z-index:10}.sidebar h2{padding:0 20px 16px;font-size:20px;font-weight:800;color:var(--accent)}.sidebar nav a,.sidebar nav button{display:flex;align-items:center;gap:8px;padding:9px 20px;color:var(--muted);font-size:13px;font-weight:500;border:none;background:none;width:100%;text-align:left;transition:.15s}.sidebar nav a:hover,.sidebar nav button:hover,.sidebar nav a.active{color:var(--text);background:var(--accent-s)}.sidebar nav a.active{border-right:3px solid var(--accent)}.main{margin-left:220px;flex:1;padding:20px 28px;min-height:100vh;background:#f9fafb}.hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.hdr h1{font-size:20px;font-weight:700}.card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:12px;box-shadow:0 1px 3px #0000000a}.stat{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.stat>div{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px 16px;box-shadow:0 1px 3px #0000000a}.stat .n{font-size:24px;font-weight:800}.stat .l{font-size:12px;color:var(--muted)}.badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:11px;font-weight:600}.b-s{background:var(--success-s);color:var(--success)}.b-a{background:var(--accent-s);color:var(--accent)}.b-w{background:var(--warn-s);color:var(--warn)}.b-d{background:var(--danger-s);color:var(--danger)}.b-p{background:var(--purple-s);color:var(--purple)}.btn{padding:8px 16px;border:none;border-radius:8px;font-size:13px;font-weight:600;transition:.15s;display:inline-flex;align-items:center;gap:6px}.btn:hover{opacity:.9}.btn-p{background:var(--accent);color:#fff}.btn-p:hover{background:var(--accent-hover)}.btn-s{background:var(--success);color:#fff}.btn-d{background:var(--danger);color:#fff}.btn-o{background:transparent;border:1px solid var(--border);color:var(--muted)}.btn-o:hover{border-color:var(--accent);color:var(--accent)}.btn-sm{padding:4px 10px;font-size:12px}.progress{height:8px;border-radius:4px;background:#e5e7eb;overflow:hidden}.progress>div{height:100%;border-radius:4px;transition:width .3s}table.tbl{width:100%;border-collapse:collapse;font-size:13px}table.tbl th{text-align:left;padding:10px 12px;color:var(--muted);font-weight:600;border-bottom:2px solid var(--border);background:#f9fafb}table.tbl td{padding:10px 12px;border-bottom:1px solid var(--border)}table.tbl tr:hover{background:#f9fafb}.step-card{background:#fff;border:1px solid var(--border);border-radius:16px;margin-bottom:16px;overflow:hidden;box-shadow:0 1px 3px #0000000a}.step-hd{background:linear-gradient(135deg,#0596690f,#05966905);padding:14px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.step-n{width:36px;height:36px;border-radius:10px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800}.step-body{padding:16px 20px}.step-body ol{padding-left:20px}.step-body li{margin-bottom:6px;line-height:1.8}.alert-box{margin:10px 0;padding:10px 14px;border-radius:0 8px 8px 0;font-size:13px;line-height:1.7}.alert-danger{background:var(--danger-s);border-left:4px solid var(--danger)}.alert-info{background:var(--accent-s);border-left:4px solid var(--accent)}.checklist-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:.15s}.checklist-item:hover{background:#f3f4f6}.checklist-item.done{background:var(--success-s)}.check-box{width:20px;height:20px;border-radius:6px;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;flex-shrink:0}.check-box.checked{background:var(--success);border-color:var(--success)}.login-c{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#f3f4f6}.form-g{margin-bottom:16px}.form-g label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:4px}.tab-bar{display:flex;gap:4px;margin-bottom:16px}.tab-btn{padding:8px 16px;border-radius:8px;font-size:13px;border:none;background:transparent;color:var(--muted);font-weight:500;transition:.15s}.tab-btn.active{background:var(--accent-s);color:var(--accent);font-weight:600}.bell{position:relative;cursor:pointer;font-size:18px}.bell-n{position:absolute;top:-4px;right:-6px;width:16px;height:16px;border-radius:50%;background:var(--danger);color:#fff;font-size:10px;display:flex;align-items:center;justify-content:center}.empty{text-align:center;color:var(--dim);padding:40px 20px;font-size:13px}.alert{padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:12px}.alert-d{background:var(--danger-s);color:var(--danger)}.alert-s{background:var(--success-s);color:var(--success)}.img-placeholder{background:#f3f4f6;border:1px dashed var(--border);border-radius:12px;padding:20px;text-align:center;margin:12px 0}@media (max-width:768px){.sidebar{width:60px}.sidebar h2{font-size:14px;padding:8px;text-align:center}.sidebar nav a span,.sidebar nav button span{display:none}.main{margin-left:60px;padding:16px}}
