:root{--brand: #1f4e79;--brand-light: #2f6db0;--bg: #f4f6f9;--card: #ffffff;--border: #dfe3e8;--text: #222;--muted: #777;--ok: #2e7d32;--warn: #ef6c00;--bad: #c62828;--shadow: 0 1px 3px rgba(0, 0, 0, .08)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Segoe UI,Hiragino Kaku Gothic ProN,Meiryo,sans-serif;background:var(--bg);color:var(--text);font-size:15px}a{color:var(--brand-light)}.center{display:flex;align-items:center;justify-content:center;min-height:60vh}.muted{color:var(--muted)}.error{color:var(--bad)}.ok{color:var(--ok)}.app-header{background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;position:sticky;top:0;z-index:10;flex-wrap:wrap;gap:8px}.app-header .title{font-weight:700;font-size:17px}.app-header nav{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.app-header nav a{color:#fff;text-decoration:none;padding:6px 12px;border-radius:6px;font-size:14px}.app-header nav a.active,.app-header nav a:hover{background:#fff3}.app-header .user{font-size:13px;opacity:.95}.container{max-width:1100px;margin:0 auto;padding:16px}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:16px;margin-bottom:16px}.card h2{margin:0 0 12px;font-size:16px}.card h3{margin:0 0 8px;font-size:14px;color:var(--brand)}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.spread{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 800px){.grid2{grid-template-columns:1fr}}label{font-size:13px;color:var(--muted);display:block;margin-bottom:4px}input,select,textarea,button{font-family:inherit;font-size:15px}input,select,textarea{width:100%;padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:#fff}textarea{resize:vertical}button{cursor:pointer;border:none;border-radius:8px;padding:9px 16px;font-weight:600;background:var(--brand);color:#fff}button:hover{background:var(--brand-light)}button.secondary{background:#eef1f5;color:var(--brand)}button.secondary:hover{background:#e2e7ee}button.ghost{background:transparent;color:var(--brand);padding:6px 10px}button.danger{background:#fbe9e7;color:var(--bad)}button.small{padding:5px 10px;font-size:13px}button:disabled{opacity:.5;cursor:not-allowed}table{width:100%;border-collapse:collapse}th,td{padding:8px 10px;border-bottom:1px solid var(--border);text-align:left;font-size:14px}th{color:var(--muted);font-weight:600;background:#fafbfc}.eval{font-weight:700;display:inline-block;min-width:22px;text-align:center}.eval-○{color:var(--ok)}.eval-△{color:var(--warn)}.eval-×{color:var(--bad)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;background:#eef1f5;color:var(--brand)}.entry-row{display:grid;grid-template-columns:90px 1.2fr 1.5fr 70px auto;gap:8px;align-items:end;padding:10px 0;border-bottom:1px dashed var(--border)}.entry-row .full{grid-column:1 / -1}@media (max-width: 700px){.entry-row{grid-template-columns:1fr 1fr}}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:16px}.login-card{width:100%;max-width:360px}.login-card .brand{text-align:center;margin-bottom:16px}.login-card .brand .logo{font-size:22px;font-weight:800;color:var(--brand)}.login-card .brand .sub{color:var(--muted);font-size:13px}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal .dow{text-align:center;font-size:12px;color:var(--muted);padding:4px 0}.cal .cell{border:1px solid var(--border);border-radius:8px;min-height:64px;padding:4px 6px;background:#fff;cursor:pointer;font-size:12px;position:relative}.cal .cell:hover{border-color:var(--brand-light)}.cal .cell.empty{background:transparent;border:none;cursor:default}.cal .cell.selected{outline:2px solid var(--brand)}.cal .cell.in-week{background:#eaf2fb}.cal .cell.today{border-color:var(--brand)}.cal .cell .d{font-weight:700}.cal .cell .h{color:var(--brand);font-weight:700}.cal .cell .sat{color:#1565c0}.cal .cell .sun{color:var(--bad)}.stat-num{font-size:22px;font-weight:800;color:var(--brand)}.stat-label{font-size:12px;color:var(--muted)}.toggle-group{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.toggle-group button{background:#fff;color:var(--brand);border-radius:0;padding:7px 14px}.toggle-group button.active{background:var(--brand);color:#fff}.feedback-item{background:#fff8e1;border:1px solid #ffe0a3;border-radius:8px;padding:8px 10px;margin-top:6px;font-size:13px}.feedback-item .meta{color:var(--muted);font-size:11px}
