:root{--bg:#f7f7f5;--panel:#fff;--text:#1d1d1f;--muted:#6b6b70;--line:#e3e3e0;--accent:#2f5bd3;--danger:#b3261e;--ok:#1f7a3a;color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-width:1024px;margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}header.top{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:24px;padding:12px 32px;display:flex}header.top .brand{font-weight:700}header.top nav{flex:1;gap:16px;display:flex}header.top form{margin:0}main{max-width:1280px;padding:24px 32px}h1{margin:0 0 16px;font-size:22px}table{border-collapse:collapse;background:var(--panel);border:1px solid var(--line);width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:8px 12px;font-size:14px}th{color:var(--muted);background:#fbfbfa;font-weight:600}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.badge{background:#eceef3;border-radius:10px;padding:1px 8px;font-size:12px;display:inline-block}.badge.ok{color:var(--ok);background:#e3f3e8}.badge.denied,.badge.failed{color:var(--danger);background:#fbe7e6}button{font:inherit;border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:6px;padding:6px 14px}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:24px}.login{max-width:360px;margin:12vh auto}.login label{margin:12px 0 4px;font-size:14px;display:block}.login input{width:100%;font:inherit;border:1px solid var(--line);border-radius:6px;padding:8px 10px}.error{color:var(--danger);margin-top:12px}pre.content{background:var(--panel);border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;max-height:70vh;padding:16px;font-size:13px;overflow:auto}.row{align-items:center;gap:12px;margin-bottom:16px;display:flex}.gantt{background:#eef0f4;border-radius:4px;min-width:240px;height:18px;position:relative}.gantt .bar{background:#c9d6f7;border-radius:4px;position:absolute;top:0;bottom:0;overflow:hidden}.gantt .bar i{background:var(--accent);height:100%;display:block}.forms{flex-wrap:wrap;gap:24px;margin:16px 0;display:flex}.forms form{background:var(--panel);border:1px solid var(--line);border-radius:8px;gap:6px;width:280px;padding:12px;display:grid}.forms input,.forms select{font:inherit;border:1px solid var(--line);border-radius:6px;padding:5px 8px}.stats{gap:16px;margin:16px 0;display:flex}.stats .card{padding:12px 16px}.stats b{font-size:20px;display:block}.diff{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin:12px 0}.diff .place{color:var(--muted);border-bottom:1px solid var(--line);padding:6px 12px;font-size:13px}.diff pre{white-space:pre-wrap;margin:0;padding:8px 12px;font-size:13px}.diff .was{background:#fbe7e6}.diff .now{background:#e3f3e8}textarea{font:inherit;border:1px solid var(--line);border-radius:6px;padding:5px 8px}
