:root{
  --green:#3d8c5f; --green-dark:#2c6b46; --bg:#f6f8f5; --line:#dfe5de;
  --warn:#c0392b; --warn-bg:#fdecea; --ok-bg:#e9f7ef;
  --early:#fff3cd; --normal:#d6eaf8; --late:#ead6f8;
}
*{box-sizing:border-box;}
body{margin:0;font-family:"Hiragino Sans","Yu Gothic",sans-serif;background:var(--bg);color:#2b2b2b;}
.topbar{display:flex;align-items:center;justify-content:space-between;background:var(--green-dark);color:#fff;padding:12px 24px;}
.brand{font-weight:bold;font-size:1.2em;}
.topbar nav a{color:#eafff0;text-decoration:none;margin-left:20px;padding:6px 10px;border-radius:6px;}
.topbar nav a.active,.topbar nav a:hover{background:var(--green);}
.container{max-width:1200px;margin:24px auto;padding:0 16px;}
.footer{text-align:center;color:#888;padding:20px;font-size:0.85em;}
h1{font-size:1.4em;color:var(--green-dark);}
h2{font-size:1.15em;color:var(--green-dark);margin-top:30px;}
table{border-collapse:collapse;width:100%;background:#fff;}
th,td{border:1px solid var(--line);padding:8px 10px;font-size:0.92em;text-align:left;}
th{background:#eef4ec;}
.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px;margin-bottom:20px;}
.btn{display:inline-block;background:var(--green);color:#fff;border:none;padding:7px 16px;border-radius:6px;cursor:pointer;text-decoration:none;font-size:0.9em;}
.btn:hover{background:var(--green-dark);}
.btn-danger{background:var(--warn);}
.btn-small{padding:3px 9px;font-size:0.8em;}
.btn-secondary{background:#7a7a7a;}
label{display:block;margin:10px 0 4px;font-weight:bold;font-size:0.9em;}
input[type=text],input[type=date],input[type=number],select,textarea{
  padding:6px 8px;border:1px solid #c7d0c5;border-radius:5px;width:100%;font-size:0.95em;
}
.checkbox-group label{display:inline-block;font-weight:normal;margin-right:14px;}
.checkbox-group input{width:auto;margin-right:4px;}
.flash{padding:10px 14px;border-radius:6px;margin-bottom:14px;}
.flash.success{background:var(--ok-bg);color:var(--green-dark);}
.flash.error{background:var(--warn-bg);color:var(--warn);}
.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;}
.week-nav{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.cell-early{background:var(--early);}
.cell-normal{background:var(--normal);}
.cell-late{background:var(--late);}
.tag{display:inline-block;padding:1px 8px;border-radius:10px;font-size:0.78em;margin:1px;}
.tag-class1{background:#ffe0b2;}
.tag-class2{background:#c8e6c9;}
.tag-class3{background:#bbdefb;}
.summary-ng{color:var(--warn);font-weight:bold;}
.summary-ok{color:var(--green-dark);}
.small{font-size:0.82em;color:#777;}
.day-cell{min-width:150px;vertical-align:top;}
.assign-block{border-bottom:1px dashed #ddd;padding:4px 0;}
.assign-block:last-child{border-bottom:none;}
form.inline{display:inline;}
.table-scroll{overflow-x:auto;margin-bottom:6px;}
.month-table{min-width:900px;}
.group-col{min-width:140px;background:#f3f7f1;}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);}
.login-card{width:340px;}
.login-card h1{margin-top:0;font-size:1.3em;}
.topbar .logout-link{margin-left:20px;color:#eafff0;text-decoration:none;padding:6px 10px;}
.topbar .logout-link:hover{text-decoration:underline;}

/* ドロップダウンメニュー(JavaScriptトグル方式) */
.topbar nav .dropdown{position:relative;display:inline-block;margin-left:20px;}
.nav-dropdown-btn{
  background:none;border:none;cursor:pointer;
  color:#eafff0;font-size:1em;padding:6px 10px;border-radius:6px;
}
.nav-dropdown-btn:hover,.nav-dropdown-btn.active-section{background:var(--green);}
.topbar nav .dropdown-menu{
  display:none;position:absolute;top:calc(100% + 4px);left:0;z-index:9999;
  background:#1b5e20;border-radius:8px;min-width:200px;
  box-shadow:0 6px 20px rgba(0,0,0,0.35);padding:6px 0;
}
.topbar nav .dropdown-menu a{
  display:block;color:#eafff0;text-decoration:none;
  padding:9px 16px;white-space:nowrap;
}
.topbar nav .dropdown-menu a:hover,
.topbar nav .dropdown-menu a.active{background:var(--green);}

.event-tag{display:inline-block;font-size:0.72em;padding:1px 5px;border-radius:3px;margin-top:2px;}
.event-normal{background:#e8f5e9;color:#1b5e20;}
.event-all{background:#fce4ec;color:#880e4f;font-weight:bold;}
