:root{--bg:#eef2f6;--panel:#fff;--line:#d0d7e0;--text:#243040;--muted:#6a7788;--side:#1b2838;--side-h:#243447;--accent:#2a6f97;--ok:#1f8a5a;--warn-bg:#fff7e8;--warn-line:#e0b86a;--warn-text:#8a5a12;--header-h:52px;--banner-h:40px;--side-w:210px;--font:"Noto Sans JP","Hiragino Sans",Meiryo,sans-serif}
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{font-family:var(--font);color:var(--text);background:var(--bg);padding-top:calc(var(--sg-back-h,40px) + var(--banner-h))}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.admin-banner{position:fixed;top:var(--sg-back-h,40px);left:0;right:0;z-index:1900;height:var(--banner-h);display:flex;align-items:center;justify-content:center;background:var(--warn-bg);border-bottom:1px solid var(--warn-line);color:var(--warn-text);font-size:13px;font-weight:700}
.admin-shell{display:grid;grid-template-columns:var(--side-w) 1fr;min-height:calc(100vh - var(--sg-back-h,40px) - var(--banner-h))}
.admin-side{background:var(--side);color:#d7dee8;padding-bottom:24px}
.admin-brand{height:var(--header-h);padding:0 16px;display:flex;align-items:center;color:#fff;font-weight:800;border-bottom:1px solid rgba(255,255,255,.08)}
.admin-brand small{display:block;font-size:10px;opacity:.65;letter-spacing:.12em;font-weight:500;margin-top:2px}
.admin-nav a{display:block;padding:10px 16px;color:#cfd7e2;text-decoration:none;border-left:4px solid transparent;font-size:14px}
.admin-nav a:hover{background:var(--side-h);text-decoration:none;color:#fff}
.admin-nav a.is-active{background:var(--side-h);border-left-color:var(--accent);color:#fff;font-weight:700}
.admin-nav .nav-label{margin:14px 16px 6px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#8b96a5}
.admin-top{height:var(--header-h);background:var(--panel);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 20px}
.admin-top h1{margin:0;font-size:18px}.admin-top .meta{margin:0;color:var(--muted);font-size:13px}
.admin-content{padding:22px 20px 40px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden}
table.data{width:100%;border-collapse:collapse;font-size:14px}
table.data th,table.data td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left}
table.data th{background:#f5f7fa;color:var(--muted);font-size:12px}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700}
.badge-new{background:#e8f2fb;color:var(--accent)}.badge-done{background:#e8f7ef;color:var(--ok)}.badge-wait{background:#f3f4f6;color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 14px;border-radius:6px;font-size:13px;font-weight:700;border:1px solid transparent;cursor:pointer;font-family:inherit;text-decoration:none}
.btn-primary{background:var(--accent);color:#fff}.btn-ghost{background:#fff;border-color:var(--line);color:var(--text)}
.field{margin-bottom:14px}.field label{display:block;margin-bottom:6px;font-size:13px;font-weight:700}
.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:6px;font:inherit}
.toast{position:fixed;right:20px;bottom:20px;background:#1b2838;color:#fff;padding:12px 16px;border-radius:6px;font-size:13px;font-weight:700;opacity:0;transition:opacity .2s}
.toast.is-show{opacity:1}
@media(max-width:860px){.admin-shell{grid-template-columns:1fr}.admin-side{display:none}}
