:root {
    --primary: #3B82F6;
    --primary-hover: #2563EB;
    --success: #10B981;
    --success-hover: #059669;
    --bg-light: #F8FAFC;
    --bg-white: #FFFFFF;
    --sidebar-bg: #F1F5F9;
    --border-color: #E2E8F0;
    --text-primary: #1E293B;
    --text-secondary: #64748B;
    --radius: 12px;
    --sidebar-width: 280px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Inter', sans-serif; background-color: var(--bg-light); color: var(--text-primary); display: flex; height: 100vh; overflow: hidden; }
.app-container { display: flex; width: 100%; height: 100%; position: relative; }

.sidebar-header h1 { 
    font-size: 1.1rem; color: var(--primary); font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; white-space: nowrap; 
}

.sidebar { width: var(--sidebar-width); background-color: var(--sidebar-bg); border-right: 1px solid var(--border-color); display: flex; flex-direction: column; flex-shrink: 0; transition: transform 0.3s ease; z-index: 100; }
.app-container.collapsed .sidebar { transform: translateX(calc(var(--sidebar-width) * -1)); }
.sidebar-header { padding: 24px; border-bottom: 1px solid var(--border-color); }
.sidebar-top-row { display: flex; align-items: center; justify-content: space-between; }

.sidebar-toggle-btn { background: none; border: none; font-size: 2rem; color: var(--text-secondary); cursor: pointer; padding: 8px; border-radius: 8px; transition: 0.3s; }
.app-container.collapsed .sidebar-toggle-btn { position: fixed; left: 20px; top: 25px; transform: translateX(var(--sidebar-width)); z-index: 110; }

.main-content { flex: 1; display: flex; flex-direction: column; overflow-y: auto; background-color: var(--bg-light); }
.main-header { padding: 60px 20px 40px; background: white; border-bottom: 1px solid var(--border-color); display: flex; flex-direction: column; align-items: center; gap: 24px; }
.header-info h2 { font-size: 2.2rem; font-weight: 800; color: var(--text-primary); }

/* 共有コピーと確認者名の余白調整（20px） */
.header-actions { display: flex; flex-direction: column; align-items: center; gap: 20px; width: 100%; }

.checker-input { display: flex; align-items: center; gap: 12px; color: var(--text-secondary); font-weight: 600; }
.checker-input input { border: none; border-bottom: 2px solid var(--border-color); padding: 4px; font-size: 1.1rem; font-weight: 600; background: transparent; width: 160px; text-align: center; transition: 0.3s; color: var(--text-primary); }
.checker-input input:focus { outline: none; border-bottom-color: var(--primary); color: var(--primary); }

.content-body-vertical { padding: 30px 20px; display: flex; flex-direction: column; gap: 24px; max-width: 900px; margin: 0 auto; width: 100%; }
.glass-panel { background: white; border: 1px solid var(--border-color); border-radius: var(--radius); padding: 30px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); }

#check-comment { width: 100%; min-height: 100px; padding: 15px; border-radius: 10px; border: 1px solid var(--border-color); font-family: inherit; font-size: 1rem; outline: none; transition: 0.2s; }
#check-comment:focus { border-color: var(--primary); }

.btn { padding: 12px 20px; border-radius: 8px; border: none; font-weight: 700; cursor: pointer; transition: 0.2s; font-size: 0.9rem; }
.primary-btn { background: var(--primary); color: white; }
.secondary-btn { background: white; color: var(--text-primary); border: 1px solid var(--border-color); }
.success-btn { background: var(--success); color: white; width: 100%; font-size: 1.1rem; padding: 18px; }
.success-btn:disabled { background: #E2E8F0; color: #94A3B8; cursor: not-allowed; }

.checkbox-label { display: flex; align-items: center; gap: 14px; padding: 18px; background: #fff; border: 1px solid var(--border-color); border-radius: 10px; cursor: pointer; }
.checkbox-label.checked { background: #F0FDF4; border-color: #BBF7D0; }
.project-item { padding: 15px; background: white; border: 1px solid var(--border-color); border-radius: 10px; margin-bottom: 10px; cursor: pointer; }
.project-item.active { border-color: var(--primary); background: #EFF6FF; }
.modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.4); display: flex; align-items: center; justify-content: center; z-index: 1000; }
.modal { background: white; padding: 40px; border-radius: 16px; width: 100%; max-width: 450px; }
.sidebar-content { padding: 20px; flex: 1; overflow-y: auto; }
.sidebar-footer { padding: 20px; border-top: 1px solid var(--border-color); }
.w-full { width: 100%; }
.mb-8 { margin-bottom: 8px; }