:root{--bg: #f8fafc;--card: #fff;--text: #0f172a;--muted: #64748b;--accent: #2563eb;--accent-soft: #eff4ff;--success: #059669;--warn: #b45309;--danger: #dc2626;--border: #e4ecfc;font-family:Hiragino Sans,Noto Sans JP,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}#app:has(.sidebar){display:grid;grid-template-columns:232px minmax(0,1fr);grid-template-rows:56px 1fr;grid-template-areas:"sb top" "sb main";min-height:100dvh;max-width:none;margin:0;padding:0}#app:has(.sidebar)>.sidebar{grid-area:sb}#app:has(.sidebar)>.topbar{grid-area:top}#app:has(.sidebar)>.card{grid-area:main;margin:1.25rem;align-self:start;min-width:0;overflow-x:auto}#app:not(:has(.sidebar)){max-width:420px;margin:0 auto;padding:2rem 1rem}.sidebar{background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100dvh}.brand{font-weight:700;font-size:1.1rem;color:var(--accent);padding:1rem 1.25rem;letter-spacing:.02em}.side-nav{flex:1;overflow-y:auto;padding:.25rem .5rem;display:flex;flex-direction:column}.nav-top{display:flex;flex-direction:column;padding-bottom:.5rem}.nav-group{display:flex;flex-direction:column;margin-bottom:.75rem}.nav-group-label{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:.4rem .75rem .2rem}.nav-item{display:block;width:100%;padding:.5rem .75rem;border-radius:8px;color:var(--text);text-decoration:none;font-size:.92rem;white-space:nowrap}.nav-item:hover{background:var(--accent-soft)}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-item.disabled{color:#94a3b8;cursor:default}.nav-item.disabled:hover{background:transparent}.sidebar-foot{padding:.75rem 1rem;border-top:1px solid var(--border);font-size:.75rem}.tenant-name{color:var(--text);font-weight:600}.staging-hint{margin:.25rem 0 0;font-size:.7rem}.topbar{background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 1.25rem;position:sticky;top:0;z-index:5}.topbar-title{font-weight:600}.topbar-user{font-size:.9rem;color:var(--muted)}@media(max-width:768px){#app:has(.sidebar){grid-template-columns:1fr;grid-template-rows:56px auto 1fr;grid-template-areas:"top" "sb" "main"}.sidebar{position:static;height:auto;flex-direction:row;align-items:center;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border);gap:.25rem}.brand{padding:.5rem .75rem;flex:0 0 auto}.side-nav{flex-direction:row;align-items:center;gap:.25rem;padding:.25rem;overflow-x:auto}.nav-top{flex-direction:row;gap:.25rem;padding:0}.nav-item.disabled,.nav-group,.nav-group-label,.sidebar-foot{display:none}.nav-item{flex:0 0 auto}#app:has(.sidebar)>.card{margin:.75rem}}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.5rem;box-shadow:0 4px 24px #1a23320f}h1{margin:0 0 1rem;font-size:1.35rem}label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.25rem}input,select,button{font:inherit}input,select{width:100%;padding:.6rem .75rem;border:1px solid var(--border);border-radius:8px;margin-bottom:.9rem}button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.65rem 1rem;cursor:pointer}button.secondary{background:transparent;color:var(--accent);border:1px solid var(--accent)}button.danger{background:var(--danger)}.field-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.error{background:#fef2f2;color:var(--danger);padding:.75rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem}.success{background:#ecfdf5;color:#047857;padding:.75rem;border-radius:8px;margin-bottom:1rem}nav{display:flex;gap:1rem;margin-bottom:1rem;font-size:.9rem}nav a{color:var(--accent);text-decoration:none}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.5rem;border-bottom:1px solid var(--border)}.muted{color:var(--muted);font-size:.85rem}.badge{display:inline-block;font-size:.75rem;padding:.15rem .45rem;border-radius:4px;margin-left:.25rem}.badge-green{background:#ecfdf5;color:#047857}.badge-yellow{background:#fffbeb;color:#b45309}.badge-red{background:#fef2f2;color:var(--danger)}.due-ok{color:#047857}.due-near{color:#b45309;font-weight:600}.due-over{color:var(--danger);font-weight:700}.followup-list{margin:0;padding-left:1.1rem}.followup-list li{margin-bottom:.75rem}
