:root{--bg: #f4f7fa;--surface: #ffffff;--surface-alt: #e9eef5;--line: #d3dde8;--text: #10243f;--text-muted: #4c6380;--accent: #0f766e;--accent-hover: #0b5b55}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Noto Sans JP,sans-serif;color:var(--text);background:radial-gradient(circle at 15% 15%,#d8edf3 0%,var(--bg) 45%),linear-gradient(145deg,#f7fafc,#edf3f8);min-height:100vh}a{color:inherit;text-decoration:none}.auth-container{min-height:100vh;display:grid;grid-template-columns:1.2fr 1fr}.hero-panel{padding:4rem;background:linear-gradient(155deg,#0f3a5b,#1e5f74 60%,#278ea5);color:#f5fbff;display:flex;flex-direction:column;justify-content:center}.hero-panel h1{margin:0 0 1rem;font-size:3rem}.auth-panel{display:flex;flex-direction:column;justify-content:center;gap:1rem;padding:3rem;background:#ffffffe0}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:.7rem 1rem;font-weight:700;border:1px solid transparent;transition:.2s ease}.btn-primary{background:var(--accent);color:#f5fffd}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--surface);border-color:var(--line)}.btn-secondary.small{padding:.45rem .8rem;font-size:.9rem}.shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.topbar{padding:1rem 1.5rem;background:#ffffffe6;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.content-wrapper{display:grid;grid-template-columns:240px 1fr}.sidebar{border-right:1px solid var(--line);background:#ffffffd6;padding:1rem}.profile-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.75rem;margin-bottom:.8rem}.profile-card h3{margin:0 0 .5rem;font-size:.95rem}.profile-card p{margin:.28rem 0;font-size:.86rem;color:var(--text-muted)}.nav-link{display:block;padding:.6rem .7rem;border-radius:8px;margin-bottom:.4rem;color:var(--text-muted)}.nav-link:hover{background:var(--surface-alt);color:var(--text)}.content{padding:1.5rem}.module-page h2{margin-top:0}.module-card{margin-top:1.2rem;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1rem}.notice-page{display:flex;flex-direction:column;gap:.9rem}.notice-header h2{margin:0}.notice-header p{margin:.25rem 0 0;color:var(--text-muted)}.notice-error{margin:0;color:#b42318}.notice-grid{display:grid;grid-template-columns:360px 1fr;gap:1rem}.notice-form,.notice-list-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1rem}.notice-form h3,.notice-list-card h3{margin-top:0}.notice-form label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:.75rem}.notice-form input,.notice-form textarea{margin-top:.25rem;width:100%;border:1px solid var(--line);border-radius:8px;padding:.5rem;font:inherit}.notice-form-actions{display:flex;gap:.45rem}.notice-list{display:grid;gap:.7rem}.notice-item{border:1px solid var(--line);border-radius:10px;padding:.75rem;background:var(--surface-alt)}.notice-item-head{display:flex;align-items:baseline;justify-content:space-between;gap:.7rem}.notice-item h4{margin:0}.notice-item-head span{font-size:.8rem;color:var(--text-muted)}.notice-item p{white-space:pre-wrap}.notice-meta{margin:.45rem 0;font-size:.82rem;color:var(--text-muted)}.notice-item-actions{display:flex;gap:.4rem}.circular-page{display:flex;flex-direction:column;gap:.9rem}.circular-header h2{margin:0}.circular-header p{margin:.25rem 0 0;color:var(--text-muted)}.circular-success{margin:0;color:#067647}.circular-grid{display:grid;grid-template-columns:420px 1fr;gap:1rem}.circular-form,.circular-list-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1rem}.circular-form h3,.circular-list-card h3{margin-top:0}.circular-form label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:.75rem}.circular-form input,.circular-form textarea,.circular-form select{margin-top:.25rem;width:100%;border:1px solid var(--line);border-radius:8px;padding:.5rem;font:inherit}.circular-file-list,.circular-attachment-list{margin:0 0 .75rem;padding-left:1rem;color:var(--text-muted);font-size:.86rem}.circular-recipient-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.circular-recipient-summary{margin:0 0 .65rem;font-size:.84rem;color:var(--text-muted)}.circular-recipient-picker{border:1px solid var(--line);border-radius:10px;padding:.65rem;margin-bottom:.75rem;background:var(--surface-alt)}.circular-recipient-actions{display:flex;gap:.4rem;margin-bottom:.5rem}.circular-recipient-list{max-height:180px;overflow:auto;display:grid;gap:.35rem}.circular-recipient-item{font-size:.85rem}.circular-datetime-block{margin-bottom:.75rem}.circular-datetime-block p{margin:0 0 .3rem;font-size:.85rem;color:var(--text-muted)}.circular-datetime-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem}.circular-list{display:grid;gap:.75rem}.circular-item{border:1px solid var(--line);border-radius:10px;padding:.75rem;background:var(--surface-alt)}.circular-item-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.circular-item h4{margin:0}.circular-badge{background:#d9edf9;color:#0a4970;border:1px solid #a3c9e2;border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:700}.circular-status-list,.circular-answer-list{margin:.35rem 0 .75rem;padding-left:1rem;color:var(--text-muted);font-size:.86rem}.circular-item-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem}.circular-answer-box{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:.6rem;margin-bottom:.6rem}.circular-answer-box label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:.45rem}.circular-answer-box textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:.5rem;font:inherit;margin-top:.25rem}.circular-answers{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:.6rem}.callback-page{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1rem}.schedule-page{display:flex;flex-direction:column;gap:1rem}.schedule-header h2{margin:0}.schedule-header p{color:var(--text-muted);margin:.3rem 0 0}.schedule-grid{display:grid;grid-template-columns:340px 1fr;gap:1rem}.schedule-form,.schedule-board{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1rem}.schedule-form h3,.schedule-board h3{margin-top:0}.schedule-form label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:.75rem}.schedule-form input,.schedule-form textarea,.schedule-form select{margin-top:.25rem;width:100%;border:1px solid var(--line);border-radius:8px;padding:.5rem;font:inherit}.schedule-inline{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.schedule-grid.advanced{grid-template-columns:380px 1fr}.push-box{border:1px solid var(--line);border-radius:10px;padding:.75rem;margin-bottom:.9rem;background:var(--surface-alt)}.push-box h3{margin:0 0 .55rem}.push-meta{margin:.2rem 0;font-size:.82rem;color:var(--text-muted)}.push-message{margin:.55rem 0;font-size:.84rem;color:var(--text-muted)}.push-actions{margin-top:.6rem;display:flex;flex-wrap:wrap;gap:.45rem}.push-list{margin-top:.65rem;display:grid;gap:.35rem}.push-item{display:flex;align-items:center;justify-content:space-between;gap:.55rem;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:.4rem .55rem}.push-item p{margin:0;font-size:.76rem;color:var(--text-muted);word-break:break-all}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.toolbar-group{display:inline-flex;align-items:center;gap:.4rem}.view-btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:.45rem .7rem;cursor:pointer}.view-btn.active{background:var(--surface-alt);color:var(--text);font-weight:700}.checkbox-row{display:flex;align-items:center;gap:.4rem}.checkbox-row input{margin:0;width:auto}.checkbox-group,.weekday-checks{display:flex;flex-wrap:wrap;gap:.45rem .8rem;margin-top:.35rem}.calendar-board{overflow:hidden}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--line);border-radius:10px;overflow:hidden}.month-weekday,.month-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:110px;padding:.35rem}.month-weekday{min-height:auto;background:var(--surface-alt);font-size:.82rem;font-weight:700}.month-day-label{margin:0;font-size:.8rem;color:var(--text-muted)}.month-events{margin-top:.35rem;display:grid;gap:.25rem}.event-chip{border:1px solid transparent;border-radius:8px;padding:.25rem .45rem;text-align:left;font-size:.78rem;cursor:grab}.event-chip.mine{background:#dbf3ff;border-color:#9bc9e9}.event-chip.shared{background:#e2f6ea;border-color:#9dcfaf}.time-table{display:grid;grid-template-columns:70px 1fr;border:1px solid var(--line);border-radius:10px;overflow:auto;max-height:680px}.time-axis-col{border-right:1px solid var(--line)}.time-axis-head{min-height:36px;border-bottom:1px solid var(--line);background:var(--surface-alt)}.time-hour-label{height:52px;border-bottom:1px solid var(--line);color:var(--text-muted);font-size:.78rem;text-align:right;padding:.3rem .4rem 0 0}.time-days-wrap{display:grid}.time-day-panel{border-right:1px solid var(--line)}.time-day-head{min-height:36px;border-bottom:1px solid var(--line);background:var(--surface-alt);font-size:.82rem;font-weight:700;padding:.45rem}.time-day-body{position:relative}.time-drop-slot{height:52px;border-bottom:1px solid var(--line)}.time-events-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.time-event-block{position:absolute;left:.25rem;right:.25rem;border:1px solid transparent;border-radius:8px;padding:.25rem .35rem;cursor:grab;pointer-events:auto;overflow:hidden}.time-event-block.mine{background:#dbf3ff;border-color:#9bc9e9}.time-event-block.shared{background:#e2f6ea;border-color:#9dcfaf}.time-event-head{display:flex;align-items:center;justify-content:space-between;gap:.3rem;font-size:.78rem;font-weight:700}.time-event-block p{margin:.2rem 0 0;font-size:.72rem;color:var(--text-muted)}.schedule-detail-panel{margin-top:.9rem;border:1px solid var(--line);border-radius:10px;padding:.8rem;background:var(--surface-alt)}.schedule-detail-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem}.schedule-detail-head h4{margin:0}.schedule-detail-panel p{margin:.3rem 0;font-size:.88rem}.schedule-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#10243f59;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.schedule-modal{width:min(640px,100%);max-height:85vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1rem}.schedule-modal label{display:block;margin:.6rem 0;font-size:.86rem;color:var(--text-muted)}.schedule-modal input,.schedule-modal textarea,.schedule-modal select{margin-top:.25rem;width:100%;border:1px solid var(--line);border-radius:8px;padding:.45rem;font:inherit}.schedule-modal-actions{margin-top:.8rem;display:flex;justify-content:flex-end;gap:.55rem}.icon-btn{border:1px solid var(--line);background:var(--surface);border-radius:999px;width:22px;height:22px;line-height:1;cursor:pointer}.schedule-board-head{display:flex;align-items:center;justify-content:space-between}.schedule-day-block{margin-top:.9rem}.schedule-day-block h4{margin:0 0 .45rem;color:var(--text-muted)}.schedule-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.schedule-item{border:1px solid var(--line);border-radius:10px;padding:.75rem;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.schedule-title{margin:0;font-weight:700}.schedule-time,.schedule-desc,.schedule-meta,.error-text{margin:.25rem 0 0;color:var(--text-muted);font-size:.88rem}@media (max-width: 900px){.auth-container{grid-template-columns:1fr}.hero-panel{padding:2rem}.content-wrapper,.schedule-grid,.notice-grid,.circular-grid{grid-template-columns:1fr}.circular-datetime-grid{grid-template-columns:repeat(2,1fr)}.schedule-grid.advanced,.schedule-inline{grid-template-columns:1fr}.month-grid{grid-template-columns:repeat(2,1fr)}.time-table{grid-template-columns:56px 1fr}.sidebar{border-right:none;border-bottom:1px solid var(--line)}}
